! +-======-+
! Copyright (c) 2003-2007 United States Government as represented by
! the Admistrator of the National Aeronautics and Space Administration.
! All Rights Reserved.
!
! THIS OPEN SOURCE AGREEMENT ("AGREEMENT") DEFINES THE RIGHTS OF USE,
! REPRODUCTION, DISTRIBUTION, MODIFICATION AND REDISTRIBUTION OF CERTAIN
! COMPUTER SOFTWARE ORIGINALLY RELEASED BY THE UNITED STATES GOVERNMENT AS
! REPRESENTED BY THE GOVERNMENT AGENCY LISTED BELOW ("GOVERNMENT AGENCY").
! THE UNITED STATES GOVERNMENT, AS REPRESENTED BY GOVERNMENT AGENCY, IS AN
! INTENDED THIRD-PARTY BENEFICIARY OF ALL SUBSEQUENT DISTRIBUTIONS OR
! REDISTRIBUTIONS OF THE SUBJECT SOFTWARE. ANYONE WHO USES, REPRODUCES,
! DISTRIBUTES, MODIFIES OR REDISTRIBUTES THE SUBJECT SOFTWARE, AS DEFINED
! HEREIN, OR ANY PART THEREOF, IS, BY THAT ACTION, ACCEPTING IN FULL THE
! RESPONSIBILITIES AND OBLIGATIONS CONTAINED IN THIS AGREEMENT.
!
! Government Agency: National Aeronautics and Space Administration
! Government Agency Original Software Designation: GSC-15354-1
! Government Agency Original Software Title: GEOS-5 GCM Modeling Software
! User Registration Requested. Please Visit http://opensource.gsfc.nasa.gov
! Government Agency Point of Contact for Original Software:
! Dale Hithon, SRA Assistant, (301) 286-2691
!
! +-======-+
module constants_mod
!
! Bruce Wyman
!
!
!
! Defines useful constants for Earth.
!
!
! Constants are defined as real parameters.
! Constants are accessed through the "use" statement.
!
implicit none
private
character(len=128) :: version='$Id: constants.F90,v 1.1.1.1 2010-03-19 21:18:54 atrayano Exp $'
character(len=128) :: tagname='$Name: Fortuna-2_5_p1 $'
!dummy variable to use in HUGE initializations
real :: realnumber
!------------ physical constants ---------------
!
! radius of the earth
!
!
! rotation rate of the planet (earth)
!
!
! acceleration due to gravity
!
!
! gas constant for dry air
!
!
! RDGAS / CP_AIR
!
!
! specific heat capacity of dry air at constant pressure
!
!
! specific heat capacity taken from McDougall (2002) "Potential Enthalpy ..."
!
!
! average density of sea water
!
!
! reciprocal of average density of sea water
!
!
! (kg/m^3)*(cal/kg/deg C)(joules/cal) = (joules/m^3/deg C)
!
real, public, parameter :: RADIUS = 6371.0e3
real, public, parameter :: OMEGA = 7.292e-5
real, public, parameter :: GRAV = 9.80
real, public, parameter :: RDGAS = 287.04
real, public, parameter :: KAPPA = 2./7.
real, public, parameter :: CP_AIR = RDGAS/KAPPA
real, public, parameter :: CP_OCEAN = 3989.24495292815
real, public, parameter :: RHO0 = 1.035e3
real, public, parameter :: RHO0R = 1.0/RHO0
real, public, parameter :: RHO_CP = RHO0*CP_OCEAN
!------------ water vapor constants ---------------
!
! Humidity factor. Controls the humidity content of the atmosphere through
! the Saturation Vapour Pressure expression when using DO_SIMPLE.
!
!
! gas constant for water vapor
!
!
! specific heat capacity of water vapor at constant pressure
!
!
! density of liquid water
!
!
! latent heat of evaporation
!
!
! latent heat of fusion
!
!
! latent heat of sublimation
!
!
! temp where fresh water freezes
!
real, public, parameter :: ES0 = 1.0
real, public, parameter :: RVGAS = 461.50
real, public, parameter :: CP_VAPOR = 4.0*RVGAS
real, public, parameter :: DENS_H2O = 1000.
real, public, parameter :: HLV = 2.500e6
real, public, parameter :: HLF = 3.34e5
real, public, parameter :: HLS = HLV + HLF
real, public, parameter :: TFREEZE = 273.16
!-------------- radiation constants -----------------
!
! molecular weight of air
!
!
! molecular weight of water
!
!
! molecular weight of ozone
!
!
! molecular weight of carbon
!
! molecular weight of carbon dioxide
!
! molecular weight of molecular oxygen
!
! molecular weight of CFC-11 (CCl3F)
!
! molecular weight of CFC-21 (CCl2F2)
!
!
! diffusivity factor
!
!
! seconds in a day
!
!
! Avogadro's number
!
!
! mean sea level pressure
!
!
! mean sea level pressure
!
real, public, parameter :: WTMAIR = 2.896440E+01
real, public, parameter :: WTMH2O = WTMAIR*(RDGAS/RVGAS) !pjp OK to change value because not used yet.
!real, public, parameter :: WTMO3 = 47.99820E+01
real, public, parameter :: WTMOZONE = 47.99820
real, public, parameter :: WTMC = 12.00000
real, public, parameter :: WTMCO2 = 44.00995
real, public, parameter :: WTMO2 = 31.9988
real, public, parameter :: WTMCFC11 = 137.3681
real, public, parameter :: WTMCFC12 = 120.9135
real, public, parameter :: DIFFAC = 1.660000E+00
real, public, parameter :: SECONDS_PER_DAY = 8.640000E+04, SECONDS_PER_HOUR = 3600., SECONDS_PER_MINUTE=60.
real, public, parameter :: AVOGNO = 6.023000E+23
real, public, parameter :: PSTD = 1.013250E+06
real, public, parameter :: PSTD_MKS = 101325.0
!real, public, parameter :: REARTH = 6.356766E+08 !pjp Not used anywhere.
!
! factor used to convert flux divergence to heating rate in degrees per day
!
!
! factor used to convert flux divergence to heating rate in degrees per day
!
!
! mixing ratio of molecular oxygen in air
!
!
! reference atmospheric density
!
!
! minimum value allowed as argument to log function
!
real, public, parameter :: RADCON = ((1.0E+02*GRAV)/(1.0E+04*CP_AIR))*SECONDS_PER_DAY
real, public, parameter :: RADCON_MKS = (GRAV/CP_AIR)*SECONDS_PER_DAY
real, public, parameter :: O2MIXRAT = 2.0953E-01
real, public, parameter :: RHOAIR = 1.292269
real, public, parameter :: ALOGMIN = -50.0
!------------ miscellaneous constants ---------------
!
! Stefan-Boltzmann constant
!
!
! Von Karman constant
!
!
! ratio of circle circumference to diameter
!
!
! degrees per radian
!
!
! radians per degree
!
!
! equal to RAD_TO_DEG. Named RADIAN for backward compatability.
!
!
! converts rho*g*z (in mks) to dbars: 1dbar = 10^4 (kg/m^3)(m/s^2)m
!
!
! degrees Kelvin at zero Celsius
!
!
! a small number to prevent divide by zero exceptions
!
real, public, parameter :: STEFAN = 5.6734e-8
real, public, parameter :: VONKARM = 0.40
real, public, parameter :: PI = 3.14159265358979323846
real, public, parameter :: RAD_TO_DEG=180./PI
real, public, parameter :: DEG_TO_RAD=PI/180.
real, public, parameter :: RADIAN = RAD_TO_DEG
real, public, parameter :: C2DBARS = 1.e-4
real, public, parameter :: KELVIN = 273.15
real, public, parameter :: EPSLN = 1.0e-40
!-----------------------------------------------------------------------
! version and tagname published
! so that write_version_number can be called for constants_mod by fms_init
public :: version, tagname
!-----------------------------------------------------------------------
public :: constants_init
contains
subroutine constants_init
! dummy routine.
end subroutine constants_init
end module constants_mod
!
!
! 1. Renaming of constants.
!
!
! 2. Additional constants.
!
!
! Constants have been declared as type REAL, PARAMETER.
!
! The value a constant can not be changed in a users program.
! New constants can be defined in terms of values from the
! constants module using a parameter statement.
!
! The name given to a particular constant may be changed.
!
! Constants can be used on the right side on an assignment statement
! (their value can not be reassigned).
!
!
!
!