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_pioARGUMENTS:
implicit noneLOCAL 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 nameCALLED FROM:
initialize in initializeModREVISION HISTORY:
2004.06.08 Vectorized and reformatted by Forrest Hoffman