EDTypesMod Module


  • Patch type structure **


  • Resources management type ** YX


  • Site type structure **



Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: maxPatchesPerSite = 14
integer, public, parameter :: maxPatchesPerSite_by_disttype(n_anthro_disturbance_categories) = (/10, 4/)

! MUST SUM TO maxPatchesPerSite !!!

integer, public, parameter :: maxCohortsPerPatch = 100
integer, public, parameter :: nclmax = 2
integer, public, parameter :: ican_upper = 1
integer, public, parameter :: ican_ustory = 2
integer, public, parameter :: nlevleaf = 30
integer, public, parameter :: maxpft = 15
integer, public, parameter :: max_nleafage = 4
integer, public, parameter :: n_rad_stream_types = 2
integer, public, parameter :: idirect = 1
integer, public, parameter :: idiffuse = 2
integer, public, parameter :: maxSWb = 2
integer, public, parameter :: ivis = 1
integer, public, parameter :: inir = 2
integer, public, parameter :: ipar = ivis
integer, public, parameter :: leaves_on = 2
integer, public, parameter :: leaves_off = 1
logical, public, parameter :: do_fates_salinity = .false.
real(kind=r8), public, parameter :: init_spread_near_bare_ground = 1.0_r8
real(kind=r8), public, parameter :: init_spread_inventory = 0.0_r8
real(kind=r8), public, parameter :: area = 10000.0_r8
real(kind=r8), public, parameter :: area_inv = 1.0e-4_r8
integer, public, parameter :: numWaterMem = 10
integer, public, parameter :: numlevsoil_max = 30
integer, public, parameter :: num_vegtemp_mem = 10
real(kind=r8), public, parameter :: dinc_ed = 1.0_r8
integer, public, parameter :: N_DIST_TYPES = 3
integer, public, parameter :: dtype_ifall = 1
integer, public, parameter :: dtype_ifire = 2
integer, public, parameter :: dtype_ilog = 3
integer, public, parameter :: phen_cstat_nevercold = 0
integer, public, parameter :: phen_cstat_iscold = 1
integer, public, parameter :: phen_cstat_notcold = 2
integer, public, parameter :: phen_dstat_timeoff = 0
integer, public, parameter :: phen_dstat_moistoff = 1
integer, public, parameter :: phen_dstat_moiston = 2
integer, public, parameter :: phen_dstat_timeon = 3
integer, public, parameter :: NFSC = NCWD+2
integer, public, parameter :: tw_sf = 1
integer, public, parameter :: lb_sf = 3
integer, public, parameter :: tr_sf = 4
integer, public, parameter :: dl_sf = 5
integer, public, parameter :: lg_sf = 6
real(kind=r8), public, parameter :: fire_threshold = 50.0_r8
real(kind=r8), public, parameter :: force_patchfuse_min_biomass = 0.005_r8
integer, public, parameter :: N_DBH_BINS = 6
real(kind=r8), public, parameter :: patchfusion_dbhbin_loweredges(N_DBH_BINS) = (/0._r8, 5._r8, 20._r8, 50._r8, 100._r8, 150._r8/)
real(kind=r8), public, parameter :: patch_fusion_tolerance_relaxation_increment = 1.1_r8
real(kind=r8), public, parameter :: max_age_of_second_oldest_patch = 200._r8
real(kind=r8), public, parameter :: HITEMAX = 30.0_r8
integer, public, parameter :: N_HITE_BINS = 60
real(kind=r8), public, parameter :: min_npm2 = 1.0E-7_r8
real(kind=r8), public, parameter :: min_patch_area = 0.01_r8
real(kind=r8), public, parameter :: min_patch_area_forced = 0.0001_r8
real(kind=r8), public, parameter :: min_nppatch = min_npm2*min_patch_area
real(kind=r8), public, parameter :: min_n_safemath = 1.0E-12_r8
logical, public, parameter :: homogenize_seed_pfts = .false.
integer, public :: num_elements
integer, public, allocatable :: element_list(:)
integer, public :: element_pos(num_organ_types)
  • COHORT type structure **


Derived Types

type, public ::  ed_cohort_type

Components

Type Visibility Attributes Name Initial
type(ed_cohort_type), public, pointer :: taller => null()
type(ed_cohort_type), public, pointer :: shorter => null()
type(ed_patch_type), public, pointer :: patchptr => null()
class(prt_vartypes), public, pointer :: prt
integer, public :: pft
real(kind=r8), public :: n
real(kind=r8), public :: dbh
real(kind=r8), public :: hite
integer, public :: indexnumber
real(kind=r8), public :: laimemory
integer, public :: canopy_layer
real(kind=r8), public :: canopy_layer_yesterday
real(kind=r8), public :: lai
real(kind=r8), public :: sai
real(kind=r8), public :: g_sb_laweight
real(kind=r8), public :: canopy_trim
real(kind=r8), public :: leaf_cost
real(kind=r8), public :: excl_weight
real(kind=r8), public :: prom_weight
integer, public :: nv
integer, public :: status_coh
real(kind=r8), public :: c_area
real(kind=r8), public :: treelai
real(kind=r8), public :: treesai
logical, public :: isnew
integer, public :: size_class
integer, public :: size_by_pft_class
integer, public :: size_class_lasttimestep
real(kind=r8), public :: gpp_tstep
real(kind=r8), public :: gpp_acc
real(kind=r8), public :: gpp_acc_hold
real(kind=r8), public :: npp_tstep
real(kind=r8), public :: npp_acc
real(kind=r8), public :: npp_acc_hold
real(kind=r8), public :: resp_tstep
real(kind=r8), public :: resp_acc
real(kind=r8), public :: resp_acc_hold
real(kind=r8), public :: c13disc_clm
real(kind=r8), public :: c13disc_acc
real(kind=r8), public :: vcmax25top
real(kind=r8), public :: jmax25top
real(kind=r8), public :: tpu25top
real(kind=r8), public :: kp25top
real(kind=r8), public :: ts_net_uptake(nlevleaf)
real(kind=r8), public :: year_net_uptake(nlevleaf)
real(kind=r8), public :: rdark
real(kind=r8), public :: resp_g
real(kind=r8), public :: resp_m
real(kind=r8), public :: livestem_mr
real(kind=r8), public :: livecroot_mr
real(kind=r8), public :: froot_mr
real(kind=r8), public :: dmort
real(kind=r8), public :: bmort
real(kind=r8), public :: cmort
real(kind=r8), public :: hmort
real(kind=r8), public :: frmort
real(kind=r8), public :: lmort_direct
real(kind=r8), public :: lmort_collateral
real(kind=r8), public :: lmort_infra
real(kind=r8), public :: l_degrad
real(kind=r8), public :: seed_prod
real(kind=r8), public :: dndt
real(kind=r8), public :: dhdt
real(kind=r8), public :: ddbhdt
real(kind=r8), public :: dbdeaddt
real(kind=r8), public :: fraction_crown_burned
real(kind=r8), public :: cambial_mort
real(kind=r8), public :: crownfire_mort
real(kind=r8), public :: fire_mort
type(ed_cohort_hydr_type), public, pointer :: co_hydr

type, public ::  ed_patch_type

Components

Type Visibility Attributes Name Initial
type(ed_cohort_type), public, pointer :: tallest => null()
type(ed_cohort_type), public, pointer :: shortest => null()
type(ed_patch_type), public, pointer :: older => null()
type(ed_patch_type), public, pointer :: younger => null()
integer, public :: patchno
real(kind=r8), public :: age
integer, public :: age_class
real(kind=r8), public :: area
integer, public :: countcohorts
integer, public :: ncl_p
integer, public :: anthro_disturbance_label
real(kind=r8), public :: age_since_anthro_disturbance
real(kind=r8), public :: pft_agb_profile(maxpft,n_dbh_bins)
real(kind=r8), public :: canopy_layer_tlai(nclmax)
real(kind=r8), public :: total_canopy_area
real(kind=r8), public :: total_tree_area
real(kind=r8), public :: zstar
real(kind=r8), public :: c_stomata
real(kind=r8), public :: c_lblayer
real(kind=r8), public :: tlai_profile(nclmax,maxpft,nlevleaf)
real(kind=r8), public :: elai_profile(nclmax,maxpft,nlevleaf)
real(kind=r8), public :: tsai_profile(nclmax,maxpft,nlevleaf)
real(kind=r8), public :: esai_profile(nclmax,maxpft,nlevleaf)
real(kind=r8), public :: layer_height_profile(nclmax,maxpft,nlevleaf)
real(kind=r8), public :: canopy_area_profile(nclmax,maxpft,nlevleaf)
integer, public :: canopy_mask(nclmax,maxpft)
integer, public :: nrad(nclmax,maxpft)
integer, public :: ncan(nclmax,maxpft)
logical, public :: solar_zenith_flag
real(kind=r8), public :: solar_zenith_angle
real(kind=r8), public :: gnd_alb_dif(maxSWb)
real(kind=r8), public :: gnd_alb_dir(maxSWb)
real(kind=r8), public :: fabd_sun_z(nclmax,maxpft,nlevleaf)
real(kind=r8), public :: fabd_sha_z(nclmax,maxpft,nlevleaf)
real(kind=r8), public :: fabi_sun_z(nclmax,maxpft,nlevleaf)
real(kind=r8), public :: fabi_sha_z(nclmax,maxpft,nlevleaf)
real(kind=r8), public :: ed_laisun_z(nclmax,maxpft,nlevleaf)
real(kind=r8), public :: ed_laisha_z(nclmax,maxpft,nlevleaf)
real(kind=r8), public :: ed_parsun_z(nclmax,maxpft,nlevleaf)
real(kind=r8), public :: ed_parsha_z(nclmax,maxpft,nlevleaf)
real(kind=r8), public :: f_sun(nclmax,maxpft,nlevleaf)
real(kind=r8), public :: nrmlzd_parprof_pft_dir_z(n_rad_stream_types,nclmax,maxpft,nlevleaf)
real(kind=r8), public :: nrmlzd_parprof_pft_dif_z(n_rad_stream_types,nclmax,maxpft,nlevleaf)
real(kind=r8), public :: nrmlzd_parprof_dir_z(n_rad_stream_types,nclmax,nlevleaf)
real(kind=r8), public :: nrmlzd_parprof_dif_z(n_rad_stream_types,nclmax,nlevleaf)
real(kind=r8), public :: parprof_pft_dir_z(nclmax,maxpft,nlevleaf)
real(kind=r8), public :: parprof_pft_dif_z(nclmax,maxpft,nlevleaf)
real(kind=r8), public :: parprof_dir_z(nclmax,nlevleaf)
real(kind=r8), public :: parprof_dif_z(nclmax,nlevleaf)
real(kind=r8), public, allocatable :: tr_soil_dir(:)
real(kind=r8), public, allocatable :: tr_soil_dif(:)
real(kind=r8), public, allocatable :: tr_soil_dir_dif(:)
real(kind=r8), public, allocatable :: fab(:)
real(kind=r8), public, allocatable :: fabd(:)
real(kind=r8), public, allocatable :: fabi(:)
real(kind=r8), public, allocatable :: sabs_dir(:)
real(kind=r8), public, allocatable :: sabs_dif(:)
real(kind=r8), public :: psn_z(nclmax,maxpft,nlevleaf)
real(kind=r8), public :: btran_ft(maxpft)
real(kind=r8), public :: bstress_sal_ft(maxpft)
real(kind=r8), public :: disturbance_rates(n_dist_types)
real(kind=r8), public :: disturbance_rate
integer, public :: disturbance_mode
real(kind=r8), public :: fract_ldist_not_harvested
type(litter_type), public, pointer :: litter(:)
real(kind=r8), public :: fragmentation_scaler
real(kind=r8), public :: repro(maxpft)
real(kind=r8), public :: sum_fuel
real(kind=r8), public :: fuel_frac(nfsc)
real(kind=r8), public :: livegrass
real(kind=r8), public :: fuel_bulkd
real(kind=r8), public :: fuel_sav
real(kind=r8), public :: fuel_mef
real(kind=r8), public :: fuel_eff_moist
real(kind=r8), public :: litter_moisture(nfsc)
real(kind=r8), public :: ros_front
real(kind=r8), public :: ros_back
real(kind=r8), public :: effect_wspeed
real(kind=r8), public :: tau_l
real(kind=r8), public :: fi
integer, public :: fire
real(kind=r8), public :: fd
real(kind=r8), public :: nf
real(kind=r8), public :: sh
real(kind=r8), public :: ab
real(kind=r8), public :: frac_burnt
real(kind=r8), public :: tfc_ros
real(kind=r8), public :: burnt_frac_litter(nfsc)

type, public ::  ed_resources_management_type

Components

Type Visibility Attributes Name Initial
real(kind=r8), public :: trunk_product_site
real(kind=r8), public :: delta_litter_stock
real(kind=r8), public :: delta_biomass_stock
real(kind=r8), public :: delta_individual

type, public ::  site_fluxdiags_type

Components

Type Visibility Attributes Name Initial
real(kind=r8), public :: cwd_ag_input(1:ncwd)
real(kind=r8), public :: cwd_bg_input(1:ncwd)
real(kind=r8), public, allocatable :: leaf_litter_input(:)
real(kind=r8), public, allocatable :: root_litter_input(:)

Type-Bound Procedures

procedure, public :: ZeroFluxDiags

type, public ::  site_massbal_type

Components

Type Visibility Attributes Name Initial
real(kind=r8), public :: old_stock
real(kind=r8), public :: err_fates
real(kind=r8), public :: gpp_acc
real(kind=r8), public :: aresp_acc
real(kind=r8), public :: net_root_uptake
real(kind=r8), public :: seed_in
real(kind=r8), public :: seed_out
real(kind=r8), public :: frag_out
real(kind=r8), public :: wood_product
real(kind=r8), public :: burn_flux_to_atm
real(kind=r8), public :: flux_generic_in
real(kind=r8), public :: flux_generic_out
real(kind=r8), public :: patch_resize_err

Type-Bound Procedures

procedure, public :: ZeroMassBalState
procedure, public :: ZeroMassBalFlux

type, public ::  ed_site_type

Components

Type Visibility Attributes Name Initial
type(ed_patch_type), public, pointer :: oldest_patch => null()
type(ed_patch_type), public, pointer :: youngest_patch => null()
type(ed_resources_management_type), public :: resources_management
real(kind=r8), public :: lat
real(kind=r8), public :: lon
type(site_massbal_type), public, pointer :: mass_balance(:)
type(site_fluxdiags_type), public, pointer :: flux_diags(:)
real(kind=r8), public :: grow_deg_days
integer, public :: cstatus
integer, public :: dstatus
integer, public :: nchilldays
integer, public :: ncolddays
real(kind=r8), public :: vegtemp_memory(num_vegtemp_mem)
integer, public :: cleafondate
integer, public :: cleafoffdate
integer, public :: dleafondate
integer, public :: dleafoffdate
real(kind=r8), public :: water_memory(numWaterMem)
real(kind=r8), public :: wind
real(kind=r8), public :: acc_ni
real(kind=r8), public :: fdi
real(kind=r8), public :: frac_burnt
type(ed_site_hydr_type), public, pointer :: si_hydr
integer, public :: nlevsoil
real(kind=r8), public, allocatable :: zi_soil(:)
real(kind=r8), public, allocatable :: dz_soil(:)
real(kind=r8), public, allocatable :: z_soil(:)
real(kind=r8), public, allocatable :: rootfrac_scr(:)
real(kind=r8), public, allocatable :: term_nindivs_canopy(:,:)
real(kind=r8), public, allocatable :: term_nindivs_ustory(:,:)
real(kind=r8), public :: term_carbonflux_canopy
real(kind=r8), public :: term_carbonflux_ustory
real(kind=r8), public :: demotion_carbonflux
real(kind=r8), public :: promotion_carbonflux
real(kind=r8), public :: imort_carbonflux
real(kind=r8), public :: fmort_carbonflux_canopy
real(kind=r8), public :: fmort_carbonflux_ustory
real(kind=r8), public :: recruitment_rate(1:maxpft)
real(kind=r8), public, allocatable :: demotion_rate(:)
real(kind=r8), public, allocatable :: promotion_rate(:)
real(kind=r8), public, allocatable :: imort_rate(:,:)
real(kind=r8), public, allocatable :: fmort_rate_canopy(:,:)
real(kind=r8), public, allocatable :: fmort_rate_ustory(:,:)
real(kind=r8), public, allocatable :: fmort_rate_cambial(:,:)
real(kind=r8), public, allocatable :: fmort_rate_crown(:,:)
real(kind=r8), public, allocatable :: growthflux_fusion(:,:)
real(kind=r8), public :: spread

Subroutines

public subroutine val_check_ed_vars(currentPatch, var_aliases, return_code)

Arguments

Type IntentOptional Attributes Name
type(ed_patch_type), intent(in), target :: currentPatch
character(len=*), intent(in) :: var_aliases
integer, intent(out) :: return_code

public subroutine dump_site(csite)

Arguments

Type IntentOptional Attributes Name
type(ed_site_type), intent(in), target :: csite

public subroutine dump_patch(cpatch)

Arguments

Type IntentOptional Attributes Name
type(ed_patch_type), intent(in), target :: cpatch

public subroutine dump_cohort(ccohort)

Arguments

Type IntentOptional Attributes Name
type(ed_cohort_type), intent(in), target :: ccohort

public subroutine dump_cohort_hydr(ccohort)

Arguments

Type IntentOptional Attributes Name
type(ed_cohort_type), intent(in), target :: ccohort