Commit c2f5e6e9 authored by jouke's avatar jouke
Browse files

Support for evaporation in both cm and cm/day

Support for water simulations without vtu output
parent 8600602e
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -76,19 +76,27 @@ void Swms3d::initialize_() {
	if(!p){
		p = ORIGIN->existingPath("simulationControls/outputParameters/VTU/timeInterval");
		if(!p){
			p = ORIGIN->getPath("simulationControls/outputParameters/defaults/timeInterval");
			p = ORIGIN->existingPath("simulationControls/outputParameters/defaults/timeInterval");
		}
	}
	if(p){
		p->get(pdt);
	}else{
		pdt=1000;
	}

	p = ORIGIN->existingPath("simulationControls/outputParameters/soilVTU/startTime");
	if(!p){
		p = ORIGIN->existingPath("simulationControls/outputParameters/VTU/startTime");
		if(!p){
			p = ORIGIN->getPath("simulationControls/outputParameters/defaults/startTime");
			p = ORIGIN->existingPath("simulationControls/outputParameters/defaults/startTime");
		}
	}
	if(p) {
		p->get(TPrint);
	}else{
		TPrint=1e30;
	}
	p = ORIGIN->existingPath("simulationControls/outputParameters/soilVTU/run");
	if(!p){
		p = ORIGIN->existingPath("simulationControls/outputParameters/VTU/run");
+15 −2
Original line number Diff line number Diff line
@@ -90,7 +90,8 @@ oldDeltat_(-1)
	// set atm parameter
	prec_ 		  	= pSD->getPath("/environment/atmosphere/precipitation", "cm/day");
	interception_ 	= pSD->existingPath("/atmosphere/interception", "cm/day");
	SimulaBase* potentialEvaporation_ = pSD->existingPath("/atmosphere/potentialEvaporation", "cm/day");
	SimulaBase* potentialEvaporation_ = pSD->existingPath("/atmosphere/potentialEvaporationRate");
	if(!potentialEvaporation_) potentialEvaporation_ = pSD->existingPath("/atmosphere/potentialEvaporation");
	evaporation_ 	= pSD->existingPath("/atmosphere/evaporation", "cm/day");
	SimulaBase* evaporationEn_ 	= pSD->existingPath("/environment/atmosphere/evaporation", "cm/day");
	if (potentialEvaporation_) {
@@ -104,6 +105,13 @@ oldDeltat_(-1)
	} else {
		msg::error("Watflow:: No evaporation defined in input file.");
	}
	if(evaporation_->getUnit()=="cm"){
		//rates
	}else if(evaporation_->getUnit()=="cm/day"){
		//normal;
	}else{
		msg::error("WatFlow: Evaporation at "+evaporation_->getPath()+" not in cm or cm/day");
	}

	//get the values for the evaporation scaling function
	//double thetaScalingWet,thetaScalingDry,thetaScalingExponent;
@@ -886,7 +894,12 @@ void Watflow::set_atmosphere(const Time & t) {
		}

	// evaporation
	if(evaporation_->getUnit()=="cm"){
		evaporation_->getRate(t, rSoil);
	}else{
		evaporation_->get(t, rSoil);
	}

	rSoil = std::fabs(rSoil);

	return;