source: LMDZ6/trunk/libf/phylmd/suphel.f90 @ 5274

Last change on this file since 5274 was 5274, checked in by abarral, 31 hours ago

Replace yomcst.h by existing module

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