next up previous contents
Next: clm_varpar_init Up: Routine/Function Prologues Previous: clmvarctl_init   Contents

Fortran: Module Interface clm_varpar (Source File: clm_varpar.F90)

Module containing CLM parameters


USES:

   use shr_kind_mod, only: r8 => shr_kind_r8
PUBLIC TYPES:
   implicit none
   save
   Define land surface 2-d grid. The model resolution is read in from the surface dataset
   integer             :: lsmlon              ! maximum number of longitude points on lsm grid
   integer             :: lsmlat              ! number of latitude points on lsm grid
 
   Define number of levels
 
   integer, parameter :: nlevsoi     =  10     ! number of hydrologically active soil layers
   integer, parameter :: nlevgrnd    =  15     ! number of ground layers (includes lower layers that are hydrologically inactive)
   integer, parameter :: nlevurb     = nlevgrnd! number of urban layers (must equal nlevgrnd right now)
   integer, parameter :: nlevlak     =  10     ! number of lake layers
   integer, parameter :: nlevsno     =   5     ! maximum number of snow layers
 
   Define miscellaneous parameters
 
   integer, parameter :: numwat      =   5   ! number of water types (soil, ice, 2 lakes, wetland)
   integer, parameter :: numrad      =   2   ! number of solar radiation bands: vis, nir
   integer, parameter :: ivis        =   1   ! index for visible band
   integer, parameter :: inir        =   2   ! index for near-infrared band
   integer, parameter :: numsolar    =   2   ! number of solar type bands: direct, diffuse
   integer, parameter :: ndst        =   4   ! number of dust size classes (BGC only)
   integer, parameter :: dst_src_nbr =   3   ! number of size distns in src soil (BGC only)
   integer, parameter :: sz_nbr      = 200   ! number of sub-grid bins in large bin of dust size distribution (BGC only)
   integer, parameter :: nvoc        =   5   ! number of voc categories
 
   Define parameters for RTM river routing model
 
   integer            :: rtmlon        !number of rtm longitudes
   integer            :: rtmlat        !number of rtm latitudes
 
   Define indices used in surface file read
   maxpatch_pft     = max number of plant functional types in naturally vegetated landunit
   maxpatch_urb     = max number of urban pfts (columns) in urban landunit
   maxpatch_wet     = max number of wetland pfts (columns) in wetland landunit
   maxpatch_lake    = max number of lake pfts (columns) in lake landunit
   maxpatch_glacier = max number of glacier pfts (columns) in glacier landunit
   maxpatch_glcmec  = max number of glacier_mec pfts (columns) in glacier_mec landunit
 
   integer, parameter :: mxpft          = 20     ! maximum number of PFT's for any mode
   integer, parameter :: numveg         = 16     ! number of veg types (without specific crop)
 #if (defined CROP)
   integer, parameter :: numpft         = mxpft  ! actual # of pfts (without bare)
   integer, parameter :: numcft         =  6     ! actual # of crops
 #else
   integer, parameter :: numpft         = numveg ! actual # of pfts (without bare)
   integer, parameter :: numcft         =  2     ! actual # of crops
 #endif
   integer, parameter :: maxpatch_urb   = 5
   integer            :: maxpatch_pft
 #if defined(GLC_NEC_10)
   integer, parameter :: maxpatch_glcmec = 10
 #elif defined(GLC_NEC_5)
   integer, parameter :: maxpatch_glcmec = 5
 #elif defined(GLC_NEC_3)
   integer, parameter :: maxpatch_glcmec = 3
 #elif defined(GLC_NEC_1)
   integer, parameter :: maxpatch_glcmec = 1
 #else
   integer, parameter :: maxpatch_glcmec = 0
 #endif
   integer            :: npatch_urban
   integer            :: npatch_lake 
   integer            :: npatch_wet  
   integer            :: npatch_glacier
   integer            :: npatch_glacier_mec
   integer            :: maxpatch    
 
   clm_varpar_init seems to do something similar; less prone to error to move
   these three lines there? (slevis)
 #if (defined CROP)
   integer, parameter :: max_pft_per_gcell = numpft+1 + 3 + maxpatch_urb + maxpatch_glcmec
 #else
   integer, parameter :: max_pft_per_gcell = numpft+1 + 3 + maxpatch_urb + numcft + maxpatch_glcmec
 #endif
   integer, parameter :: max_pft_per_lu    = max(numpft+1, numcft, maxpatch_urb)
   integer, parameter :: max_pft_per_col   = max(numpft+1, numcft, maxpatch_urb)
PUBLIC MEMBER FUNCTIONS:
   public clm_varpar_init          ! set parameters
REVISION HISTORY:
   Created by Mariana Vertenstein



Subsections

Erik Kluzek 2011-06-15