00001
00002
00003
00004 #ifndef GRID_H_
00005 #define GRID_H_
00006
00007 #include "optimize.h"
00008
00010 bool grid_do(void);
00011
00016 void gridXspec(realnum *, long);
00017
00019 void GridGatherInCloudy( void );
00020
00021 const int NUM_OUTPUT_TYPES = 11;
00022
00023 struct t_grid
00024 {
00025 vector<realnum> Energies;
00026 multi_arr<realnum,3> Spectra;
00027 char **paramNames;
00028 long *paramMethods;
00029 realnum **paramRange;
00030 realnum **paramData;
00031 realnum **interpParameters;
00032
00033 realnum paramLimits[LIMPAR][2];
00034 realnum paramIncrements[LIMPAR];
00035 bool lgLinearIncrements[LIMPAR];
00036 bool lgNegativeIncrements;
00037 bool lgSaveXspec;
00038
00040 bool lgGrid,
00041 lgGridDone,
00042 lgStrictRepeat;
00043
00045 long int nGridCommands;
00046
00047 long nintparm,
00048 naddparm,
00049 numEnergies,
00050 numParamValues[LIMPAR],
00051 totNumModels;
00052
00053 bool lgOutputTypeOn[NUM_OUTPUT_TYPES];
00054
00055 long ipLoEnergy, ipHiEnergy;
00056 realnum LoEnergy_keV, HiEnergy_keV;
00057
00058 FILE* pnunit;
00059 long seqNum;
00060 };
00061 extern t_grid grid;
00062
00063 #endif