diff --git a/src/Assimilate.cpp b/src/Assimilate.cpp index c080e6a..73fedc8 100644 --- a/src/Assimilate.cpp +++ b/src/Assimilate.cpp @@ -157,7 +157,7 @@ void CModel::PrepareAssimilation(const optStruct &Options,const time_struct &tt) { Qobs = _pObservedTS[i]->GetSampledValue(nn); //mean timestep flow Qobs2 = _pObservedTS[i]->GetSampledValue(nn+1); //mean timestep flow - + //override initial conditions directly if ((nn==1) && (Qobs!=RAV_BLANK_DATA)){ _pSubBasins[p]->SetQout(Qobs); diff --git a/src/ChannelXSect.cpp b/src/ChannelXSect.cpp index 0ad00a6..d950a88 100644 --- a/src/ChannelXSect.cpp +++ b/src/ChannelXSect.cpp @@ -389,7 +389,7 @@ double CChannelXSect::GetDiffusivity(const double &Q, const double &SB_slope, co { ExitGracefullyIf(Q<=0,"CChannelXSect::GetDiffusivity: Invalid channel flowrate",BAD_DATA); - ///< diffusivity from Roberson et al. 1995, Hydraulic Engineering + ///< diffusivity from Roberson et al. 1995, Hydraulic Engineering double slope_mult=1.0; double Q_mult =1.0; GetFlowCorrections(SB_slope,SB_n,slope_mult,Q_mult); diff --git a/src/ParsePropertyFile.cpp b/src/ParsePropertyFile.cpp index ddaf48c..3911732 100644 --- a/src/ParsePropertyFile.cpp +++ b/src/ParsePropertyFile.cpp @@ -38,10 +38,10 @@ void AddNewSoilClass (CSoilClass **&pSoilClasses, soil_struct **&parsed_s string *&soiltags, int &num_parsed_soils, int nConstits, const string name, bool isdefault, CModel *pModel); void AddNewLULTClass (CLandUseClass **&pLandUseClasses, surface_struct **&parsed_lults, - string *&lulttags, int &num_parsed_lults, + string *&lulttags, int &num_parsed_lults, const string name, bool isdefault, CModel *pModel); void AddNewVegClass (CVegetationClass **&pVegClasses, veg_struct **&parsed_vegs, - string *&vegtags, int &num_parsed_vegs, + string *&vegtags, int &num_parsed_vegs, const string name, bool isdefault, CModel *pModel); ////////////////////////////////////////////////////////////////// /// \brief This method parses the class properties .rvp file @@ -86,7 +86,7 @@ bool ParseClassPropertiesFile(CModel *&pModel, CSoilProfile **pProfiles=NULL; int num_parsed_aqstacks=0; - + bool invalid_index; int num_read; int *indices=NULL; @@ -518,7 +518,7 @@ bool ParseClassPropertiesFile(CModel *&pModel, invalid_index=ParsePropArray(p,indices,properties,num_read,soiltags,nParamStrings,num_parsed_soils,aAliases,nAliases); ExitGracefullyIf(invalid_index, "ParseClassPropertiesFile: Invalid soiltype code in SoilParameterList command",BAD_DATA); - + if (Options.noisy){ for (int j=0;jAutoCalculateSoilProps (*parsed_soils[c],*parsed_soils[0],pModel->GetTransportModel()->GetNumConstituents()); } for (int c=1;cAutoCalculateLandUseProps (*parsed_surf[c], *parsed_surf[0]); + pLUClasses [c]->AutoCalculateLandUseProps (*parsed_surf[c], *parsed_surf[0]); } for (int c=1;cAutoCalculateTerrainProps ( parsed_terrs[c], parsed_terrs[0]); @@ -1577,7 +1577,7 @@ bool ParseClassPropertiesFile(CModel *&pModel, pModel->CheckForChannelXSectsDuplicates(Options); - + delete p; return true; @@ -1648,7 +1648,7 @@ bool ParsePropArray(CParser *p, //parser tmpproperties[num_read][j-1]=AutoOrDoubleOrAlias(s[j],pAliases,nAliases); } DeletePropArray(indices,properties,num_read); - + properties=tmpproperties; indices=tmpind; num_read++; @@ -1808,7 +1808,7 @@ void AddNewSoilClass(CSoilClass **&pSoilClasses, /// \brief dynamically adds a new LULT class to the array of parsed LULT classes. // void AddNewLULTClass (CLandUseClass **&pLandUseClasses, surface_struct **&parsed_lults, - string *&lulttags, int &num_parsed_lults, + string *&lulttags, int &num_parsed_lults, const string name, bool isdefault, CModel *pModel){ CLandUseClass *pLC; pLC = new CLandUseClass(name, pModel); @@ -1838,7 +1838,7 @@ void AddNewLULTClass (CLandUseClass **&pLandUseClasses, surface_struct ** /// \brief dynamically adds a new veg class to the array of parsed vegetation classes. // void AddNewVegClass (CVegetationClass **&pVegClasses, veg_struct **&parsed_vegs, - string *&vegtags, int &num_parsed_vegs, + string *&vegtags, int &num_parsed_vegs, const string name, bool isdefault, CModel *pModel){ CVegetationClass *pVC; pVC = new CVegetationClass(name, pModel); diff --git a/src/RavenMain.cpp b/src/RavenMain.cpp index 5ff1ace..3a4dd72 100644 --- a/src/RavenMain.cpp +++ b/src/RavenMain.cpp @@ -41,6 +41,7 @@ int main(int argc, char* argv[]) clock_t t0, t1; //computational time markers time_struct tt; int nEnsembleMembers; + int retval; optStruct Options; Options.version=__RAVEN_VERSION__; @@ -51,7 +52,9 @@ int main(int argc, char* argv[]) Options.version+=" w/ lp_solve"; #endif - ProcessExecutableArguments(argc,argv,Options); + retval = ProcessExecutableArguments(argc,argv,Options); + if (!retval) { return 0; } + PrepareOutputdirectory(Options); for (int i=0;i<10;i++){g_debug_vars[i]=0;} @@ -199,7 +202,7 @@ int main(int argc, char* argv[]) /// \details filebase has no extension, all others require .rv* extension /// \param Options [in] Global model options // -void ProcessExecutableArguments(int argc, char* argv[], optStruct &Options) +int ProcessExecutableArguments(int argc, char* argv[], optStruct &Options) { int i=1; string word,argument; @@ -236,7 +239,7 @@ void ProcessExecutableArguments(int argc, char* argv[], optStruct &Options) } if ((word=="-p") || (word=="-h") || (word=="-t") || (word=="-e") || (word=="-c") || (word=="-o") || (word=="-s") || (word=="-r") || (word=="-n") || (word=="-l") || (word=="-m") || (word=="-v") || - (word=="-we")|| (word=="-tt")|| (word=="-template") || (word=="-b") || (i==argc)) + (word=="-we")|| (word=="-tt")|| (word=="-template") || (word=="--version") || (word=="-b") || (i==argc)) { if (mode==0){ Options.rvi_filename=argument+".rvi"; @@ -282,7 +285,7 @@ void ProcessExecutableArguments(int argc, char* argv[], optStruct &Options) else if (word=="-we"){mode=13; } else if (word=="-template"){mode=14;} else if (word=="-b"){mode=15;} - else if (word=="-v"){Options.pause=false; version_announce=true; mode=10;} //For PAVICS + else if (word=="-v" || word=="--version"){Options.pause=false; version_announce=true; mode=10;} //For PAVICS } else{ if (argument==""){argument+=word;} @@ -317,8 +320,10 @@ void ProcessExecutableArguments(int argc, char* argv[], optStruct &Options) if(version_announce) { cout<