cloudy  trunk
save.h
Go to the documentation of this file.
1 /* This file is part of Cloudy and is copyright (C)1978-2013 by Gary J. Ferland and
2  * others. For conditions of distribution and use see copyright notice in license.txt */
3 
4 #ifndef SAVE_H_
5 #define SAVE_H_
6 
7 #include "energy.h"
8 #include "h2_priv.h"
9 
10 /* save.h */
11 static const long LIMPUN = 100L;
12 static const long MAX_HEADER_SIZE = 20000L;
13 
15 static const long VERSION_TRNCON = 20100901L;
16 
20 void SaveDo(
21  const char *chTime);
22 
30 void Save1Line(
31  const TransitionProxy & t ,
32  FILE * io ,
33  realnum xLimit ,
34  long index,
35  realnum DopplerWidth);
36 
41  FILE * io);
42 
47 void save_opacity(
48  FILE * io,
49  long int np);
50 
55 void SaveSpecial(
56  FILE* io ,
57  const char *chTime);
58 
63 void SaveSpecies(
64  FILE* ioPUN,
65  long int ipPun );
66 
74 void Save1LineData(
75  const TransitionProxy & t ,
76  FILE * io,
77  bool lgCS_2 ,
78  bool &lgPrint);
79 
85 void save_line(
86  FILE * ip,
87  const char *chDo,
88  bool lgEmergent);
89 
93 void save_average(
94  long int ipPun);
95 
100 void save_colden(
101  /* the file we will write to */
102  FILE * ioPUN );
103 
108 void Save_Line_RT(
109  FILE * ip);
110 
115 void saveFITSfile(
116  FILE* io,
117  int option );
118 
122 void SaveHeat(FILE* io);
123 
127 void CoolSave(FILE * io, char chJob[]);
128 
133 void SaveGrid(FILE* pnunit, exit_type status);
134 
135 struct t_save {
136 
138  {
139  for( long i=0; i < LIMPUN; ++i )
140  {
141  nLineList[i] = -1;
142  lgFITS[i] = false;
143  FITStype[i] = -1;
144  nAverageList[i] = -1;
145  }
146  }
147 
149  {
150  for( long i=0; i < LIMPUN; ++i )
151  {
152  SaveLineListFree(i);
153  SaveAverageFree(i);
154  }
155  }
156 
157  void SaveLineListFree(long i)
158  {
159  for( unsigned j=0; j < chLineListLabel[i].size(); ++j )
160  delete[] chLineListLabel[i][j];
161  chLineListLabel[i].clear();
162  wlLineList[i].clear();
163  }
164  void SaveAverageFree(long i)
165  {
166  for( unsigned j=0; j < chAverageType[i].size(); ++j )
167  delete[] chAverageType[i][j];
168  chAverageType[i].clear();
169  for( unsigned j=0; j < chAverageSpeciesLabel[i].size(); ++j )
170  delete[] chAverageSpeciesLabel[i][j];
171  chAverageSpeciesLabel[i].clear();
172  }
173 
178  vector<char*> chLineListLabel[LIMPUN];
180  vector<realnum> wlLineList[LIMPUN];
183 
188  vector<char*> chAverageType[LIMPUN];
192  vector<int> nAverageIonList[LIMPUN];
194  vector<int> nAverage2ndPar[LIMPUN];
195 
197  FILE *ipPnunit[LIMPUN];
198 
201 
210 
214 
217 
220 
222  long int nsave;
223 
225  char chSave[LIMPUN][5];
227 
229  char chOpcTyp[LIMPUN][5];
230 
232 
233  const char *chNONSENSE;
234 
239 
243 
247 
252 
255 
257  string optname[LIMPUN];
258 
263 
265  char chSaveArgs[LIMPUN][5];
266 
268 
272 
274  bool lgFITS[LIMPUN];
275 
278 
282 
284  const char *chConPunEnr[LIMPUN];
285 
287  long int ipConPun;
288 
292 
296 
298  bool lgFLUSH;
299 
302  string chGridPrefix;
303 
307 
311 
314  string chOutputFile;
315 
319  char chPunRltType[7];
320 
324  FILE* ipPoint;
326 
328  bool lgPunConv;
329  FILE* ipPunConv;
330 
334  FILE * ipDRout;
335  bool lgDROn,
338 
339  /* set true save convergence base */
343 
345  FILE* ioRecom;
346  bool lgioRecom;
347 
350  long int LinEvery;
352 
354  long int ncSaveSkip;
355 
359 
364  // same thing but for absorption lines - default is unity, set to
365  // SaveLWidth if ABSORPTION keyword occurs on save line width command
367 
369 
370  // the frequency at which the continuum volume emissivity should be saved
373 
374 };
375 
376 extern t_save save;
377 
378 #endif /* SAVE_H_ */
save_line
void save_line(FILE *ip, const char *chDo, bool lgEmergent)
Definition: save_line.cpp:102
t_save::lgSaveToSeparateFiles
bool lgSaveToSeparateFiles[LIMPUN]
Definition: save.h:238
t_save::lgDROn
bool lgDROn
Definition: save.h:335
t_save::lgTraceConvergeBase
bool lgTraceConvergeBase
Definition: save.h:340
Save1LineData
void Save1LineData(const TransitionProxy &t, FILE *io, bool lgCS_2, bool &lgPrint)
Definition: save_linedata.cpp:278
t_save::lgPunPoint_noclobber
bool lgPunPoint_noclobber
Definition: save.h:205
MAX_HEADER_SIZE
static const long MAX_HEADER_SIZE
Definition: save.h:12
t_save::lgCumulative
bool lgCumulative[LIMPUN]
Definition: save.h:219
energy.h
t_save::ipPunConv
FILE * ipPunConv
Definition: save.h:329
t_save::ipDRout
FILE * ipDRout
Definition: save.h:334
t_save::lgDRPLst
bool lgDRPLst
Definition: save.h:336
t_save::chGridPrefix
string chGridPrefix
Definition: save.h:302
t_save::chSaveSpecies
char chSaveSpecies[LIMPUN][CHARS_SPECIES]
Definition: save.h:267
t_save::nAverage2ndPar
vector< int > nAverage2ndPar[LIMPUN]
Definition: save.h:194
t_save::lg_separate_iterations
bool lg_separate_iterations[LIMPUN]
Definition: save.h:242
realnum
float realnum
Definition: cddefines.h:103
t_save::lgHashEndIter
bool lgHashEndIter[LIMPUN]
Definition: save.h:291
SaveGrid
void SaveGrid(FILE *pnunit, exit_type status)
Definition: save_do.cpp:4846
t_save::FITStype
int FITStype[LIMPUN]
Definition: save.h:277
t_save::lgFLUSH
bool lgFLUSH
Definition: save.h:298
t_save::lgPunConv_noclobber
bool lgPunConv_noclobber
Definition: save.h:203
t_save::Resolution
realnum Resolution
Definition: save.h:363
saveFITSfile
void saveFITSfile(FILE *io, int option)
Definition: save_fits.cpp:85
t_save::ResolutionAbs
realnum ResolutionAbs
Definition: save.h:366
t_save::lgSaveEveryZone
bool lgSaveEveryZone[LIMPUN]
Definition: save.h:261
CoolSave
void CoolSave(FILE *io, char chJob[])
Definition: cool_save.cpp:20
save_average
void save_average(long int ipPun)
Definition: save_average.cpp:210
t_save::wlLineList
vector< realnum > wlLineList[LIMPUN]
Definition: save.h:180
t_save::t_save
t_save()
Definition: save.h:137
SaveHeat
void SaveHeat(FILE *io)
Definition: heat_save.cpp:22
save_colden
void save_colden(FILE *ioPUN)
Definition: save_colden.cpp:92
t_save::nSaveEveryZone
long int nSaveEveryZone[LIMPUN]
Definition: save.h:262
t_save::lgPunLstIter
bool lgPunLstIter[LIMPUN]
Definition: save.h:271
t_save::whichDiatomToPrint
diatomics * whichDiatomToPrint[LIMPUN]
Definition: save.h:226
t_save::nLineList
long nLineList[LIMPUN]
Definition: save.h:176
TransitionProxy
Definition: transition.h:23
t_save::lgPunchFits
bool lgPunchFits
Definition: save.h:281
t_save::lgTraceConvergeBaseHash
bool lgTraceConvergeBaseHash
Definition: save.h:341
t_save::optname
string optname[LIMPUN]
Definition: save.h:257
CHARS_SPECIES
@ CHARS_SPECIES
Definition: cddefines.h:274
t_save::emisfreq
Energy emisfreq[LIMPUN]
Definition: save.h:371
t_save::chConPunEnr
const char * chConPunEnr[LIMPUN]
Definition: save.h:284
t_save::lgFITS
bool lgFITS[LIMPUN]
Definition: save.h:274
t_save::chAverageSpeciesLabel
vector< char * > chAverageSpeciesLabel[LIMPUN]
Definition: save.h:190
t_save::WeakHeatCool
realnum WeakHeatCool
Definition: save.h:358
t_save::chNONSENSE
const char * chNONSENSE
Definition: save.h:233
diatomics
Definition: h2_priv.h:65
t_save::lgQHSaveFile_noclobber
bool lgQHSaveFile_noclobber
Definition: save.h:207
NORETURN
#define NORETURN
Definition: cpu.h:383
t_save::lgLinEvery
bool lgLinEvery
Definition: save.h:351
t_save::chFilenamePrefix
string chFilenamePrefix
Definition: save.h:306
t_save::chAverageType
vector< char * > chAverageType[LIMPUN]
Definition: save.h:188
t_save::chHashString
char chHashString[INPUT_LINE_LENGTH]
Definition: save.h:295
t_save::lgNoClobber
bool lgNoClobber[LIMPUN]
Definition: save.h:200
t_save::lgDROn_noclobber
bool lgDROn_noclobber
Definition: save.h:204
t_save::lgioRecom_noclobber
bool lgioRecom_noclobber
Definition: save.h:206
save_opacity
void save_opacity(FILE *io, long int np)
Definition: save_opacity.cpp:22
t_save::nAverageIonList
vector< int > nAverageIonList[LIMPUN]
Definition: save.h:192
t_save::chHeader
char chHeader[LIMPUN][MAX_HEADER_SIZE]
Definition: save.h:231
t_save::lgSaveGrid_noclobber
bool lgSaveGrid_noclobber
Definition: save.h:209
t_save::lgTraceConvergeBase_noclobber
bool lgTraceConvergeBase_noclobber
Definition: save.h:208
Save1Line
void Save1Line(const TransitionProxy &t, FILE *io, realnum xLimit, long index, realnum DopplerWidth)
Definition: save_do.cpp:4347
t_save::lgEmergent
bool lgEmergent[LIMPUN]
Definition: save.h:216
t_save::lgPunPoint
bool lgPunPoint
Definition: save.h:325
t_save::nsave
long int nsave
Definition: save.h:222
SaveLineData
NORETURN void SaveLineData(FILE *io)
Definition: save_linedata.cpp:25
SaveSpecies
void SaveSpecies(FILE *ioPUN, long int ipPun)
Definition: save_species.cpp:17
t_save::nAverageList
long nAverageList[LIMPUN]
Definition: save.h:186
t_save::chPunRltType
char chPunRltType[7]
Definition: save.h:319
t_save::chSave
char chSave[LIMPUN][5]
Definition: save.h:225
SaveDo
void SaveDo(const char *chTime)
Definition: save_do.cpp:573
Energy
Definition: energy.h:7
t_save::ipPnunit
FILE * ipPnunit[LIMPUN]
Definition: save.h:197
t_save::ipConPun
long int ipConPun
Definition: save.h:287
t_save::chSaveArgs
char chSaveArgs[LIMPUN][5]
Definition: save.h:265
t_save::lgRealSave
bool lgRealSave[LIMPUN]
Definition: save.h:213
t_save::lgPunContinuum
bool lgPunContinuum
Definition: save.h:251
INPUT_LINE_LENGTH
const int INPUT_LINE_LENGTH
Definition: cddefines.h:254
t_save::ioRecom
FILE * ioRecom
Definition: save.h:345
h2_priv.h
t_save::lgioRecom
bool lgioRecom
Definition: save.h:346
t_save::lgDRHash
bool lgDRHash
Definition: save.h:337
t_save::lgLineListRatio
bool lgLineListRatio[LIMPUN]
Definition: save.h:182
t_save::ncSaveSkip
long int ncSaveSkip
Definition: save.h:354
t_save::LinEvery
long int LinEvery
Definition: save.h:350
VERSION_TRNCON
static const long VERSION_TRNCON
Definition: save.h:15
t_save::SaveAverageFree
void SaveAverageFree(long i)
Definition: save.h:164
Save_Line_RT
void Save_Line_RT(FILE *ip)
Definition: save_line.cpp:351
t_save::lgPunConv
bool lgPunConv
Definition: save.h:328
SaveSpecial
void SaveSpecial(FILE *io, const char *chTime)
Definition: save_special.cpp:14
t_save::chSpeciesDominantRates
char chSpeciesDominantRates[LIMPUN][CHARS_SPECIES]
Definition: save.h:368
LIMPUN
static const long LIMPUN
Definition: save.h:11
t_save::punarg
realnum punarg[LIMPUN][3]
Definition: save.h:254
t_save::SaveLineListFree
void SaveLineListFree(long i)
Definition: save.h:157
t_save::ipPoint
FILE * ipPoint
Definition: save.h:324
t_save::chLineListLabel
vector< char * > chLineListLabel[LIMPUN]
Definition: save.h:178
t_save::lgPunHeader
bool lgPunHeader[LIMPUN]
Definition: save.h:246
t_save::ipTraceConvergeBase
FILE * ipTraceConvergeBase
Definition: save.h:342
t_save::~t_save
~t_save()
Definition: save.h:148
t_save::chRedirectPrefix
string chRedirectPrefix
Definition: save.h:310
t_save::chOpcTyp
char chOpcTyp[LIMPUN][5]
Definition: save.h:229
t_save::chOutputFile
string chOutputFile
Definition: save.h:314
save
t_save save
Definition: save.cpp:5
t_save::ipEmisFreq
long ipEmisFreq[LIMPUN]
Definition: save.h:372
exit_type
exit_type
Definition: cddefines.h:115
t_save
Definition: save.h:135