mHM
The mesoscale Hydrological Model
|
setting up the soil moisture horizons More...
Functions/Subroutines | |
subroutine, public | mpr_smhorizons (param, processmatrix, iflag_soil, nhorizons_mhm, horizondepth, lcover0, soilid0, nhorizons, ntillhorizons, thetas_till, thetafc_till, thetapw_till, thetas, thetafc, thetapw, wd, db, dbm, rzdepth, mask0, cell_id0, upp_row_l1, low_row_l1, lef_col_l1, rig_col_l1, nl0_in_l1, l1_beta, l1_sms, l1_fc, l1_pw, l1_froots, latwat_till, cosmic_l3_till, latwat, cosmic_l3, l1_bulkdens, l1_latticewater, l1_cosmicl3) |
upscale soil moisture horizons | |
setting up the soil moisture horizons
This module sets up the soil moisture horizons
COPYING
and COPYING.LESSER
provided with this software. The complete GNU license text can also be found at http://www.gnu.org/licenses/. subroutine, public mo_mpr_smhorizons::mpr_smhorizons | ( | real(dp), dimension(:), intent(in) | param, |
integer(i4), dimension(:, :), intent(in) | processmatrix, | ||
integer(i4), intent(in) | iflag_soil, | ||
integer(i4), intent(in) | nhorizons_mhm, | ||
real(dp), dimension(:), intent(in) | horizondepth, | ||
integer(i4), dimension(:), intent(in) | lcover0, | ||
integer(i4), dimension(:, :), intent(in) | soilid0, | ||
integer(i4), dimension(:), intent(in) | nhorizons, | ||
integer(i4), dimension(:), intent(in) | ntillhorizons, | ||
real(dp), dimension(:, :, :), intent(in) | thetas_till, | ||
real(dp), dimension(:, :, :), intent(in) | thetafc_till, | ||
real(dp), dimension(:, :, :), intent(in) | thetapw_till, | ||
real(dp), dimension(:, :), intent(in) | thetas, | ||
real(dp), dimension(:, :), intent(in) | thetafc, | ||
real(dp), dimension(:, :), intent(in) | thetapw, | ||
real(dp), dimension(:, :, :), intent(in) | wd, | ||
real(dp), dimension(:, :, :), intent(in) | db, | ||
real(dp), dimension(:, :), intent(in) | dbm, | ||
real(dp), dimension(:), intent(in) | rzdepth, | ||
logical, dimension(:, :), intent(in) | mask0, | ||
integer(i4), dimension(:), intent(in) | cell_id0, | ||
integer(i4), dimension(:), intent(in) | upp_row_l1, | ||
integer(i4), dimension(:), intent(in) | low_row_l1, | ||
integer(i4), dimension(:), intent(in) | lef_col_l1, | ||
integer(i4), dimension(:), intent(in) | rig_col_l1, | ||
integer(i4), dimension(:), intent(in) | nl0_in_l1, | ||
real(dp), dimension(:, :), intent(inout) | l1_beta, | ||
real(dp), dimension(:, :), intent(inout) | l1_sms, | ||
real(dp), dimension(:, :), intent(inout) | l1_fc, | ||
real(dp), dimension(:, :), intent(inout) | l1_pw, | ||
real(dp), dimension(:, :), intent(inout) | l1_froots, | ||
real(dp), dimension(:,:,:), intent(in) | latwat_till, | ||
real(dp), dimension(:,:,:), intent(in) | cosmic_l3_till, | ||
real(dp), dimension(:,:), intent(in) | latwat, | ||
real(dp), dimension(:,:), intent(in) | cosmic_l3, | ||
real(dp), dimension(:,:), intent(inout) | l1_bulkdens, | ||
real(dp), dimension(:,:), intent(inout) | l1_latticewater, | ||
real(dp), dimension(:,:), intent(inout) | l1_cosmicl3 | ||
) |
upscale soil moisture horizons
calculate soil properties at the level 1. Global parameters needed (see mhm_parameter.nml):
[in] | real(dp), dimension(:) :: param | parameters |
[in] | integer(i4), dimension(:, :) :: processMatrix | - matrix specifying user defined processes |
[in] | integer(i4) :: iFlag_soil | - flags for handling multiple soil databases |
[in] | integer(i4) :: nHorizons_mHM | - number of horizons to model |
[in] | real(dp), dimension(:) :: HorizonDepth | [10^-3 m] horizon depth from surface, postive downwards |
[in] | integer(i4), dimension(:) :: LCOVER0 | Land cover at level 0 |
[in] | integer(i4), dimension(:, :) :: soilID0 | soil ID at level 0 |
[in] | integer(i4), dimension(:) :: nHorizons | horizons per soil type |
[in] | integer(i4), dimension(:) :: nTillHorizons | Number of Tillage horizons |
[in] | real(dp), dimension(:, :, :) :: thetaS_till | saturated water content of soil horizons upto tillage depth, f(OM, management) |
[in] | real(dp), dimension(:, :, :) :: thetaFC_till | Field capacity of tillage layers; LUC dependent, f(OM, management) |
[in] | real(dp), dimension(:, :, :) :: thetaPW_till | Permament wilting point of tillage layers; LUC dependent, f(OM, management) |
[in] | real(dp), dimension(:, :) :: thetaS | saturated water content of soil horizons after tillage depth |
[in] | real(dp), dimension(:, :) :: thetaFC | Field capacity of deeper layers |
[in] | real(dp), dimension(:, :) :: thetaPW | Permanent wilting point of deeper layers |
[in] | real(dp), dimension(:, :, :) :: Wd | weights of mHM Horizons according to horizons provided in soil database |
[in] | real(dp), dimension(:, :, :) :: Db | Bulk density |
[in] | real(dp), dimension(:, :) :: DbM | mineral Bulk density |
[in] | real(dp), dimension(:) :: RZdepth | [mm] Total soil depth |
[in] | logical, dimension(:, :) :: mask0 | mask at L0 |
[in] | integer(i4), dimension(:) :: cell_id0 | Cell ids of hi res field |
[in] | integer(i4), dimension(:) :: upp_row_L1 | Upper row of hi res block |
[in] | integer(i4), dimension(:) :: low_row_L1 | Lower row of hi res block |
[in] | integer(i4), dimension(:) :: lef_col_L1 | Left column of hi res block |
[in] | integer(i4), dimension(:) :: rig_col_L1 | Right column of hi res block |
[in] | integer(i4), dimension(:) :: nL0_in_L1 | Number of L0 cells within a L1 cel |
[in,out] | real(dp), dimension(:, :) :: L1_beta | Parameter that determines the relative contribution to SM, upscaled Bulk density |
[in,out] | real(dp), dimension(:, :) :: L1_SMs | [10^-3 m] depth of saturated SM cont |
[in,out] | real(dp), dimension(:, :) :: L1_FC | [10^-3 m] field capacity |
[in,out] | real(dp), dimension(:, :) :: L1_PW | [10^-3 m] permanent wilting point |
[in,out] | real(dp), dimension(:, :) :: L1_fRoots | fraction of roots in soil horizons |
Definition at line 120 of file mo_mpr_smhorizons.f90.
References mo_common_constants::nodata_dp, and mo_upscaling_operators::upscale_harmonic_mean().
Referenced by mo_multi_param_reg::mpr().