00001 #ifndef __CMD_H__
00002 #define __CMD_H__
00003
00004 #ifdef __cplusplus
00005 extern "C" {
00006 #endif
00007
00016
00017 #define XSTEPS 500
00018 #define YSTEPS 500
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #define NUMFAC 1
00029
00030
00031
00032
00033
00034 #define MAX_NUM_STARS 5e5
00035
00036 #ifdef CMD_GIRARDI
00037
00038
00039 #define N_CMD_FILES 7
00040
00041
00042
00043 #define CMD_FILES_COLUMNS 16
00044
00045
00046 #define CMD_FILES_ROWS 10000
00047
00048
00049 #define CMD_FILE_ZMET_BINS N_CMD_FILES
00050
00051
00052 #define CMD_FILE_AGE_BINS 64
00053
00054
00055
00056 #define CMD_FILE_MASS_BINS 240
00057
00058
00059
00060 #define POS_MASS 1
00061 #define POS_LUMINOSITY 3
00062 #define POS_LOGTEMP 4
00063 #define POS_AGE 0
00064 #define POS_MB 8
00065 #define POS_MV 9
00066 #define POS_MR 10
00067 #define POS_MI 11
00068
00069 extern double cmd_file_metallicity[];
00071 #endif
00072
00073
00074 #ifdef GRIDDEDCMD
00075
00076 extern struct cmd_data
00077 {
00078
00079 double logtemp[XSTEPS];
00080 double loglumin[YSTEPS];
00081
00082
00083 float templum[XSTEPS][YSTEPS];
00084
00085 int ntempsteps;
00086 int nluminsteps;
00087
00088 double diag_half;
00089 double logluminmin;
00090 double logluminmax;
00091 double logtempmin;
00092 double logtempmax;
00093 } cmd;
00094
00095
00096
00097 #define NUM_SEC_VALS ((int) (XSTEPS*YSTEPS/100) + 1)
00098
00099
00100 extern int cmd_numbers[NUM_SEC_VALS][2];
00101
00102
00103 extern float cmd_value[NUM_SEC_VALS];
00104 extern int cmd_value_size;
00105
00106 #endif
00107
00108 #ifdef DO_CMD_TEST
00109
00110 extern float * cmd_masses;
00111 #endif
00112
00113
00114
00115
00116 extern struct cmd_file_data
00117 {
00118 double metallicity;
00119 double logage;
00121 double mass[CMD_FILE_MASS_BINS];
00122 float loglumin[CMD_FILE_MASS_BINS];
00123 float logtemperature[CMD_FILE_MASS_BINS];
00124 } **cmd_file;
00125
00126
00129 extern struct cmd_res_data
00130 {
00131 int izmet;
00132 int iage;
00134 double metallicity;
00135 double logage;
00137 double massmin;
00138 double massmax;
00139
00140 int imassmax;
00141 double norm;
00142
00143 double mass[CMD_FILE_MASS_BINS];
00144 float logtemperature[CMD_FILE_MASS_BINS];
00145 float loglumin[CMD_FILE_MASS_BINS];
00146
00147 #ifdef GRIDDEDCMD
00148 double xval[CMD_FILE_MASS_BINS];
00151 double yval[CMD_FILE_MASS_BINS];
00152 #endif
00153
00154 }
00155 #ifdef GRIDDEDCMD
00156 cmd_res;
00157 #else
00158 cmd_res, *cmd_row;
00159
00164 extern float cmd_final[2][(int) MAX_NUM_STARS];
00165 #endif
00166
00167
00168 extern struct isochrone_data
00169 {
00170 int num_isochrones;
00171
00172 struct cmd_res_data * chrone;
00173
00174 }iso;
00175
00176
00177 #ifndef GRIDDEDCMD
00178 extern double * xvals;
00179 #endif
00180
00181 #ifdef __cplusplus
00182 }
00183 #endif
00184
00185 #endif