Skip to content

Commit

Permalink
Merge pull request ESCOMP#2 from NCAR/modularize_infiltration
Browse files Browse the repository at this point in the history
Modularization of Infiltration - first stage

Separate out the first 3 steps of subroutine Infiltration into more modular
homes. The biggest piece of this is to introduce a new
InfiltrationExcessRunoffMod.F90; this will be where alternative
parameterizations of infiltration excess runoff can be put.
  • Loading branch information
billsacks committed Dec 28, 2017
2 parents d4ae71a + 6fae9c2 commit 647a72b
Show file tree
Hide file tree
Showing 7 changed files with 470 additions and 147 deletions.
25 changes: 17 additions & 8 deletions src/biogeophys/HydrologyNoDrainageMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ Module HydrologyNoDrainageMod
use SoilHydrologyType , only : soilhydrology_type
use SoilStateType , only : soilstate_type
use SurfRunoffSatMod , only : surf_runoff_sat_type
use InfiltrationExcessRunoffMod, only : infiltration_excess_runoff_type
use WaterfluxType , only : waterflux_type
use WaterstateType , only : waterstate_type
use CanopyStateType , only : canopystate_type
Expand All @@ -43,8 +44,8 @@ subroutine HydrologyNoDrainage(bounds, &
clm_fates, &
atm2lnd_inst, soilstate_inst, energyflux_inst, temperature_inst, &
waterflux_inst, waterstate_inst, &
soilhydrology_inst, surf_runoff_sat_inst, aerosol_inst, &
canopystate_inst, soil_water_retention_curve)
soilhydrology_inst, surf_runoff_sat_inst, infiltration_excess_runoff_inst, &
aerosol_inst, canopystate_inst, soil_water_retention_curve)
!
! !DESCRIPTION:
! This is the main subroutine to execute the calculation of soil/snow
Expand All @@ -60,8 +61,8 @@ subroutine HydrologyNoDrainage(bounds, &
use clm_time_manager , only : get_step_size, get_nstep
use SnowHydrologyMod , only : SnowCompaction, CombineSnowLayers, DivideSnowLayers, SnowCapping
use SnowHydrologyMod , only : SnowWater, BuildSnowFilter
use SoilHydrologyMod , only : CLMVICMap, SetFracIce
use SoilHydrologyMod , only : SetQflxTopSoil, Infiltration, TotalSurfaceRunoff
use SoilHydrologyMod , only : CLMVICMap, SetSoilWaterFractions
use SoilHydrologyMod , only : SetQflxInputs, Infiltration, TotalSurfaceRunoff
use SoilHydrologyMod , only : UpdateUrbanPonding
use SoilHydrologyMod , only : WaterTable, PerchedWaterTable
use SoilHydrologyMod , only : ThetaBasedWaterTable, RenewCondensation
Expand Down Expand Up @@ -93,6 +94,7 @@ subroutine HydrologyNoDrainage(bounds, &
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(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
!
Expand Down Expand Up @@ -177,18 +179,25 @@ subroutine HydrologyNoDrainage(bounds, &
soilhydrology_inst, waterstate_inst)
end if

call SetFracIce(bounds, num_hydrologyc, filter_hydrologyc, &
call SetSoilWaterFractions(bounds, num_hydrologyc, filter_hydrologyc, &
soilhydrology_inst, soilstate_inst, waterstate_inst)

call surf_runoff_sat_inst%SaturatedSurfaceRunoff(&
bounds, num_hydrologyc, filter_hydrologyc, col, &
soilhydrology_inst, soilstate_inst, waterflux_inst)

call SetQflxTopSoil(bounds, num_hydrologyc, filter_hydrologyc, waterflux_inst)
call SetQflxInputs(bounds, num_hydrologyc, filter_hydrologyc, &
waterflux_inst, surf_runoff_sat_inst, waterstate_inst)

call infiltration_excess_runoff_inst%InfiltrationExcessRunoff( &
bounds, num_hydrologyc, filter_hydrologyc, &
soilhydrology_inst, soilstate_inst, surf_runoff_sat_inst, waterflux_inst, &
waterstate_inst)

call Infiltration(bounds, num_hydrologyc, filter_hydrologyc, num_urbanc, filter_urbanc,&
energyflux_inst, soilhydrology_inst, soilstate_inst, surf_runoff_sat_inst, &
temperature_inst, waterflux_inst, waterstate_inst)
infiltration_excess_runoff_inst, &
energyflux_inst, soilhydrology_inst, surf_runoff_sat_inst, &
waterflux_inst, waterstate_inst)

call TotalSurfaceRunoff(bounds, num_hydrologyc, filter_hydrologyc, &
num_urbanc, filter_urbanc, &
Expand Down
Loading

0 comments on commit 647a72b

Please sign in to comment.