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