Skip to content

Commit 8a8d791

Browse files
James CraigJames Craig
authored andcommitted
v502 - assimilation output file; ravenParams.dat update; warning if FIELD_CAPACITY=0
1 parent b81f29f commit 8a8d791

File tree

3 files changed

+51
-14
lines changed

3 files changed

+51
-14
lines changed

src/RavenParameters.dat

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -45,27 +45,27 @@ VIC_ZMAX SOIL [mm] False -9999 0.0 -9999
4545
VIC_ZMIN SOIL [mm] False -9999 0.0 -9999
4646
VIC_EVAP_GAMMA SOIL [-] False -9999 0.0 -9999
4747
PET_CORRECTION SOIL [0..1] True 1.0 0.0 1.0
48-
FIELD_CAPACITY SOIL [0..1] True 0.0 0.0 1.0
49-
SAT_WILT SOIL [0..1] True 0.0 0.0 1.0
48+
FIELD_CAPACITY SOIL [0..1] True 0.4 0.0 1.0
49+
SAT_WILT SOIL [0..1] True 0.02 0.0 1.0
5050
HYDRAUL_COND SOIL [mm/d] True 0.001 0 1000
5151
WETTING_FRONT_PSI SOIL [-mm] True -9999 -9999 -9999
52-
KSAT_STD_DEVIATION SOIL [log(mm/d)] False 0 -9999 -9999
52+
KSAT_STD_DEVIATION SOIL [log(mm/d)] False 0 0 -9999
5353
HBV_BETA SOIL [-] False 1 -9999 -9999
5454
MAX_PERC_RATE SOIL [mm/d] False 3 0 50
5555
UBC_INFIL_SOIL_DEF SOIL [mm] False 100 -9999 -9999
56-
PERC_COEFF SOIL [1/d] False -9999 0.0 -9999
57-
PERC_N SOIL [-] False 1.0 0.0 -9999
56+
PERC_COEFF SOIL [1/d] False 0.1 0.0 50
57+
PERC_N SOIL [-] False 1.0 0.0 10
5858
SAC_PERC_EXPON SOIL [-] False 3 -9999 -9999
59-
SAC_PERC_ALPHA SOIL [-] False 100 -9999 -9999
60-
MAX_CAP_RISE_RATE SOIL [mm/d] False 0 -9999 -9999
61-
BASEFLOW_COEFF SOIL [1/d] False 0.1 0 -9999
59+
SAC_PERC_ALPHA SOIL [-] False 100 0 -9999
60+
MAX_CAP_RISE_RATE SOIL [mm/d] False 1 0 50
61+
BASEFLOW_COEFF SOIL [1/d] False 0.1 0 1000
6262
BASEFLOW_N SOIL [-] False 5 0.5 5
63-
MAX_BASEFLOW_RATE SOIL [mm/d] False 5000 -9999 -9999
64-
BASEFLOW_THRESH SOIL [unknown] False -9999 -9999 -9999
63+
MAX_BASEFLOW_RATE SOIL [mm/d] False 5 0 5000
64+
BASEFLOW_THRESH SOIL [0..1] False 0 0 1.0
6565
MAX_INTERFLOW_RATE SOIL [mm/d] False 0.5 0 6
6666
EXCHANGE_FLOW SOIL [mm/d] False 0.1 0 -9999
6767

68-
MAX_CAPACITY VEG [mm] True -9999 -9999 -9999
68+
MAX_CAPACITY VEG [mm] True 5 0 50
6969
TRUNK_FRACTION VEG [0..1] True 0 0 1
7070
CHU_MATURITY VEG [-] False 2800 0.0 -9999
7171
REL_ROOTDEN VEG [0..1] False 0.1 0.0 1.0

src/SoilClass.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,10 @@ void CSoilClass::AutoCalculateSoilProps(const soil_struct &Stmp,
164164
warn="The required parameter FIELD_CAPACITY for soil class "+_tag+" was autogenerated with value "+to_string(_Soil.field_capacity);
165165
if (chatty){WriteAdvisory(warn,false);}
166166
}
167+
if (_Soil.field_capacity == 0) {
168+
WriteWarning("Soil Parameter FIELD_CAPACITY should be greater than zero. This can lead to issues with some model configurations", false);
169+
}
170+
167171

168172
//Wilting point saturation
169173
autocalc=SetCalculableValue(_Soil.sat_wilt,Stmp.sat_wilt,Sdefault.sat_wilt);

src/StandardOutput.cpp

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -603,6 +603,23 @@ void CModel::WriteOutputFileHeaders(const optStruct &Options)
603603
}
604604
}
605605

606+
// Assimilation adjustments
607+
//--------------------------------------------------------------
608+
if (Options.assimilate_flow){
609+
ofstream ASSIM;
610+
tmpFilename=FilenamePrepare("AssimilationAdjustments.csv",Options);
611+
ASSIM.open(tmpFilename.c_str());
612+
if (ASSIM.fail()){
613+
ExitGracefully(("CModel::WriteOutputFileHeaders: Unable to open output file "+tmpFilename+" for writing.").c_str(),FILE_OPEN_ERR);
614+
}
615+
ASSIM<<"time,date,hour";
616+
for (int p = 0; p < _nSubBasins; p++) {
617+
if((_pSubBasins[p]->IsGauged()) && (_pSubBasins[p]->IsEnabled())){
618+
ASSIM<<","<<_pSubBasins[p]->GetName()<<" ";
619+
}
620+
}
621+
}
622+
606623
// Custom output files
607624
//--------------------------------------------------------------
608625
for (int c=0;c<_nCustomOutputs;c++)
@@ -1076,9 +1093,7 @@ void CModel::WriteMinorOutput(const optStruct &Options,const time_struct &tt)
10761093
pSB=_pSubBasins[p];
10771094
if((pSB->IsGauged()) && (pSB->IsEnabled()) && (pSB->GetReservoir()!=NULL))
10781095
{
1079-
string name,constraint_str;
1080-
if(pSB->GetName()==""){ name=to_string(pSB->GetID()); }
1081-
else { name=pSB->GetName(); }
1096+
string constraint_str;
10821097

10831098
stage =pSB->GetReservoir()->GetResStage();//m
10841099
area =pSB->GetReservoir()->GetSurfaceArea();//m2
@@ -1290,6 +1305,24 @@ void CModel::WriteMinorOutput(const optStruct &Options,const time_struct &tt)
12901305
HRUSTOR.close();
12911306
}
12921307
}
1308+
1309+
// Assimilation adjustments
1310+
//--------------------------------------------------------------
1311+
if (Options.assimilate_flow){
1312+
ofstream ASSIM;
1313+
tmpFilename=FilenamePrepare("AssimilationAdjustments.csv",Options);
1314+
ASSIM.open(tmpFilename.c_str(),ios::app);
1315+
1316+
ASSIM<<usetime<<","<<usedate<<","<<usehour<<",";
1317+
for (int p = 0; p < _nSubBasins; p++) {
1318+
if((_pSubBasins[p]->IsGauged()) && (_pSubBasins[p]->IsEnabled())){
1319+
if (Options.assim_method==DA_ECCC){ASSIM<<","<<_aDAQadjust[p]<<" ";}
1320+
else {ASSIM<<","<<_aDAscale [p]<<" ";}
1321+
}
1322+
}
1323+
ASSIM<<endl;
1324+
ASSIM.close();
1325+
}
12931326
} // end of write output interval if statement
12941327

12951328
// Custom output files

0 commit comments

Comments
 (0)