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 |