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