next up previous contents
Next: perturbIC Up: Fortran: Module Interface mkarbinitMod Previous: Fortran: Module Interface mkarbinitMod   Contents

mkarbinit


INTERFACE:

   subroutine mkarbinit()
DESCRIPTION:

Initializes the following time varying variables: water : h2osno, h2ocan, h2osoi_liq, h2osoi_ice, h2osoi_vol snow : snowdp, snl, dz, z, zi temperature: t_soisno, t_veg, t_grnd


USES:

     use shr_const_mod, only : SHR_CONST_TKFRZ
     use clmtype
     use clm_varpar   , only : nlevsoi, nlevgrnd, nlevsno, nlevlak, nlevurb
     use clm_varcon   , only : bdsno, istice, istwet, istsoil, isturb, &
                               denice, denh2o, spval, sb, icol_road_perv, &
                               icol_road_imperv, icol_roof, icol_sunwall, &
                               icol_shadewall
     use clm_varcon   , only : istcrop
     use clm_varcon   , only : istice_mec, h2osno_max
     use clm_varctl   , only : iulog, pertlim
     use spmdMod      , only : masterproc
     use decompMod    , only : get_proc_bounds
     use SNICARMod    , only : snw_rds_min
ARGUMENTS:
     implicit none
CALLED FROM:
   subroutine initialize in module initializeMod
REVISION HISTORY:
   Created by Mariana Vertenstein
   3/07/08 Keith Oleson: initialize h2osoi_vol for all soil layers to 0.3
   3/18/08 David Lawrence, initialize deep layers
   03/28/08 Mark Flanner, initialize snow aerosols and grain size
LOCAL VARIABLES:
   local pointers to implicit in arguments
     integer , pointer :: pcolumn(:)        ! column index associated with each pft
     integer , pointer :: ctype(:)          ! column type
     integer , pointer :: clandunit(:)      ! landunit index associated with each column
     integer , pointer :: ltype(:)          ! landunit type
     logical , pointer :: lakpoi(:)         ! true => landunit is a lake point
     integer , pointer :: plandunit(:)      ! landunit index associated with each pft
     logical , pointer :: urbpoi(:)         ! true => landunit is an urban point
     logical , pointer :: ifspecial(:)      ! true => landunit is not vegetated
     real(r8), pointer :: dz(:,:)           ! layer thickness depth (m)
     real(r8), pointer :: watsat(:,:)       ! volumetric soil water at saturation (porosity) (nlevgrnd)
     real(r8), pointer :: h2osoi_ice(:,:)   ! ice lens (kg/m2)
     real(r8), pointer :: h2osoi_liq(:,:)   ! liquid water (kg/m2)
     real(r8), pointer :: bsw2(:,:)         ! Clapp and Hornberger "b" for CN code
     real(r8), pointer :: psisat(:,:)       ! soil water potential at saturation for CN code (MPa)
     real(r8), pointer :: vwcsat(:,:)       ! volumetric water content at saturation for CN code (m3/m3)
     real(r8), pointer :: zi(:,:)           ! interface level below a "z" level (m)
     real(r8), pointer :: wa(:)             ! water in the unconfined aquifer (mm)
     real(r8), pointer :: wt(:)             ! total water storage (unsaturated soil water + groundwater) (mm)
     real(r8), pointer :: zwt(:)            ! water table depth (m)
   local pointers to implicit out arguments
     integer , pointer :: snl(:)             ! number of snow layers
     real(r8), pointer :: t_soisno(:,:)      ! soil temperature (Kelvin)  (-nlevsno+1:nlevgrnd)
     real(r8), pointer :: t_lake(:,:)        ! lake temperature (Kelvin)  (1:nlevlak)
     real(r8), pointer :: t_grnd(:)          ! ground temperature (Kelvin)
     real(r8), pointer :: t_veg(:)           ! vegetation temperature (Kelvin)
     real(r8), pointer :: t_ref2m(:)         ! 2 m height surface air temperature (Kelvin)
     real(r8), pointer :: t_ref2m_u(:)       ! Urban 2 m height surface air temperature (Kelvin)
     real(r8), pointer :: t_ref2m_r(:)       ! Rural 2 m height surface air temperature (Kelvin)
     real(r8), pointer :: h2osoi_vol(:,:)    ! volumetric soil water (0<=h2osoi_vol<=watsat) [m3/m3]
     real(r8), pointer :: h2ocan_col(:)      ! canopy water (mm H2O) (column-level)
     real(r8), pointer :: h2ocan_pft(:)      ! canopy water (mm H2O) (pft-level)
     real(r8), pointer :: h2osno(:)          ! snow water (mm H2O)
     real(r8), pointer :: snowdp(:)          ! snow height (m)
     real(r8), pointer :: qflx_irrig(:)      ! irrigation flux (mm H2O/s)
     real(r8), pointer :: eflx_lwrad_out(:)  ! emitted infrared (longwave) radiation (W/m**2)
     real(r8), pointer :: soilpsi(:,:)       ! soil water potential in each soil layer (MPa)
     real(r8), pointer :: snw_rds(:,:)       ! effective snow grain radius (col,lyr) [microns, m^-6]
     real(r8), pointer :: snw_rds_top(:)     ! snow grain size, top (col) [microns]
     real(r8), pointer :: sno_liq_top(:)     ! liquid water fraction (mass) in top snow layer (col) [frc]
     real(r8), pointer :: mss_bcpho(:,:)     ! mass of hydrophobic BC in snow (col,lyr) [kg]
     real(r8), pointer :: mss_bcphi(:,:)     ! mass of hydrophillic BC in snow (col,lyr) [kg]
     real(r8), pointer :: mss_bctot(:,:)     ! total mass of BC (pho+phi) (col,lyr) [kg]
     real(r8), pointer :: mss_bc_col(:)      ! total mass of BC in snow column (col) [kg]
     real(r8), pointer :: mss_bc_top(:)      ! total mass of BC in top snow layer (col) [kg]
     real(r8), pointer :: mss_cnc_bcphi(:,:) ! mass concentration of BC species 1 (col,lyr) [kg/kg]
     real(r8), pointer :: mss_cnc_bcpho(:,:) ! mass concentration of BC species 2 (col,lyr) [kg/kg]
     real(r8), pointer :: mss_ocpho(:,:)     ! mass of hydrophobic OC in snow (col,lyr) [kg]
     real(r8), pointer :: mss_ocphi(:,:)     ! mass of hydrophillic OC in snow (col,lyr) [kg]
     real(r8), pointer :: mss_octot(:,:)     ! total mass of OC (pho+phi) (col,lyr) [kg]
     real(r8), pointer :: mss_oc_col(:)      ! total mass of OC in snow column (col) [kg]
     real(r8), pointer :: mss_oc_top(:)      ! total mass of OC in top snow layer (col) [kg]
     real(r8), pointer :: mss_cnc_ocphi(:,:) ! mass concentration of OC species 1 (col,lyr) [kg/kg]
     real(r8), pointer :: mss_cnc_ocpho(:,:) ! mass concentration of OC species 2 (col,lyr) [kg/kg]
     real(r8), pointer :: mss_dst1(:,:)      ! mass of dust species 1 in snow (col,lyr) [kg]
     real(r8), pointer :: mss_dst2(:,:)      ! mass of dust species 2 in snow (col,lyr) [kg]
     real(r8), pointer :: mss_dst3(:,:)      ! mass of dust species 3 in snow (col,lyr) [kg]
     real(r8), pointer :: mss_dst4(:,:)      ! mass of dust species 4 in snow (col,lyr) [kg]
     real(r8), pointer :: mss_dsttot(:,:)    ! total mass of dust in snow (col,lyr) [kg]
     real(r8), pointer :: mss_dst_col(:)     ! total mass of dust in snow column (col) [kg]
     real(r8), pointer :: mss_dst_top(:)     ! total mass of dust in top snow layer (col) [kg]
     real(r8), pointer :: mss_cnc_dst1(:,:)  ! mass concentration of dust species 1 (col,lyr) [kg/kg]
     real(r8), pointer :: mss_cnc_dst2(:,:)  ! mass concentration of dust species 2 (col,lyr) [kg/kg]
     real(r8), pointer :: mss_cnc_dst3(:,:)  ! mass concentration of dust species 3 (col,lyr) [kg/kg]
     real(r8), pointer :: mss_cnc_dst4(:,:)  ! mass concentration of dust species 4 (col,lyr) [kg/kg]
     real(r8), pointer :: irrig_rate(:)         ! current irrigation rate [mm/s]
     integer,  pointer :: n_irrig_steps_left(:) ! number of time steps for which we still need to irrigate today (if 0, ignore irrig_rate)
 
   !OTHER LOCAL VARIABLES:



Erik Kluzek 2011-06-15