Annotation of modelE/model/CONST.f, revision 2.18

2.0       gavin       1:       MODULE CONSTANT
                      2: !@sum  CONSTANT definitions for physical constants and useful numbers
                      3: !@auth G. Schmidt
                      4: !@ver  1.0
                      5:       IMPLICIT NONE
                      6:       SAVE
                      7: C**** Conventions: 'by' implies reciprocal, 'rt' implies square root
                      8: 
                      9: C**** Numerical constants
                     10: 
                     11:       real*8,parameter :: pi = 3.1415926535897932d0 !@param pi    pi
                     12:       real*8,parameter :: twopi = 2d0*pi           !@param twopi 2*pi
                     13:       real*8,parameter :: radian = pi/180d0        !@param radian pi/180
                     14: !@param zero,one 0 and 1 for occasional use as arguments
                     15:       real*8,parameter :: zero = 0d0, one=1d0
                     16: !@param rt2,byrt2   sqrt(2), 1/sqrt(2)
                     17:       real*8,parameter :: rt2 = 1.4142135623730950d0
                     18:       real*8,parameter :: byrt2 = 1./rt2
                     19: !@param rt3,byrt3   sqrt(3), 1/sqrt(3)
                     20:       real*8,parameter :: rt3 = 1.7320508075688772d0
                     21:       real*8,parameter :: byrt3 = 1./rt3
                     22: !@param rt12,byrt12   sqrt(12), 1/sqrt(12)
                     23:       real*8,parameter :: rt12 = 3.4641016151377546d0
                     24:       real*8,parameter :: byrt12 = 1./rt12
                     25:       real*8,parameter :: by3 =1./3d0  !@param by3  1/3
                     26:       real*8,parameter :: by6 =1./6d0  !@param by6  1/6
                     27:       real*8,parameter :: by9 =1./9d0  !@param by9  1/9
                     28:       real*8,parameter :: by12=1./12d0 !@param by12 1/12
2.2       cdrar      29: !@param undef Missing value
                     30:       real*8,parameter :: undef=-1.d30
2.4       gavin      31: !@param teeny  small positive value used in num/(den+teeny) to avoid 0/0
                     32:       real*8,parameter :: teeny=1.d-30
2.17      ialeinov   33:       integer*8,parameter :: intNaN=-1  ! i.e. = Z'FFFFFFFFFFFFFFFF'
2.15      ialeinov   34: !@param NaN NaN
2.16      ialeinov   35:       real*8,parameter :: NaN=transfer(intNaN,1.d0)
2.0       gavin      36: 
                     37: C**** Physical constants
                     38: 
                     39: !@param stbo Stefan-Boltzmann constant (W/m^2 K^4)
                     40:       real*8,parameter :: stbo =5.67051d-8 !current best estimate
                     41: 
2.2       cdrar      42: c**** Latent heats:
2.0       gavin      43: c**** Note that for energy conservation the efective latent heat at any
                     44: c**** temperature must follow these formulae (assuming a reference
                     45: c**** temperature of 0 Celcius, and constant specific heats).
                     46: c**** If specific heats vary as a function of temperature, the extra
2.2       cdrar      47: c**** term becomes an integral
2.0       gavin      48: c**** lhe(T) = lhe(0) + (shv-shw) T (in C)
                     49: c**** lhm(T) = lhm(0) + (shw-shi) T (in C)
                     50: c**** lhs(T) = lhs(0) + (shv-shi) T (in C)
2.2       cdrar      51: !@param lhe   latent heat of evap at 0 C (2.5008d6 J/kg)
2.0       gavin      52:       real*8,parameter :: lhe = 2.5d6
2.2       cdrar      53: !@param lhm   latent heat of melt at 0 C (334590 J/kg)
2.0       gavin      54:       real*8,parameter :: lhm = 3.34d5
2.2       cdrar      55: !@param bylhm  1/lhm
2.0       gavin      56:       real*8,parameter :: bylhm = 1./lhm
                     57: !@param lhs  latent heat of sublimation at 0 C (J/kg)
                     58:       real*8,parameter :: lhs = lhe+lhm
                     59: 
                     60: !@param rhow density of pure water (1000 kg/m^3)
                     61:       real*8,parameter :: rhow = 1d3
2.10      gavin      62: !@param rhows density of average sea water (1030 kg/m^3)
                     63:       real*8,parameter :: rhows = 1030d0
2.14      gavin      64: !@param byrhows recip. density of average sea water (1/1030 m^3/kg)
                     65:       real*8,parameter :: byrhows = 1d0/rhows
2.0       gavin      66: !@param rhoi density of pure ice (916.6 kg/m^3)
                     67:       real*8,parameter :: rhoi = 916.6d0
                     68: !@param byrhoi 1/rhoi (m^3/kg)
                     69:       real*8,parameter :: byrhoi = 1d0/rhoi
                     70: 
                     71: !@param tf freezing point of water at 1 atm (273.16 K)
                     72:       real*8,parameter :: tf = 273.16d0
                     73: !@param bytf 1/tf (K^-1)
                     74:       real*8,parameter :: bytf = 1d0/tf
                     75: 
                     76: !@param shw heat capacity of water (at 20 C) (4185 J/kg C)
                     77:       real*8,parameter :: shw  = 4185.
                     78: !@param byshw 1/shw
                     79:       real*8,parameter :: byshw = 1d0/shw
                     80: 
                     81: !@param shi heat capacity of pure ice (at 0 C) (2060 J/kg C)
                     82:       real*8,parameter :: shi  = 2060.
                     83: !@param byshi 1/shi
                     84:       real*8,parameter :: byshi = 1d0/shi
                     85: 
                     86: c**** RGAS = R/M_A = 1000* 8.314510 J/mol K /28.9655 g/mol
                     87: c**** For values of CO2 much larger than present day (> 4x conc)
                     88: c**** the molecular weight of dry air M_A could change.
                     89: c**** Assume that M_O2 = 31.9988 and M_CO2 = 44.00995
                     90: c**** and current percentages 20.946% and 0.0350% (US Stand. Atm.)
                     91: c**** Assuming CO2 displaces other gases equally M_A=28.9602 + n*0.00527
                     92: c**** where n is multiple of present day CO2 conc (350 ppm)
                     93: c**** For 4xCO2  M_A = 28.9813  => rgas = 286.89
                     94: c**** For 10xCO2 M_A = 29.0129  => rgas = 286.58
                     95: !@param gasc  gas constant (8.314510 J/mol K)
                     96:       real*8,parameter :: gasc = 8.314510d0
2.6       faluvegi   97: !@param bygasc  1/gasc
                     98:       real*8,parameter :: bygasc = 1./gasc
2.0       gavin      99: !@param mair molecular weight of dry air (28.9655 g/mol)
                    100:       real*8,parameter :: mair = 28.9655d0
                    101: !@param rgas gas constant (287.05 J/K kg)
                    102:       real*8,parameter :: rgas = 1d3 * gasc / mair ! = 287.05...
                    103: 
                    104: !@param mwat molecular weight of water vapour
                    105:       real*8,parameter :: mwat = 18.015d0
                    106: !@param rvap  gas constant for water vapour (461.5 J/K kg)
                    107: c**** defined as R/M_W = 1000* 8.314510 J/mol K /18.015 g/mol
                    108:       real*8,parameter :: rvap = 1d3 * gasc / mwat ! = 461.5...
                    109: 
                    110: !@param mrat  mass ratio of air to water vapour (0.62197)
                    111:       real*8,parameter :: mrat = mwat/mair    ! = 0.62197....
                    112: !@param bymrat 1/mrat (1.6078)
                    113:       real*8,parameter :: bymrat = 1./mrat    ! = 1.6078....
                    114: !@param deltx coeff. of humidity in virtual temperature defn. (0.6078)
                    115:       real*8,parameter :: deltx = bymrat-1.   ! = 0.6078....
                    116: 
                    117: !@param srat ratio of specific heats at const. press. and vol. (=1.401)
                    118:       real*8,parameter :: srat = 1.401d0
                    119: !@param kapa ideal gas law exponent for dry air (.2862)
                    120: c**** kapa = (g-1)/g where g=1.401 = c_p/c_v
                    121:       real*8,parameter :: kapa = (srat - 1.)/srat  ! =.2862....
                    122: !@param bykapa,bykapap1,bykapap2 various useful reciprocals of kapa
                    123:       real*8,parameter :: bykapa = 1./kapa
                    124:       real*8,parameter :: bykapap1 = 1./(kapa+1.)
                    125:       real*8,parameter :: bykapap2 = 1./(kapa+2.)
                    126: 
2.9       gavin     127: !@param sha specific heat of dry air (const. pres.) (rgas/kapa J/kg C)
2.0       gavin     128:       real*8,parameter :: sha = rgas/kapa
                    129: !@param bysha 1/sha
                    130:       real*8,parameter :: bysha = 1./sha
                    131: 
2.9       gavin     132: !@param shv specific heat of water vapour (const. pres.) (J/kg C)
2.0       gavin     133: c**** shv is currently assumed to be zero to aid energy conservation in
                    134: c**** the atmosphere. Once the heat content associated with water
                    135: c**** vapour is included, this can be set to the standard value
2.2       cdrar     136: c**** Literature values are 1911 (Arakawa), 1952 (Wallace and Hobbs)
2.0       gavin     137: c**** Smithsonian Met Tables = 4*rvap + delta = 1858--1869 ????
                    138: c     real*8,parameter :: shv = 4.*rvap  ????
                    139:       real*8,parameter :: shv = 0.
                    140: 
2.5       gavin     141: !@var visc_air dynamic viscosity of air (kg/m s)
2.7       cdrar     142:       real*8,parameter :: visc_air = 1.7d-5
2.5       gavin     143: 
2.18    ! gavin     144: !@var visc_air_kin kinematic viscosity of air (1 bar 15 deg C) (m^2/s)
2.13      gavin     145:       real*8,parameter :: visc_air_kin = 1.46d-5
                    146: 
2.18    ! gavin     147: !@var visc_wtr_kin kinematic viscosity of water (35 psu, 20 deg C) (m^2/s)
2.14      gavin     148:       real*8,parameter :: visc_wtr_kin = 1.05d-6
                    149: 
2.12      gavin     150: !@var avog Avogadro's constant (atmos/mole)
                    151:       real*8,parameter :: avog=6.023d23
2.11      gavin     152: 
2.0       gavin     153: C**** Astronomical constants
                    154: 
                    155: !@param sday  sec per day (s)
                    156:       real*8,parameter :: sday = 86400.
                    157: 
                    158: !@param hrday  hours in a day (hrs)
                    159:       real*8,parameter :: hrday = sday/3600.
                    160: 
                    161: !@param omega earth's rotation rate (7.29 s^-1)
                    162: c      real*8,parameter :: omega = 7.2921151467d-5 ! NOVAS value
                    163:       real*8,parameter :: EDPERD = 1.
                    164:       real*8,parameter :: EDPERY = 365.
                    165:       real*8,parameter :: omega = TWOPI*(EDPERD+EDPERY)/
                    166:      *                            (EDPERD*EDPERY*SDAY)
                    167: !@param omega2 2*omega
                    168:       real*8,parameter :: omega2 = 2.*omega
                    169: 
                    170: !@param radius radius of the earth (6371000 m)
                    171: c**** radius of spherical earth, same volume = 6371000 m
                    172:       real*8,parameter :: radius = 6375000.
                    173: !@param grav gravitaional accelaration (9.80665 m/s^2)
                    174: c**** SI reference gravity (at 45 deg) = 9.80665
                    175:       real*8,parameter :: grav = 9.80665d0
                    176: !@param bygrav 1/grav
                    177:       real*8,parameter :: bygrav = 1d0/grav
                    178: 
2.1       gavin     179: C**** lapse rate related variables
                    180: !@param GAMD dry adiabatic lapse rate (=0.0098 K/m)
                    181:       real*8, parameter :: gamd = grav*kapa/rgas
2.0       gavin     182: !@param BMOIST moist adiabatic lapse rate (K/m)
                    183:       real*8, parameter :: bmoist = 0.0065d0
                    184: !@param BBYG moist adiabatic lapse rate divided by grav
                    185:       real*8, parameter :: bbyg = bmoist*bygrav
                    186: !@param GBYRB grav divided by rgas and bmoist
                    187:       real*8, parameter :: gbyrb = grav/(rgas*bmoist)
                    188: 
                    189: C**** Useful conversion factors
                    190: 
                    191: !@param kg2mb,mb2kg conversion from milli-bars to kg/m^2
                    192:       real*8,parameter :: kg2mb = 1d-2*grav, mb2kg = 1d2*bygrav
                    193: !@param kgpa2mm,mm2kgpa conversion from kg/m^2 water to mm
                    194:       real*8,parameter :: kgpa2mm = 1d0, mm2kgpa = 1d0
                    195: 
                    196:       END MODULE CONSTANT

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>