source: LMDZ6/branches/contrails/libf/phylmd/suphel.f90 @ 5450

Last change on this file since 5450 was 5285, checked in by abarral, 8 weeks ago

As discussed internally, remove generic ONLY: ... for new _mod_h modules

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