00001
00002
00003
00004 #ifndef SAVE_H_
00005 #define SAVE_H_
00006
00007
00008 static const long LIMPUN = 100L;
00009 static const long MAX_HEADER_SIZE = 20000L;
00010
00012 static const long VERSION_TRNCON = 20100901L;
00013
00017 void SaveDo(
00018 const char *chTime);
00019
00027 void Save1Line(
00028 transition * t ,
00029 FILE * io ,
00030 realnum xLimit ,
00031 long index,
00032 realnum DopplerWidth);
00033
00037 NORETURN void SaveLineData(
00038 FILE * io);
00039
00044 void save_opacity(
00045 FILE * io,
00046 long int np);
00047
00052 void SaveSpecial(
00053 FILE* io ,
00054 const char *chTime);
00055
00062 void Save1LineData(
00063 transition * t ,
00064 FILE * io,
00065 bool lgCS_2 );
00066
00072 void save_line(
00073 FILE * ip,
00074 const char *chDo,
00075 bool lgEmergent);
00076
00080 void save_average(
00081 long int ipPun);
00082
00087 void save_colden(
00088
00089 FILE * ioPUN );
00090
00095 void Save_Line_RT(
00096 FILE * ip);
00097
00102 void saveFITSfile(
00103 FILE* io,
00104 int option );
00105
00109 void SaveHeat(FILE* io);
00110
00114 void CoolSave(FILE * io);
00115
00116 EXTERN struct t_save {
00117
00120 long int *nLineList;
00122 char ***chLineListLabel;
00124 realnum **wlLineList;
00126 bool *lgLineListRatio;
00127
00130 long int *nAverageList;
00132 char ***chAverageType;
00134 char ***chAverageSpeciesLabel;
00136 int **nAverageIonList;
00138 int **nAverage2ndPar;
00139
00141 FILE *ipPnunit[LIMPUN];
00142
00145 bool lgRealSave[LIMPUN];
00146
00147
00148 bool lgEmergent[LIMPUN];
00149
00151 long int nsave;
00152
00154 char chSave[LIMPUN][5];
00155
00157 char chOpcTyp[LIMPUN][5];
00158
00159 char chHeader[LIMPUN][MAX_HEADER_SIZE];
00160
00161 const char *chNONSENSE;
00162
00166 bool lgSaveToSeparateFiles[LIMPUN];
00167
00170 bool lg_separate_iterations[LIMPUN];
00171
00174 bool lgPunHeader[LIMPUN];
00175
00179 bool lgPunContinuum;
00180
00182 realnum punarg[LIMPUN][3];
00183
00185 string optname[LIMPUN];
00186
00189 bool lgSaveEveryZone[LIMPUN];
00190 long int nSaveEveryZone[LIMPUN];
00191
00193 char chSaveArgs[LIMPUN][5];
00194
00197 bool lgPunLstIter[LIMPUN];
00198
00200 bool lgFITS[LIMPUN];
00201
00203 int FITStype[LIMPUN];
00204
00207 bool lgPunchFits;
00208
00210 const char *chConPunEnr[LIMPUN];
00211
00213 long int ipConPun;
00214
00217 bool lgHashEndIter[LIMPUN];
00218
00221 char chHashString[INPUT_LINE_LENGTH];
00222
00224 bool lgFLUSH;
00225
00228 string chGridPrefix;
00229
00232 string chFilenamePrefix;
00233
00236 string chRedirectPrefix;
00237
00241 char chPunRltType[7];
00242
00246 FILE* ipPoint;
00247 bool lgPunPoint;
00248
00250 bool lgPunConv;
00251 FILE* ipPunConv;
00252
00256 FILE * ipDRout;
00257 bool lgDROn,
00258 lgDRPLst,
00259 lgDRHash;
00260
00261
00262 bool lgTraceConvergeBase,
00263 lgTraceConvergeBaseHash;
00264 FILE * ipTraceConvergeBase;
00265
00267 FILE* ioRecom;
00268 bool lgioRecom;
00269
00272 long int LinEvery;
00273 bool lgLinEvery;
00274
00276 long int ncSaveSkip;
00277
00280 realnum WeakHeatCool;
00281
00285 realnum Resolution;
00288 realnum ResolutionAbs;
00289
00291 Energy emisfreq;
00292 long ipEmisFreq;
00293
00294 } save;
00295
00296 #endif