cloudy  trunk
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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,
336  lgDRPLst,
337  lgDRHash;
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_ */
char chSpeciesDominantRates[LIMPUN][CHARS_SPECIES]
Definition: save.h:368
bool lgPunLstIter[LIMPUN]
Definition: save.h:271
vector< int > nAverageIonList[LIMPUN]
Definition: save.h:192
realnum punarg[LIMPUN][3]
Definition: save.h:254
bool lgPunContinuum
Definition: save.h:251
void SaveSpecial(FILE *io, const char *chTime)
void SaveHeat(FILE *io)
Definition: heat_save.cpp:22
#define NORETURN
Definition: cpu.h:370
bool lgNoClobber[LIMPUN]
Definition: save.h:200
string chGridPrefix
Definition: save.h:302
realnum ResolutionAbs
Definition: save.h:366
bool lgDRHash
Definition: save.h:335
string chFilenamePrefix
Definition: save.h:306
FILE * ipPnunit[LIMPUN]
Definition: save.h:197
char chHeader[LIMPUN][MAX_HEADER_SIZE]
Definition: save.h:231
static const long VERSION_TRNCON
Definition: save.h:15
bool lgSaveGrid_noclobber
Definition: save.h:209
char chOpcTyp[LIMPUN][5]
Definition: save.h:229
char chHashString[INPUT_LINE_LENGTH]
Definition: save.h:295
NORETURN void SaveLineData(FILE *io)
vector< char * > chLineListLabel[LIMPUN]
Definition: save.h:178
bool lgioRecom_noclobber
Definition: save.h:206
bool lgFLUSH
Definition: save.h:298
FILE * ioRecom
Definition: save.h:345
char chPunRltType[7]
Definition: save.h:319
bool lgRealSave[LIMPUN]
Definition: save.h:213
exit_type
Definition: cddefines.h:119
bool lgTraceConvergeBase_noclobber
Definition: save.h:208
bool lgEmergent[LIMPUN]
Definition: save.h:216
const char * chNONSENSE
Definition: save.h:233
long int nsave
Definition: save.h:222
void SaveDo(const char *chTime)
Definition: save_do.cpp:573
FILE * ipPunConv
Definition: save.h:329
bool lgCumulative[LIMPUN]
Definition: save.h:219
string optname[LIMPUN]
Definition: save.h:257
long int LinEvery
Definition: save.h:350
void save_opacity(FILE *io, long int np)
bool lg_separate_iterations[LIMPUN]
Definition: save.h:242
bool lgPunConv
Definition: save.h:328
vector< char * > chAverageSpeciesLabel[LIMPUN]
Definition: save.h:190
realnum WeakHeatCool
Definition: save.h:358
FILE * ipTraceConvergeBase
Definition: save.h:342
static const long LIMPUN
Definition: save.h:11
~t_save()
Definition: save.h:148
void SaveGrid(FILE *pnunit, exit_type status)
Definition: save_do.cpp:4846
static const long MAX_HEADER_SIZE
Definition: save.h:12
char chSaveArgs[LIMPUN][5]
Definition: save.h:265
void SaveAverageFree(long i)
Definition: save.h:164
void Save_Line_RT(FILE *ip)
Definition: save_line.cpp:351
long int ncSaveSkip
Definition: save.h:354
void CoolSave(FILE *io, char chJob[])
Definition: cool_save.cpp:20
Definition: save.h:135
bool lgPunPoint
Definition: save.h:325
float realnum
Definition: cddefines.h:107
bool lgPunPoint_noclobber
Definition: save.h:205
const int INPUT_LINE_LENGTH
Definition: cddefines.h:258
long int nSaveEveryZone[LIMPUN]
Definition: save.h:262
bool lgQHSaveFile_noclobber
Definition: save.h:207
vector< int > nAverage2ndPar[LIMPUN]
Definition: save.h:194
bool lgLineListRatio[LIMPUN]
Definition: save.h:182
bool lgDRPLst
Definition: save.h:335
FILE * ipPoint
Definition: save.h:324
void SaveLineListFree(long i)
Definition: save.h:157
bool lgSaveEveryZone[LIMPUN]
Definition: save.h:261
const char * chConPunEnr[LIMPUN]
Definition: save.h:284
bool lgLinEvery
Definition: save.h:351
t_save()
Definition: save.h:137
char chSaveSpecies[LIMPUN][CHARS_SPECIES]
Definition: save.h:267
int FITStype[LIMPUN]
Definition: save.h:277
bool lgFITS[LIMPUN]
Definition: save.h:274
vector< realnum > wlLineList[LIMPUN]
Definition: save.h:180
bool lgHashEndIter[LIMPUN]
Definition: save.h:291
Definition: energy.h:7
string chOutputFile
Definition: save.h:314
long nAverageList[LIMPUN]
Definition: save.h:186
bool lgTraceConvergeBase
Definition: save.h:340
bool lgDROn
Definition: save.h:335
diatomics * whichDiatomToPrint[LIMPUN]
Definition: save.h:226
long ipEmisFreq[LIMPUN]
Definition: save.h:372
void SaveSpecies(FILE *ioPUN, long int ipPun)
vector< char * > chAverageType[LIMPUN]
Definition: save.h:188
void Save1LineData(const TransitionProxy &t, FILE *io, bool lgCS_2, bool &lgPrint)
bool lgioRecom
Definition: save.h:346
void saveFITSfile(FILE *io, int option)
Definition: save_fits.cpp:85
void save_average(long int ipPun)
void save_line(FILE *ip, const char *chDo, bool lgEmergent)
Definition: save_line.cpp:102
bool lgTraceConvergeBaseHash
Definition: save.h:340
bool lgPunConv_noclobber
Definition: save.h:203
t_save save
Definition: save.cpp:5
FILE * ipDRout
Definition: save.h:334
realnum Resolution
Definition: save.h:363
string chRedirectPrefix
Definition: save.h:310
Energy emisfreq[LIMPUN]
Definition: save.h:371
bool lgSaveToSeparateFiles[LIMPUN]
Definition: save.h:238
long int ipConPun
Definition: save.h:287
long nLineList[LIMPUN]
Definition: save.h:176
char chSave[LIMPUN][5]
Definition: save.h:225
bool lgPunchFits
Definition: save.h:281
bool lgDROn_noclobber
Definition: save.h:204
void Save1Line(const TransitionProxy &t, FILE *io, realnum xLimit, long index, realnum DopplerWidth)
Definition: save_do.cpp:4347
bool lgPunHeader[LIMPUN]
Definition: save.h:246
void save_colden(FILE *ioPUN)
Definition: save_colden.cpp:92