source: trunk/LMDZ.COMMON/libf/evolution/physics.F90 @ 4175

Last change on this file since 4175 was 4135, checked in by jbclement, 4 weeks ago

PEM:
Relocate Mars-specific parameters out of "planet" module and into the modules that own their physics domain.
JBC

File size: 2.7 KB
RevLine 
[4065]1MODULE physics
[3991]2!-----------------------------------------------------------------------
3! NAME
[4065]4!     physics
[3991]5!
6! DESCRIPTION
[4065]7!     Fundamental constants read from file and used across PEM modules.
[3991]8!
9! AUTHORS & DATE
10!     JB Clement, 12/2025
11!
12! NOTES
[4065]13!
[3991]14!-----------------------------------------------------------------------
[3985]15
[4065]16! DEPENDENCIES
17! ------------
18use numerics, only: dp
19
[3991]20! DECLARATION
21! -----------
[3985]22implicit none
23
[4065]24! PARAMETERS
25! ----------
[4135]26real(dp), parameter :: sigmaB = 5.678e-8_dp            ! Stefan-Boltzmann constant [W/m^2/K^4]
27real(dp), parameter :: m_co2 = 44.01e-3_dp             ! CO2 molecular mass [kg/mol], Franz et al. 2017
28real(dp), parameter :: m_noco2 = 33.37e-3_dp           ! Non-condensible molecular mass [kg/mol], Franz et al. 2017
29real(dp), parameter :: m_h2o = 18.01528e-3_dp          ! H2O molecular mass [kg/mol], Franz et al. 2017
30real(dp), parameter :: A = 1._dp/m_co2 - 1._dp/m_noco2 ! MMR/VMR conversion factor
31real(dp), parameter :: B = 1._dp/m_noco2               ! MMR/VMR conversion factor
32
33! H2O coefficients for Clausius-Clapeyron law for psat (psat = exp(beta/Th2o + alpha)), following Murphy and Koop 2005
34real(dp), parameter :: alpha_clap_h2o = 28.9074_dp
35real(dp), parameter :: beta_clap_h2o = -6143.7_dp  ! [K]
36! CO2 coefficients for Clausius-Clapeyron law for CO2 condensation temperature (Tco2 = beta/(alpha-log(vmr)),following James et al. 1992
37real(dp), parameter :: alpha_clap_co2 = 23.3494_dp
38real(dp), parameter :: beta_clap_co2 = 3182.48_dp  ! [K]
39
40real(dp), parameter :: Lco2 = 5.71e5_dp ! CO2 latent heat [J/kg], Pilorget and Forget 2016
41
[4065]42real(dp), protected :: g     ! Gravity [m/s2]
43real(dp), protected :: r     ! Reduced gas constant,r = 8.314511/[mugaz/1000.0]
44real(dp), protected :: mugaz ! Molar mass of the atmosphere [g/mol]
45real(dp), protected :: rad   ! Radius of the planet [m]
46real(dp), protected :: cpp   ! Cp of the atmosphere
47real(dp), protected :: rcp   ! r/cpp (= kappa in the dynamics)
[3985]48
49contains
[3991]50!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
51
[3985]52!=======================================================================
[4065]53SUBROUTINE init_physics(rad_in,g_in,mugaz_in,rcp_in)
[3991]54!-----------------------------------------------------------------------
55! NAME
[4065]56!     init_physics
[3991]57!
58! DESCRIPTION
[4065]59!     Initialize physical constants.
[3991]60!
61! AUTHORS & DATE
[4065]62!     JB Clement, 01/2026
[3991]63!
64! NOTES
[4065]65!
[3991]66!-----------------------------------------------------------------------
[3985]67
[3991]68! DECLARATION
69! -----------
[3985]70implicit none
71
[3991]72! ARGUMENTS
73! ---------
[4065]74real(dp), intent(in) :: rad_in, g_in, mugaz_in, rcp_in
[3985]75
[3991]76! CODE
77! ----
[4065]78rad = rad_in
79g = g_in
80mugaz = mugaz_in
81rcp = rcp_in
82r = 8.314511_dp*1000._dp/mugaz
83cpp = r/rcp
[3985]84
[4065]85END SUBROUTINE init_physics
[3991]86!=======================================================================
[3985]87
[4065]88END MODULE physics
Note: See TracBrowser for help on using the repository browser.