rain_inp.c
Go to the documentation of this file.00001
00012
00013
00014
00015
00016
00017 #include "rain.h"
00018
00019
00020
00021
00022
00023
00024
00025
00026 int rain_data_wmm(float* rainSME)
00027 {
00028
00029 int i,j,k;
00030 int success = 1, fail = -1;
00031 int stat = success;
00032 char gridmapfilename[335];
00033
00034 if(SimTime.TIME==0) {
00035
00036
00037
00038
00039 elm_wmm_map = elm_OG_map;
00040
00041 if(elm_wmm_map == NULL) {
00042 sprintf(msgStr, "Mapping grids and setting up rain data...");
00043 usrErr0(msgStr);
00044
00045 sprintf(gridmapfilename, "%s%s/Data/gridmapping.txt", ModelPath, ProjName );
00046 stat = mapGrids(gridmapfilename);
00047 elm_wmm_map = elm_OG_map;
00048 }
00049
00050 if(debug > 4) {
00051 printGridMap();
00052 sprintf(msgStr,"rain_data_wmm==> Finished mapping grids");
00053 usrErr (msgStr);
00054 }
00055
00056 sprintf(rain_binfilename, "%s%s/Data/rain.BIN", ModelPath, ProjName );
00057
00058
00059 stat = initDataStruct(rain_binfilename,&rain_struct);
00060
00061 if(debug > 4) {
00062
00063
00064 sprintf(msgStr,"rain_data_wmm==> Finished initializing");
00065 usrErr (msgStr);
00066 }
00067
00068 }
00069
00070
00071 if(rain_struct.day >= rain_struct.recRead) {
00072 sprintf(msgStr,"\nProcessing batch of rain data...");
00073 usrErr (msgStr);
00074 stat = processData(rain_binfilename,&rain_struct);
00075
00076 if(debug > 4 ) {
00077
00078 sprintf(msgStr,"rain_data_wmm==> Finished processing data");
00079 usrErr (msgStr);
00080 }
00081 }
00082
00083
00084 if (rain_struct.day < rain_struct.recRead) {
00085 returnData(rainSME,&rain_struct);
00086
00087 for(i = 0; i < s0; i++) {
00088 for(j = 0; j < s1; j++) {
00089 k = i*s1+j;
00090 rainSME[T((i+1),(j+1))] = rain_struct.dataELM[k] * conv_inTOtenths_mm;
00091 }
00092 }
00093
00094 if(debug > 4) {
00095 sprintf(msgStr,"rain_data_wmm==> Finished returning data");
00096 usrErr (msgStr);
00097 }
00098
00099 }
00100
00101 return success;
00102 }
00103