cloudy trunk
|
00001 /* This file is part of Cloudy and is copyright (C)1978-2008 by Gary J. Ferland and 00002 * others. For conditions of distribution and use see copyright notice in license.txt */ 00003 00004 #ifndef _PUNCH_H_ 00005 #define _PUNCH_H_ 00006 00007 /* punch.h */ 00008 #define LIMPUN 100L 00009 00013 void PunchDo( 00014 const char *chTime); 00015 00023 void pun1Line( 00024 transition * t , 00025 FILE * io , 00026 realnum xLimit , 00027 long index , 00028 double population ); 00029 00033 NORETURN void PunchLineData( 00034 FILE * io); 00035 00040 void punch_opacity( 00041 FILE * io, 00042 long int np); 00043 00048 void PunchSpecial( 00049 FILE* io , 00050 const char *chTime); 00051 00058 void Punch1LineData( 00059 transition * t , 00060 FILE * io, 00061 bool lgCS_2 ); 00062 00068 void punch_line( 00069 FILE * ip, 00070 const char *chDo, 00071 /* true, return rel intensity, false, log of true intensity */ 00072 bool lgLog3, 00073 char *chHeader); 00074 00079 void punch_average( 00080 long int ipPun, 00081 const char *chJob, 00082 char *chHeader ); 00083 00089 void punch_colden( 00090 /* the header for the file - the identification for the column densities */ 00091 char header[] , 00092 /* the file we will write to */ 00093 FILE * ioPUN, 00094 /* the job we shall do - one of */ 00095 const char *chDo ); 00096 00101 void Punch_Line_RT( 00102 FILE * ip, 00103 const char *chJob ); 00104 00109 void punchFITSfile( 00110 FILE* io, 00111 int option ); 00112 00116 void HeatPunch(FILE* io); 00117 00121 void CoolPunch(FILE * io); 00122 00123 EXTERN struct t_punch { 00124 00127 long int *nLineList; 00129 char ***chLineListLabel; 00131 realnum **wlLineList; 00133 bool *lgLineListRatio; 00134 00137 long int *nAverageList; 00139 char ***chAverageType; 00141 char ***chAverageSpeciesLabel; 00143 int **nAverageIonList; 00145 int **nAverage2ndPar; 00146 00148 FILE *ipPnunit[LIMPUN]; 00149 00152 bool lgRealPunch[LIMPUN]; 00153 00155 long int npunch; 00156 00158 char chPunch[LIMPUN][5]; 00159 00161 char chOpcTyp[LIMPUN][5]; 00162 00166 bool lgPunchToSeparateFiles[LIMPUN]; 00167 00170 bool lg_separate_iterations[LIMPUN]; 00171 00174 bool lgPunHeader; 00175 00179 bool lgPunContinuum; 00180 00182 realnum punarg[LIMPUN][3]; 00183 00186 bool lgPunchEveryZone[LIMPUN]; 00187 long int nPunchEveryZone[LIMPUN]; 00188 00190 char chPunchArgs[LIMPUN][5]; 00191 00194 bool lgPunLstIter[LIMPUN]; 00195 00197 bool lgFITS[LIMPUN]; 00198 00201 bool lgPunchFits; 00202 00204 char chConPunEnr[LIMPUN][5]; 00205 00207 long int ipConPun; 00208 00211 bool lgHashEndIter[LIMPUN]; 00212 00215 char chHashString[INPUT_LINE_LENGTH]; 00216 00218 bool lgFLUSH; 00219 00222 char chFilenamePrefix[INPUT_LINE_LENGTH]; 00223 00226 realnum cp_range_min[LIMPUN] , cp_range_max[LIMPUN]; 00228 00232 realnum cp_resolving_power[LIMPUN]; 00233 00235 long int cp_npun; 00236 00240 char chPunRltType[7]; 00241 00245 FILE* ipPoint; 00246 bool lgPunPoint; 00247 00249 bool lgPunConv; 00250 FILE* ipPunConv; 00251 00255 FILE * ipDRout; 00256 bool lgDROn, 00257 lgDRPLst, 00258 lgDRHash; 00259 00260 /* set true punch convergence base */ 00261 bool lgTraceConvergeBase, 00262 lgTraceConvergeBaseHash; 00263 FILE * ipTraceConvergeBase; 00264 00266 FILE* ioRecom; 00267 bool lgioRecom; 00268 00271 long int LinEvery; 00272 bool lgLinEvery; 00273 00275 long int ncPunchSkip; 00276 00279 realnum WeakHeatCool; 00280 00284 realnum PunchLWidth; 00285 00286 } punch; 00287 00288 #endif /* _PUNCH_H_ */