module catch_constants ! reichle+koster, 2007 ! reichle, 10 Oct 2008 - added "echo_catch_constants()" ! reichle, 28 Oct 2010 - moved DZ, SHR, PHI, FSN from subroutines gndtp0() and gndtmp() ! - moved FWETL, FWETC from subroutine interc() ! - renamed N_gndtmp -> N_gt ! reichle, 23 Nov 2010 - replaced PHIGT with POROS(N), ALHMGT with ALHM ! - replaced constants with values from MAPL_Constants.F90 ! where possible ! reichle, 30 Nov 2010 - zero-diff revisions and clean-up for off-line (land-only) MERRA ! replay capability ! - restored PHIGT, ALHMGT ! - moved MIN_SNOW_MASS->MINSWE, DZ1MAX, and SATCAPFR to ! catch_constants ! - moved "small" back from catch_constants() into snowrt() ! reichle, 14 Aug 2014 - moved constants that are only needed in subroutine catchment() ! to catchment.F90 where they are now private to the F90 module ! "catchment_model" ! - removed all constants that come straight from MAPL_Constants ! - renamed all remaining public constants by prefacing with "catch_*" ! - moved "echo_catch_constants()" to catchment.F90 (and renamed) implicit none private ! --------------------------------------------------------------------------- ! required clsm_ensdrv_glob_param constants were moved here for the UWa version ! choose surface layer turbulence scheme ! ! 0 = Louis (MERRA, Fortuna-DAS) ! 1 = Helfand Monin-Obukhov (Fortuna-AR5) integer, public, parameter :: sfc_turb_scheme = 0 ! additional option for *Louis* surface layer turbulence scheme ! ! turn on/off extra derivatives in turbulence calcuations ! (derivatives of drag coeffs w.r.t. T and Q and cross-derivatives ! of fluxes, eg. d_SensibleHeat/d_Q) logical, public, parameter :: incl_Louis_extra_derivs = .true. ! turn on/off simplistic estimate of ww in turb calculations logical, public, parameter :: incl_Louis_ww = .false. ! generic no-data-value real, public, parameter :: nodata_generic = -9999. real, public, parameter :: nodata_tolfrac_generic = 1.e-4 real, public, parameter :: nodata_tol_generic = abs(nodata_generic*nodata_tolfrac_generic) logical, public, parameter :: GEOS5_coupled_style = .false. ! --------------------------------------------------------------------------- ! required MAPL_BaseMod constants were moved here for the UWa version integer, public, parameter :: MAPL_NumVegTypes = 6 integer, public, parameter :: MAPL_Land = 100 integer, public, parameter :: MAPL_LandIce = 20 ! --------------------------------------------------------------------------- ! required MAPL_ConstantsMod constants were moved here for the UWa version real(kind=8), parameter, public :: MAPL_PI_R8 = 3.14159265358979323846 real, parameter, public :: MAPL_PI = MAPL_PI_R8 real, parameter, public :: MAPL_GRAV = 9.80665 ! m^2/s real, parameter, public :: MAPL_RADIUS = 6371.0E3 ! m real, parameter, public :: MAPL_STFBOL = 5.6734E-8 ! W/(m^2 K^4) real, parameter, public :: MAPL_AIRMW = 28.965 ! kg/Kmole real, parameter, public :: MAPL_H2OMW = 18.015 ! kg/Kmole real, parameter, public :: MAPL_ALHL = 2.4665E6 ! J/kg @15C real, parameter, public :: MAPL_ALHF = 3.3370E5 ! J/kg real, parameter, public :: MAPL_ALHS = MAPL_ALHL+MAPL_ALHF ! J/kg real, parameter, public :: MAPL_TICE = 273.16 ! K real, parameter, public :: MAPL_RUNIV = 8314.47 ! J/(Kmole K) real, parameter, public :: MAPL_RDRY = MAPL_RUNIV/MAPL_AIRMW ! J/(kg K) real, parameter, public :: MAPL_RGAS = MAPL_RDRY ! J/(kg K) (DEPRECATED) real, parameter, public :: MAPL_CPDRY = 3.5*MAPL_RDRY ! J/(kg K) real, parameter, public :: MAPL_KAPPA = MAPL_RDRY/MAPL_CPDRY ! (2.0/7.0) real, parameter, public :: MAPL_CP = MAPL_RGAS/MAPL_KAPPA ! J/(kg K) (DEPRECATED) real, parameter, public :: MAPL_EPSILON= MAPL_H2OMW/MAPL_AIRMW ! -- real, parameter, public :: MAPL_VIREPS = 1.0/MAPL_EPSILON-1.0 ! (DEPRECATED) real, parameter, public :: MAPL_USMIN = 1.00 ! m/s real, parameter, public :: MAPL_CAPICE = 2000. ! J/(K kg) real, parameter, public :: MAPL_CAPWTR = 4218. ! J/(K kg) real, parameter, public :: MAPL_RHOWTR = 1000. ! kg/m^3 real, parameter, public :: MAPL_KARMAN = 0.40 ! -- real, parameter, public :: MAPL_NUAIR = 1.533E-5 ! m^2/S (@ 18C) ! --------------------------------------------------------------------------- INTEGER, PARAMETER, PUBLIC :: CATCH_N_SNOW = 3 ! # layers in snow model INTEGER, PARAMETER, PUBLIC :: CATCH_N_GT = 6 ! # layers in ground temperature model ! --------------------------------------------------------------------------- ! ! constants for use with snowrt() and snow_albedo() of module StieglitzSnow REAL, PARAMETER, PUBLIC :: CATCH_SNWALB_RHOFS = 150. ! kg/m^3 REAL, PARAMETER, PUBLIC :: CATCH_SNWALB_VISMAX = 0.7 ! REAL, PARAMETER, PUBLIC :: CATCH_SNWALB_NIRMAX = 0.5 ! REAL, PARAMETER, PUBLIC :: CATCH_SNWALB_SLOPE = -0.0006 ! REAL, PARAMETER, PUBLIC :: CATCH_MAXSNDEPTH = 1.e20 ! REAL, PARAMETER, PUBLIC :: CATCH_DZ1MAX = 0.08 ! m ! --------------------------------------------------------------------------- ! ! constants for snow constituents (dust, carbon, etc.) INTEGER, PARAMETER, PUBLIC :: CATCH_N_CONSTIT = 9 ! number of constituents followed ! absorption coefs, visible REAL, PARAMETER, DIMENSION(CATCH_N_CONSTIT), PUBLIC :: CATCH_ABVIS = & (/ 0.045, & ! Dust1 0.041, & ! Dust2 0.038, & ! Dust3 0.032, & ! Dust4 0.026, & ! Dust5 7.718, & ! Black carbon hydrophobic 11.646, & ! Black carbon hydrophilic 0.133, & ! Organic carbon hydrophobic 0.118/) ! Organic carbon hydrophic ! absorption coefs, near-infrared REAL, PARAMETER, DIMENSION(CATCH_N_CONSTIT), PUBLIC :: CATCH_ABNIR = & (/ 0.011, & ! Dust1 0.012, & ! Dust2 0.013, & ! Dust3 0.013, & ! Dust4 0.010, & ! Dust5 3.804, & ! Black carbon hydrophobic 5.473, & ! Black carbon hydrophilic 0.105, & ! Organic carbon hydrophobic 0.132 /) ! Organic carbon hydrophic end module catch_constants