00001
00002
00003
00004 #ifndef _PUNCH_H_
00005 #define _PUNCH_H_
00006
00007
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
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
00091 char header[] ,
00092
00093 FILE * ioPUN,
00094
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
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