1
2! This file is considered to be the source of the contained module for the
3! assimilation code. It can be noted, however, that it was produced with the aid
4! of the script, thermoconsts_to_MathPhysConstants.py. That script is simply a
5! convenient tool that may or may not be used to update this file. This is the
6! command that produces this file:
7! ./thermoconsts_to_MathPhysConstants.py
8
9MODULE mathPhysConstants_mod
10 ! MODULE mathPhysConstants_mod (prefix='mpc' category='8. Low-level utilities and constants')
11 !
12 !:Purpose: To supply mathematical and physical constants in a universal,
13 ! reliable fashion.
14 !
15 implicit none
16 public
17
18! <<<<<< F U N D A M E N T A L C O N S T A N T S >>>>>>
19 real(8), parameter ::MPC_PI_R8 = 3.141592653589793D+00 ! (unitless)
20 real(8), parameter ::MPC_SPEED_OF_LIGHT_R8 = 2.997924580000000D+08 ! m/s - speed of light
21 real(8), parameter ::MPC_PLANCK_R8 = 6.626075500000000D-34 ! J/s - Planck's constant
22 real(8), parameter ::MPC_BOLTZMANN_R8 = 1.380658000000000D-23 ! J/K - Boltzmann constant
23 real(8), parameter ::MPC_AVOGADRO_R8 = 6.022136700000000D+23 ! mol-1 - Avogadro's number
24!
25! *** UNIT-CONVERSION RATIOS ***
26 real(8), parameter ::MPC_KNOTS_PER_M_PER_S_R8 = 1.942535902919826D+00 ! knots/(m/s) - conversion: m/s to knots
27! N.B.: The correct value for MPC_M_PER_S_PER_KNOT is 0.5144444....
28! because 1 knot == 1.852 km/hr; 1 m/s = 3.6 km/hr
29! However, this value must match that used by others
30 real(8), parameter ::MPC_M_PER_S_PER_KNOT_R8 = 5.147910000000000D-01 ! (m/s)/knot - conversion: knots to m/s
31 real(8), parameter ::MPC_PA_PER_MBAR_R8 = 1.000000000000000D+02 ! Pa/mbar - conversion: mbars to Pascals
32 real(8), parameter ::MPC_MBAR_PER_PA_R8 = 1.000000000000000D-02 ! mbar/Pa - conversion: Pascals to mbars
33 real(8), parameter ::MPC_RADIANS_PER_DEGREE_R8 = 1.745329251994330D-02 ! rad/deg - conversion: degrees to radians
34 real(8), parameter ::MPC_DEGREES_PER_RADIAN_R8 = 5.729577951308232D+01 ! deg/rad - conversion: radians to degrees
35 real(8), parameter ::MPC_K_C_DEGREE_OFFSET_R8 = 2.731500000000000D+02 ! K - offset between degrees K and C
36!
37! <<<<<< V A L U E S T H A T A R E C O N S T A N T ... F O R N O W >>>>>>
38!
39! *** ASTRONOMICAL CONSTANTS ***
40 real(8) ::MPC_ASTRONOMICAL_UNIT_R8 = 1.495978700000000D+11 ! m - half g. axis
41 real(8) ::MPC_MEAN_ANOMALY_R8 = 4.090930000000000D-01 ! (unitless) - mean anomaly
42 real(8) ::MPC_SIDEREAL_YEAR_R8 = 3.155815000000000D+07 ! s - sidereal year
43!
44! *** EARTH, THE HEAVENLY BODY ***
45! These are best obtained directly from:
46! module modgps02wgs84const (constants), or
47! module modgps06gravity (functions)
48!
49! *** RADIATION CONSTANTS ***
50 real(8) ::MPC_STEFAN_BOLTZMANN_R8 = 5.669800000000000D-08 ! W m-2 K-4 - Stefan-Boltzmann constant
51 real(8) ::MPC_SOLAR_CONSTANT_R8 = 1.367000000000000D+03 ! W/m2 - solar constant
52!
53! *** THERMODYNAMIC CONSTANTS (GAS PHASE) ***
54 real(8) ::MPC_RGAS_IDEAL_R8 = 8.314511211948600D+00 ! J mol-1 K-1 - ideal-gas constant
55 real(8) ::MPC_RGAS_DRY_AIR_R8 = 2.870500000000000D+02 ! J kg-1 K-1 - gas constant, dry air
56 real(8) ::MPC_RGAS_VAPOUR_R8 = 4.615100000000000D+02 ! J kg-1 K-1 - gas constant, water vapour
57 real(8) ::MPC_EPS1_R8 = 6.219800221014000D-01 ! (unitless) - R(air) / R(vapour)
58 real(8) ::MPC_EPS2_R8 = 3.780199778986000D-01 ! (unitless) - 1 - eps1
59 real(8) ::MPC_DELTA_R8 = 6.077686814144000D-01 ! (unitless) - 1/eps1 - 1 (unitless) \u2013 [R(vapour) / R(air)] - 1
60!
61! *** THERMODYNAMIC CONSTANTS (MOLAR MASSES) ***
62 real(8) ::MPC_MOLAR_MASS_DRY_AIR_R8 = 2.896440000000000D+01 ! g/mol - dry-air molar mass
63 real(8) ::MPC_MOLAR_MASS_VAPOUR_R8 = 1.801530000000000D+01 ! g/mol - water-vapour molar mass
64 real(8) ::MPC_MOLAR_MASS_O3_R8 = 4.799820000000000D+01 ! g/mol - ozone molar mass
65 real(8) ::MPC_MOLAR_MASS_CH4_R8 = 1.604246000000000D+01 ! g/mol - methane molar mass
66 real(8) ::MPC_MOLAR_MASS_CO2_R8 = 4.400950000000000D+01 ! g/mol - CO2 molar mass
67 real(8) ::MPC_MOLAR_MASS_CO_R8 = 2.801010000000000D+01 ! g/mol - CO molar mass
68 real(8) ::MPC_MOLAR_MASS_NO2_R8 = 4.600550000000000D+01 ! g/mol - NO2 molar mass
69 real(8) ::MPC_MOLAR_MASS_NO_R8 = 3.000610000000000D+01 ! g/mol - NO molar mass
70 real(8) ::MPC_MOLAR_MASS_N2O_R8 = 4.401280000000000D+01 ! g/mol - N2O molar mass
71 real(8) ::MPC_MOLAR_MASS_HCHO_R8 = 3.002598000000000D+01 ! g/mol - Formaldehyde molar mass
72 real(8) ::MPC_MOLAR_MASS_SO2_R8 = 6.406380000000000D+01 ! g/mol - SO2 molar mass
73 real(8) ::MPC_MOLAR_MASS_NH3_R8 = 1.703052000000000D+01 ! g/mol - NH3 molar mass
74!
75! *** THERMODYNAMIC CONSTANTS (SPECIFIC HEATS) ***
76 real(8) ::MPC_CV_DRY_AIR_R8 = 7.184100000000001D+02 ! J kg-1 K-1 - sp. heat(V) of dry air
77 real(8) ::MPC_CV_VAPOUR_R8 = 1.407950000000000D+03 ! J kg-1 K-1 - sp. heat(V) of water vapour
78 real(8) ::MPC_CP_DRY_AIR_R8 = 1.005460000000000D+03 ! J kg-1 K-1 - sp. heat(P) of dry air
79 real(8) ::MPC_CP_VAPOUR_R8 = 1.869460000000000D+03 ! J kg-1 K-1 - sp. heat(P) of water vapour
80 real(8) ::MPC_CP_ICE_R8 = 2.115300000000000D+03 ! J kg-1 K-1 - sp. heat(P?) of ice
81 real(8) ::MPC_KAPPA_R8 = 2.854912179500000D-01 ! (unitless) - for dry air: Rgas / Cp
82!
83! *** THERMODYNAMIC CONSTANTS (ENTHALPIES) ***
84 real(8) ::MPC_HEAT_CONDENS_WATER_R8 = 2.501000000000000D+06 ! J/kg - heat of condensation at 0C (water)
85 real(8) ::MPC_HEAT_FUSION_WATER_R8 = 3.340000000000000D+05 ! J/kg - heat of fusion (water)
86 real(8) ::MPC_HEAT_SUBL_WATER_R8 = 2.834000000000000D+06 ! J/kg - heat of sublimation (water)
87!
88! *** THERMODYNAMIC CONSTANTS (FLUID DYNAMICS) ***
89 real(8) ::MPC_KARMAN_R8 = 4.000000000000000D-01 ! (unitless) - von Karman constant
90 real(8) ::MPC_CRITICAL_RICHARDSON_R8 = 2.000000000000000D-01 ! (unitless) -critical Richardson number
91 real(8) ::MPC_DENSITY_WATER_R8 = 1.000000000000000D+03 ! kg m-3 - density of (liquid) water
92 real(8) ::MPC_SCHUMANN_NEWELL_LAPSE_RATE_R8 = 6.628486583943000D-04 ! K s2 m-2 - Schuman-Newell lapse rate
93!
94! *** THERMODYNAMIC CONSTANTS (OTHER CHARACTERISTICS OF WATER) ***
95 real(8) ::MPC_T_ICE_R8 = 2.731600000000000D+02 ! K - ice temperature in the atmosphere
96 real(8) ::MPC_TRIPLE_POINT_R8 = 2.731600000000000D+02 ! K - triple point of water
97!
98! *** USED TO CALCULATE L/CP IN FUNC HTVOCP ***
99! Consider removing these 7 variables that are 'USED TO CALCULATE L/CP IN FUNC HTVOCP'
100 real(8) ::MPC_AI_R8 = 2.864887713087000D+03 !
101 real(8) ::MPC_AW_R8 = 3.135012829948000D+03 !
102 real(8) ::MPC_BI_R8 = 1.660931315020000D-01 !
103 real(8) ::MPC_BW_R8 = 2.367075766316000D+00 !
104 real(8) ::MPC_SLP_R8 = 6.666666666667000D-02 !
105 real(8) ::MPC_T1S_R8 = 2.731600000000000D+02 ! K
106 real(8) ::MPC_T2S_R8 = 2.581600000000000D+02 ! K
107!
108! <<<<<< C O N S T A N T S C O N C E R N I N G T H E L I M I T A T I O N S O F D I G I T A L C A L C U L A T I O N >>>>>>
109 real(8) ::MPC_MINIMUM_HU_R8 = 2.500000000000000D-06 !
110 real(8) ::MPC_MAXIMUM_ES_R8 = 3.000000000000000D+01 !
111 real(8) ::MPC_MINIMUM_VIS_R8 = 1.000000000000000D+00 !
112 real(8) ::MPC_MAXIMUM_VIS_R8 = 1.500000000000000D+04 ! 15km
113 real(8) ::MPC_MINIMUM_PR_R8 = 1.000000000000000D-04 ! 0.1 mm/h = 0.0001 m/h
114 real(8) ::MPC_MINIMUM_CH_R8 = 1.000000000000000D-01 ! 0.1 micrograms/kg (for constituents)
115 real(8) ::MPC_MINIMUM_PM_R8 = 0.000000000000000D+00 ! 0 micrograms/m^3 (for particulate matter)
116
117! <<<<<< F U N D A M E N T A L C O N S T A N T S >>>>>>
118 real(4), parameter ::MPC_PI_R4 = 3.141592653589793D+00 ! (unitless)
119 real(4), parameter ::MPC_SPEED_OF_LIGHT_R4 = 2.997924580000000D+08 ! m/s - speed of light
120 real(4), parameter ::MPC_PLANCK_R4 = 6.626075500000000D-34 ! J/s - Planck's constant
121 real(4), parameter ::MPC_BOLTZMANN_R4 = 1.380658000000000D-23 ! J/K - Boltzmann constant
122 real(4), parameter ::MPC_AVOGADRO_R4 = 6.022136700000000D+23 ! mol-1 - Avogadro's number
123!
124! *** UNIT-CONVERSION RATIOS ***
125 real(4), parameter ::MPC_KNOTS_PER_M_PER_S_R4 = 1.942535902919826D+00 ! knots/(m/s) - conversion: m/s to knots
126! N.B.: The correct value for MPC_M_PER_S_PER_KNOT is 0.5144444....
127! because 1 knot == 1.852 km/hr; 1 m/s = 3.6 km/hr
128! However, this value must match that used by others
129 real(4), parameter ::MPC_M_PER_S_PER_KNOT_R4 = 5.147910000000000D-01 ! (m/s)/knot - conversion: knots to m/s
130 real(4), parameter ::MPC_PA_PER_MBAR_R4 = 1.000000000000000D+02 ! Pa/mbar - conversion: mbars to Pascals
131 real(4), parameter ::MPC_MBAR_PER_PA_R4 = 1.000000000000000D-02 ! mbar/Pa - conversion: Pascals to mbars
132 real(4), parameter ::MPC_RADIANS_PER_DEGREE_R4 = 1.745329251994330D-02 ! rad/deg - conversion: degrees to radians
133 real(4), parameter ::MPC_DEGREES_PER_RADIAN_R4 = 5.729577951308232D+01 ! deg/rad - conversion: radians to degrees
134 real(4), parameter ::MPC_K_C_DEGREE_OFFSET_R4 = 2.731500000000000D+02 ! K - offset between degrees K and C
135!
136! <<<<<< V A L U E S T H A T A R E C O N S T A N T ... F O R N O W >>>>>>
137!
138! *** ASTRONOMICAL CONSTANTS ***
139 real(4) ::MPC_ASTRONOMICAL_UNIT_R4 = 1.495978700000000D+11 ! m - half g. axis
140 real(4) ::MPC_MEAN_ANOMALY_R4 = 4.090930000000000D-01 ! (unitless) - mean anomaly
141 real(4) ::MPC_SIDEREAL_YEAR_R4 = 3.155815000000000D+07 ! s - sidereal year
142!
143! *** EARTH, THE HEAVENLY BODY ***
144! These are best obtained directly from:
145! module modgps02wgs84const (constants), or
146! module modgps06gravity (functions)
147!
148! *** RADIATION CONSTANTS ***
149 real(4) ::MPC_STEFAN_BOLTZMANN_R4 = 5.669800000000000D-08 ! W m-2 K-4 - Stefan-Boltzmann constant
150 real(4) ::MPC_SOLAR_CONSTANT_R4 = 1.367000000000000D+03 ! W/m2 - solar constant
151!
152! *** THERMODYNAMIC CONSTANTS (GAS PHASE) ***
153 real(4) ::MPC_RGAS_IDEAL_R4 = 8.314511211948600D+00 ! J mol-1 K-1 - ideal-gas constant
154 real(4) ::MPC_RGAS_DRY_AIR_R4 = 2.870500000000000D+02 ! J kg-1 K-1 - gas constant, dry air
155 real(4) ::MPC_RGAS_VAPOUR_R4 = 4.615100000000000D+02 ! J kg-1 K-1 - gas constant, water vapour
156 real(4) ::MPC_EPS1_R4 = 6.219800221014000D-01 ! (unitless) - R(air) / R(vapour)
157 real(4) ::MPC_EPS2_R4 = 3.780199778986000D-01 ! (unitless) - 1 - eps1
158 real(4) ::MPC_DELTA_R4 = 6.077686814144000D-01 ! (unitless) - 1/eps1 - 1 (unitless) \u2013 [R(vapour) / R(air)] - 1
159!
160! *** THERMODYNAMIC CONSTANTS (MOLAR MASSES) ***
161 real(4) ::MPC_MOLAR_MASS_DRY_AIR_R4 = 2.896440000000000D+01 ! g/mol - dry-air molar mass
162 real(4) ::MPC_MOLAR_MASS_VAPOUR_R4 = 1.801530000000000D+01 ! g/mol - water-vapour molar mass
163 real(4) ::MPC_MOLAR_MASS_O3_R4 = 4.799820000000000D+01 ! g/mol - ozone molar mass
164 real(4) ::MPC_MOLAR_MASS_CH4_R4 = 1.604246000000000D+01 ! g/mol - methane molar mass
165 real(4) ::MPC_MOLAR_MASS_CO2_R4 = 4.400950000000000D+01 ! g/mol - CO2 molar mass
166 real(4) ::MPC_MOLAR_MASS_CO_R4 = 2.801010000000000D+01 ! g/mol - CO molar mass
167 real(4) ::MPC_MOLAR_MASS_NO2_R4 = 4.600550000000000D+01 ! g/mol - NO2 molar mass
168 real(4) ::MPC_MOLAR_MASS_NO_R4 = 3.000610000000000D+01 ! g/mol - NO molar mass
169 real(4) ::MPC_MOLAR_MASS_N2O_R4 = 4.401280000000000D+01 ! g/mol - N2O molar mass
170 real(4) ::MPC_MOLAR_MASS_HCHO_R4 = 3.002598000000000D+01 ! g/mol - Formaldehyde molar mass
171 real(4) ::MPC_MOLAR_MASS_SO2_R4 = 6.406380000000000D+01 ! g/mol - SO2 molar mass
172 real(4) ::MPC_MOLAR_MASS_NH3_R4 = 1.703052000000000D+01 ! g/mol - NH3 molar mass
173!
174! *** THERMODYNAMIC CONSTANTS (SPECIFIC HEATS) ***
175 real(4) ::MPC_CV_DRY_AIR_R4 = 7.184100000000001D+02 ! J kg-1 K-1 - sp. heat(V) of dry air
176 real(4) ::MPC_CV_VAPOUR_R4 = 1.407950000000000D+03 ! J kg-1 K-1 - sp. heat(V) of water vapour
177 real(4) ::MPC_CP_DRY_AIR_R4 = 1.005460000000000D+03 ! J kg-1 K-1 - sp. heat(P) of dry air
178 real(4) ::MPC_CP_VAPOUR_R4 = 1.869460000000000D+03 ! J kg-1 K-1 - sp. heat(P) of water vapour
179 real(4) ::MPC_CP_ICE_R4 = 2.115300000000000D+03 ! J kg-1 K-1 - sp. heat(P?) of ice
180 real(4) ::MPC_KAPPA_R4 = 2.854912179500000D-01 ! (unitless) - for dry air: Rgas / Cp
181!
182! *** THERMODYNAMIC CONSTANTS (ENTHALPIES) ***
183 real(4) ::MPC_HEAT_CONDENS_WATER_R4 = 2.501000000000000D+06 ! J/kg - heat of condensation at 0C (water)
184 real(4) ::MPC_HEAT_FUSION_WATER_R4 = 3.340000000000000D+05 ! J/kg - heat of fusion (water)
185 real(4) ::MPC_HEAT_SUBL_WATER_R4 = 2.834000000000000D+06 ! J/kg - heat of sublimation (water)
186!
187! *** THERMODYNAMIC CONSTANTS (FLUID DYNAMICS) ***
188 real(4) ::MPC_KARMAN_R4 = 4.000000000000000D-01 ! (unitless) - von Karman constant
189 real(4) ::MPC_CRITICAL_RICHARDSON_R4 = 2.000000000000000D-01 ! (unitless) -critical Richardson number
190 real(4) ::MPC_DENSITY_WATER_R4 = 1.000000000000000D+03 ! kg m-3 - density of (liquid) water
191 real(4) ::MPC_SCHUMANN_NEWELL_LAPSE_RATE_R4 = 6.628486583943000D-04 ! K s2 m-2 - Schuman-Newell lapse rate
192!
193! *** THERMODYNAMIC CONSTANTS (OTHER CHARACTERISTICS OF WATER) ***
194 real(4) ::MPC_T_ICE_R4 = 2.731600000000000D+02 ! K - ice temperature in the atmosphere
195 real(4) ::MPC_TRIPLE_POINT_R4 = 2.731600000000000D+02 ! K - triple point of water
196!
197! *** USED TO CALCULATE L/CP IN FUNC HTVOCP ***
198! Consider removing these 7 variables that are 'USED TO CALCULATE L/CP IN FUNC HTVOCP'
199 real(4) ::MPC_AI_R4 = 2.864887713087000D+03 !
200 real(4) ::MPC_AW_R4 = 3.135012829948000D+03 !
201 real(4) ::MPC_BI_R4 = 1.660931315020000D-01 !
202 real(4) ::MPC_BW_R4 = 2.367075766316000D+00 !
203 real(4) ::MPC_SLP_R4 = 6.666666666667000D-02 !
204 real(4) ::MPC_T1S_R4 = 2.731600000000000D+02 ! K
205 real(4) ::MPC_T2S_R4 = 2.581600000000000D+02 ! K
206!
207! <<<<<< C O N S T A N T S C O N C E R N I N G T H E L I M I T A T I O N S O F D I G I T A L C A L C U L A T I O N >>>>>>
208 real(4) ::MPC_MINIMUM_HU_R4 = 2.500000000000000D-06 !
209 real(4) ::MPC_MAXIMUM_ES_R4 = 3.000000000000000D+01 !
210 real(4) ::MPC_MINIMUM_VIS_R4 = 1.000000000000000D+00 !
211 real(4) ::MPC_MAXIMUM_VIS_R4 = 1.500000000000000D+04 ! 15km
212 real(4) ::MPC_MINIMUM_PR_R4 = 1.000000000000000D-04 ! 0.1 mm/h = 0.0001 m/h
213 real(4) ::MPC_MINIMUM_CH_R4 = 1.000000000000000D-01 ! 0.1 micrograms/kg (for constituents)
214 real(4) ::MPC_MINIMUM_PM_R4 = 0.000000000000000D+00 ! 0 micrograms/m^3 (for particulate matter)
215
216! <<<<<< OBS FILE CONSTANTS
217 real(4), parameter :: MPC_missingValue_R4 = -999.
218 real(8), parameter :: MPC_missingValue_R8 = -999.D0
219 integer, parameter :: MPC_missingValue_INT = -999
220
221contains
222
223 subroutine mpc_setValue(name, var_r4, var_r8, value)
224 !
225 !:Purpose: To provide a means to change a (non-parameter) value
226 implicit none
227
228 ! Arguments:
229 character(len=*), intent(in) :: name
230 real(4), intent(inout) :: var_r4
231 real(8), intent(inout) :: var_r8
232 real(8), intent(in) :: value
233
234 var_r4 = value
235 var_r8 = value
236
237 write(6,*)'****************************************************'
238 write(6,*)'*'
239 write(6,*)'* THE VALUE OF THE CONSTANT ', name
240 write(6,*)'*'
241 write(6,'(A25, D22.15)')' * HAS BEEN CHANGED TO ', var_r8
242 write(6,*)'*'
243 write(6,*)'****************************************************'
244 end subroutine mpc_setValue
245
246 subroutine mpc_printConstants(kulout)
247 !
248 !:Purpose: To print all of the constants that are provided by this module.
249 ! The intent is to make it clear in a program listing which values
250 ! were used.
251 implicit none
252
253 ! Arguments:
254 integer, intent(in) :: kulout ! unit number for printing
255
256 write(kulout,FMT='(//,4x ,"*** mpc_printConstants: definition of Mathematical and Physical constants ***",/)')
257 write(kulout,*) " <<<<<< F U N D A M E N T A L C O N S T A N T S >>>>>>"
258 write(kulout,"(A36, D22.15, A)") " MPC_PI_R8= ", MPC_PI_R8 , " (unitless)"
259 write(kulout,"(A36, D22.15, A)") " MPC_SPEED_OF_LIGHT_R8= ", MPC_SPEED_OF_LIGHT_R8 , " m/s - speed of light"
260 write(kulout,"(A36, D22.15, A)") " MPC_PLANCK_R8= ", MPC_PLANCK_R8 , " J/s - Planck's constant"
261 write(kulout,"(A36, D22.15, A)") " MPC_BOLTZMANN_R8= ", MPC_BOLTZMANN_R8 , " J/K - Boltzmann constant"
262 write(kulout,"(A36, D22.15, A)") " MPC_AVOGADRO_R8= ", MPC_AVOGADRO_R8 , " mol-1 - Avogadro's number"
263 write(kulout,*) ""
264 write(kulout,*) " *** UNIT-CONVERSION RATIOS ***"
265 write(kulout,"(A36, D22.15, A)") " MPC_KNOTS_PER_M_PER_S_R8= ", MPC_KNOTS_PER_M_PER_S_R8 , " knots/(m/s) - conversion: m/s to knots"
266 write(kulout,*) " N.B.: The correct value for MPC_M_PER_S_PER_KNOT is 0.5144444...."
267 write(kulout,*) " because 1 knot == 1.852 km/hr; 1 m/s = 3.6 km/hr"
268 write(kulout,*) " However, this value must match that used by others"
269 write(kulout,"(A36, D22.15, A)") " MPC_M_PER_S_PER_KNOT_R8= ", MPC_M_PER_S_PER_KNOT_R8 , " (m/s)/knot - conversion: knots to m/s"
270 write(kulout,"(A36, D22.15, A)") " MPC_PA_PER_MBAR_R8= ", MPC_PA_PER_MBAR_R8 , " Pa/mbar - conversion: mbars to Pascals"
271 write(kulout,"(A36, D22.15, A)") " MPC_MBAR_PER_PA_R8= ", MPC_MBAR_PER_PA_R8 , " mbar/Pa - conversion: Pascals to mbars"
272 write(kulout,"(A36, D22.15, A)") " MPC_RADIANS_PER_DEGREE_R8= ", MPC_RADIANS_PER_DEGREE_R8 , " rad/deg - conversion: degrees to radians"
273 write(kulout,"(A36, D22.15, A)") " MPC_DEGREES_PER_RADIAN_R8= ", MPC_DEGREES_PER_RADIAN_R8 , " deg/rad - conversion: radians to degrees"
274 write(kulout,"(A36, D22.15, A)") " MPC_K_C_DEGREE_OFFSET_R8= ", MPC_K_C_DEGREE_OFFSET_R8 , " K - offset between degrees K and C"
275 write(kulout,*) ""
276 write(kulout,*) " <<<<<< V A L U E S T H A T A R E C O N S T A N T ... F O R N O W >>>>>>"
277 write(kulout,*) ""
278 write(kulout,*) " *** ASTRONOMICAL CONSTANTS ***"
279 write(kulout,"(A36, D22.15, A)") " MPC_ASTRONOMICAL_UNIT_R8= ", MPC_ASTRONOMICAL_UNIT_R8 , " m - half g. axis"
280 write(kulout,"(A36, D22.15, A)") " MPC_MEAN_ANOMALY_R8= ", MPC_MEAN_ANOMALY_R8 , " (unitless) - mean anomaly"
281 write(kulout,"(A36, D22.15, A)") " MPC_SIDEREAL_YEAR_R8= ", MPC_SIDEREAL_YEAR_R8 , " s - sidereal year"
282 write(kulout,*) ""
283 write(kulout,*) " *** EARTH, THE HEAVENLY BODY ***"
284 write(kulout,*) " These are best obtained directly from:"
285 write(kulout,*) " module modgps02wgs84const (constants), or"
286 write(kulout,*) " module modgps06gravity (functions)"
287 write(kulout,*) ""
288 write(kulout,*) " *** RADIATION CONSTANTS ***"
289 write(kulout,"(A36, D22.15, A)") " MPC_STEFAN_BOLTZMANN_R8= ", MPC_STEFAN_BOLTZMANN_R8 , " W m-2 K-4 - Stefan-Boltzmann constant"
290 write(kulout,"(A36, D22.15, A)") " MPC_SOLAR_CONSTANT_R8= ", MPC_SOLAR_CONSTANT_R8 , " W/m2 - solar constant"
291 write(kulout,*) ""
292 write(kulout,*) " *** THERMODYNAMIC CONSTANTS (GAS PHASE) ***"
293 write(kulout,"(A36, D22.15, A)") " MPC_RGAS_IDEAL_R8= ", MPC_RGAS_IDEAL_R8 , " J mol-1 K-1 - ideal-gas constant"
294 write(kulout,"(A36, D22.15, A)") " MPC_RGAS_DRY_AIR_R8= ", MPC_RGAS_DRY_AIR_R8 , " J kg-1 K-1 - gas constant, dry air"
295 write(kulout,"(A36, D22.15, A)") " MPC_RGAS_VAPOUR_R8= ", MPC_RGAS_VAPOUR_R8 , " J kg-1 K-1 - gas constant, water vapour"
296 write(kulout,"(A36, D22.15, A)") " MPC_EPS1_R8= ", MPC_EPS1_R8 , " (unitless) - R(air) / R(vapour)"
297 write(kulout,"(A36, D22.15, A)") " MPC_EPS2_R8= ", MPC_EPS2_R8 , " (unitless) - 1 - eps1"
298 write(kulout,"(A36, D22.15, A)") " MPC_DELTA_R8= ", MPC_DELTA_R8 , " (unitless) - 1/eps1 - 1 (unitless) \u2013 [R(vapour) / R(air)] - 1"
299 write(kulout,*) ""
300 write(kulout,*) " *** THERMODYNAMIC CONSTANTS (MOLAR MASSES) ***"
301 write(kulout,"(A36, D22.15, A)") " MPC_MOLAR_MASS_DRY_AIR_R8= ", MPC_MOLAR_MASS_DRY_AIR_R8 , " g/mol - dry-air molar mass"
302 write(kulout,"(A36, D22.15, A)") " MPC_MOLAR_MASS_VAPOUR_R8= ", MPC_MOLAR_MASS_VAPOUR_R8 , " g/mol - water-vapour molar mass"
303 write(kulout,"(A36, D22.15, A)") " MPC_MOLAR_MASS_O3_R8= ", MPC_MOLAR_MASS_O3_R8 , " g/mol - ozone molar mass"
304 write(kulout,"(A36, D22.15, A)") " MPC_MOLAR_MASS_CH4_R8= ", MPC_MOLAR_MASS_CH4_R8 , " g/mol - methane molar mass"
305 write(kulout,"(A36, D22.15, A)") " MPC_MOLAR_MASS_CO2_R8= ", MPC_MOLAR_MASS_CO2_R8 , " g/mol - CO2 molar mass"
306 write(kulout,"(A36, D22.15, A)") " MPC_MOLAR_MASS_CO_R8= ", MPC_MOLAR_MASS_CO_R8 , " g/mol - CO molar mass"
307 write(kulout,"(A36, D22.15, A)") " MPC_MOLAR_MASS_NO2_R8= ", MPC_MOLAR_MASS_NO2_R8 , " g/mol - NO2 molar mass"
308 write(kulout,"(A36, D22.15, A)") " MPC_MOLAR_MASS_NO_R8= ", MPC_MOLAR_MASS_NO_R8 , " g/mol - NO molar mass"
309 write(kulout,"(A36, D22.15, A)") " MPC_MOLAR_MASS_N2O_R8= ", MPC_MOLAR_MASS_N2O_R8 , " g/mol - N2O molar mass"
310 write(kulout,"(A36, D22.15, A)") " MPC_MOLAR_MASS_HCHO_R8= ", MPC_MOLAR_MASS_HCHO_R8 , " g/mol - Formaldehyde molar mass"
311 write(kulout,"(A36, D22.15, A)") " MPC_MOLAR_MASS_SO2_R8= ", MPC_MOLAR_MASS_SO2_R8 , " g/mol - SO2 molar mass"
312 write(kulout,"(A36, D22.15, A)") " MPC_MOLAR_MASS_NH3_R8= ", MPC_MOLAR_MASS_NH3_R8 , " g/mol - NH3 molar mass"
313 write(kulout,*) ""
314 write(kulout,*) " *** THERMODYNAMIC CONSTANTS (SPECIFIC HEATS) ***"
315 write(kulout,"(A36, D22.15, A)") " MPC_CV_DRY_AIR_R8= ", MPC_CV_DRY_AIR_R8 , " J kg-1 K-1 - sp. heat(V) of dry air"
316 write(kulout,"(A36, D22.15, A)") " MPC_CV_VAPOUR_R8= ", MPC_CV_VAPOUR_R8 , " J kg-1 K-1 - sp. heat(V) of water vapour"
317 write(kulout,"(A36, D22.15, A)") " MPC_CP_DRY_AIR_R8= ", MPC_CP_DRY_AIR_R8 , " J kg-1 K-1 - sp. heat(P) of dry air"
318 write(kulout,"(A36, D22.15, A)") " MPC_CP_VAPOUR_R8= ", MPC_CP_VAPOUR_R8 , " J kg-1 K-1 - sp. heat(P) of water vapour"
319 write(kulout,"(A36, D22.15, A)") " MPC_CP_ICE_R8= ", MPC_CP_ICE_R8 , " J kg-1 K-1 - sp. heat(P?) of ice"
320 write(kulout,"(A36, D22.15, A)") " MPC_KAPPA_R8= ", MPC_KAPPA_R8 , " (unitless) - for dry air: Rgas / Cp"
321 write(kulout,*) ""
322 write(kulout,*) " *** THERMODYNAMIC CONSTANTS (ENTHALPIES) ***"
323 write(kulout,"(A36, D22.15, A)") " MPC_HEAT_CONDENS_WATER_R8= ", MPC_HEAT_CONDENS_WATER_R8 , " J/kg - heat of condensation at 0C (water)"
324 write(kulout,"(A36, D22.15, A)") " MPC_HEAT_FUSION_WATER_R8= ", MPC_HEAT_FUSION_WATER_R8 , " J/kg - heat of fusion (water)"
325 write(kulout,"(A36, D22.15, A)") " MPC_HEAT_SUBL_WATER_R8= ", MPC_HEAT_SUBL_WATER_R8 , " J/kg - heat of sublimation (water)"
326 write(kulout,*) ""
327 write(kulout,*) " *** THERMODYNAMIC CONSTANTS (FLUID DYNAMICS) ***"
328 write(kulout,"(A36, D22.15, A)") " MPC_KARMAN_R8= ", MPC_KARMAN_R8 , " (unitless) - von Karman constant"
329 write(kulout,"(A36, D22.15, A)") " MPC_CRITICAL_RICHARDSON_R8= ", MPC_CRITICAL_RICHARDSON_R8 , " (unitless) -critical Richardson number"
330 write(kulout,"(A36, D22.15, A)") " MPC_DENSITY_WATER_R8= ", MPC_DENSITY_WATER_R8 , " kg m-3 - density of (liquid) water"
331 write(kulout,"(A36, D22.15, A)") " MPC_SCHUMANN_NEWELL_LAPSE_RATE_R8= ", MPC_SCHUMANN_NEWELL_LAPSE_RATE_R8 , " K s2 m-2 - Schuman-Newell lapse rate"
332 write(kulout,*) ""
333 write(kulout,*) " *** THERMODYNAMIC CONSTANTS (OTHER CHARACTERISTICS OF WATER) ***"
334 write(kulout,"(A36, D22.15, A)") " MPC_T_ICE_R8= ", MPC_T_ICE_R8 , " K - ice temperature in the atmosphere"
335 write(kulout,"(A36, D22.15, A)") " MPC_TRIPLE_POINT_R8= ", MPC_TRIPLE_POINT_R8 , " K - triple point of water"
336 write(kulout,*) ""
337 write(kulout,*) " *** USED TO CALCULATE L/CP IN FUNC HTVOCP ***"
338 write(kulout,*) " Consider removing these 7 variables that are 'USED TO CALCULATE L/CP IN FUNC HTVOCP'"
339 write(kulout,"(A36, D22.15, A)") " MPC_AI_R8= ", MPC_AI_R8 , " "
340 write(kulout,"(A36, D22.15, A)") " MPC_AW_R8= ", MPC_AW_R8 , " "
341 write(kulout,"(A36, D22.15, A)") " MPC_BI_R8= ", MPC_BI_R8 , " "
342 write(kulout,"(A36, D22.15, A)") " MPC_BW_R8= ", MPC_BW_R8 , " "
343 write(kulout,"(A36, D22.15, A)") " MPC_SLP_R8= ", MPC_SLP_R8 , " "
344 write(kulout,"(A36, D22.15, A)") " MPC_T1S_R8= ", MPC_T1S_R8 , " K"
345 write(kulout,"(A36, D22.15, A)") " MPC_T2S_R8= ", MPC_T2S_R8 , " K"
346 write(kulout,*) ""
347 write(kulout,*) " <<<<<< C O N S T A N T S C O N C E R N I N G T H E L I M I T A T I O N S O F D I G I T A L C A L C U L A T I O N >>>>>>"
348 write(kulout,"(A36, D22.15, A)") " MPC_MINIMUM_HU_R8= ", MPC_MINIMUM_HU_R8 , " "
349 write(kulout,"(A36, D22.15, A)") " MPC_MAXIMUM_ES_R8= ", MPC_MAXIMUM_ES_R8 , " "
350 write(kulout,"(A36, D22.15, A)") " MPC_MINIMUM_CH_R8= ", MPC_MINIMUM_CH_R8 , " "
351 write(kulout,"(A36, D22.15, A)") " MPC_MINIMUM_PM_R8= ", MPC_MINIMUM_PM_R8 , " "
352 write(kulout,*) "\n\n"
353 end subroutine mpc_printConstants
354end MODULE mathPhysConstants_mod