00001
00012
00013
00014
00015
00016
00017
00018 #ifndef DRIVER_UTILITIES_H
00019 #define DRIVER_UTILITIES_H
00020
00021 #include "globals.h"
00022
00023
00024 #define Outlist_size 250
00026
00027
00028 int CalMonOut=99999;
00036 char *ModelPath, *ProjName, *DriverPath, *OS_TYPE;
00037
00038 char *OutputPath;
00044 char modelName[20], modelVers[10];
00045
00046 char modelFileName[300];
00048 int gNPtTs;
00049 int PListIndex=0;
00050 int total_memory=0;
00051 float *plot_array, gTS;
00052
00053 int gridSize;
00054 int gTempSize;
00055 UCHAR* gTemp;
00058 VOIDP nalloc(unsigned mem_size, const char var_name[]);
00059 void init_pvar(VOIDP Map, UCHAR* mask, unsigned char Mtype,float iv);
00060 void read_map_dims(const char* filename);
00061
00062 void read_model_parameters(char* s_parm_name, int s_parm_relval);
00063
00064 float* get_DBase_parmOLD(const char *filename, int i0, int i1, int index);
00065 float* get_DBase_parm(const char *filename, float *dArray);
00066
00067 ViewParm *read_output_parms(void);
00068 ViewParm *readOutlist(int size);
00069
00070 int readViewParms(FILE *vpFileName, int size, ViewParm **ppview);
00071 void setPrecision(ViewParm* vp, int value);
00072 int write_map_file(const char* filename, VOIDP Map, char Mtype,
00073 int index, float scale_value, float offset_value,
00074 int bSize, unsigned char type);
00075 int read_map_file(const char* filename, VOIDP Map,
00076 unsigned char Mtype, float scale_value,
00077 float offset_value);
00078 void print_loc_ave(Point3D *vt, void* Map, char Mtype, char* mName, int tIndex);
00079 void write_output(int index, ViewParm* vp, void* Map, const char* filename, char Mtype, int step);
00080 void print_point(ViewParm *vp, void* Map, char Mtype, char* mName, int tIndex, int vpindex);
00081 void writeWindow(void* fValue, char* vName, char* desc, int x0, int y0, int N0, int N1, int index, UCHAR Mtype, UCHAR format);
00082 void calc_maxmin(ViewParm *vp, void* Map, char Mtype, char* mName, int step);
00083 void quick_look(void* Map, char* name, unsigned char Mtype, int xc, int yc, int range, unsigned char format);
00084 int iclip ( int x0, int min, int max );
00085 void make_more_points(ViewParm *vp, int ptIncr);
00086 void enc_Nb(UCHAR** sptr,SLONG value,int bytes);
00087
00088
00089 void RP_SwapFields (RPoint* thisStruct, RPoint* that);
00090 void RP_CopyFields(RPoint* thisStruct, RPoint* that);
00091 void RP_SetFields(RPoint* thisStruct, int ix, int iy, float r, float value);
00092 void RPL_AddrPoint(RPointList *thisStruct, int x, int y, float r, float value);
00093 void RPL_Sort(RPointList *thisStruct);
00094 void RPL_Free(RPointList* thisStruct);
00095 void RPL_AddrPoint(RPointList *thisStruct, int x, int y, float r, float value);
00096 RPointList* RPL_Init(int nPoints);
00097
00098 void PTS_CopyFields(PTSeries* thisStruct, PTSeries pV);
00099 void PTS_Free(PTSeries* thisStruct);
00100 void PTS_SetFields (PTSeries* thisStruct, int ix, int iy,
00101 int index, int format, int col);
00102 void PTSL_AddpTSeries(PTSeriesList* thisStruct, int x, int y, int index, int seriesNum, int col);
00103 void PTSL_Free(PTSeriesList* thisStruct);
00104 void PTSL_ReadLists(PTSeriesList* thisStruct, const char *ptsFileName,
00105 int index, float* timeStep, int* nPtTS, int col);
00106 void PTSL_CreatePointMap(PTSeriesList* pList,void* Map, unsigned char Mtype,
00107 int step, float scale);
00108 float PTSL_GetInterpolatedValue1(PTSeriesList* thisStruct, int x, int y, int step);
00109 float PTSL_GetInterpolatedValue0(PTSeriesList* thisStruct, int x, int y, int step);
00110 PTSeriesList* PTSL_Init(int nSlots, int format);
00111
00112 void calcdate(double jd, int *m, int *d, int *y, int *h, int *mi, double *sec);
00113 double julday(int mon, int day, int year, int h, int mi, double se);
00114 float FMOD( float x, float y);
00115
00116 void setup_grid();
00117 void set_env_vars(void);
00118 void set_boundary(VOIDP Map, unsigned char Mtype,float bv);
00119
00120 void fatal(const char *msg);
00121 void Exit(int code);
00122 void Copy(void *src, void *dst, int w, int n, int sw, int dw);
00123 void getInt(FILE* inFile, const char* lString, int* iValPtr);
00124 void getChar(FILE* inFile, const char* lString, char* cValPtr);
00125 void getString(FILE* inFile, const char* lString, char* inString);
00126 void getFloat(FILE* inFile, const char* lString, float* fValPtr );
00127 void setFlag(ViewParm* vp, UINT mask, int value);
00128 int getFlag(ViewParm* vp, UINT mask);
00129 int getPrecision(ViewParm* vp);
00130 int isInteger(char *target_str);
00131 int isFloat(char *target_str);
00132 int skip_white(FILE* infile);
00133 int scan_forward (FILE* infile, const char* tstring);
00134 int check_for (char *s0, const char *s1, int start, int cs, int rp);
00135 int find_char(FILE *infile, char tchar);
00136 int Round(float x);
00137 char* name_from_path(char* name);
00138 char *Scip(char *s, char SYM );
00139
00140
00141 void setup_platform();
00142 void link_edges(VOIDP Map, unsigned char Mtype);
00143
00144 float Normal(float mean,float sd);
00145 int Poisson(float mu);
00146
00147
00148
00149
00150 extern char gCArg[kCArgDepth][kCArgWidth];
00151 extern FILE* Driver_outfile;
00152
00153 extern int init_config_file(FILE *vpFile, char term1, char term2, char term3, char term4);
00154 extern int parse_packet( FILE *vpFile, int* nArgs, char* test);
00155 extern void Combine(float* fValue, char* label, int nComp, int cType, int step);
00156 extern void writeMap(char*, void*, int, unsigned char, int);
00157 extern void writeSeries(void* fValue, char* label, char* desc, int N0, int N1, byte Mtype, byte format);
00158 extern float* readSeriesCol(char *filename, int format, int index, int* Npt, float* TStep, int col);
00159 extern byte readMap(char*, void*);
00160
00161
00162 extern int on_this_proc(int x,int y);
00163 extern void exchange_borders(UCHAR* map, int size);
00164 extern void exparam( struct nodenv* envInfo);
00165 extern void exgridsplit(int nprocs, int ndim,int nprocs2[2]);
00166 extern void exgridcoord(int pnum, int rnum[2]);
00167 extern void exgridsize( int pnum, int gsize[2],int lsize[2],int lstart[2]);
00168 extern void broadcastInt(int* iValPtr);
00169 extern int exgridinit(int dim, int* nprocs);
00170 extern void broadcastMsg( UCHAR* msgPtr);
00171 extern void fasync(FILE* file);
00172 extern void fmulti(FILE* file);
00173
00174
00175 extern float avg_Intvl;
00176 extern SeriesParm pSeries[MAX_PTSERIES];
00177 extern ViewParm *view ;
00178 extern Point2D dbgPt;
00179 extern struct nodenv env;
00180
00181 extern int gbl_size[2], lcl_size[2], lcl_start[2];
00182 extern int N_iter, istep;
00183 extern int procnum, Lprocnum, nprocs[2], recpnum[2];
00184 extern float gRTable[];
00185
00186
00187
00188 extern int ReadGlobalParms(char* s_parm_name, int s_parm_relval);
00189 extern int ReadHabParms(char* s_parm_name, int s_parm_relval);
00190 extern float GP_IDW_pow;
00191
00192
00193 extern int numBasn;
00194
00195
00196 #endif