From 89519c5d4cb3e6160fa2dab95a5954d2c2d619cb Mon Sep 17 00:00:00 2001 From: Bill Sacks Date: Mon, 21 Aug 2017 15:23:45 -0600 Subject: [PATCH 1/4] Rename qflx_sat_surf to qflx_sat_excess_surf This was suggested at a ctsm meeting, in order to have more symmetry with qflx_infl_excess --- src/biogeophys/SoilHydrologyMod.F90 | 20 +++++++++---------- src/biogeophys/SurfRunoffSatMod.F90 | 30 ++++++++++++++--------------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/biogeophys/SoilHydrologyMod.F90 b/src/biogeophys/SoilHydrologyMod.F90 index c14e3e7233..c16a831bca 100644 --- a/src/biogeophys/SoilHydrologyMod.F90 +++ b/src/biogeophys/SoilHydrologyMod.F90 @@ -215,7 +215,7 @@ subroutine SetQflxInputs(bounds, num_hydrologyc, filter_hydrologyc, & qflx_evap_grnd => waterflux_inst%qflx_evap_grnd_col , & ! Input: [real(r8) (:) ] ground surface evaporation rate (mm H2O/s) [+] qflx_ev_h2osfc => waterflux_inst%qflx_ev_h2osfc_col , & ! Input: [real(r8) (:) ] evaporation flux from h2osfc (W/m**2) [+ to atm] - qflx_sat_surf => surf_runoff_sat_inst%qflx_sat_surf_col , & ! Input: [real(r8) (:) ] surface runoff due to saturated surface (mm H2O /s) + qflx_sat_excess_surf => surf_runoff_sat_inst%qflx_sat_excess_surf_col, & ! Input: [real(r8) (:) ] surface runoff due to saturated surface (mm H2O /s) frac_sno => waterstate_inst%frac_sno_eff_col , & ! Input: [real(r8) (:) ] fraction of ground covered by snow (0 to 1) frac_h2osfc => waterstate_inst%frac_h2osfc_col & ! Input: [real(r8) (:) ] fraction of ground covered by surface water (0 to 1) @@ -242,8 +242,8 @@ subroutine SetQflxInputs(bounds, num_hydrologyc, filter_hydrologyc, & qflx_evap(c)=qflx_ev_soil(c) endif - qflx_in_soil(c) = (1._r8 - frac_h2osfc(c)) * (qflx_top_soil(c) - qflx_sat_surf(c)) - qflx_top_soil_to_h2osfc(c) = frac_h2osfc(c) * (qflx_top_soil(c) - qflx_sat_surf(c)) + qflx_in_soil(c) = (1._r8 - frac_h2osfc(c)) * (qflx_top_soil(c) - qflx_sat_excess_surf(c)) + qflx_top_soil_to_h2osfc(c) = frac_h2osfc(c) * (qflx_top_soil(c) - qflx_sat_excess_surf(c)) ! remove evaporation (snow treated in SnowHydrology) qflx_in_soil(c) = qflx_in_soil(c) - (1.0_r8 - fsno - frac_h2osfc(c))*qflx_evap(c) @@ -317,7 +317,7 @@ subroutine Infiltration(bounds, num_hydrologyc, filter_hydrologyc, num_urbanc, f qflx_h2osfc_surf => waterflux_inst%qflx_h2osfc_surf_col , & ! Output: [real(r8) (:) ] surface water runoff (mm H2O /s) qflx_infl => waterflux_inst%qflx_infl_col , & ! Output: [real(r8) (:) ] infiltration (mm H2O /s) - qflx_sat_surf => surf_runoff_sat_inst%qflx_sat_surf_col, & ! Input: [real(r8) (:) ] surface runoff due to saturated surface (mm H2O /s) + qflx_sat_excess_surf => surf_runoff_sat_inst%qflx_sat_excess_surf_col, & ! Input: [real(r8) (:) ] surface runoff due to saturated surface (mm H2O /s) h2osfc_thresh => soilhydrology_inst%h2osfc_thresh_col, & ! Input: [real(r8) (:) ] level at which h2osfc "percolates" h2osfcflag => soilhydrology_inst%h2osfcflag & ! Input: logical @@ -391,9 +391,9 @@ subroutine Infiltration(bounds, num_hydrologyc, filter_hydrologyc, num_urbanc, f ! non-vegetated landunits (i.e. urban) use original CLM4 code if (snl(c) >= 0) then ! when no snow present, sublimation is removed in Drainage - qflx_infl(c) = qflx_top_soil(c) - qflx_sat_surf(c) - qflx_evap_grnd(c) + qflx_infl(c) = qflx_top_soil(c) - qflx_sat_excess_surf(c) - qflx_evap_grnd(c) else - qflx_infl(c) = qflx_top_soil(c) - qflx_sat_surf(c) & + qflx_infl(c) = qflx_top_soil(c) - qflx_sat_excess_surf(c) & - (1.0_r8 - frac_sno(c)) * qflx_ev_soil(c) end if qflx_h2osfc_surf(c) = 0._r8 @@ -459,7 +459,7 @@ subroutine TotalSurfaceRunoff(bounds, num_hydrologyc, filter_hydrologyc, & xs_urban => soilhydrology_inst%xs_urban_col , & ! Output: [real(r8) (:) ] excess soil water above urban ponding limit - qflx_sat_surf => surf_runoff_sat_inst%qflx_sat_surf_col , & ! Input: [real(r8) (:) ] surface runoff due to saturated surface (mm H2O /s) + qflx_sat_excess_surf => surf_runoff_sat_inst%qflx_sat_excess_surf_col , & ! Input: [real(r8) (:) ] surface runoff due to saturated surface (mm H2O /s) h2osoi_liq => waterstate_inst%h2osoi_liq_col & ! Input: [real(r8) (:,:) ] liquid water (kg/m2) ) @@ -474,7 +474,7 @@ subroutine TotalSurfaceRunoff(bounds, num_hydrologyc, filter_hydrologyc, & c = filter_hydrologyc(fc) ! Depending on whether h2osfcflag is 0 or 1, one of qflx_infl_excess or ! qflx_h2osfc_surf will always be 0. But it's safe to just add them both. - qflx_surf(c) = qflx_sat_surf(c) + qflx_infl_excess_surf(c) + qflx_h2osfc_surf(c) + qflx_surf(c) = qflx_sat_excess_surf(c) + qflx_infl_excess_surf(c) + qflx_h2osfc_surf(c) ! TODO(wjs, 2017-07-11) I'm distinguishing between qflx_surf and qflx_surf_for_bgc ! simply to maintain answers as they were before. But I have a feeling that the @@ -483,8 +483,8 @@ subroutine TotalSurfaceRunoff(bounds, num_hydrologyc, filter_hydrologyc, & ! code to use qflx_surf and remove this qflx_surf_for_bgc variable. ! Alternatively, if we deem the current implementation correct, we should ! consider renaming this something better than qflx_surf_for_bgc, or simply - ! making the BGC code depend on qflx_sat_surf, if that's what's intended. - qflx_surf_for_bgc(c) = qflx_sat_surf(c) + qflx_infl_excess_surf(c) + ! making the BGC code depend on qflx_sat_excess_surf, if that's what's intended. + qflx_surf_for_bgc(c) = qflx_sat_excess_surf(c) + qflx_infl_excess_surf(c) end do ! ------------------------------------------------------------------------ diff --git a/src/biogeophys/SurfRunoffSatMod.F90 b/src/biogeophys/SurfRunoffSatMod.F90 index ce342aabdb..3bce63425a 100644 --- a/src/biogeophys/SurfRunoffSatMod.F90 +++ b/src/biogeophys/SurfRunoffSatMod.F90 @@ -29,7 +29,7 @@ module SurfRunoffSatMod private ! Public data members ! Note: these should be treated as read-only by other modules - real(r8), pointer, public :: qflx_sat_surf_col(:) ! surface runoff due to saturated surface (mm H2O /s) + real(r8), pointer, public :: qflx_sat_excess_surf_col(:) ! surface runoff due to saturated surface (mm H2O /s) real(r8), pointer, public :: fsat_col(:) ! fractional area with water table at surface ! Private data members @@ -106,9 +106,9 @@ subroutine InitAllocate(this, bounds) begc = bounds%begc; endc= bounds%endc - allocate(this%qflx_sat_surf_col(begc:endc)); this%qflx_sat_surf_col(:) = nan - allocate(this%fsat_col (begc:endc)); this%fsat_col (:) = nan - allocate(this%fcov_col (begc:endc)); this%fcov_col (:) = nan + allocate(this%qflx_sat_excess_surf_col(begc:endc)) ; this%qflx_sat_excess_surf_col(:) = nan + allocate(this%fsat_col(begc:endc)) ; this%fsat_col(:) = nan + allocate(this%fcov_col(begc:endc)) ; this%fcov_col(:) = nan end subroutine InitAllocate @@ -197,17 +197,17 @@ subroutine SaturatedSurfaceRunoff (this, bounds, num_hydrologyc, filter_hydrolog !----------------------------------------------------------------------- associate( & - fcov => this%fcov_col , & ! Output: [real(r8) (:) ] fractional impermeable area - fsat => this%fsat_col , & ! Output: [real(r8) (:) ] fractional area with water table at surface - qflx_sat_surf => this%qflx_sat_surf_col , & ! Output: [real(r8) (:) ] surface runoff due to saturated surface (mm H2O /s) + fcov => this%fcov_col , & ! Output: [real(r8) (:) ] fractional impermeable area + fsat => this%fsat_col , & ! Output: [real(r8) (:) ] fractional area with water table at surface + qflx_sat_excess_surf => this%qflx_sat_excess_surf_col , & ! Output: [real(r8) (:) ] surface runoff due to saturated surface (mm H2O /s) - snl => col%snl , & ! Input: [integer (:) ] minus number of snow layers + snl => col%snl , & ! Input: [integer (:) ] minus number of snow layers - qflx_floodc => waterflux_inst%qflx_floodc_col , & ! Input: [real(r8) (:) ] column flux of flood water from RTM + qflx_floodc => waterflux_inst%qflx_floodc_col , & ! Input: [real(r8) (:) ] column flux of flood water from RTM qflx_rain_plus_snomelt => waterflux_inst%qflx_rain_plus_snomelt_col , & ! Input: [real(r8) (:) ] rain plus snow melt falling on the soil (mm/s) - origflag => soilhydrology_inst%origflag , & ! Input: logical - fracice => soilhydrology_inst%fracice_col & ! Input: [real(r8) (:,:) ] fractional impermeability (-) + origflag => soilhydrology_inst%origflag , & ! Input: logical + fracice => soilhydrology_inst%fracice_col & ! Input: [real(r8) (:,:) ] fractional impermeability (-) ) ! ------------------------------------------------------------------------ @@ -229,7 +229,7 @@ subroutine SaturatedSurfaceRunoff (this, bounds, num_hydrologyc, filter_hydrolog end select ! ------------------------------------------------------------------------ - ! Compute qflx_sat_surf + ! Compute qflx_sat_excess_surf ! ! assume qinmax (maximum infiltration capacity) is large relative to ! qflx_rain_plus_snomelt in control @@ -246,13 +246,13 @@ subroutine SaturatedSurfaceRunoff (this, bounds, num_hydrologyc, filter_hydrolog do fc = 1, num_hydrologyc c = filter_hydrologyc(fc) fcov(c) = (1._r8 - fracice(c,1)) * fsat(c) + fracice(c,1) - qflx_sat_surf(c) = fcov(c) * qflx_rain_plus_snomelt(c) + qflx_sat_excess_surf(c) = fcov(c) * qflx_rain_plus_snomelt(c) end do else do fc = 1, num_hydrologyc c = filter_hydrologyc(fc) ! only send fast runoff directly to streams - qflx_sat_surf(c) = fsat(c) * qflx_rain_plus_snomelt(c) + qflx_sat_excess_surf(c) = fsat(c) * qflx_rain_plus_snomelt(c) ! Set fcov just to have it on the history file fcov(c) = fsat(c) @@ -267,7 +267,7 @@ subroutine SaturatedSurfaceRunoff (this, bounds, num_hydrologyc, filter_hydrolog c = filter_hydrologyc(fc) if (col%urbpoi(c)) then ! send flood water flux to runoff for all urban columns - qflx_sat_surf(c) = qflx_sat_surf(c) + qflx_floodc(c) + qflx_sat_excess_surf(c) = qflx_sat_excess_surf(c) + qflx_floodc(c) end if end do From 4188c58a6a3330b3e1fb23e19a1443a11448449f Mon Sep 17 00:00:00 2001 From: Bill Sacks Date: Mon, 21 Aug 2017 15:51:36 -0600 Subject: [PATCH 2/4] Rename SurfRunoffSatMod to SaturatedExcessRunoffMod Also similar renames of the derived type, main science method, etc. Reasons: (1) I found the old name unintuitive and could never remember it; (2) for consistency with InfiltrationExcessRunoffMod --- src/biogeochem/CNDriverMod.F90 | 8 ++--- src/biogeochem/CNFireBaseMod.F90 | 6 ++-- src/biogeochem/CNFireLi2014Mod.F90 | 8 ++--- src/biogeochem/CNFireLi2016Mod.F90 | 8 ++--- src/biogeochem/CNFireMethodMod.F90 | 6 ++-- src/biogeochem/CNFireNoFireMod.F90 | 6 ++-- src/biogeochem/CNVegetationFacade.F90 | 8 ++--- src/biogeophys/HydrologyNoDrainageMod.F90 | 16 ++++----- .../InfiltrationExcessRunoffMod.F90 | 8 ++--- ...atMod.F90 => SaturatedExcessRunoffMod.F90} | 35 +++++++++---------- src/biogeophys/SoilHydrologyMod.F90 | 20 +++++------ src/main/clm_driver.F90 | 4 +-- src/main/clm_instMod.F90 | 6 ++-- 13 files changed, 69 insertions(+), 70 deletions(-) rename src/biogeophys/{SurfRunoffSatMod.F90 => SaturatedExcessRunoffMod.F90} (93%) diff --git a/src/biogeochem/CNDriverMod.F90 b/src/biogeochem/CNDriverMod.F90 index 05c68c757a..f61d1f6b23 100644 --- a/src/biogeochem/CNDriverMod.F90 +++ b/src/biogeochem/CNDriverMod.F90 @@ -36,7 +36,7 @@ module CNDriverMod use PhotosynthesisMod , only : photosyns_type use ch4Mod , only : ch4_type use EnergyFluxType , only : energyflux_type - use SurfRunoffSatMod , only : surf_runoff_sat_type + use SaturatedExcessRunoffMod , only : saturated_excess_runoff_type ! ! !PUBLIC TYPES: implicit none @@ -91,7 +91,7 @@ subroutine CNDriverNoLeaching(bounds, soilbiogeochem_nitrogenflux_inst, soilbiogeochem_nitrogenstate_inst, & atm2lnd_inst, waterstate_inst, waterflux_inst, & canopystate_inst, soilstate_inst, temperature_inst, crop_inst, ch4_inst, & - dgvs_inst, photosyns_inst, surf_runoff_sat_inst, energyflux_inst, & + dgvs_inst, photosyns_inst, saturated_excess_runoff_inst, energyflux_inst, & nutrient_competition_method, cnfire_method) ! ! !DESCRIPTION: @@ -175,7 +175,7 @@ subroutine CNDriverNoLeaching(bounds, type(ch4_type) , intent(in) :: ch4_inst type(dgvs_type) , intent(inout) :: dgvs_inst type(photosyns_type) , intent(in) :: photosyns_inst - type(surf_runoff_sat_type) , intent(in) :: surf_runoff_sat_inst + type(saturated_excess_runoff_type) , intent(in) :: saturated_excess_runoff_inst type(energyflux_type) , intent(in) :: energyflux_inst class(nutrient_competition_method_type) , intent(inout) :: nutrient_competition_method class(cnfire_method_type) , intent(inout) :: cnfire_method @@ -737,7 +737,7 @@ subroutine CNDriverNoLeaching(bounds, call t_startf('CNFire') call cnfire_method%CNFireArea(bounds, num_soilc, filter_soilc, num_soilp, filter_soilp, & - atm2lnd_inst, energyflux_inst, surf_runoff_sat_inst, waterstate_inst, & + atm2lnd_inst, energyflux_inst, saturated_excess_runoff_inst, waterstate_inst, & cnveg_state_inst, cnveg_carbonstate_inst, & totlitc_col=soilbiogeochem_carbonstate_inst%totlitc_col(begc:endc), & decomp_cpools_vr_col=soilbiogeochem_carbonstate_inst%decomp_cpools_vr_col(begc:endc,1:nlevdecomp_full,1:ndecomp_pools), & diff --git a/src/biogeochem/CNFireBaseMod.F90 b/src/biogeochem/CNFireBaseMod.F90 index 77911d8f29..26249cd76d 100644 --- a/src/biogeochem/CNFireBaseMod.F90 +++ b/src/biogeochem/CNFireBaseMod.F90 @@ -35,7 +35,7 @@ module CNFireBaseMod use CNVegNitrogenFluxType , only : cnveg_nitrogenflux_type use SoilBiogeochemDecompCascadeConType , only : decomp_cascade_con use EnergyFluxType , only : energyflux_type - use SurfRunoffSatMod , only : surf_runoff_sat_type + use SaturatedExcessRunoffMod , only : saturated_excess_runoff_type use WaterstateType , only : waterstate_type use GridcellType , only : grc use ColumnType , only : col @@ -263,7 +263,7 @@ end subroutine CNFireInterp !----------------------------------------------------------------------- subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_soilp, & - atm2lnd_inst, energyflux_inst, surf_runoff_sat_inst, waterstate_inst, & + atm2lnd_inst, energyflux_inst, saturated_excess_runoff_inst, waterstate_inst, & cnveg_state_inst, cnveg_carbonstate_inst, totlitc_col, decomp_cpools_vr_col, t_soi17cm_col) ! ! !DESCRIPTION: @@ -280,7 +280,7 @@ subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_ integer , intent(in) :: filter_soilp(:) ! filter for soil patches type(atm2lnd_type) , intent(in) :: atm2lnd_inst type(energyflux_type) , intent(in) :: energyflux_inst - type(surf_runoff_sat_type) , intent(in) :: surf_runoff_sat_inst + type(saturated_excess_runoff_type) , intent(in) :: saturated_excess_runoff_inst type(waterstate_type) , intent(in) :: waterstate_inst type(cnveg_state_type) , intent(inout) :: cnveg_state_inst type(cnveg_carbonstate_type) , intent(inout) :: cnveg_carbonstate_inst diff --git a/src/biogeochem/CNFireLi2014Mod.F90 b/src/biogeochem/CNFireLi2014Mod.F90 index 847eedaa54..ec90ee438d 100644 --- a/src/biogeochem/CNFireLi2014Mod.F90 +++ b/src/biogeochem/CNFireLi2014Mod.F90 @@ -34,7 +34,7 @@ module CNFireLi2014Mod use CNVegNitrogenFluxType , only : cnveg_nitrogenflux_type use SoilBiogeochemDecompCascadeConType , only : decomp_cascade_con use EnergyFluxType , only : energyflux_type - use SurfRunoffSatMod , only : surf_runoff_sat_type + use SaturatedExcessRunoffMod , only : saturated_excess_runoff_type use WaterstateType , only : waterstate_type use GridcellType , only : grc use ColumnType , only : col @@ -83,7 +83,7 @@ end function constructor !----------------------------------------------------------------------- subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_soilp, & - atm2lnd_inst, energyflux_inst, surf_runoff_sat_inst, waterstate_inst, & + atm2lnd_inst, energyflux_inst, saturated_excess_runoff_inst, waterstate_inst, & cnveg_state_inst, cnveg_carbonstate_inst, totlitc_col, decomp_cpools_vr_col, t_soi17cm_col) ! ! !DESCRIPTION: @@ -106,7 +106,7 @@ subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_ integer , intent(in) :: filter_soilp(:) ! filter for soil patches type(atm2lnd_type) , intent(in) :: atm2lnd_inst type(energyflux_type) , intent(in) :: energyflux_inst - type(surf_runoff_sat_type) , intent(in) :: surf_runoff_sat_inst + type(saturated_excess_runoff_type) , intent(in) :: saturated_excess_runoff_inst type(waterstate_type) , intent(in) :: waterstate_inst type(cnveg_state_type) , intent(inout) :: cnveg_state_inst type(cnveg_carbonstate_type) , intent(inout) :: cnveg_carbonstate_inst @@ -164,7 +164,7 @@ subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_ fd_pft => pftcon%fd_pft , & ! Input: btran2 => energyflux_inst%btran2_patch , & ! Input: [real(r8) (:) ] root zone soil wetness - fsat => surf_runoff_sat_inst%fsat_col , & ! Input: [real(r8) (:) ] fractional area with water table at surface + fsat => saturated_excess_runoff_inst%fsat_col , & ! Input: [real(r8) (:) ] fractional area with water table at surface wf => waterstate_inst%wf_col , & ! Input: [real(r8) (:) ] soil water as frac. of whc for top 0.05 m wf2 => waterstate_inst%wf2_col , & ! Input: [real(r8) (:) ] soil water as frac. of whc for top 0.17 m diff --git a/src/biogeochem/CNFireLi2016Mod.F90 b/src/biogeochem/CNFireLi2016Mod.F90 index 8d492909d4..dd2c6c393f 100644 --- a/src/biogeochem/CNFireLi2016Mod.F90 +++ b/src/biogeochem/CNFireLi2016Mod.F90 @@ -34,7 +34,7 @@ module CNFireLi2016Mod use CNVegNitrogenFluxType , only : cnveg_nitrogenflux_type use SoilBiogeochemDecompCascadeConType , only : decomp_cascade_con use EnergyFluxType , only : energyflux_type - use SurfRunoffSatMod , only : surf_runoff_sat_type + use SaturatedExcessRunoffMod , only : saturated_excess_runoff_type use WaterstateType , only : waterstate_type use GridcellType , only : grc use ColumnType , only : col @@ -84,7 +84,7 @@ end function constructor !----------------------------------------------------------------------- subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_soilp, & - atm2lnd_inst, energyflux_inst, surf_runoff_sat_inst, waterstate_inst, & + atm2lnd_inst, energyflux_inst, saturated_excess_runoff_inst, waterstate_inst, & cnveg_state_inst, cnveg_carbonstate_inst, totlitc_col, decomp_cpools_vr_col, t_soi17cm_col) ! ! !DESCRIPTION: @@ -108,7 +108,7 @@ subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_ integer , intent(in) :: filter_soilp(:) ! filter for soil patches type(atm2lnd_type) , intent(in) :: atm2lnd_inst type(energyflux_type) , intent(in) :: energyflux_inst - type(surf_runoff_sat_type) , intent(in) :: surf_runoff_sat_inst + type(saturated_excess_runoff_type) , intent(in) :: saturated_excess_runoff_inst type(waterstate_type) , intent(in) :: waterstate_inst type(cnveg_state_type) , intent(inout) :: cnveg_state_inst type(cnveg_carbonstate_type) , intent(inout) :: cnveg_carbonstate_inst @@ -171,7 +171,7 @@ subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_ fd_pft => pftcon%fd_pft , & ! Input: btran2 => energyflux_inst%btran2_patch , & ! Input: [real(r8) (:) ] root zone soil wetness - fsat => surf_runoff_sat_inst%fsat_col , & ! Input: [real(r8) (:) ] fractional area with water table at surface + fsat => saturated_excess_runoff_inst%fsat_col , & ! Input: [real(r8) (:) ] fractional area with water table at surface wf2 => waterstate_inst%wf2_col , & ! Input: [real(r8) (:) ] soil water as frac. of whc for top 0.17 m is_cwd => decomp_cascade_con%is_cwd , & ! Input: [logical (:) ] TRUE => pool is a cwd pool diff --git a/src/biogeochem/CNFireMethodMod.F90 b/src/biogeochem/CNFireMethodMod.F90 index 99f3f19f63..e98114ba76 100644 --- a/src/biogeochem/CNFireMethodMod.F90 +++ b/src/biogeochem/CNFireMethodMod.F90 @@ -96,7 +96,7 @@ end subroutine CNFireInterp_interface !----------------------------------------------------------------------- subroutine CNFireArea_interface (this, bounds, num_soilc, filter_soilc, num_soilp, filter_soilp, & - atm2lnd_inst, energyflux_inst, surf_runoff_sat_inst, waterstate_inst, & + atm2lnd_inst, energyflux_inst, saturated_excess_runoff_inst, waterstate_inst, & cnveg_state_inst, cnveg_carbonstate_inst, totlitc_col, decomp_cpools_vr_col, t_soi17cm_col) ! ! !DESCRIPTION: @@ -107,7 +107,7 @@ subroutine CNFireArea_interface (this, bounds, num_soilc, filter_soilc, num_soil use decompMod , only : bounds_type use atm2lndType , only : atm2lnd_type use EnergyFluxType , only : energyflux_type - use SurfRunoffSatMod , only : surf_runoff_sat_type + use SaturatedExcessRunoffMod , only : saturated_excess_runoff_type use WaterstateType , only : waterstate_type use CNVegStateType , only : cnveg_state_type use CNVegCarbonStateType , only : cnveg_carbonstate_type @@ -122,7 +122,7 @@ subroutine CNFireArea_interface (this, bounds, num_soilc, filter_soilc, num_soil integer , intent(in) :: filter_soilp(:) ! filter for soil patches type(atm2lnd_type) , intent(in) :: atm2lnd_inst type(energyflux_type) , intent(in) :: energyflux_inst - type(surf_runoff_sat_type) , intent(in) :: surf_runoff_sat_inst + type(saturated_excess_runoff_type) , intent(in) :: saturated_excess_runoff_inst type(waterstate_type) , intent(in) :: waterstate_inst type(cnveg_state_type) , intent(inout) :: cnveg_state_inst type(cnveg_carbonstate_type) , intent(inout) :: cnveg_carbonstate_inst diff --git a/src/biogeochem/CNFireNoFireMod.F90 b/src/biogeochem/CNFireNoFireMod.F90 index 11252013cf..9f779be9cd 100644 --- a/src/biogeochem/CNFireNoFireMod.F90 +++ b/src/biogeochem/CNFireNoFireMod.F90 @@ -16,7 +16,7 @@ module CNFireNoFireMod use CNVegNitrogenStateType , only : cnveg_nitrogenstate_type use CNVegNitrogenFluxType , only : cnveg_nitrogenflux_type use EnergyFluxType , only : energyflux_type - use SurfRunoffSatMod , only : surf_runoff_sat_type + use SaturatedExcessRunoffMod , only : saturated_excess_runoff_type use WaterstateType , only : waterstate_type use CNFireMethodMod , only : cnfire_method_type use CNFireBaseMod , only : cnfire_base_type @@ -58,7 +58,7 @@ end function constructor !----------------------------------------------------------------------- subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_soilp, & - atm2lnd_inst, energyflux_inst, surf_runoff_sat_inst, waterstate_inst, & + atm2lnd_inst, energyflux_inst, saturated_excess_runoff_inst, waterstate_inst, & cnveg_state_inst, cnveg_carbonstate_inst, totlitc_col, decomp_cpools_vr_col, t_soi17cm_col) ! ! !DESCRIPTION: @@ -76,7 +76,7 @@ subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_ integer , intent(in) :: filter_soilp(:) ! filter for soil patches type(atm2lnd_type) , intent(in) :: atm2lnd_inst type(energyflux_type) , intent(in) :: energyflux_inst - type(surf_runoff_sat_type) , intent(in) :: surf_runoff_sat_inst + type(saturated_excess_runoff_type) , intent(in) :: saturated_excess_runoff_inst type(waterstate_type) , intent(in) :: waterstate_inst type(cnveg_state_type) , intent(inout) :: cnveg_state_inst type(cnveg_carbonstate_type) , intent(inout) :: cnveg_carbonstate_inst diff --git a/src/biogeochem/CNVegetationFacade.F90 b/src/biogeochem/CNVegetationFacade.F90 index 42fd8df962..2fdbf691da 100644 --- a/src/biogeochem/CNVegetationFacade.F90 +++ b/src/biogeochem/CNVegetationFacade.F90 @@ -72,7 +72,7 @@ module CNVegetationFacade use CNDVType , only : dgvs_type use CNDVDriverMod , only : CNDVDriver, CNDVHIST use EnergyFluxType , only : energyflux_type - use SurfRunoffSatMod , only : surf_runoff_sat_type + use SaturatedExcessRunoffMod , only : saturated_excess_runoff_type use FrictionVelocityMod , only : frictionvel_type use SoilBiogeochemStateType , only : soilBiogeochem_state_type use SoilBiogeochemCarbonStateType , only : soilbiogeochem_carbonstate_type @@ -783,7 +783,7 @@ subroutine EcosystemDynamicsPreDrainage(this, bounds, & soilbiogeochem_nitrogenflux_inst, soilbiogeochem_nitrogenstate_inst, & atm2lnd_inst, waterstate_inst, waterflux_inst, & canopystate_inst, soilstate_inst, temperature_inst, crop_inst, ch4_inst, & - photosyns_inst, surf_runoff_sat_inst, energyflux_inst, & + photosyns_inst, saturated_excess_runoff_inst, energyflux_inst, & nutrient_competition_method, fireemis_inst) ! ! !DESCRIPTION: @@ -822,7 +822,7 @@ subroutine EcosystemDynamicsPreDrainage(this, bounds, & type(crop_type) , intent(inout) :: crop_inst type(ch4_type) , intent(in) :: ch4_inst type(photosyns_type) , intent(in) :: photosyns_inst - type(surf_runoff_sat_type) , intent(in) :: surf_runoff_sat_inst + type(saturated_excess_runoff_type) , intent(in) :: saturated_excess_runoff_inst type(energyflux_type) , intent(in) :: energyflux_inst class(nutrient_competition_method_type) , intent(inout) :: nutrient_competition_method type(fireemis_type) , intent(inout) :: fireemis_inst @@ -852,7 +852,7 @@ subroutine EcosystemDynamicsPreDrainage(this, bounds, & soilbiogeochem_nitrogenflux_inst, soilbiogeochem_nitrogenstate_inst, & atm2lnd_inst, waterstate_inst, waterflux_inst, & canopystate_inst, soilstate_inst, temperature_inst, crop_inst, ch4_inst, & - this%dgvs_inst, photosyns_inst, surf_runoff_sat_inst, energyflux_inst, & + this%dgvs_inst, photosyns_inst, saturated_excess_runoff_inst, energyflux_inst, & nutrient_competition_method, this%cnfire_method) ! fire carbon emissions diff --git a/src/biogeophys/HydrologyNoDrainageMod.F90 b/src/biogeophys/HydrologyNoDrainageMod.F90 index ef84b76e98..5cfca79a6a 100644 --- a/src/biogeophys/HydrologyNoDrainageMod.F90 +++ b/src/biogeophys/HydrologyNoDrainageMod.F90 @@ -16,7 +16,7 @@ Module HydrologyNoDrainageMod use TemperatureType , only : temperature_type use SoilHydrologyType , only : soilhydrology_type use SoilStateType , only : soilstate_type - use SurfRunoffSatMod , only : surf_runoff_sat_type + use SaturatedExcessRunoffMod, only : saturated_excess_runoff_type use InfiltrationExcessRunoffMod, only : infiltration_excess_runoff_type use WaterfluxType , only : waterflux_type use WaterstateType , only : waterstate_type @@ -44,7 +44,7 @@ subroutine HydrologyNoDrainage(bounds, & clm_fates, & atm2lnd_inst, soilstate_inst, energyflux_inst, temperature_inst, & waterflux_inst, waterstate_inst, & - soilhydrology_inst, surf_runoff_sat_inst, infiltration_excess_runoff_inst, & + soilhydrology_inst, saturated_excess_runoff_inst, infiltration_excess_runoff_inst, & aerosol_inst, canopystate_inst, soil_water_retention_curve) ! ! !DESCRIPTION: @@ -93,7 +93,7 @@ subroutine HydrologyNoDrainage(bounds, & type(waterstate_type) , intent(inout) :: waterstate_inst type(aerosol_type) , intent(inout) :: aerosol_inst type(soilhydrology_type) , intent(inout) :: soilhydrology_inst - type(surf_runoff_sat_type), intent(inout) :: surf_runoff_sat_inst + type(saturated_excess_runoff_type), intent(inout) :: saturated_excess_runoff_inst type(infiltration_excess_runoff_type), intent(inout) :: infiltration_excess_runoff_inst type(canopystate_type) , intent(inout) :: canopystate_inst class(soil_water_retention_curve_type), intent(in) :: soil_water_retention_curve @@ -182,26 +182,26 @@ subroutine HydrologyNoDrainage(bounds, & call SetSoilWaterFractions(bounds, num_hydrologyc, filter_hydrologyc, & soilhydrology_inst, soilstate_inst, waterstate_inst) - call surf_runoff_sat_inst%SaturatedSurfaceRunoff(& + call saturated_excess_runoff_inst%SaturatedExcessRunoff(& bounds, num_hydrologyc, filter_hydrologyc, col, & soilhydrology_inst, soilstate_inst, waterflux_inst) call SetQflxInputs(bounds, num_hydrologyc, filter_hydrologyc, & - waterflux_inst, surf_runoff_sat_inst, waterstate_inst) + waterflux_inst, saturated_excess_runoff_inst, waterstate_inst) call infiltration_excess_runoff_inst%InfiltrationExcessRunoff( & bounds, num_hydrologyc, filter_hydrologyc, & - soilhydrology_inst, soilstate_inst, surf_runoff_sat_inst, waterflux_inst, & + soilhydrology_inst, soilstate_inst, saturated_excess_runoff_inst, waterflux_inst, & waterstate_inst) call Infiltration(bounds, num_hydrologyc, filter_hydrologyc, num_urbanc, filter_urbanc,& infiltration_excess_runoff_inst, & - energyflux_inst, soilhydrology_inst, surf_runoff_sat_inst, & + energyflux_inst, soilhydrology_inst, saturated_excess_runoff_inst, & waterflux_inst, waterstate_inst) call TotalSurfaceRunoff(bounds, num_hydrologyc, filter_hydrologyc, & num_urbanc, filter_urbanc, & - waterflux_inst, soilhydrology_inst, surf_runoff_sat_inst, waterstate_inst) + waterflux_inst, soilhydrology_inst, saturated_excess_runoff_inst, waterstate_inst) call UpdateUrbanPonding(bounds, num_urbanc, filter_urbanc, & waterstate_inst, soilhydrology_inst, waterflux_inst) diff --git a/src/biogeophys/InfiltrationExcessRunoffMod.F90 b/src/biogeophys/InfiltrationExcessRunoffMod.F90 index e4392f2b91..1d482f1d84 100644 --- a/src/biogeophys/InfiltrationExcessRunoffMod.F90 +++ b/src/biogeophys/InfiltrationExcessRunoffMod.F90 @@ -16,7 +16,7 @@ module InfiltrationExcessRunoffMod use clm_time_manager , only : get_step_size use SoilHydrologyType, only : soilhydrology_type use SoilStateType , only : soilstate_type - use SurfRunoffSatMod , only : surf_runoff_sat_type + use SaturatedExcessRunoffMod, only : saturated_excess_runoff_type use WaterfluxType , only : waterflux_type use WaterstateType , only : waterstate_type @@ -168,7 +168,7 @@ end subroutine InitCold !----------------------------------------------------------------------- subroutine InfiltrationExcessRunoff(this, bounds, num_hydrologyc, filter_hydrologyc, & - soilhydrology_inst, soilstate_inst, surf_runoff_sat_inst, waterflux_inst, waterstate_inst) + soilhydrology_inst, soilstate_inst, saturated_excess_runoff_inst, waterflux_inst, waterstate_inst) ! ! !DESCRIPTION: ! Calculate surface runoff due to infiltration excess @@ -180,7 +180,7 @@ subroutine InfiltrationExcessRunoff(this, bounds, num_hydrologyc, filter_hydrolo integer , intent(in) :: filter_hydrologyc(:) ! column filter for soil points type(soilhydrology_type) , intent(in) :: soilhydrology_inst type(soilstate_type) , intent(in) :: soilstate_inst - type(surf_runoff_sat_type) , intent(in) :: surf_runoff_sat_inst + type(saturated_excess_runoff_type) , intent(in) :: saturated_excess_runoff_inst type(waterflux_type) , intent(in) :: waterflux_inst type(waterstate_type) , intent(in) :: waterstate_inst ! @@ -195,7 +195,7 @@ subroutine InfiltrationExcessRunoff(this, bounds, num_hydrologyc, filter_hydrolo qinmax => this%qinmax_col , & ! Output: [real(r8) (:) ] maximum infiltration capacity (mm H2O /s) qflx_infl_excess => this%qflx_infl_excess_col , & ! Output: [real(r8) (:) ] infiltration excess runoff (mm H2O /s) - fsat => surf_runoff_sat_inst%fsat_col , & ! Input: [real(r8) (:) ] fractional area with water table at surface + fsat => saturated_excess_runoff_inst%fsat_col, & ! Input: [real(r8) (:) ] fractional area with water table at surface qflx_in_soil => waterflux_inst%qflx_in_soil_col , & ! Input: [real(r8) (:) ] surface input to soil (mm/s) diff --git a/src/biogeophys/SurfRunoffSatMod.F90 b/src/biogeophys/SaturatedExcessRunoffMod.F90 similarity index 93% rename from src/biogeophys/SurfRunoffSatMod.F90 rename to src/biogeophys/SaturatedExcessRunoffMod.F90 index 3bce63425a..bb24aea1d6 100644 --- a/src/biogeophys/SurfRunoffSatMod.F90 +++ b/src/biogeophys/SaturatedExcessRunoffMod.F90 @@ -1,4 +1,4 @@ -module SurfRunoffSatMod +module SaturatedExcessRunoffMod !----------------------------------------------------------------------- ! !DESCRIPTION: @@ -25,7 +25,7 @@ module SurfRunoffSatMod ! !PUBLIC TYPES: - type, public :: surf_runoff_sat_type + type, public :: saturated_excess_runoff_type private ! Public data members ! Note: these should be treated as read-only by other modules @@ -39,7 +39,7 @@ module SurfRunoffSatMod ! Public routines procedure, public :: Init - procedure, public :: SaturatedSurfaceRunoff ! Calculate surface runoff due to saturated surface + procedure, public :: SaturatedExcessRunoff ! Calculate surface runoff due to saturated surface ! Private routines procedure, private :: InitAllocate @@ -48,7 +48,7 @@ module SurfRunoffSatMod procedure, private, nopass :: ComputeFsatTopmodel procedure, private, nopass :: ComputeFsatVic - end type surf_runoff_sat_type + end type saturated_excess_runoff_type ! !PRIVATE DATA MEMBERS: @@ -68,10 +68,10 @@ module SurfRunoffSatMod subroutine Init(this, bounds) ! ! !DESCRIPTION: - ! Initialize this surf_runoff_sat_type object + ! Initialize this saturated_excess_runoff_type object ! ! !ARGUMENTS: - class(surf_runoff_sat_type), intent(inout) :: this + class(saturated_excess_runoff_type), intent(inout) :: this type(bounds_type), intent(in) :: bounds ! ! !LOCAL VARIABLES: @@ -89,13 +89,13 @@ end subroutine Init subroutine InitAllocate(this, bounds) ! ! !DESCRIPTION: - ! Allocate memory for this surf_runoff_sat_type object + ! Allocate memory for this saturated_excess_runoff_type object ! ! !USES: use shr_infnan_mod , only : nan => shr_infnan_nan, assignment(=) ! ! !ARGUMENTS: - class(surf_runoff_sat_type), intent(inout) :: this + class(saturated_excess_runoff_type), intent(inout) :: this type(bounds_type), intent(in) :: bounds ! ! !LOCAL VARIABLES: @@ -116,13 +116,13 @@ end subroutine InitAllocate subroutine InitHistory(this, bounds) ! ! !DESCRIPTION: - ! Initialize surf_runoff_sat_type history variables + ! Initialize saturated_excess_runoff_type history variables ! ! !USES: use histFileMod , only : hist_addfld1d ! ! !ARGUMENTS: - class(surf_runoff_sat_type), intent(inout) :: this + class(saturated_excess_runoff_type), intent(inout) :: this type(bounds_type), intent(in) :: bounds ! ! !LOCAL VARIABLES: @@ -149,10 +149,10 @@ end subroutine InitHistory subroutine InitCold(this, bounds) ! ! !DESCRIPTION: - ! Perform cold-start initialization for surf_runoff_sat_type + ! Perform cold-start initialization for saturated_excess_runoff_type ! ! !ARGUMENTS: - class(surf_runoff_sat_type), intent(inout) :: this + class(saturated_excess_runoff_type), intent(inout) :: this type(bounds_type), intent(in) :: bounds ! ! !LOCAL VARIABLES: @@ -174,14 +174,14 @@ end subroutine InitCold ! ======================================================================== !----------------------------------------------------------------------- - subroutine SaturatedSurfaceRunoff (this, bounds, num_hydrologyc, filter_hydrologyc, & + subroutine SaturatedExcessRunoff (this, bounds, num_hydrologyc, filter_hydrologyc, & col, soilhydrology_inst, soilstate_inst, waterflux_inst) ! ! !DESCRIPTION: ! Calculate surface runoff due to saturated surface ! ! !ARGUMENTS: - class(surf_runoff_sat_type), intent(inout) :: this + class(saturated_excess_runoff_type), intent(inout) :: this type(bounds_type) , intent(in) :: bounds integer , intent(in) :: num_hydrologyc ! number of column soil points in column filter integer , intent(in) :: filter_hydrologyc(:) ! column filter for soil points @@ -193,7 +193,7 @@ subroutine SaturatedSurfaceRunoff (this, bounds, num_hydrologyc, filter_hydrolog ! !LOCAL VARIABLES: integer :: fc, c - character(len=*), parameter :: subname = 'SaturatedSurfaceRunoff' + character(len=*), parameter :: subname = 'SaturatedExcessRunoff' !----------------------------------------------------------------------- associate( & @@ -273,7 +273,7 @@ subroutine SaturatedSurfaceRunoff (this, bounds, num_hydrologyc, filter_hydrolog end associate - end subroutine SaturatedSurfaceRunoff + end subroutine SaturatedExcessRunoff !----------------------------------------------------------------------- subroutine ComputeFsatTopmodel(bounds, num_hydrologyc, filter_hydrologyc, & @@ -368,5 +368,4 @@ subroutine ComputeFsatVic(bounds, num_hydrologyc, filter_hydrologyc, & end subroutine ComputeFsatVic - -end module SurfRunoffSatMod +end module SaturatedExcessRunoffMod diff --git a/src/biogeophys/SoilHydrologyMod.F90 b/src/biogeophys/SoilHydrologyMod.F90 index c16a831bca..cf300064eb 100644 --- a/src/biogeophys/SoilHydrologyMod.F90 +++ b/src/biogeophys/SoilHydrologyMod.F90 @@ -20,7 +20,7 @@ module SoilHydrologyMod use InfiltrationExcessRunoffMod, only : infiltration_excess_runoff_type use SoilHydrologyType , only : soilhydrology_type use SoilStateType , only : soilstate_type - use SurfRunoffSatMod , only : surf_runoff_sat_type + use SaturatedExcessRunoffMod, only : saturated_excess_runoff_type use WaterfluxType , only : waterflux_type use WaterstateType , only : waterstate_type use TemperatureType , only : temperature_type @@ -181,7 +181,7 @@ end subroutine SetSoilWaterFractions !----------------------------------------------------------------------- subroutine SetQflxInputs(bounds, num_hydrologyc, filter_hydrologyc, & - waterflux_inst, surf_runoff_sat_inst, waterstate_inst) + waterflux_inst, saturated_excess_runoff_inst, waterstate_inst) ! ! !DESCRIPTION: ! Set various input fluxes of water @@ -191,7 +191,7 @@ subroutine SetQflxInputs(bounds, num_hydrologyc, filter_hydrologyc, & integer , intent(in) :: num_hydrologyc ! number of column soil points in column filter integer , intent(in) :: filter_hydrologyc(:) ! column filter for soil points type(waterflux_type) , intent(inout) :: waterflux_inst - type(surf_runoff_sat_type) , intent(in) :: surf_runoff_sat_inst + type(saturated_excess_runoff_type) , intent(in) :: saturated_excess_runoff_inst type(waterstate_type) , intent(in) :: waterstate_inst ! ! !LOCAL VARIABLES: @@ -215,7 +215,7 @@ subroutine SetQflxInputs(bounds, num_hydrologyc, filter_hydrologyc, & qflx_evap_grnd => waterflux_inst%qflx_evap_grnd_col , & ! Input: [real(r8) (:) ] ground surface evaporation rate (mm H2O/s) [+] qflx_ev_h2osfc => waterflux_inst%qflx_ev_h2osfc_col , & ! Input: [real(r8) (:) ] evaporation flux from h2osfc (W/m**2) [+ to atm] - qflx_sat_excess_surf => surf_runoff_sat_inst%qflx_sat_excess_surf_col, & ! Input: [real(r8) (:) ] surface runoff due to saturated surface (mm H2O /s) + qflx_sat_excess_surf => saturated_excess_runoff_inst%qflx_sat_excess_surf_col, & ! Input: [real(r8) (:) ] surface runoff due to saturated surface (mm H2O /s) frac_sno => waterstate_inst%frac_sno_eff_col , & ! Input: [real(r8) (:) ] fraction of ground covered by snow (0 to 1) frac_h2osfc => waterstate_inst%frac_h2osfc_col & ! Input: [real(r8) (:) ] fraction of ground covered by surface water (0 to 1) @@ -264,7 +264,7 @@ end subroutine SetQflxInputs !----------------------------------------------------------------------- subroutine Infiltration(bounds, num_hydrologyc, filter_hydrologyc, num_urbanc, filter_urbanc, & infiltration_excess_runoff_inst, & - energyflux_inst, soilhydrology_inst, surf_runoff_sat_inst, & + energyflux_inst, soilhydrology_inst, saturated_excess_runoff_inst, & waterflux_inst, waterstate_inst) ! ! !DESCRIPTION: @@ -284,7 +284,7 @@ subroutine Infiltration(bounds, num_hydrologyc, filter_hydrologyc, num_urbanc, f type(infiltration_excess_runoff_type), intent(in) :: infiltration_excess_runoff_inst type(energyflux_type) , intent(in) :: energyflux_inst type(soilhydrology_type) , intent(in) :: soilhydrology_inst - type(surf_runoff_sat_type), intent(in) :: surf_runoff_sat_inst + type(saturated_excess_runoff_type), intent(in) :: saturated_excess_runoff_inst type(waterstate_type) , intent(inout) :: waterstate_inst type(waterflux_type) , intent(inout) :: waterflux_inst ! @@ -317,7 +317,7 @@ subroutine Infiltration(bounds, num_hydrologyc, filter_hydrologyc, num_urbanc, f qflx_h2osfc_surf => waterflux_inst%qflx_h2osfc_surf_col , & ! Output: [real(r8) (:) ] surface water runoff (mm H2O /s) qflx_infl => waterflux_inst%qflx_infl_col , & ! Output: [real(r8) (:) ] infiltration (mm H2O /s) - qflx_sat_excess_surf => surf_runoff_sat_inst%qflx_sat_excess_surf_col, & ! Input: [real(r8) (:) ] surface runoff due to saturated surface (mm H2O /s) + qflx_sat_excess_surf => saturated_excess_runoff_inst%qflx_sat_excess_surf_col, & ! Input: [real(r8) (:) ] surface runoff due to saturated surface (mm H2O /s) h2osfc_thresh => soilhydrology_inst%h2osfc_thresh_col, & ! Input: [real(r8) (:) ] level at which h2osfc "percolates" h2osfcflag => soilhydrology_inst%h2osfcflag & ! Input: logical @@ -418,7 +418,7 @@ end subroutine Infiltration !----------------------------------------------------------------------- subroutine TotalSurfaceRunoff(bounds, num_hydrologyc, filter_hydrologyc, & num_urbanc, filter_urbanc, & - waterflux_inst, soilhydrology_inst, surf_runoff_sat_inst, waterstate_inst) + waterflux_inst, soilhydrology_inst, saturated_excess_runoff_inst, waterstate_inst) ! ! !DESCRIPTION: ! Calculate total surface runoff @@ -436,7 +436,7 @@ subroutine TotalSurfaceRunoff(bounds, num_hydrologyc, filter_hydrologyc, & integer , intent(in) :: filter_urbanc(:) ! column filter for urban points type(waterflux_type) , intent(inout) :: waterflux_inst type(soilhydrology_type) , intent(inout) :: soilhydrology_inst - type(surf_runoff_sat_type), intent(in) :: surf_runoff_sat_inst + type(saturated_excess_runoff_type), intent(in) :: saturated_excess_runoff_inst type(waterstate_type), intent(in) :: waterstate_inst ! ! !LOCAL VARIABLES: @@ -459,7 +459,7 @@ subroutine TotalSurfaceRunoff(bounds, num_hydrologyc, filter_hydrologyc, & xs_urban => soilhydrology_inst%xs_urban_col , & ! Output: [real(r8) (:) ] excess soil water above urban ponding limit - qflx_sat_excess_surf => surf_runoff_sat_inst%qflx_sat_excess_surf_col , & ! Input: [real(r8) (:) ] surface runoff due to saturated surface (mm H2O /s) + qflx_sat_excess_surf => saturated_excess_runoff_inst%qflx_sat_excess_surf_col , & ! Input: [real(r8) (:) ] surface runoff due to saturated surface (mm H2O /s) h2osoi_liq => waterstate_inst%h2osoi_liq_col & ! Input: [real(r8) (:,:) ] liquid water (kg/m2) ) diff --git a/src/main/clm_driver.F90 b/src/main/clm_driver.F90 index 0b23e5d572..95fabab4b5 100644 --- a/src/main/clm_driver.F90 +++ b/src/main/clm_driver.F90 @@ -696,7 +696,7 @@ subroutine clm_drv(doalb, nextsw_cday, declinp1, declin, rstwr, nlend, rdate, ro filter(nc)%num_nosnowc, filter(nc)%nosnowc, & clm_fates, & atm2lnd_inst, soilstate_inst, energyflux_inst, temperature_inst, & - waterflux_inst, waterstate_inst, soilhydrology_inst, surf_runoff_sat_inst, & + waterflux_inst, waterstate_inst, soilhydrology_inst, saturated_excess_runoff_inst, & infiltration_excess_runoff_inst, & aerosol_inst, canopystate_inst, soil_water_retention_curve) @@ -812,7 +812,7 @@ subroutine clm_drv(doalb, nextsw_cday, declinp1, declin, rstwr, nlend, rdate, ro soilbiogeochem_nitrogenflux_inst, soilbiogeochem_nitrogenstate_inst, & atm2lnd_inst, waterstate_inst, waterflux_inst, & canopystate_inst, soilstate_inst, temperature_inst, crop_inst, ch4_inst, & - photosyns_inst, surf_runoff_sat_inst, energyflux_inst, & + photosyns_inst, saturated_excess_runoff_inst, energyflux_inst, & nutrient_competition_method, fireemis_inst) call t_stopf('ecosysdyn') diff --git a/src/main/clm_instMod.F90 b/src/main/clm_instMod.F90 index a683f02e8a..57e19d2c42 100644 --- a/src/main/clm_instMod.F90 +++ b/src/main/clm_instMod.F90 @@ -51,7 +51,7 @@ module clm_instMod use OzoneFactoryMod , only : create_and_init_ozone_type use PhotosynthesisMod , only : photosyns_type use SoilHydrologyType , only : soilhydrology_type - use SurfRunoffSatMod , only : surf_runoff_sat_type + use SaturatedExcessRunoffMod , only : saturated_excess_runoff_type use SoilStateType , only : soilstate_type use SolarAbsorbedType , only : solarabs_type use SurfaceRadiationMod , only : surfrad_type @@ -103,7 +103,7 @@ module clm_instMod type(photosyns_type) :: photosyns_inst type(soilstate_type) :: soilstate_inst type(soilhydrology_type) :: soilhydrology_inst - type(surf_runoff_sat_type) :: surf_runoff_sat_inst + type(saturated_excess_runoff_type) :: saturated_excess_runoff_inst type(solarabs_type) :: solarabs_inst type(surfalb_type) :: surfalb_inst type(surfrad_type) :: surfrad_inst @@ -312,7 +312,7 @@ subroutine clm_instInit(bounds) call soilhydrology_inst%Init(bounds, nlfilename) call SoilHydrologyInitTimeConst(bounds, soilhydrology_inst) ! sets time constant properties - call surf_runoff_sat_inst%Init(bounds) + call saturated_excess_runoff_inst%Init(bounds) call infiltration_excess_runoff_inst%Init(bounds) call solarabs_inst%Init(bounds) From db5e8d6ed835da0566819c634835547dfa750855 Mon Sep 17 00:00:00 2001 From: Bill Sacks Date: Tue, 22 Aug 2017 09:23:38 -0600 Subject: [PATCH 3/4] Remove long yellowstone test, change PE count for cheyenne Removing this long test that sometimes exceeds the 2-hour limit I give it (other times it takes just slightly less than 2 hours): ERS_Ly5_P60x1.f10_f10_musgs.IHistClm50BgcCrop.yellowstone_intel.clm-cropMonthOutput We still have an identical test on cheyenne. Also, increase the PE count on cheyenne to use two full nodes, rather than a partial node. --- cime_config/testdefs/testlist_clm.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 9b51ed4a1c..53e942b2d0 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -1088,9 +1088,8 @@ cheyenne - + cheyenne - yellowstone From 8797b0ccc2d40259a0a45a523499c200ecea2611 Mon Sep 17 00:00:00 2001 From: Bill Sacks Date: Tue, 22 Aug 2017 09:31:18 -0600 Subject: [PATCH 4/4] Update ChangeLog_branch --- ChangeLog_branch | 96 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/ChangeLog_branch b/ChangeLog_branch index 1534d4caeb..0a2617eef8 100644 --- a/ChangeLog_branch +++ b/ChangeLog_branch @@ -1,4 +1,100 @@ =============================================================== +Tag name: ctsm_n07_clm4_5_16_r249 +Originator(s): sacks +Date: Aug 22, 2017 +One-line Summary: Rename things related to saturated surface runoff + +Purpose of changes +------------------ + +Renames the module, derived type, variables and methods related to saturated +surface runoff. The rename qflx_sat_surf -> qflx_sat_excess_surf was suggested +at a ctsm meeting. The other renames are to be consistent with that and +consistent with InfiltrationExcessRunoffMod. + +Also, remove a long yellowstone test, change PE count for cheyenne: Removing +this long test that sometimes exceeds the 2-hour limit I give it (other times it +takes just slightly less than 2 hours): +ERS_Ly5_P60x1.f10_f10_musgs.IHistClm50BgcCrop.yellowstone_intel.clm-cropMonthOutput. We +still have an identical test on cheyenne. Also, increase the PE count on +cheyenne to use two full nodes, rather than a partial node. + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- + +CLM testing: + + build-namelist tests: + + yellowstone - not run + + unit-tests (components/clm/src): + + yellowstone - not run + + tools-tests (components/clm/test/tools): + + yellowstone - not run + + PTCLM testing (components/clm/tools/shared/PTCLM/test): + + yellowstone - not run + + regular tests (aux_clm): + + yellowstone_intel - pass + yellowstone_pgi - pass + yellowstone_gnu - pass + cheyenne_intel - pass + hobart_nag - pass + hobart_pgi - pass + hobart_intel - pass + +CLM tag used for the baseline comparisons: ctsm_n06_clm4_5_16_r249 + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + + +Detailed list of changes +------------------------ + +List any svn externals directories updated (cime, rtm, mosart, cism, etc.): none + +List all files eliminated: + +========= Renamed +D components/clm/src/biogeophys/SurfRunoffSatMod.F90 + +List all files added and what they do: + +========= Renamed +A components/clm/src/biogeophys/SaturatedExcessRunoffMod.F90 + +List all existing files that have been modified, and describe the changes: + +========= Renames +M components/clm/src/biogeochem/CNDriverMod.F90 +M components/clm/src/biogeochem/CNFireBaseMod.F90 +M components/clm/src/biogeochem/CNFireLi2014Mod.F90 +M components/clm/src/biogeochem/CNFireLi2016Mod.F90 +M components/clm/src/biogeochem/CNFireMethodMod.F90 +M components/clm/src/biogeochem/CNFireNoFireMod.F90 +M components/clm/src/biogeochem/CNVegetationFacade.F90 +M components/clm/src/biogeophys/HydrologyNoDrainageMod.F90 +M components/clm/src/biogeophys/InfiltrationExcessRunoffMod.F90 +M components/clm/src/biogeophys/SoilHydrologyMod.F90 +M components/clm/src/main/clm_driver.F90 +M components/clm/src/main/clm_instMod.F90 + +========= Remove a yellowstone test, tweak a cheyenne test, as described above +M components/clm/cime_config/testdefs/testlist_clm.xml + +=============================================================== +=============================================================== Tag name: ctsm_n06_clm4_5_16_r249 Originator(s): sacks Date: Aug 21, 2017