00001
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef GENERIC_DRIVER_H
00024 #define GENERIC_DRIVER_H
00025
00026 #include "globals.h"
00027
00028 int NSector;
00029 int iSector[MAX_SECTOR];
00030 int seed;
00031 int ESPmodeON=0;
00034 int WatMgmtOn;
00035 int HabSwitchOn;
00036 int PositAnalOn=0;
00038 int IsSubstituteModel=0;
00042 char SimAlt[30];
00043 char SimModif[30];
00044 char outpath[120];
00046 int gbl_size[2];
00048 char initDateRead[15];
00049 double Jdate_init;
00050 double Jdate_end;
00062 int yr_in, mo_in, da_in, hr_in, mi_in, se_in, yr_end, mo_end, da_end;
00063 int mo_R_in;
00064 int da_R_in;
00065 int PORnumday;
00067 int N_iter;
00068 int istep;
00069 float step_Cell;
00071 float avg_Intvl=0;
00072 float budg_Intvl=0;
00073 float BIRavg_Intvl=0;
00074 float BIRhyd_avg_Intvl=0;
00075 float can_Intvl=0;
00077 int budgCalendar;
00078 int BIRhydCalendar;
00079 int avgCalendar = 0;
00080 int canalCalendar = 0;
00081 int avgPrint = 0;
00082 int canPrint = 0;
00084 #define numRunSets 150
00085
00086 ProgAttr *ProgExec;
00087 ProgAttr **RunList;
00088
00089 float gRTable[] =
00090 {.5000,.5398,.5793,.6179,.6554,.6915,.7257,.7580,.7881,.8159,
00091 .8413,.8643,.8849,.9032,.9192,.9332,.9452,.9554,.9641,.9713,
00092 .9773,.9821,.9861,.9893,.9918,.9938,.9953,.9965,.9974,.9981,
00093 .9987,.9990,.9993,.9995,.9997,.9998,.9998,.9999,.9999,1.00} ;
00095 ViewParm *view;
00096 SeriesParm pSeries[MAX_PTSERIES];
00097 Point2D dbgPt;
00099 struct nodenv env;
00111 int procnum, Lprocnum, nprocs[2], recpnum[2], tramType, tramNum[2], lcl_size[2], lcl_start[2];
00112
00113
00114 void get_parmf();
00115 void setup();
00116 void track_time(int istep);
00117 int PTSL_test();
00118 int ModExperim_test();
00119
00120
00121
00122
00123
00124
00125 extern char *ModelPath, *ProjName, *OS_TYPE;
00126 extern char *OutputPath;
00127 extern char modelName[20], modelVers[10];
00128
00129 extern ViewParm *read_output_parms(void);
00130
00131 extern void read_model_parameters(char* s_parm_name, int s_parm_relval);
00132
00133 extern void getInt(FILE* inFile, const char* lString, int* iValPtr);
00134 extern void getFloat(FILE* inFile, const char* lString, float* fValPtr );
00135 extern void getString(FILE* inFile, const char* lString, char* inString);
00136 extern void calcdate(double jd, int *m, int *d, int *y, int *h, int *mi, double *sec);
00137 extern void setup_platform();
00138 extern void set_env_vars(void);
00139 extern void setup_grid();
00140 extern int skip_white(FILE* infile);
00141 extern int scan_forward (FILE* infile, const char* tstring);
00142 extern double julday(int mon, int day, int year, int h, int mi, double se);
00143 extern float FMOD( float x, float y);
00144
00145
00146 extern void local_setup(int argc, char** argv);
00147 extern void open_debug_outFile(int index);
00148 extern void broadcastInt(int* iValPtr);
00149 extern void sync_processors();
00150 extern void send_point_lists2(SeriesParm *pSeries, int nSeries);
00151 extern void open_point_lists(SeriesParm *pSeries, int nSeries);
00152
00153
00154 extern void init_static_data(void);
00155 extern void init_dynam_data(void);
00156 extern void init_eqns(void);
00157 extern void init_canals(int runNumb);
00158 extern void init_succession(void);
00159 extern void PtInterp_read(void);
00160 extern void reinitBIR(void);
00161 extern void reinitCanals(void);
00162 extern void alloc_memory();
00163 extern void gen_output(int step, ViewParm *view);
00164 extern void get_map_dims(void);
00165 extern int call_cell_dyn(int sector,int step);
00166
00167 #endif