00001
00002
00003
00004 #ifndef _CDDRIVE_H_
00005 #define _CDDRIVE_H_
00006
00044 void cdInit(void);
00045
00051 void cdTalk(bool);
00052
00059 void cdOutp(FILE* );
00060
00062 void cdInp(FILE* );
00063
00068 void cdDepth_depth( double cdDepth[] );
00069
00073 long int cdnZone(void );
00074
00079 double cdB21cm( void );
00080
00091 int cdRead( const char* );
00092
00100 void cdPrtWL( FILE *io , realnum wl );
00101
00110 long debugLine( realnum wavelength );
00111
00119 void cdNoExec(void);
00120
00126 int cdDrive(void);
00127
00128
00129
00130
00131
00138 void cdErrors(FILE* );
00139
00155 void cdNwcns(
00156 bool *lgAbort ,
00157 long int *NumberWarnings,
00158 long int *NumberCautions,
00159 long int *NumberNotes,
00160 long int *NumberSurprises,
00161 long int *NumberTempFailures,
00162 long int *NumberPresFailures,
00163 long int *NumberIonFailures,
00164 long int *NumberNeFailures );
00165
00168 void cdReasonGeo(FILE*);
00169
00174 void cdWarnings(FILE*);
00177 void cdCautions(FILE*);
00179 void cdSurprises(FILE*);
00181 void cdNotes(FILE*);
00182
00183
00184
00185
00186
00187
00188
00209 long int cdLine(
00210 const char *chLabel,
00211 realnum wavelength,
00212 double *relint,
00213 double *absint);
00214
00215
00221 void cdLine_ip(long int ipLine,
00222 double *relint,
00223 double *absint );
00224
00235 long int cdDLine(char *chLabel,
00236 realnum wavelength,
00237 double *relint,
00238 double *absint );
00239
00247 long int cdLineListPunch(
00248
00249
00250 FILE* io );
00251
00280 int cdColm(const char*, long, double* );
00281
00285 double cdH2_colden( long iVib , long iRot );
00286
00292 double cdCO_colden( long isotope , long iRot );
00293
00309 long int cdEmis(
00310 char *chLabel,
00311 realnum wavelength,
00312 double *emiss );
00313
00314
00319 void cdEmis_ip(
00320 long int ipLine,
00321 double *emiss );
00322
00326 double cdCooling_last(void);
00327
00331 double cdHeating_last(void);
00332
00334 double cdEDEN_last(void);
00335
00342 void cdPressure_last(
00343 double *TotalPressure,
00344 double *GasPressure,
00345 double *RadiationPressure);
00346
00357 void cdPressure_depth(
00358 double TotalPressure[],
00359 double GasPressure[],
00360 double RadiationPressure[]);
00361
00365 double cdTemp_last(void);
00366
00387 int cdIonFrac(
00388 const char *chLabel,
00389 long int IonStage,
00390 double *fracin,
00391 const char *chWeight ,
00392 bool lgDensity );
00393
00398 void cdVersion(char chString[] );
00399
00404 void cdDate(char chString[] );
00405
00406
00407
00408
00409
00410
00412 void cdSetExecTime(void);
00413
00416 double cdExecTime(void);
00417
00444 long int cdGetLineList(
00445 const char chFile[] ,
00446 char ***chLabels ,
00447 realnum **wl );
00448
00456 void cdTimescales(
00457 double *TTherm ,
00458 double *THRecom ,
00459 double *TH2 );
00460
00461
00462
00463
00464
00465
00466
00467
00468
00469
00470
00471
00473 extern long int nFeIIBands;
00474
00476 extern long int nFeIIConBins;
00477
00478
00482 extern realnum **FeII_Bands;
00483
00484
00485
00488 extern realnum **FeII_Cont;
00489
00490
00493 void cdMPI(void);
00523 void cdSPEC(
00524 int Option ,
00525 double EnergyLow[] ,
00526 long int nEnergy ,
00527 double ReturnedSpectrum[] );
00528
00529
00551 void cdSPEC2(
00552 int Option ,
00553 long int nEnergy ,
00554 realnum ReturnedSpectrum[] );
00555
00573 int cdTemp(
00574 const char *chLabel,
00575 long int IonStage,
00576 double *TeMean,
00577 const char *chWeight );
00578
00583 void cdPrintCommands( FILE * );
00584
00586 void cdClosePunchFiles( void );
00587
00601 long int cdH2_Line(
00602
00603 long int iElecHi,
00604 long int iVibHi ,
00605 long int iRotHi ,
00606
00607 long int iElecLo,
00608 long int iVibLo ,
00609 long int iRotLo ,
00610
00611 double *relint,
00612
00613 double *absint );
00614
00615
00616
00620 extern bool lgcdInitCalled;
00621
00622 #ifndef MAX2
00623
00624 #define MAX2(a,b) (((a)>(b)) ? (a) : (b))
00625 #endif
00626
00627
00628 #ifndef MIN2
00629
00630 #define MIN2(a,b) (((a)<(b)) ? (a) : (b))
00631 #endif
00632
00633
00634
00635 #endif