next up previous contents
Next: Fortran: Module Interface CNDVEcosystemDyniniMod Up: Fortran: Module Interface CNDecompMod Previous: Fortran: Module Interface CNDecompMod   Contents

CNDecompAlloc


INTERFACE:

 subroutine CNDecompAlloc (lbp, ubp, lbc, ubc, num_soilc, filter_soilc, &
    num_soilp, filter_soilp, num_pcropp)
DESCRIPTION:


USES:

    use clmtype
    use CNAllocationMod , only: CNAllocation
    use clm_time_manager, only: get_step_size
    use pft2colMod      , only: p2c
    use clm_varcon      , only: secspday
ARGUMENTS:
    implicit none
    integer, intent(in) :: lbp, ubp        ! pft-index bounds
    integer, intent(in) :: lbc, ubc        ! column-index bounds
    integer, intent(in) :: num_soilc       ! number of soil columns in filter
    integer, intent(in) :: filter_soilc(:) ! filter for soil columns
    integer, intent(in) :: num_soilp       ! number of soil pfts in filter
    integer, intent(in) :: filter_soilp(:) ! filter for soil pfts
    integer, intent(in) :: num_pcropp      ! number of pfts in prognostic crop filter
CALLED FROM:
   subroutine CNEcosystemDyn in module CNEcosystemDynMod.F90
REVISION HISTORY:
   8/15/03: Created by Peter Thornton
LOCAL VARIABLES:
   local pointers to implicit in scalars
    ! column level
    real(r8), pointer :: t_soisno(:,:)    ! soil temperature (Kelvin)  (-nlevsno+1:nlevgrnd)
    real(r8), pointer :: psisat(:,:)      ! soil water potential at saturation for CN code (MPa)
    real(r8), pointer :: soilpsi(:,:)     ! soil water potential in each soil layer (MPa)
    real(r8), pointer :: dz(:,:)          ! soil layer thickness (m)
    real(r8), pointer :: cwdc(:)          ! (gC/m2) coarse woody debris C
    real(r8), pointer :: litr1c(:)        ! (gC/m2) litter labile C
    real(r8), pointer :: litr2c(:)        ! (gC/m2) litter cellulose C
    real(r8), pointer :: litr3c(:)        ! (gC/m2) litter lignin C
    real(r8), pointer :: soil1c(:)        ! (gC/m2) soil organic matter C (fast pool)
    real(r8), pointer :: soil2c(:)        ! (gC/m2) soil organic matter C (medium pool)
    real(r8), pointer :: soil3c(:)        ! (gC/m2) soil organic matter C (slow pool)
    real(r8), pointer :: soil4c(:)        ! (gC/m2) soil organic matter C (slowest pool)
    real(r8), pointer :: cwdn(:)          ! (gN/m2) coarse woody debris N
    real(r8), pointer :: litr1n(:)        ! (gN/m2) litter labile N
    real(r8), pointer :: litr2n(:)        ! (gN/m2) litter cellulose N
    real(r8), pointer :: litr3n(:)        ! (gN/m2) litter lignin N
    integer, pointer :: clandunit(:)      ! index into landunit level quantities
    integer , pointer :: itypelun(:)      ! landunit type
    ! pft level
    real(r8), pointer :: rootfr(:,:)      ! fraction of roots in each soil layer  (nlevgrnd)
   local pointers to implicit in/out scalars
    real(r8), pointer :: fpi(:)           ! fraction of potential immobilization (no units)
    real(r8), pointer :: cwdc_to_litr2c(:)
    real(r8), pointer :: cwdc_to_litr3c(:)
    real(r8), pointer :: litr1_hr(:)
    real(r8), pointer :: litr1c_to_soil1c(:)
    real(r8), pointer :: litr2_hr(:)
    real(r8), pointer :: litr2c_to_soil2c(:)
    real(r8), pointer :: litr3_hr(:)
    real(r8), pointer :: litr3c_to_soil3c(:)
    real(r8), pointer :: soil1_hr(:)
    real(r8), pointer :: soil1c_to_soil2c(:)
    real(r8), pointer :: soil2_hr(:)
    real(r8), pointer :: soil2c_to_soil3c(:)
    real(r8), pointer :: soil3_hr(:)
    real(r8), pointer :: soil3c_to_soil4c(:)
    real(r8), pointer :: soil4_hr(:)
    real(r8), pointer :: cwdn_to_litr2n(:)
    real(r8), pointer :: cwdn_to_litr3n(:)
    real(r8), pointer :: potential_immob(:)
    real(r8), pointer :: litr1n_to_soil1n(:)
    real(r8), pointer :: sminn_to_soil1n_l1(:)
    real(r8), pointer :: litr2n_to_soil2n(:)
    real(r8), pointer :: sminn_to_soil2n_l2(:)
    real(r8), pointer :: litr3n_to_soil3n(:)
    real(r8), pointer :: sminn_to_soil3n_l3(:)
    real(r8), pointer :: soil1n_to_soil2n(:)
    real(r8), pointer :: sminn_to_soil2n_s1(:)
    real(r8), pointer :: soil2n_to_soil3n(:)
    real(r8), pointer :: sminn_to_soil3n_s2(:)
    real(r8), pointer :: soil3n_to_soil4n(:)
    real(r8), pointer :: sminn_to_soil4n_s3(:)
    real(r8), pointer :: soil4n_to_sminn(:)
    real(r8), pointer :: sminn_to_denit_l1s1(:)
    real(r8), pointer :: sminn_to_denit_l2s2(:)
    real(r8), pointer :: sminn_to_denit_l3s3(:)
    real(r8), pointer :: sminn_to_denit_s1s2(:)
    real(r8), pointer :: sminn_to_denit_s2s3(:)
    real(r8), pointer :: sminn_to_denit_s3s4(:)
    real(r8), pointer :: sminn_to_denit_s4(:)
    real(r8), pointer :: sminn_to_denit_excess(:)
    real(r8), pointer :: gross_nmin(:)
    real(r8), pointer :: net_nmin(:)
   local pointers to implicit out scalars
   !OTHER LOCAL VARIABLES:
    integer :: c,j          !indices
    integer :: fc           !lake filter column index
    real(r8):: dt           !decomp timestep (seconds)
    real(r8):: dtd          !decomp timestep (days)
    real(r8), pointer:: fr(:,:)   !column-level rooting fraction by soil depth
    real(r8):: frw(lbc:ubc)          !rooting fraction weight
    real(r8):: t_scalar(lbc:ubc)     !soil temperature scalar for decomp
    real(r8):: minpsi, maxpsi        !limits for soil water scalar for decomp
    real(r8):: psi                   !temporary soilpsi for water scalar
    real(r8):: w_scalar(lbc:ubc)     !soil water scalar for decomp
    real(r8):: rate_scalar  !combined rate scalar for decomp
    real(r8):: cn_l1(lbc:ubc)        !C:N for litter 1
    real(r8):: cn_l2(lbc:ubc)        !C:N for litter 2
    real(r8):: cn_l3(lbc:ubc)        !C:N for litter 3
    real(r8):: cn_s1        !C:N for SOM 1
    real(r8):: cn_s2        !C:N for SOM 2
    real(r8):: cn_s3        !C:N for SOM 3
    real(r8):: cn_s4        !C:N for SOM 4
    real(r8):: rf_l1s1      !respiration fraction litter 1 -> SOM 1
    real(r8):: rf_l2s2      !respiration fraction litter 2 -> SOM 2
    real(r8):: rf_l3s3      !respiration fraction litter 3 -> SOM 3
    real(r8):: rf_s1s2      !respiration fraction SOM 1 -> SOM 2
    real(r8):: rf_s2s3      !respiration fraction SOM 2 -> SOM 3
    real(r8):: rf_s3s4      !respiration fraction SOM 3 -> SOM 4
    real(r8):: k_l1         !decomposition rate constant litter 1
    real(r8):: k_l2         !decomposition rate constant litter 2
    real(r8):: k_l3         !decomposition rate constant litter 3
    real(r8):: k_s1         !decomposition rate constant SOM 1
    real(r8):: k_s2         !decomposition rate constant SOM 2
    real(r8):: k_s3         !decomposition rate constant SOM 3
    real(r8):: k_s4         !decomposition rate constant SOM 3
    real(r8):: k_frag       !fragmentation rate constant CWD
    real(r8):: ck_l1        !corrected decomposition rate constant litter 1
    real(r8):: ck_l2        !corrected decomposition rate constant litter 2
    real(r8):: ck_l3        !corrected decomposition rate constant litter 3
    real(r8):: ck_s1        !corrected decomposition rate constant SOM 1
    real(r8):: ck_s2        !corrected decomposition rate constant SOM 2
    real(r8):: ck_s3        !corrected decomposition rate constant SOM 3
    real(r8):: ck_s4        !corrected decomposition rate constant SOM 3
    real(r8):: ck_frag      !corrected fragmentation rate constant CWD
    real(r8):: cwd_fcel     !cellulose fraction of coarse woody debris
    real(r8):: cwd_flig     !lignin fraction of coarse woody debris
    real(r8):: cwdc_loss    !fragmentation rate for CWD carbon (gC/m2/s)
    real(r8):: cwdn_loss    !fragmentation rate for CWD nitrogen (gN/m2/s)
    real(r8):: plitr1c_loss(lbc:ubc) !potential C loss from litter 1
    real(r8):: plitr2c_loss(lbc:ubc) !potential C loss from litter 2
    real(r8):: plitr3c_loss(lbc:ubc) !potential C loss from litter 3
    real(r8):: psoil1c_loss(lbc:ubc) !potential C loss from SOM 1
    real(r8):: psoil2c_loss(lbc:ubc) !potential C loss from SOM 2
    real(r8):: psoil3c_loss(lbc:ubc) !potential C loss from SOM 3
    real(r8):: psoil4c_loss(lbc:ubc) !potential C loss from SOM 4
    real(r8):: pmnf_l1s1(lbc:ubc)    !potential mineral N flux, litter 1 -> SOM 1
    real(r8):: pmnf_l2s2(lbc:ubc)    !potential mineral N flux, litter 2 -> SOM 2
    real(r8):: pmnf_l3s3(lbc:ubc)    !potential mineral N flux, litter 3 -> SOM 3
    real(r8):: pmnf_s1s2(lbc:ubc)    !potential mineral N flux, SOM 1 -> SOM 2
    real(r8):: pmnf_s2s3(lbc:ubc)    !potential mineral N flux, SOM 2 -> SOM 3
    real(r8):: pmnf_s3s4(lbc:ubc)    !potential mineral N flux, SOM 3 -> SOM 4
    real(r8):: pmnf_s4(lbc:ubc)      !potential mineral N flux, SOM 4
    real(r8):: immob(lbc:ubc)        !potential N immobilization
    real(r8):: ratio        !temporary variable
    real(r8):: dnp          !denitrification proportion
    integer :: nlevdecomp ! bottom layer to consider for decomp controls
    real(r8):: spinup_scalar         !multiplier for AD_SPINUP algorithm



Erik Kluzek 2011-06-15