source: LMDZ6/branches/Amaury_dev/libf/phylmd/suphel.F90 @ 5151

Last change on this file since 5151 was 5144, checked in by abarral, 7 weeks ago

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