00001
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef UNITMOD_H
00021 #define UNITMOD_H
00022
00023 #include "globals.h"
00024
00025
00026
00027 float DAYJUL;
00045 float LATRAD, SOLALPHA, SOLALTCORR, SOLBETA, SOLCOSDEC, SOLDEC, SOLDEC1, SOLELEV_SINE, SOLRADATMOS,
00046 SOLRISSET_HA, SOLRISSET_HA1;
00047
00048
00049 float dispParm_scaled;
00050
00051
00053 float g7[11][2] = { {0.0000000,0.0000000},{0.1000000,0.0200000},{0.2000000,0.0400000},{0.3000000,0.0700000},
00054 {0.4000000,0.1250000},{0.5000000,0.2150000},{0.6000000,0.3450000},{0.7000000,0.5750000},
00055 {0.8000000,0.8550000},{0.9000000,0.9850000},{1.0000000,1.0000000} };
00057 float g8[11][2] = { {0.0000000,0.0050000},{0.1000000,0.0100000},{0.2000000,0.0400000},{0.3000000,0.1000000},
00058 {0.4000000,0.2800000},{0.5000000,0.7150000},{0.6000000,0.8650000},{0.7000000,0.9350000},
00059 {0.8000000,0.9750000},{0.9000000,0.9950000},{1.0000000,1.0000000} };
00060
00061
00062
00063 int call_cell_dyn(int sector,int step);
00064
00065 void cell_dyn1(int step);
00066 void cell_dyn2(int step);
00067 void cell_dyn4(int step);
00068 void horizFlow(int step);
00069 void cell_dyn7(int step);
00070 void cell_dyn8(int step);
00071 void cell_dyn9(int step);
00072 void cell_dyn10(int step);
00073 void cell_dyn12(int step);
00074 void cell_dyn13(int step);
00075
00076 float tempCF(int form, float c1, float topt, float tmin, float tmax, float tempC);
00077
00078 void init_static_data(void);
00079 void init_dynam_data(void);
00080 void init_eqns(void);
00081 void init_canals(int irun);
00082 void init_succession(void);
00083 void reinitBIR(void);
00084 void reinitCanals(void);
00085
00086 void gen_output(int step, ViewParm *view);
00087
00088 void ReadGlobalParms(char* s_parm_name, int s_parm_relval);
00089 void ReadHabParms(char* s_parm_name, int s_parm_relval);
00090
00091 void get_map_dims(void);
00092 void alloc_memory();
00093 float graph7(unsigned char y, float x);
00094 float graph8(unsigned char y, float x);
00095
00096
00097
00098
00099
00100 extern void HabSwitch_Init( void );
00101 extern unsigned char HabSwitch(int ix, int iy, float *Water, float *Nutrient,
00102 int *Fire, unsigned char *HAB);
00103
00104
00105 extern void Run_Canal_Network(float *SWH, float *ElevMap, float *MC,
00106 float *GWV, float *poros, float *GWcond,
00107 double *NA, double *PA, double *SA,
00108 double *GNA, double *GPA, double *GSA,
00109 float *Unsat, float *sp_yield);
00110 extern void Canal_Network_Init(float baseDatum, float *elev );
00111 extern void CanalReInit();
00112
00113
00114
00115 extern int CalMonOut;
00116 extern void getInt(FILE* inFile, const char* lString, int* iValPtr);
00117 extern void read_map_dims(const char* filename);
00118 extern void write_output(int index, ViewParm* vp, void* Map,
00119 const char* filename, char Mtype, int step);
00120 extern void getChar(FILE* inFile, const char* lString, char* cValPtr);
00121 extern void init_pvar(VOIDP Map, UCHAR* mask, unsigned char Mtype,float iv);
00122 extern int read_map_file(const char* filename, VOIDP Map,
00123 unsigned char Mtype, float scale_value, float offset_value);
00124 extern int scan_forward (FILE* infile, const char* tstring);
00125
00126
00127 extern VOIDP nalloc(unsigned mem_size, const char var_name[]);
00128 extern float FMOD( float x, float y);
00129
00130
00131 extern basnDef **basn_list;
00132 extern basnDef *basins;
00133
00134 extern void stats(int step);
00135 extern void alloc_mem_stats(void);
00136 extern void BIRinit(void);
00137 extern void BIRoutfiles(void);
00138 extern void BIRstats_reset(void);
00139 extern void BIRbudg_reset(void);
00140 extern void Cell_reset_avg(void);
00141 extern void Cell_reset_hydper(void);
00142
00143
00144 extern void Flux_SWater(int it, float *SURFACE_WAT,float *SED_ELEV,float *HYD_MANNINGS_N,
00145 double *STUF1, double *STUF2, double *STUF3);
00146 extern void Flux_GWater(int it, float *SatWat, float *Unsat, float *SfWat,
00147 float *rate, float *poros,
00148 float *sp_yield, float *elev,
00149 double *gwSTUF1, double *gwSTUF2, double *gwSTUF3,
00150 double *swSTUF1, double *swSTUF2, double *swSTUF3);
00151
00152
00153 extern int WatMgmtOn, ESPmodeON, HabSwitchOn;
00154 extern int avgPrint;
00155
00156
00157
00158 extern char *OutputPath, *ProjName;
00159
00160
00161 extern float* get_hab_parm(char* s_parm_name, int s_parm_relval, char* parmName);
00162 extern float get_global_parm(char* s_parm_name, int s_parm_relval, char* parmName );
00163
00164
00165 extern int stage_data_wmm(float*);
00166 extern int rain_data_wmm(float*);
00167 extern int evap_data_wmm(float*);
00168
00169
00170 #endif