GCC Code Coverage Report


Directory: ./
File: phys/suphel.f90
Date: 2022-01-11 19:19:34
Exec Total Coverage
Lines: 118 118 100.0%
Branches: 2 2 100.0%

Line Branch Exec Source
1
2 ! $Header$
3
4 8 SUBROUTINE suphel
5
6 IMPLICIT NONE
7
8 include "YOMCST.h"
9 include "YOETHF.h"
10 ! IM cf. JLD
11 LOGICAL firstcall
12 SAVE firstcall
13 !$OMP THREADPRIVATE(firstcall)
14 DATA firstcall/.TRUE./
15
16
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
2 IF (firstcall) THEN
17 1 PRINT *, 'suphel initialise les constantes du GCM'
18 1 firstcall = .FALSE.
19 ELSE
20 1 PRINT *, 'suphel DEJA APPELE '
21 1 RETURN
22 END IF
23 ! -----------------------------------------------------------------
24
25 ! * 1. DEFINE FUNDAMENTAL CONSTANTS.
26 ! -----------------------------
27
28 1 WRITE (UNIT=6, FMT='(''0*** Constants of the ICM ***'')')
29 1 rpi = 2.*asin(1.)
30 1 rclum = 299792458.
31 1 rhpla = 6.6260755E-34
32 1 rkbol = 1.380658E-23
33 1 rnavo = 6.0221367E+23
34 1 WRITE (UNIT=6, FMT='('' *** Fundamental constants ***'')')
35 1 WRITE (UNIT=6, FMT='('' PI = '',E13.7,'' -'')') rpi
36 1 WRITE (UNIT=6, FMT='('' c = '',E13.7,''m s-1'')') rclum
37 1 WRITE (UNIT=6, FMT='('' h = '',E13.7,''J s'')') rhpla
38 1 WRITE (UNIT=6, FMT='('' K = '',E13.7,''J K-1'')') rkbol
39 1 WRITE (UNIT=6, FMT='('' N = '',E13.7,''mol-1'')') rnavo
40
41 ! ----------------------------------------------------------------
42
43 ! * 2. DEFINE ASTRONOMICAL CONSTANTS.
44 ! ------------------------------
45
46 1 rday = 86400.
47 1 rea = 149597870000.
48 1 repsm = 0.409093
49
50 1 rsiyea = 365.25*rday*2.*rpi/6.283076
51 1 rsiday = rday/(1.+rday/rsiyea)
52 1 romega = 2.*rpi/rsiday
53
54 ! exp1 R_ecc = 0.05
55 ! exp1 R_peri = 102.04
56 ! exp1 R_incl = 22.5
57 ! exp1 print*, 'Parametres orbitaux modifies'
58 ! ref R_ecc = 0.016724
59 ! ref R_peri = 102.04
60 ! ref R_incl = 23.5
61
62 ! IM 161002 : pour avoir les ctes AMIP II
63 ! IM 161002 R_ecc = 0.016724
64 ! IM 161002 R_peri = 102.04
65 ! IM 161002 R_incl = 23.5
66 ! IM on mets R_ecc, R_peri, R_incl dans conf_phys.F90
67 ! R_ecc = 0.016715
68 ! R_peri = 102.7
69 ! R_incl = 23.441
70
71 1 WRITE (UNIT=6, FMT='('' *** Astronomical constants ***'')')
72 1 WRITE (UNIT=6, FMT='('' day = '',E13.7,'' s'')') rday
73 1 WRITE (UNIT=6, FMT='('' half g. axis = '',E13.7,'' m'')') rea
74 1 WRITE (UNIT=6, FMT='('' mean anomaly = '',E13.7,'' -'')') repsm
75 1 WRITE (UNIT=6, FMT='('' sideral year = '',E13.7,'' s'')') rsiyea
76 1 WRITE (UNIT=6, FMT='('' sideral day = '',E13.7,'' s'')') rsiday
77 1 WRITE (UNIT=6, FMT='('' omega = '',E13.7,'' s-1'')') romega
78 ! write(unit=6,fmt='('' excentricite = '',e13.7,''-'')')R_ecc
79 ! write(unit=6,fmt='('' equinoxe = '',e13.7,''-'')')R_peri
80 ! write(unit=6,fmt='('' inclinaison = '',e13.7,''-'')')R_incl
81
82 ! ------------------------------------------------------------------
83
84 ! * 3. DEFINE GEOIDE.
85 ! --------------
86
87 1 rg = 9.80665
88 1 ra = 6371229.
89 1 r1sa = sngl(1.D0/dble(ra))
90 1 WRITE (UNIT=6, FMT='('' *** Geoide ***'')')
91 1 WRITE (UNIT=6, FMT='('' Gravity = '',E13.7,'' m s-2'')') rg
92 1 WRITE (UNIT=6, FMT='('' Earth radius = '',E13.7,'' m'')') ra
93 1 WRITE (UNIT=6, FMT='('' Inverse E.R. = '',E13.7,'' m'')') r1sa
94
95 ! -----------------------------------------------------------------
96
97 ! * 4. DEFINE RADIATION CONSTANTS.
98 ! ---------------------------
99
100 ! z.x.li RSIGMA=2. * RPI**5 * RKBOL**4 /(15.* RCLUM**2 * RHPLA**3)
101 1 rsigma = 2.*rpi**5*(rkbol/rhpla)**3*rkbol/rclum/rclum/15.
102 ! IM init. dans conf_phys.F90 RI0=1365.
103 1 WRITE (UNIT=6, FMT='('' *** Radiation ***'')')
104 WRITE (UNIT=6, FMT='('' Stefan-Bol. = '',E13.7,'' W m-2 K-4'' &
105 & &
106 1 & )') rsigma
107 ! IM init. dans conf_phys.F90 WRITE(UNIT=6,FMT='('' Solar const. =
108 ! '',E13.7,'' W m-2'')')
109 ! IM init. dans conf_phys.F90 S RI0
110
111 ! -----------------------------------------------------------------
112
113 ! * 5. DEFINE THERMODYNAMIC CONSTANTS, GAS PHASE.
114 ! ------------------------------------------
115
116 1 r = rnavo*rkbol
117 1 rmd = 28.9644
118 1 rmo3 = 47.9942
119 1 rmco2 = 44.011
120 1 rmch4 = 16.043
121 1 rmn2o = 44.013
122 1 rmcfc11 = 137.3686
123 1 rmcfc12 = 120.9140
124 1 rmc = 12.0107
125 1 rmv = 18.0153
126 1 rd = 1000.*r/rmd
127 1 rv = 1000.*r/rmv
128 1 rcpd = 3.5*rd
129 1 rcvd = rcpd - rd
130 1 rcpv = 4.*rv
131 1 rcvv = rcpv - rv
132 1 rkappa = rd/rcpd
133 1 eps_w = rmv / rmd
134 1 retv = rv/rd - 1.
135 1 WRITE (UNIT=6, FMT='('' *** Thermodynamic, gas ***'')')
136 1 WRITE (UNIT=6, FMT='('' Perfect gas = '',e13.7)') r
137 1 WRITE (UNIT=6, FMT='('' Dry air mass = '',e13.7)') rmd
138 1 WRITE (UNIT=6, FMT='('' Ozone mass = '',e13.7)') rmo3
139 1 WRITE (UNIT=6, FMT='('' CO2 mass = '',e13.7)') rmco2
140 1 WRITE (UNIT=6, FMT='('' C mass = '',e13.7)') rmc
141 1 WRITE (UNIT=6, FMT='('' CH4 mass = '',e13.7)') rmch4
142 1 WRITE (UNIT=6, FMT='('' N2O mass = '',e13.7)') rmn2o
143 1 WRITE (UNIT=6, FMT='('' CFC11 mass = '',e13.7)') rmcfc11
144 1 WRITE (UNIT=6, FMT='('' CFC12 mass = '',e13.7)') rmcfc12
145 1 WRITE (UNIT=6, FMT='('' Vapour mass = '',e13.7)') rmv
146 1 WRITE (UNIT=6, FMT='('' Dry air cst. = '',e13.7)') rd
147 1 WRITE (UNIT=6, FMT='('' Vapour cst. = '',e13.7)') rv
148 1 WRITE (UNIT=6, FMT='('' Cpd = '',e13.7)') rcpd
149 1 WRITE (UNIT=6, FMT='('' Cvd = '',e13.7)') rcvd
150 1 WRITE (UNIT=6, FMT='('' Cpv = '',e13.7)') rcpv
151 1 WRITE (UNIT=6, FMT='('' Cvv = '',e13.7)') rcvv
152 1 WRITE (UNIT=6, FMT='('' Rd/Cpd = '',e13.7)') rkappa
153 1 WRITE (UNIT=6, FMT='('' Rv/Rd-1 = '',e13.7)') retv
154
155 ! ----------------------------------------------------------------
156
157 ! * 6. DEFINE THERMODYNAMIC CONSTANTS, LIQUID PHASE.
158 ! ---------------------------------------------
159
160 1 rcw = rcpv
161 1 WRITE (UNIT=6, FMT='('' *** Thermodynamic, liquid ***'')')
162 1 WRITE (UNIT=6, FMT='('' Cw = '',E13.7)') rcw
163
164 ! ----------------------------------------------------------------
165
166 ! * 7. DEFINE THERMODYNAMIC CONSTANTS, SOLID PHASE.
167 ! --------------------------------------------
168
169 1 rcs = rcpv
170 1 WRITE (UNIT=6, FMT='('' *** thermodynamic, solid ***'')')
171 1 WRITE (UNIT=6, FMT='('' Cs = '',E13.7)') rcs
172
173 ! ----------------------------------------------------------------
174
175 ! * 8. DEFINE THERMODYNAMIC CONSTANTS, TRANSITION OF PHASE.
176 ! ----------------------------------------------------
177
178 1 rtt = 273.16
179 1 rlvtt = 2.5008E+6
180 1 rlstt = 2.8345E+6
181 1 rlmlt = rlstt - rlvtt
182 1 ratm = 100000.
183 1 WRITE (UNIT=6, FMT='('' *** Thermodynamic, trans. ***'')')
184 1 WRITE (UNIT=6, FMT='('' Fusion point = '',E13.7)') rtt
185 1 WRITE (UNIT=6, FMT='('' RLvTt = '',E13.7)') rlvtt
186 1 WRITE (UNIT=6, FMT='('' RLsTt = '',E13.7)') rlstt
187 1 WRITE (UNIT=6, FMT='('' RLMlt = '',E13.7)') rlmlt
188 1 WRITE (UNIT=6, FMT='('' Normal press. = '',E13.7)') ratm
189 1 WRITE (UNIT=6, FMT='('' Latent heat : '')')
190
191 ! ----------------------------------------------------------------
192
193 ! * 9. SATURATED VAPOUR PRESSURE.
194 ! --------------------------
195
196 1 restt = 611.14
197 1 rgamw = (rcw-rcpv)/rv
198 1 rbetw = rlvtt/rv + rgamw*rtt
199 1 ralpw = log(restt) + rbetw/rtt + rgamw*log(rtt)
200 1 rgams = (rcs-rcpv)/rv
201 1 rbets = rlstt/rv + rgams*rtt
202 1 ralps = log(restt) + rbets/rtt + rgams*log(rtt)
203 1 rgamd = rgams - rgamw
204 1 rbetd = rbets - rbetw
205 1 ralpd = ralps - ralpw
206
207 ! ------------------------------------------------------------------
208
209 ! * 10. CONSTANTS FOR THERMODYNAMICAL FUNCTIONS.
210 ! ----------------------------------------
211
212 1 rvtmp2 = rcpv/rcpd - 1.
213 1 rhoh2o = ratm/100.
214 1 r2es = restt*rd/rv
215 1 r3les = 17.269
216 1 r3ies = 21.875
217 1 r4les = 35.86
218 1 r4ies = 7.66
219 1 r5les = r3les*(rtt-r4les)
220 1 r5ies = r3ies*(rtt-r4ies)
221
222 ! ------------------------------------------------------------------
223
224 ! * 10. CONSTANTS FOR METHANE OXIDATION AND PHOTOLYSIS.
225 ! -----------------------------------------------
226
227 1 CALL SUMETHOX()
228
229 1 RETURN
230 END SUBROUTINE suphel
231