Module containing run control variables
USES:
use shr_kind_mod, only: r8 => shr_kind_r8 use clm_varpar, only: maxpatch_glcmecPUBLIC MEMBER FUNCTIONS:
implicit none public :: set_clmvarctl ! Set variables public :: clmvarctl_init ! Initialize and check values after namelist input private savePUBLIC TYPES:
integer, parameter, private :: iundef = -9999999 integer, parameter, private :: rundef = -9999999._r8 Run control variables character(len=256), public :: caseid = ' ' ! case id character(len=256), public :: ctitle = ' ' ! case title integer, public :: nsrest = iundef ! Type of run integer, public, parameter :: nsrStartup = 0 ! Startup from initial conditions integer, public, parameter :: nsrContinue = 1 ! Continue from restart files integer, public, parameter :: nsrBranch = 2 ! Branch from restart files logical, public :: brnch_retain_casename = .false. ! true => allow case name to remain the same for branch run ! by default this is not allowed logical, public :: noland = .false. ! true => no valid land points -- do NOT run character(len=256), public :: hostname = ' ' ! Hostname of machine running on character(len=256), public :: username = ' ' ! username of user running program character(len=256), public :: source = "Community Land Model CLM4.0" ! description of this source character(len=256), public :: version = " " ! version of program character(len=256), public :: conventions = "CF-1.0" ! dataset conventions Unit Numbers integer, public :: iulog = 6 ! "stdout" log file unit number, default is 6 Output NetCDF files logical, public :: outnc_large_files = .true. ! large file support for output NetCDF files Run input files character(len=256), public :: finidat = ' ' ! initial conditions file name character(len=256), public :: fsurdat = ' ' ! surface data file name character(len=256), public :: fatmgrid = ' ' ! atm grid file name character(len=256), public :: fatmlndfrc = ' ' ! lnd frac file on atm grid character(len=256), public :: fatmtopo = ' ' ! topography on atm grid character(len=256), public :: flndtopo = ' ' ! topography on lnd grid character(len=256), public :: fpftdyn = ' ' ! dynamic landuse dataset character(len=256), public :: fpftcon = ' ' ! ASCII data file with PFT physiological constants character(len=256), public :: nrevsn = ' ' ! restart data file name for branch run character(len=256), public :: fsnowoptics = ' ' ! snow optical properties file name character(len=256), public :: fsnowaging = ' ' ! snow aging parameters file name character(len=256), public :: fglcmask = ' ' ! glacier mask file name character(len=8), public :: fget_archdev = 'null:' ! archive device to read input files from if not on local disk logical , public :: downscale ! true => do downscaling with fine mesh ! ASSUMES that all grids are lat/lon Landunit logic logical, public :: create_crop_landunit = .false. ! true => separate crop landunit is not created by default logical, public :: allocate_all_vegpfts = .false. ! true => allocate memory for all possible vegetated pfts on ! vegetated landunit if at least one pft has nonzero weight BGC logic and datasets character(len=16), public :: co2_type = 'constant' ! values of 'prognostic','diagnostic','constant' Physics logical, public :: wrtdia = .false. ! true => write global average diagnostics to std out real(r8), public :: co2_ppmv = 355._r8 ! atmospheric CO2 molar ratio (by volume) (umol/mol) glacier_mec control variables: default values (may be overwritten by namelist) NOTE: glc_nec and glc_smb must have the same values for CLM and GLC logical, public :: create_glacier_mec_landunit = .false. ! glacier_mec landunit is not created logical, public :: glc_dyntopo = .false. ! true => CLM glacier topography changes dynamically logical, public :: glc_smb = .false. ! if true, pass surface mass balance info to GLC ! if false, pass positive-degree-day info to GLC integer , public :: glc_nec = 0 ! number of elevation classes for glacier_mec landunits real(r8), public :: glc_topomax(0:maxpatch_glcmec) ! upper limit of each class (m) single column control variables logical, public :: single_column = .false. ! true => single column mode real(r8), public:: scmlat = rundef ! single column lat real(r8), public:: scmlon = rundef ! single column lon #ifdef RTM Rtm control variables character(len=256), public :: frivinp_rtm = ' ' ! RTM input data file name integer, public :: rtm_nsteps = iundef ! if > 1, average rtm over rtm_nsteps time steps logical, public :: ice_runoff = .true. ! true => runoff should be split into liquid and ice otherwise just liquid #endif Decomp control variables integer, public :: nsegspc = 20 ! number of segments per clump for decomp Derived variables (run, history and restart file) character(len=256), public :: rpntdir = '.' ! directory name for local restart pointer file character(len=256), public :: rpntfil = 'rpointer.lnd' ! file name for local restart pointer file Error growth perturbation limit real(r8), public :: pertlim = 0.0_r8 ! perturbation limit when doing error growth testREVISION HISTORY:
Created by Mariana Vertenstein and Gordon Bonan 1 June 2004, Peter Thornton: added fnedpdat for nitrogen deposition data