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 typedef enum {
00026 SB_TOTAL, SB_STELLAR, SB_NEBULAR
00027 } sb_mode;
00028
00029 struct process_counter
00030 {
00031 int nFound;
00032 int notProcessed;
00033 int nOK;
00034 int nFail;
00035 process_counter() : nFound(0), notProcessed(0), nOK(0), nFail(0) {}
00036 };
00037
00039 void AtmospheresAvail(void);
00040
00042 int AtlasCompile(process_counter& pc);
00044 long AtlasInterpolate(double val[],
00045 long *nval,
00046 long *ndim,
00047 const char *chMetalicity,
00048 const char *chODFNew,
00049 bool lgList,
00050 double *Tlow,
00051 double *Thigh);
00052
00054 int CoStarCompile(process_counter& pc);
00056 long CoStarInterpolate(double val[],
00057 long *nval,
00058 long *ndim,
00059 IntMode imode,
00060 bool lgHalo,
00061 bool lgList,
00062 double *val0_lo,
00063 double *val0_hi);
00064
00066 bool GridCompile(const char *InName);
00068 long GridInterpolate(double val[],
00069 long *nval,
00070 long *ndim,
00071 const char *FileName,
00072 bool lgList,
00073 double *Tlow,
00074 double *Thigh);
00075
00077 int Kurucz79Compile(process_counter& pc);
00079 long Kurucz79Interpolate(double val[],
00080 long *nval,
00081 long *ndim,
00082 bool lgList,
00083 double *Tlow,
00084 double *Thigh);
00085
00087 int MihalasCompile(process_counter& pc);
00089 long MihalasInterpolate(double val[],
00090 long *nval,
00091 long *ndim,
00092 bool lgList,
00093 double *Tlow,
00094 double *Thigh);
00095
00098 int RauchCompile(process_counter& pc);
00100 long RauchInterpolateHydr(double val[],
00101 long *nval,
00102 long *ndim,
00103 bool lgList,
00104 double *Tlow,
00105 double *Thigh);
00107 long RauchInterpolateHelium(double val[],
00108 long *nval,
00109 long *ndim,
00110 bool lgList,
00111 double *Tlow,
00112 double *Thigh);
00114 long RauchInterpolateHpHe(double val[],
00115 long *nval,
00116 long *ndim,
00117 bool lgList,
00118 double *Tlow,
00119 double *Thigh);
00121 long RauchInterpolatePG1159(double val[],
00122 long *nval,
00123 long *ndim,
00124 bool lgList,
00125 double *Tlow,
00126 double *Thigh);
00128 long RauchInterpolateCOWD(double val[],
00129 long *nval,
00130 long *ndim,
00131 bool lgList,
00132 double *Tlow,
00133 double *Thigh);
00135 long RauchInterpolateHCa(double val[],
00136 long *nval,
00137 long *ndim,
00138 bool lgHalo,
00139 bool lgList,
00140 double *Tlow,
00141 double *Thigh);
00143 long RauchInterpolateHNi(double val[],
00144 long *nval,
00145 long *ndim,
00146 bool lgHalo,
00147 bool lgList,
00148 double *Tlow,
00149 double *Thigh);
00150
00152 bool StarburstInitialize(const char chInName[],
00153 const char chOutName[],
00154 sb_mode mode);
00156 bool StarburstCompile(process_counter& pc);
00157
00159 int TlustyCompile(process_counter& pc);
00161 long TlustyInterpolate(double val[],
00162 long *nval,
00163 long *ndim,
00164 tl_grid tlg,
00165 const char *chMetalicity,
00166 bool lgList,
00167 double *Tlow,
00168 double *Thigh);
00169
00171 int WernerCompile(process_counter& pc);
00173 long WernerInterpolate(double val[],
00174 long *nval,
00175 long *ndim,
00176 bool lgList,
00177 double *Tlow,
00178 double *Thigh);
00179
00181 int WMBASICCompile(process_counter& pc);
00183 long WMBASICInterpolate(double val[],
00184 long *nval,
00185 long *ndim,
00186 bool lgList,
00187 double *Tlow,
00188 double *Thigh);
00189
00190 #endif