next up previous contents
Next: casa_write_cpool Up: Fortran: Module Interface CASAMod Previous: Fortran: Module Interface CASAMod   Contents

initCASA


INTERFACE:

   subroutine initCASA()
DESCRIPTION:

Initialize the CASA submodel.


USES:

     use fileutils    , only : getfil
     use shr_const_mod, only : SHR_CONST_CDAY
     use decompMod    , only : get_proc_bounds, get_proc_global
     use clm_varctl   , only : nsrest, nsrStartup, nsrContinue
     use clm_varpar   , only : lsmlon, lsmlat, max_pft_per_gcell
     use spmdMod      , only : masterproc
     use clm_time_manager , only : get_step_size
     use pftvarcon    , only : noveg, nc3_nonarctic_grass, nc3crop, nirrig
     use ncdio_pio
ARGUMENTS:
     implicit none
LOCAL VARIABLES:
     real(r8), parameter :: plai_min_ic = 0.8_r8 ! init plai => Dickinson value
     real(r8), parameter :: secpy = 365._r8*SHR_CONST_CDAY ! no of secs/yr 
 
     ! local variables
 
     integer :: g,c,i,j,l,m,n,p,pi ! indices
     character(len=256) :: locfn   ! local file name
     type(file_desc_t)  :: ncid    ! netCDF file id
     integer :: varid         ! netCDF variable id
     integer :: begp, endp    ! per-proc beginning and ending pft indices
     integer :: begc, endc    ! per-proc beginning and ending column indices
     integer :: begl, endl    ! per-proc beginning and ending landunit indices
     integer :: begg, endg    ! per-proc gridcell ending gridcell indices
     integer :: numg          ! total number of gridcells across all processors
     integer :: numl          ! total number of landunits across all processors
     integer :: numc          ! total number of columns across all processors
     integer :: nump          ! total number of pfts across all processors
     logical :: readvar       ! is variable on file
     integer :: ier, ret      ! error return code
 
     real(r8) dtime           ! land model time step (sec)
     real(r8) lnscl
     real(r8) hardwire_sla(0:numpft)
     real(r8), pointer :: sumwts(:)
     real(r8), pointer :: vege_wts(:)
     real(r8), pointer :: wood_wts(:)
     real(r8), pointer :: vege_scale(:)
     real(r8), pointer :: wood_scale(:)
     real(r8), pointer :: rloc(:)
 
     ! pointers
 
     integer , pointer :: pgridcell(:) ! gridcell index of corresponding pft
     integer , pointer :: pcolumn(:)   ! pft's column
     integer , pointer :: plandunit(:) ! landunit index associated with pft
     integer , pointer :: npfts(:)     ! number of pfts on gridcell
     integer , pointer :: pfti(:)      ! initial pft on gridcell
     integer , pointer :: ltype(:)     ! landunit type for corresponding pft
     integer , pointer :: ivt(:)       ! pft vegetation type
     real(r8), pointer :: wtgcell(:)   ! pft weight relative to gridcell
     real(r8), pointer :: XSCpool(:)
     real(r8), pointer :: eff(:,:)
     real(r8), pointer :: frac_donor(:,:)
     real(r8), pointer :: Tpool_C(:,:) ! Total C pool size
     real(r8), pointer :: plai(:)      ! prognostic LAI (m2 leaf/m2 ground)
     real(r8), pointer :: sandfrac(:)
     real(r8), pointer :: clayfrac(:)
     real(r8), pointer :: co2flux(:)   ! net CO2 flux (gC/m2/s) [+ = to atm]
     real(r8), pointer :: fnpp(:)      ! NPP (gC/m2/sec)
     real(r8), pointer :: Resp_C(:,:)  ! could dimension by ndead, but caution!!!
     real(r8), pointer :: Cflux(:)
     real(r8), pointer :: watopt(:)    !optimal soil water content for et for top 30cm (mm3/mm3)
     real(r8), pointer :: watdry(:)    !soil water when et stops for top 30cm (mm3/mm3)
     real(r8), pointer :: sz(:)        !thickness of soil layers contributing to output
     real(r8), pointer :: watoptc(:)   !optimal soil water content for et for entire column (mm3/mm3)
     real(r8), pointer :: watdryc(:)   !soil water when et stops for entire column (mm3/mm3)
     real(r8), pointer :: szc(:)       !thickness of soil layers contributing to output
     real(r8), pointer :: watsat(:,:)  !saturated volumetric soil water content (porosity)
     real(r8), pointer :: sucsat(:,:)  ! minimum soil suction (mm)
     real(r8), pointer :: bsw(:,:)     !Clapp and Hornberger "b" (nlevsoi)  
     real(r8), pointer :: z(:,:)       ! soil layer depth (m)
     real(r8), pointer :: dz(:,:)      ! soil layer thickness (m)
     character(len=32) :: subname='initCasa' ! subroutine name
CALLED FROM:
   initialize in initializeMod
REVISION HISTORY:
   2004.06.08 Vectorized and reformatted by Forrest Hoffman



Erik Kluzek 2011-06-15