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

stage_inp.c

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                 - Doxygen tags added 
00015         
00016 */
00017 #include "stage.h"
00018 
00019 
00020 /* \brief Get spatial input time series of water depth (NOT stage)
00021 
00022         Using the grid_map functions, this returns surface water depth, at ELM (i.e., SME) grid scale, for ELM domain boundary cells.
00023         This function was originally **intended** to return stage data (m NGVD '29, incl. ELM base datum depth) at ELM (SME) grid scale.
00024         However, this current version (ELMv2.3, Nov '04) uses the SFWMM (positive/negative) water depth relative to a SFWMM grid cell elevation (ft NGVD'29),
00025         converts it to the ELM grid scale, and converts that value to meters of water depth relative to that land surface elevation.
00026         This is (stage - land_surface_elev = water depth).
00027         
00028         \param stageSME Depth (stage misnamed) data array (m) at the ELM/SME grid scale
00029         \return success         */
00030 int stage_data_wmm(float* stageSME)           /* array of float of size s0*s1 */
00031 {
00032 
00033   int i,j,k;
00034   int success = 1, fail = -1;
00035   int stat = success;
00036   char gridmapfilename[135];
00037 
00038   if(SimTime.TIME==0)  {      
00039 /* elm_OG_map is data structure containing the mapping attributes at two scales */
00040     elm_wmm_map = elm_OG_map;
00041 
00042     if(elm_wmm_map == NULL) {
00043       sprintf(msgStr, "Mapping grids and setting up stage data...");
00044       usrErr (msgStr);
00045 
00046       sprintf(gridmapfilename, "%s%s/Data/gridmapping.txt", ModelPath, ProjName );   
00047       stat = mapGrids(gridmapfilename);
00048       elm_wmm_map = elm_OG_map;
00049     }
00050 
00051     if(debug > 4) {
00052       printGridMap();
00053       sprintf(msgStr,"stage_data_wmm==> Finished mapping grids");
00054       usrErr (msgStr);
00055     }
00056 
00057     sprintf(stage_binfilename, "%s%s/Data/BoundCond_stage.BIN", ModelPath, ProjName );
00058     /* initializing data structures, move pointer to initial date (gridmap.c) */
00059     stat = initDataStruct(stage_binfilename,&stage_struct);  
00060 
00061     if(debug > 4) {
00062       /*printELM2Grid_io(); */
00063       /*drawELM2Grid_io(); */
00064       sprintf(msgStr,"stage_data_wmm==> Finished initializing");
00065       usrErr (msgStr); 
00066     }
00067 
00068   } /* end of SimTime.TIME=0 */
00069   
00070   
00071   if(stage_struct.day >= stage_struct.recRead) {      /* process the data in batch */
00072       sprintf(msgStr,"Processing batch of stage data...");
00073       usrErr (msgStr); 
00074       stat = processData(stage_binfilename,&stage_struct);
00075 
00076       if(debug > 4 ) {
00077         /*printBatchData(stageWMM,gridio_batch_len,widCnt);*/ /* TODO: remove this printBatchData function when sure is no longer needed */
00078         sprintf(msgStr,"stage_data_wmm==> Finished processing data");
00079         usrErr (msgStr); 
00080       }
00081   } /* end of if */
00082 
00083 
00084   if(stage_struct.day < stage_struct.recRead) {      /* pass the data day by day */
00085     returnData(stageSME,&stage_struct); 
00086 
00087     for(i = 0; i < s0; i++) {
00088       for(j = 0; j < s1; j++) {
00089         k = i*s1+j;
00090         stageSME[T((i+1),(j+1))] = stage_struct.dataELM[k] * conv_ftTOm;  /* convert data from feet to meters */
00091       }
00092     } 
00093 
00094     if(debug > 4) {
00095       sprintf(msgStr,"stage_data_wmm==> Finished returning data");
00096       usrErr (msgStr); 
00097     }
00098 
00099   } /* end of if */
00100     
00101   return success;
00102 }
00103 
00104 

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