Contains land properties namelist variables and procedures relating to the properties of the land.
mpp_domains_mod
time_manager_mod
mpp_io_mod
fms_mod
constants_mod
horiz_interp_mod
climap_albedo_mod
diag_manager_mod
topography_mod
subroutine land_properties_init ( &
lonb, latb, land, time, domain, &
glacier, &
lake, &
rough_momentum, &
rough_heat, &
rough_scale, & ! topographic roughness for drag scaling
soil_therm_con, &
soil_therm_cap, &
veg_rs_min, &
max_water, &
tau_groundwater, &
max_snow_out, &
cover_type, &
id_lon, id_lat )
real, intent(in) :: lonb(:), latb(:) ! boundaries of the cells,
! radian
logical, intent(in) :: land(:,:,:) ! land mask
type(time_type), intent(in) :: time ! current time
type(domain2d), intent(in) :: domain ! our domain
logical, intent(out), dimension(:,:,:) :: glacier, lake ! glacier, lake masks
real , intent(out), dimension(:,:,:) :: &
rough_momentum, & ! roughness length for momentum
rough_heat, &
rough_scale, &
veg_rs_min, &
max_water, &
tau_groundwater ! groundwater residence time
real , intent(out), dimension(:,:,:,:) :: &
soil_therm_con, &
soil_therm_cap
real , intent(out) :: max_snow_out
integer, intent(out), dimension(:,:,:) :: cover_type
integer, intent(in) :: id_lon, id_lat ! ids of diagnostic axes
call land_properties_init (lonb, latb, land, time, domain, & glacier, lake, rough_momentum, rough_heat, soil_therm_con, & soil_therm_cap, veg_rs_min, max_water, tau_groundwater, max_snow_out, & id_lon, id_lat )
subroutine update_land_properties_slow ( &
lonb, latb, land, time, domain, &
glacier, &
lake, &
rough_momentum, &
rough_heat, &
rough_scale, & ! topographic roughness for drag scaling
soil_therm_con, &
soil_therm_cap, &
veg_rs_min, &
max_water, &
tau_groundwater, &
max_snow_out, &
cover_type )
real, intent(in) :: lonb(:), latb(:) ! boundaries of the cells,
! radian
logical, intent(in) :: land(:,:,:) ! land mask
type(time_type), intent(in) :: time ! current time
type(domain2d), intent(in) :: domain ! our domain
logical, intent(out), dimension(:,:,:) :: glacier ! glacier mask
logical, intent(out), dimension(:,:,:) :: lake ! lake mask
real , intent(out), dimension(:,:,:) :: &
rough_momentum, & ! roughness length for momentum
rough_heat, &
rough_scale, &
veg_rs_min, &
max_water, &
tau_groundwater ! groundwater residence time
real , intent(out), dimension(:,:,:,:) :: &
soil_therm_con, &
soil_therm_cap
real , intent(out) :: max_snow_out
integer, intent(inout), dimension(:,:,:) :: cover_type
subroutine update_land_properties_fast (snowmass, t_sfc, land, albedo, cover_type) !----------------------------------------------------------------------- ! ! INPUT ! snowmass = mass of snow on the ground (in kg/(m**2)) ! t_sfc = surface temperature (in degrees kelvin) ! land = logical land mask ! ! OUTPUT ! albedo = surface albedo real, intent(in), dimension(:,:,:) :: snowmass, t_sfc logical, intent(in) , dimension(:,:,:) :: land real, intent(out), dimension(:,:,:) :: albedo integer, intent(in), dimension(:,:,:) :: cover_type !-----------------------------------------------------------------------
call update_land_properties_fast (snowmass, t_sfc, land, albedo)
subroutine regrid_discrete_field (data_in, wb_in, sb_in, dlon_in, dlat_in, &
lon_out, lat_out, ntype, &
mask_out, data_out, mask_in)
!-----------------------------------------------------------------------
! input:
! -----
! data_in input data; dimensioned by mdim x ndim
! stored from south to north
! wb_in longitude corresponding to western boundary of box i=1
! sb_in latitude corresponding to southern boundary of box j=1
! dlon_in x axis grid spacing in degrees of longitude
! dlat_in y axis grid spacing in degrees of latitude
!
! lon_out longitudes of output data at grid box boundaries
! dimensioned by size(data_out,1)+1
! lat_out latitudes of output data at grid box boundaries
! dimensioned by size(data_out,2)+1
! ntype number of land cover types specified
! mask_out output mask that specifies where the data are defined
!
! output:
! ------
! data_out output number of land cover type
!
! optional
! --------
! mask_in input mask; =0.0 for data points that should not
! be used or have no data; has the same size as data_in
!
!-----------------------------------------------------------------------
integer, intent(in) :: ntype
integer, intent(in) :: data_in(:,:)
real, intent(in) :: sb_in,wb_in, dlat_in, dlon_in
real, intent(in) :: lon_out(:), lat_out(:)
logical, intent(in) :: mask_out(:,:)
integer, intent(out) :: data_out(:,:)
real, intent(in), optional :: mask_in(:,:)
call regrid_discrete_field (data_in, wb_in, sb_in, dlon_in, dlat_in, & lon_out, lat_out, ntype, mask_out, data_out, mask_in)
subroutine typemax(data,area,facis,facie,facjs,facje,ntype,ntypemax,enlarge)
integer, intent(in) :: data(:,:)
real, intent(in) :: facis,facie,facjs,facje
real, intent(in) :: area(:,:)
integer, intent(in) :: ntype
integer, intent(out) :: ntypemax ! number of land cover type to be assigned
! to the entire grid cell;
logical, intent(inout) :: enlarge ! says if it's necessary to repeat the
! process for a larger area
call typemax (data,area,facis,facie,facjs,facje,ntype,ntypemax,enlarge)
subroutine init_land_properties_diag (id_lon, id_lat, Time) integer, intent(in) :: id_lon ! ID of land longitude (X) axis integer, intent(in) :: id_lat ! ID of land longitude (X) axis type(time_type), intent(in) :: Time ! current time
call init_land_properties_diag (id_lon, id_lat, Time)
subroutine diag_static ( Time,mask ) type(time_type), intent(in) :: Time logical, intent(in) :: mask(:,:,:)
call diag_static ( Time,mask )
subroutine land_properties_end()
call land_properties_end ()
Diagnostic fields for module name identifier:
field name |
field description (units) |
From module land_properties_mod:! the following namelist vectors contain properties indexed by cover (veg) type: ! 0 ocean ! 1 (BE) broadleaf evergreen trees ! 2 (BD) broadleaf deciduous trees ! 3 (BN) broadleaf/needleleaf trees ! 4 (NE) needleleaf evergreen trees ! 5 (ND) needleleaf deciduous trees ! 6 (G) grassland ! 7 (D) desert ! 8 (T) tundra ! 9 (A) agriculture ! 10 (I) ice ! 11 (L) lake ! 12 (TV) tuned global vegetation ! 13 (SV) Manabe Climate Model-like vegetation ! 14 (SI) Manabe Climate Model-like ice/glacier ! veg_rs_min_vec minimum bulk stomatal resistance s/m ! veg_zeta_vec depth scale of root distribution m ! veg_root_mass_vec root biomass areal density kg/m**2 ! rough_momentum_vec roughness length for momentum m ! k_over_B_vec ln (z_0_momentum / z_0_scalar) - ! crit_snowmass_vec snow amount that half hides surface kg/m**3 ! min_nosnow_alb_vec snow-free albedo at freezing point - ! max_nosnow_alb_vec snow-free albedo at t_range below freezing - ! min_snow_alb_vec snow albedo at freezing point - ! max_snow_alb_vec snow albedo at t_range below freezing - real, dimension(n_dim_cover_types) :: & ! BE BD BN NE ND G D T A I L TV SV SI veg_rs_min_vec =(/ 43.6, 131., 87.1, 69.7, 218., 56.6, .01, 170., 56.6, .01, .01, 67., .01, .01/),& veg_zeta_vec =(/ .26, .29, .35, .17, .17, .26, .35, .11, .25, 0.0, 1.0, .35, .35, 0.0/),& veg_root_mass_vec =(/ 4.9, 4.2, 4.3, 2.9, 2.9, 1.4, .762, 1.2, .15, 0.0, 1.0, .362, .762, 0.0/),& rough_momentum_vec=(/ 2.65, .90, 1.2, .90, .80, .07, .01, .07, .40, .01, 1.4e-4, 1.0, .045, .045/),& k_over_B_vec =(/ 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 0.25, 2., 0., 0. /),& crit_snowmass_vec =(/ 60., 10., 25., 40., 40., 5., 5., 5., 5., 5., 5., 100., 5., 5. /),& min_nosnow_alb_vec=(/0.149, 0.130, 0.132, 0.126, 0.143, 0.182, 0.333, 0.139, 0.160, 0.650, 0.06, 0.12, 999., 0.55/),& max_nosnow_alb_vec=(/0.149, 0.130, 0.132, 0.126, 0.143, 0.182, 0.333, 0.139, 0.160, 0.800, 0.06, 0.12, 999., 0.65/),& min_snow_alb_vec =(/0.650, 0.650, 0.650, 0.650, 0.650, 0.650, 0.650, 0.650, 0.650, 0.650, 0.06, 0.450, 0.450, 0.650/),& max_snow_alb_vec =(/0.800, 0.800, 0.800, 0.800, 0.800, 0.800, 0.800, 0.800, 0.800, 0.800, 0.06, 0.600, 0.600, 0.800/) ! BE BD BN NE ND G D T A I L TV SV SI ! the following vectors contain properties indexed by ground (soil) type: ! 0 ocean ! 1 (C) coarse soil ! 2 (M) medium soil ! 3 (F) fine soil ! 4 (CM) coarse/medium mix ! 5 (CF) coarse/fine mix ! 6 (MF) medium/fine mix ! 7 (CMF) coarse/medium/fine mix ! 8 (P) organic soil (peat) ! 9 (I) ice ! 10 (L) lake ! 11 (MCM) Manabe Climate Model ! soil_awc_vec available water capacity kg/m**3 ! soil_therm_cap_vec volumetric heat capacity J/(K m**3) ! soil_therm_dif_vec thermal diffusivity m**2/s real, dimension(n_dim_ground_types) :: & ! C M F CM CF MF CMF P I L MCM soil_awc_vec = & (/ 63., 132., 109., 98., 86., 120., 101., 445., 1000., 1000., 150./),& soil_therm_cap_vec= & (/ 1.8e6, 2.0e6, 2.6e6, 1.9e6, 2.2e6, 2.3e6, 2.1e6, 3.0e6, 1.6e6, 8.4e7, 1.0/),& soil_therm_dif_vec=& (/8.3e-7,4.0e-7,5.2e-7,6.2e-7,6.8e-7,4.6e-7,5.8e-7,1.3e-7,1.1e-6, 1.0, 2.0e-7/) ! C M F CM CF MF CMF P I L MCM |