00001
00002
00003
00004 #ifndef STARS_H_
00005 #define STARS_H_
00006
00007
00009 #define MDIM 4
00010
00012 #define MNAM 6
00013
00016 typedef enum {
00017 IM_ILLEGAL_MODE=-1, IM_RECT_GRID, IM_COSTAR_TEFF_MODID,
00018 IM_COSTAR_TEFF_LOGG, IM_COSTAR_MZAMS_AGE, IM_COSTAR_AGE_MZAMS
00019 } IntMode;
00020
00021 typedef enum {
00022 TL_OBSTAR, TL_BSTAR, TL_OSTAR
00023 } tl_grid;
00024
00025 struct process_counter
00026 {
00027 int nFound;
00028 int notProcessed;
00029 int nOK;
00030 int nFail;
00031 process_counter() : nFound(0), notProcessed(0), nOK(0), nFail(0) {}
00032 };
00033
00035 void AtmospheresAvail(void);
00036
00038 int AtlasCompile(process_counter& pc);
00040 long AtlasInterpolate(double val[],
00041 long *nval,
00042 long *ndim,
00043 const char *chMetalicity,
00044 const char *chODFNew,
00045 bool lgList,
00046 double *Tlow,
00047 double *Thigh);
00048
00050 int CoStarCompile(process_counter& pc);
00052 long CoStarInterpolate(double val[],
00053 long *nval,
00054 long *ndim,
00055 IntMode imode,
00056 bool lgHalo,
00057 bool lgList,
00058 double *val0_lo,
00059 double *val0_hi);
00060
00062 bool GridCompile(const char *InName);
00064 long GridInterpolate(double val[],
00065 long *nval,
00066 long *ndim,
00067 const char *FileName,
00068 bool lgList,
00069 double *Tlow,
00070 double *Thigh);
00071
00073 int Kurucz79Compile(process_counter& pc);
00075 long Kurucz79Interpolate(double val[],
00076 long *nval,
00077 long *ndim,
00078 bool lgList,
00079 double *Tlow,
00080 double *Thigh);
00081
00083 int MihalasCompile(process_counter& pc);
00085 long MihalasInterpolate(double val[],
00086 long *nval,
00087 long *ndim,
00088 bool lgList,
00089 double *Tlow,
00090 double *Thigh);
00091
00094 int RauchCompile(process_counter& pc);
00096 long RauchInterpolateHydr(double val[],
00097 long *nval,
00098 long *ndim,
00099 bool lgList,
00100 double *Tlow,
00101 double *Thigh);
00103 long RauchInterpolateHelium(double val[],
00104 long *nval,
00105 long *ndim,
00106 bool lgList,
00107 double *Tlow,
00108 double *Thigh);
00110 long RauchInterpolateHpHe(double val[],
00111 long *nval,
00112 long *ndim,
00113 bool lgList,
00114 double *Tlow,
00115 double *Thigh);
00117 long RauchInterpolatePG1159(double val[],
00118 long *nval,
00119 long *ndim,
00120 bool lgList,
00121 double *Tlow,
00122 double *Thigh);
00124 long RauchInterpolateHCa(double val[],
00125 long *nval,
00126 long *ndim,
00127 bool lgHalo,
00128 bool lgList,
00129 double *Tlow,
00130 double *Thigh);
00132 long RauchInterpolateHNi(double val[],
00133 long *nval,
00134 long *ndim,
00135 bool lgHalo,
00136 bool lgList,
00137 double *Tlow,
00138 double *Thigh);
00139
00141 bool StarburstInitialize(const char chInName[],
00142 const char chOutName[]);
00144 bool StarburstCompile(process_counter& pc);
00145
00147 int TlustyCompile(process_counter& pc);
00149 long TlustyInterpolate(double val[],
00150 long *nval,
00151 long *ndim,
00152 tl_grid tlg,
00153 const char *chMetalicity,
00154 bool lgList,
00155 double *Tlow,
00156 double *Thigh);
00157
00159 int WernerCompile(process_counter& pc);
00161 long WernerInterpolate(double val[],
00162 long *nval,
00163 long *ndim,
00164 bool lgList,
00165 double *Tlow,
00166 double *Thigh);
00167
00169 int WMBASICCompile(process_counter& pc);
00171 long WMBASICInterpolate(double val[],
00172 long *nval,
00173 long *ndim,
00174 bool lgList,
00175 double *Tlow,
00176 double *Thigh);
00177
00178 #endif