The CCSM code has a mechanism for facilitating the consistent use of constants among the various CCSM components - this is the "shared constants" module of the CCSM shared code library. The Coupler always uses shared constants whenever possible and only defines a constant locally if no such constant is available from the shared constants module.
The Coupler source code itself (found in .../models/cpl/cpl6/ ) is incomplete and cannot be compiled (due to missing subroutines) unless it is compiled along with CCSM shared code (found in .../models/csm_share/ ). This shared code includes the shared constants module.
Constants in the Coupler whose actual values come from the shared constants...
cpl_const_pi = SHR_CONST_PI ! pi cpl_const_rearth = SHR_CONST_REARTH ! radius of earth ~ m cpl_const_g = SHR_CONST_G ! acceleration of gravity cpl_const_cpdair = SHR_CONST_CPDAIR ! specific heat of dry air cpl_const_cpwv = SHR_CONST_CPWV ! specific heat of water vapor cpl_const_cpvir = cpl_const_cpwv/cpl_const_cpdair - 1.0 cpl_const_zvir = SHR_CONST_ZVIR ! rh2o/rair - 1.0 cpl_const_latvap = SHR_CONST_LATVAP ! latent heat of evaporation cpl_const_latice = SHR_CONST_LATICE ! latent heat of fusion cpl_const_stebol = SHR_CONST_STEBOL ! Stefan-Boltzmann cpl_const_karman = SHR_CONST_KARMAN ! Von Karman constant cpl_const_ocn_ref_sal = SHR_CONST_OCN_REF_SAL ! ocn reference salinity cpl_const_ice_ref_sal = SHR_CONST_ICE_REF_SAL ! ice reference salinity cpl_const_spval = SHR_CONST_SPVAL ! special value HFLXtoWFLX = -(So-Si)/(So*latice) ! converts heat to water for diagnostics
The actual values for the shared constants above...
SHR_CONST_PI = 3.14159265358979323846 ! pi SHR_CONST_REARTH = 6.37122e6 ! radius of earth ~ m SHR_CONST_G = 9.80616 ! acceleration of gravity ~ m/s^2 SHR_CONST_CPDAIR = 1.00464e3 ! specific heat of dry air ~ J/kg/K SHR_CONST_CPWV = 1.810e3 ! specific heat of water vap ~ J/kg/K SHR_CONST_ZVIR = (SHR_CONST_RWV/SHR_CONST_RDAIR)-1.0 ! RWV/RDAIR - 1.0 SHR_CONST_LATVAP = 2.501e6 ! latent heat of evaporation ~ J/kg SHR_CONST_LATICE = 3.337e5 ! latent heat of fusion ~ J/kg SHR_CONST_STEBOL = 5.67e-8 ! Stefan-Boltzmann constant ~ W/m^2/K^4 SHR_CONST_KARMAN = 0.4 ! Von Karman constant SHR_CONST_OCN_REF_SAL = 34.7 ! ocn ref salinity (psu) SHR_CONST_ICE_REF_SAL = 4.0 ! ice ref salinity (psu) SHR_CONST_RWV = SHR_CONST_RGAS/SHR_CONST_MWWV ! Water vapor gas constant ~ J/K/kg SHR_CONST_RDAIR = SHR_CONST_RGAS/SHR_CONST_MWDAIR ! Dry air gas constant ~ J/K/kg SHR_CONST_RGAS = SHR_CONST_AVOGAD*SHR_CONST_BOLTZ ! Universal gas constant ~ J/K/mole SHR_CONST_MWWV = 18.016 ! molecular weight water vapor SHR_CONST_MWDAIR = 28.966 ! molecular weight dry air ~ kg/kmole SHR_CONST_BOLTZ = 1.38065e-23 ! Boltzmann's constant ~ J/K/molecule SHR_CONST_AVOGAD = 6.02214e26 ! Avogadro's number ~ molecules/kmole
Constants in the Coupler whose values do not come from the shared constants...
albdif = 0.06 ! 60 deg reference albedo, diffuse for ocn albedo calc albdir = 0.07 ! 60 deg reference albedo, direct for ocn albedo calc umin = 0.5 ! minimum wind speed (m/s) for atm/ocn flux calc zref = 10.0 ! reference height (m) for atm/ocn flux calc ztref = 2.0 ! reference height for air T (m) for atm/ocn flux calc spval = 1.0e30 ! flags special value (missing value)