Everglades Landscape Model (ELM) Home Page
Main Page | Data Structures | Directories | File List | Data Fields | Globals

driver_utilities.h

Go to the documentation of this file.
00001 
00012 /* General notes on revisions to this source file. 
00013        Nov/Dec 2004 v2.3.2: documentation upgrade 
00014                 - Re-organized, clarified scopes, Doxygen tags added 
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               /* TODO: develop flexible output of calendar-based and julian-based outsteps (jan 11, 2005) */
00027               /* kluge here in defining the int for the Model.outList that will denote calendar-month output */
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 /* below are unused or effectively unused  */
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 /* above are unused or effectively unused  */
00147 
00148 /* externs */
00149 /* from serial.h */
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 /* more from serial.h: parallel-related stuff, effectively not functioning & ~undocumented for parallel */
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 /* from generic_driver.h */
00175 extern float avg_Intvl; /* used here as part of a TODO and kluge */
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 /* from unitmod.h */
00187 //extern int ReadParms(FILE *parmFile);
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 /* from budgstats.h */
00193 extern int numBasn;
00194 
00195 
00196 #endif  /* DRIVER_UTILITIES_H */

Generated on Thu Jul 6 11:17:45 2006 for ELM source code by  doxygen 1.3.9.1