Skip to content

Commit 143bf38

Browse files
committed
fixes to reservoir assim triggering
1 parent 500109c commit 143bf38

File tree

5 files changed

+22
-20
lines changed

5 files changed

+22
-20
lines changed

src/CommonFunctions.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1429,7 +1429,7 @@ void HandleNetCDFErrors(int error_code){
14291429
if(error_code==0){ return; }
14301430
else{
14311431
string warn;
1432-
warn="NetCDF error ["+ to_string(nc_strerror(error_code))+"] occured.";
1432+
warn="NetCDF library error ["+ to_string(nc_strerror(error_code))+"] occured.";
14331433
ExitGracefully(warn.c_str(),BAD_DATA);
14341434
}
14351435
#endif

src/ParseFEWSRunInfo.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ void GetNetCDFTimeInfo(const int ncid, int &time_dimid,int &ntime, int &start_ti
1111
void GetNetCDFStationArray(const int ncid, const string filename,int &stat_dimid,int &stat_varid, long *&aStations, string *&aStat_string,int &nStations);
1212

1313
//////////////////////////////////////////////////////////////////
14-
/// \brief Parses Deltares FEWS RunInfo file
14+
/// \brief Parses Deltares FEWS RunInfo file; called after .rvi file parse
1515
///
1616
/// \param *&pModel [out] Reference to model object
1717
/// \param &Options [out] Global model options information

src/ParseInitialConditionFile.cpp

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -230,19 +230,19 @@ bool ParseInitialConditionsFile(CModel *&pModel, const optStruct &Options)
230230
typ = pModel->GetStateVarInfo()->StringToSVType(s[1],layer_ind,false);
231231

232232
if (typ==UNRECOGNIZED_SVTYPE){
233-
WriteWarning(":UniformInitialConditions: unrecognized state variable type "+to_string(s[1]),Options.noisy);
234-
break;
235-
}
236-
237-
SVind=pModel->GetStateVarIndex(typ,layer_ind);
238-
239-
if (SVind!=DOESNT_EXIST){
240-
for (k=0;k<pModel->GetNumHRUs();k++){
241-
SetInitialStateVar(pModel,SVind,typ,layer_ind,k,s_to_d(s[2]));
233+
WriteWarning(":UniformInitialConditions: unrecognized state variable type "+to_string(s[1]),Options.noisy);break;
234+
}
235+
else {
236+
SVind=pModel->GetStateVarIndex(typ,layer_ind);
237+
238+
if (SVind!=DOESNT_EXIST){
239+
for (k=0;k<pModel->GetNumHRUs();k++){
240+
SetInitialStateVar(pModel,SVind,typ,layer_ind,k,s_to_d(s[2]));
241+
}
242+
}
243+
else{
244+
WriteWarning("Initial conditions specified for state variable not in model ("+to_string(s[1])+")",Options.noisy);
242245
}
243-
}
244-
else{
245-
WriteWarning("Initial conditions specified for state variable not in model ("+to_string(s[1])+")",Options.noisy);
246246
}
247247
}
248248
else{
@@ -942,7 +942,9 @@ bool ParseInitialConditionsFile(CModel *&pModel, const optStruct &Options)
942942
// check quality of initial state variables
943943
//======================================================================
944944
CHydroUnit *pHRU;
945-
double *v=new double [pModel->GetNumStateVars()];
945+
double *v=NULL;
946+
v=new double [pModel->GetNumStateVars()];
947+
ExitGracefullyIf(v == NULL, "ParseInitialConditionsFile: out of memory ",OUT_OF_MEMORY);
946948
for (int k=0;k<pModel->GetNumHRUs();k++)
947949
{
948950
pHRU=pModel->GetHydroUnit(k);

src/ParseInput.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,10 @@ bool ParseInputFiles (CModel *&pModel,
112112
if (!ParseNetCDFRunInfoFile(pModel, Options, runname_overridden,runmode_overridden)){
113113
ExitGracefully("Cannot find or read NetCDF runinfo file", BAD_DATA); return false;
114114
}
115-
}
116-
ExitGracefullyIf(Options.julian_start_year==1666,
115+
ExitGracefullyIf(Options.julian_start_year==1666,
117116
"ParseMainInputFile:: no :StartDate supplied in .rvi or runinfo.nc file.",BAD_DATA_WARN);
118-
117+
}
118+
119119
// Class Property file (.rvp)
120120
//--------------------------------------------------------------------------------
121121
if (!ParseClassPropertiesFile (pModel,Options,terr_reqd)){

src/Reservoir.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1375,7 +1375,7 @@ void CReservoir::UpdateReservoir(const time_struct &tt, const optStruct &Options
13751375
}
13761376

13771377
// Assimilate lake stage-------------------------------
1378-
if(_assimilate_stage)
1378+
if ((Options.assimilate_stage) && (_assimilate_stage))
13791379
{
13801380
_assim_blank=true;
13811381
if(tt.model_time>Options.assimilation_start-Options.timestep/2.0)
@@ -1545,7 +1545,7 @@ double CReservoir::RouteWater(const double &Qin_old,
15451545
res_constraint &constraint,
15461546
double *aQstruct) const
15471547
{
1548-
if ((_assimilate_stage) && (!_assim_blank))
1548+
if ((Options.assimilate_stage) && (_assimilate_stage) && (!_assim_blank))
15491549
{
15501550
if ((Options.management_optimization) && (_Qoptimized != RAV_BLANK_DATA)) {
15511551
res_outflow=_Qoptimized;

0 commit comments

Comments
 (0)