public float CalculateEvaporation(SiteCohorts sitecohorts) { // permafrost float frostFreeSoilDepth = sitecohorts.Ecoregion.RootingDepth - FrozenDepth; float frostFreeProp = Math.Min(1.0F, frostFreeSoilDepth / sitecohorts.Ecoregion.RootingDepth); // mm/month //PET = (float)Calculate_PotentialEvapotranspiration(sitecohorts.SubcanopyPAR, sitecohorts.Ecoregion.Variables.Tday, sitecohorts.Ecoregion.Variables.Daylength); PET = (float)Calculate_PotentialEvapotranspiration_umol(sitecohorts.SubcanopyPAR, sitecohorts.Ecoregion.Variables.Tday, sitecohorts.Ecoregion.Variables.Daylength); float pressurehead = pressureheadtable[sitecohorts.Ecoregion, (int)Math.Round(Water * 100)]; // Evaporation begins to decline at 75% of field capacity (Robock et al. 1995) // Robock, A., Vinnikov, K. Y., Schlosser, C. A., Speranskaya, N. A., & Xue, Y. (1995). Use of midlatitude soil moisture and meteorological observations to validate soil moisture simulations with biosphere and bucket models. Journal of Climate, 8(1), 15-35. float evapCritWater = sitecohorts.Ecoregion.FieldCap * 0.75f; float evapCritWaterPH = pressureheadtable[sitecohorts.Ecoregion, (int)Math.Round(evapCritWater * 100.0)]; DeliveryPotential = Cohort.ComputeFWater(-1, -1, evapCritWaterPH, 153, pressurehead); // mm/month float AET = Math.Min(DeliveryPotential * PET, Water * sitecohorts.Ecoregion.RootingDepth * frostFreeProp); sitecohorts.SetAet(AET, sitecohorts.Ecoregion.Variables.Month); // Evaporation cannot remove water below wilting point, evaporation cannot be negative // Transpiration is assumed to replace evaporation Evaporation = (float)Math.Max(0, Math.Min((Water - sitecohorts.Ecoregion.WiltPnt) * sitecohorts.Ecoregion.RootingDepth * frostFreeProp, Math.Max(0, AET - (double)sitecohorts.Transpiration))); return(Evaporation); //mm/month }
public float CalculateEvaporation(SiteCohorts sitecohorts ) { // this.Ecoregion.Variables.Month, Ecoregion, this.subcanopypar, Transpiration, this.Ecoregion.Variables.Tday, ref water,this.SetAet PET = (float)Calculate_PotentialEvapotranspiration(sitecohorts.SubcanopyPAR, sitecohorts.Ecoregion.Variables.Tday); float pressurehead = pressureheadtable[sitecohorts.Ecoregion, (int)Water]; // Evaporation begins to decline at 75% of field capacity (Robock et al. 1995) // Robock, A., Vinnikov, K. Y., Schlosser, C. A., Speranskaya, N. A., & Xue, Y. (1995). Use of midlatitude soil moisture and meteorological observations to validate soil moisture simulations with biosphere and bucket models. Journal of Climate, 8(1), 15-35. float evapCritWater = sitecohorts.Ecoregion.FieldCap * 0.75f; DeliveryPotential = Cohort.ComputeFWater(0, evapCritWater, 153, pressurehead); // Per month sitecohorts.SetAet(DeliveryPotential * PET, sitecohorts.Ecoregion.Variables.Month); float wiltPoint = sitecohorts.Ecoregion.WiltPnt; // Evaporation cannot remove water below wilting point, evaporation cannot be negative // Transpiration is assumed to replace evaporation Evaporation = (float)Math.Max(0,Math.Min(Water - wiltPoint, Math.Max(0, DeliveryPotential * PET - (double)sitecohorts.Transpiration))); return Evaporation; }