mHM
The mesoscale Hydrological Model
|
Module containing upscaling operators. More...
Functions/Subroutines | |
integer(i4) function, dimension(size(l1_upper_rowid_cell, 1)), public | majority_statistics (nclass, l1_upper_rowid_cell, l1_lower_rowid_cell, l1_left_colonid_cell, l1_right_colonid_cell, l0_finescale_2d_data) |
majority statistics | |
real(dp) function, dimension(size(l0upbound_inlx, 1)), public | l0_fractionalcover_in_lx (datain0, classid, mask0, l0upbound_inlx, l0downbound_inlx, l0leftbound_inlx, l0rightbound_inlx, ntcells0_inlx) |
fractional coverage of a given class of L0 fields in Lx field (Lx = L1 or L11) | |
real(dp) function, dimension(size(nl0_cells_in_l1_cell, 1)), public | upscale_arithmetic_mean (nl0_cells_in_l1_cell, l1_upper_rowid_cell, l1_lower_rowid_cell, l1_left_colonid_cell, l1_right_colonid_cell, l0_cellid, mask0, nodata_value, l0_finescale_data) |
aritmetic mean | |
real(dp) function, dimension(size(nl0_cells_in_l1_cell, 1)), public | upscale_harmonic_mean (nl0_cells_in_l1_cell, l1_upper_rowid_cell, l1_lower_rowid_cell, l1_left_colonid_cell, l1_right_colonid_cell, l0_cellid, mask0, nodata_value, l0_finescale_data) |
harmonic mean | |
real(dp) function, dimension(size(l1_upper_rowid_cell, 1)), public | upscale_geometric_mean (l1_upper_rowid_cell, l1_lower_rowid_cell, l1_left_colonid_cell, l1_right_colonid_cell, mask0, nodata_value, l0_finescale_data) |
geometric mean | |
real(dp) function, dimension(size(nl0_cells_in_l1_cell, 1)) | upscale_p_norm (nl0_cells_in_l1_cell, l1_upper_rowid_cell, l1_lower_rowid_cell, l1_left_colonid_cell, l1_right_colonid_cell, l0_cellid, mask0, nodata_value, p_norm, l0_finescale_data) |
aritmetic mean | |
Module containing upscaling operators.
This module provides the routines for upscaling_operators.
COPYING
and COPYING.LESSER
provided with this software. The complete GNU license text can also be found at http://www.gnu.org/licenses/. real(dp) function, dimension(size(l0upbound_inlx, 1)), public mo_upscaling_operators::l0_fractionalcover_in_lx | ( | integer(i4), dimension(:), intent(in) | datain0, |
integer(i4), intent(in) | classid, | ||
logical, dimension(:, :), intent(in) | mask0, | ||
integer(i4), dimension(:), intent(in) | l0upbound_inlx, | ||
integer(i4), dimension(:), intent(in) | l0downbound_inlx, | ||
integer(i4), dimension(:), intent(in) | l0leftbound_inlx, | ||
integer(i4), dimension(:), intent(in) | l0rightbound_inlx, | ||
integer(i4), dimension(:), intent(in) | ntcells0_inlx | ||
) |
fractional coverage of a given class of L0 fields in Lx field (Lx = L1 or L11)
Fractional coverage of a given class of L0 fields in Lx field (Lx = L1 or L11). For example, this routine can be used for calculating the karstic fraction.
[in] | integer(i4), dimension(:) :: dataIn0 | input fields at finer scale |
[in] | integer(i4) :: classId | class id for which fraction has to be estimated |
[in] | logical, dimension(:, :) :: mask0 | finer scale L0 mask |
[in] | integer(i4), dimension(:) :: L0upBound_inLx | row start at finer L0 scale |
[in] | integer(i4), dimension(:) :: L0downBound_inLx | row end at finer L0 scale |
[in] | integer(i4), dimension(:) :: L0leftBound_inLx | col start at finer L0 scale |
[in] | integer(i4), dimension(:) :: L0rightBound_inLx | col end at finer L0 scale |
[in] | integer(i4), dimension(:) :: nTCells0_inLx | total number of valid L0 cells in a given Lx cell |
Definition at line 152 of file mo_upscaling_operators.f90.
References mo_common_constants::nodata_i4.
Referenced by mo_multi_param_reg::karstic_layer(), and mo_multi_param_reg::mpr().
integer(i4) function, dimension(size(l1_upper_rowid_cell, 1)), public mo_upscaling_operators::majority_statistics | ( | integer(i4), intent(in) | nclass, |
integer(i4), dimension(:), intent(in) | l1_upper_rowid_cell, | ||
integer(i4), dimension(:), intent(in) | l1_lower_rowid_cell, | ||
integer(i4), dimension(:), intent(in) | l1_left_colonid_cell, | ||
integer(i4), dimension(:), intent(in) | l1_right_colonid_cell, | ||
integer(i4), dimension(:, :), intent(in) | l0_finescale_2d_data | ||
) |
majority statistics
upscale grid L0_fineScale_2D_data based on a majority statistics
[in] | integer(i4) :: nClass | number of classes |
[in] | integer(i4), dimension(:) :: L1_upper_rowId_cell | upper row boundary (level-0) of a level-1 cell |
[in] | integer(i4), dimension(:) :: L1_lower_rowId_cell | lower row boundary (level-0) of a level-1 cell |
[in] | integer(i4), dimension(:) :: L1_left_colonId_cell | left colon boundary (level-0) of a level-1 cell |
[in] | integer(i4), dimension(:) :: L1_right_colonId_cell | right colon boundary (level-0) of a level-1 cell |
[in] | integer(i4), dimension(:, :) :: L0_fineScale_2D_data | high resolution data |
Definition at line 65 of file mo_upscaling_operators.f90.
References majority_statistics().
Referenced by majority_statistics().
real(dp) function, dimension(size(nl0_cells_in_l1_cell, 1)), public mo_upscaling_operators::upscale_arithmetic_mean | ( | integer(i4), dimension(:), intent(in) | nl0_cells_in_l1_cell, |
integer(i4), dimension(:), intent(in) | l1_upper_rowid_cell, | ||
integer(i4), dimension(:), intent(in) | l1_lower_rowid_cell, | ||
integer(i4), dimension(:), intent(in) | l1_left_colonid_cell, | ||
integer(i4), dimension(:), intent(in) | l1_right_colonid_cell, | ||
integer(i4), dimension(:), intent(in) | l0_cellid, | ||
logical, dimension(:, :), intent(in) | mask0, | ||
real(dp), intent(in) | nodata_value, | ||
real(dp), dimension(:), intent(in) | l0_finescale_data | ||
) |
aritmetic mean
upscaling of level-0 grid data to level-1 using aritmetic mean
[in] | integer(i4), dimension(:) :: nL0_cells_in_L1_cell | number of level-0 cells within a level-1 cell |
[in] | integer(i4), dimension(:) :: L1_upper_rowId_cell | upper row boundary (level-0) of a level-1 cell |
[in] | integer(i4), dimension(:) :: L1_lower_rowId_cell | lower row boundary (level-0) of a level-1 cell |
[in] | integer(i4), dimension(:) :: L1_left_colonId_cell | left colon boundary (level-0) of a level-1 cell |
[in] | integer(i4), dimension(:) :: L1_right_colonId_cell | right colon boundary (level-0) of a level-1 cell |
[in] | integer(i4), dimension(:) :: L0_cellId | cell ID at level-0 |
[in] | logical, dimension(:, :) :: mask0 | mask at level 0 |
[in] | real(dp) :: nodata_value | no data value |
[in] | real(dp), dimension(:) :: L0_fineScale_data | high resolution data |
Definition at line 266 of file mo_upscaling_operators.f90.
References upscale_arithmetic_mean().
Referenced by mo_multi_param_reg::aerodynamical_resistance(), mo_mpr_pet::bulksurface_resistance(), mo_multi_param_reg::canopy_intercept_param(), mo_multi_param_reg::karstic_layer(), mo_multi_param_reg::mpr(), mo_mpr_runoff::mpr_runoff(), mo_mpr_pet::priestley_taylor_alpha(), and upscale_arithmetic_mean().
real(dp) function, dimension(size(l1_upper_rowid_cell, 1)), public mo_upscaling_operators::upscale_geometric_mean | ( | integer(i4), dimension(:), intent(in) | l1_upper_rowid_cell, |
integer(i4), dimension(:), intent(in) | l1_lower_rowid_cell, | ||
integer(i4), dimension(:), intent(in) | l1_left_colonid_cell, | ||
integer(i4), dimension(:), intent(in) | l1_right_colonid_cell, | ||
logical, dimension(:, :), intent(in) | mask0, | ||
real(dp), intent(in) | nodata_value, | ||
real(dp), dimension(:), intent(in) | l0_finescale_data | ||
) |
geometric mean
upscaling of level-0 grid data to level-1 using geometric mean
[in] | integer(i4), dimension(:) :: L1_upper_rowId_cell | upper row boundary (level-0) of a level-1 cell |
[in] | integer(i4), dimension(:) :: L1_lower_rowId_cell | lower row boundary (level-0) of a level-1 cell |
[in] | integer(i4), dimension(:) :: L1_left_colonId_cell | left colon boundary (level-0) of a level-1 cell |
[in] | integer(i4), dimension(:) :: L1_right_colonId_cell | right colon boundary (level-0) of a level-1 cell |
[in] | logical, dimension(:, :) :: mask0 | mask at level 0 |
[in] | real(dp) :: nodata_value | no data value |
[in] | real(dp), dimension(:) :: L0_fineScale_data | high resolution data |
Definition at line 469 of file mo_upscaling_operators.f90.
References upscale_geometric_mean().
Referenced by upscale_geometric_mean().
real(dp) function, dimension(size(nl0_cells_in_l1_cell, 1)), public mo_upscaling_operators::upscale_harmonic_mean | ( | integer(i4), dimension(:), intent(in) | nl0_cells_in_l1_cell, |
integer(i4), dimension(:), intent(in) | l1_upper_rowid_cell, | ||
integer(i4), dimension(:), intent(in) | l1_lower_rowid_cell, | ||
integer(i4), dimension(:), intent(in) | l1_left_colonid_cell, | ||
integer(i4), dimension(:), intent(in) | l1_right_colonid_cell, | ||
integer(i4), dimension(:), intent(in) | l0_cellid, | ||
logical, dimension(:, :), intent(in) | mask0, | ||
real(dp), intent(in) | nodata_value, | ||
real(dp), dimension(:), intent(in) | l0_finescale_data | ||
) |
harmonic mean
upscaling of level-0 grid data to level-1 using harmonic mean
[in] | integer(i4), dimension(:) :: nL0_cells_in_L1_cell | number of level-0 cells within a level-1 cell |
[in] | integer(i4), dimension(:) :: L1_upper_rowId_cell | upper row boundary (level-0) of a level-1 cell |
[in] | integer(i4), dimension(:) :: L1_lower_rowId_cell | lower row boundary (level-0) of a level-1 cell |
[in] | integer(i4), dimension(:) :: L1_left_colonId_cell | left colon boundary (level-0) of a level-1 cell |
[in] | integer(i4), dimension(:) :: L1_right_colonId_cell | right colon boundary (level-0) of a level-1 cell |
[in] | integer(i4), dimension(:) :: L0_cellId | cell ID at level-0 |
[in] | logical, dimension(:, :) :: mask0 | mask at Level 0 |
[in] | real(dp) :: nodata_value | no data value |
[in] | real(dp), dimension(:) :: L0_fineScale_data | high resolution data |
Definition at line 369 of file mo_upscaling_operators.f90.
References upscale_harmonic_mean().
Referenced by mo_mpr_smhorizons::mpr_smhorizons(), mo_mpr_pet::pet_correctbylai(), and upscale_harmonic_mean().
|
private |
aritmetic mean
upscaling of level-0 grid data to level-1 using aritmetic mean
[in] | integer(i4), dimension(:) :: nL0_cells_in_L1_cell | number of level-0 cells within a level-1 cell |
[in] | integer(i4), dimension(:) :: L1_upper_rowId_cell | upper row boundary (level-0) of a level-1 cell |
[in] | integer(i4), dimension(:) :: L1_lower_rowId_cell | lower row boundary (level-0) of a level-1 cell |
[in] | integer(i4), dimension(:) :: L1_left_colonId_cell | left colon boundary (level-0) of a level-1 cell |
[in] | integer(i4), dimension(:) :: L1_right_colonId_cell | right colon boundary (level-0) of a level-1 cell |
[in] | integer(i4), dimension(:) :: L0_cellId | cell ID at level-0 |
[in] | logical, dimension(:, :) :: mask0 | mask at level 0 |
[in] | real(dp) :: nodata_value | no data value |
[in] | real(dp) :: p_norm | p_norm value |
[in] | real(dp), dimension(:) :: L0_fineScale_data | high resolution data |
Definition at line 576 of file mo_upscaling_operators.f90.
References upscale_p_norm().
Referenced by upscale_p_norm().