/[lmdze]/trunk/Sources/phylmd/suphec.f
ViewVC logotype

Contents of /trunk/Sources/phylmd/suphec.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 169 - (show annotations)
Mon Sep 14 17:13:16 2015 UTC (8 years, 8 months ago) by guez
File size: 4582 byte(s)
In inifilr_hemisph, colat0 is necessarily >= 1. / rlamda(iim) (see
notes) so we simplify the definition of jfilt. No need to keep modfrst
values at other latitudes than the current one, and we can have one
loop on latitudes instead of two.

Just encapsulated transp into a module.

1 module suphec_m
2
3 use nr_util, only: pi
4
5 implicit none
6
7 ! A1.0 Fundamental constants
8 real, parameter:: RCLUM = 299792458. ! speed of light, m s-1
9 real, parameter:: RHPLA = 6.6260755E-34 ! Planck constant, J s
10 real, parameter:: KBOL = 1.380658E-23 ! Boltzmann constant, in J K-1
11 real, parameter:: NAVO = 6.0221367E23 ! Avogadro number, in mol-1
12
13 ! A1.1 Astronomical constants
14 REAL RSIYEA, RSIDAY, ROMEGA
15 real, parameter:: RDAY = 86400.
16 real, parameter:: REA = 149597870000.
17 real, parameter:: REPSM = 0.409093
18
19 ! A1.2 Geoide
20 real, parameter:: RG = 9.80665 ! acceleration of gravity, in m s-2
21 real, parameter:: RA = 6371229.
22
23 ! A1.3 Radiation
24 REAL, parameter:: rsigma = 2. * pi**5 * (kbol / rhpla)**3 * kbol / rclum**2 &
25 / 15.
26
27 ! A1.4 Thermodynamic gas phase
28 REAL, parameter:: R = NAVO * KBOL ! ideal gas constant, in J K-1 mol-1
29 real, parameter:: MV = 18.0153 ! molar mass of water, in g mol-1
30
31 real, parameter:: RV = 1e3 * R / MV
32 ! specific ideal gas constant for water vapor, in J K-1 kg-1
33 ! (factor 1e3: conversion from g to kg)
34
35 real, parameter:: MD = 28.9644 ! molar mass of dry air, in g mol-1
36
37 real, parameter:: RD = 1e3 * R / MD
38 ! specific ideal gas constant for dry air, in J K-1 kg-1
39 ! (factor 1e3: conversion from g to kg)
40
41 real, save:: RCPV, RCVD, RCVV
42
43 real, parameter:: RCPD = 7. / 2 * RD
44 ! specific heat capacity for dry air, in J K-1 kg-1
45
46 real, parameter:: RMO3 = 47.9942
47 REAL, parameter:: RKAPPA = RD/RCPD
48 real, save:: RETV
49
50 ! A1.5, 6 Thermodynamic liquid, solid phases
51 REAL, save:: RCW, RCS
52
53 ! A1.7 Thermodynamic transition of phase
54 REAL, save:: RLMLT
55 real, parameter:: RTT = 273.16
56 real, parameter:: RLVTT = 2.5008E+6
57 real, parameter:: RLSTT = 2.8345E+6
58 real, parameter:: RATM = 1e5
59
60 ! A1.8 Curve of saturation
61 REAL, save:: RALPW, RBETW, RGAMW, RALPS, RBETS, RGAMS
62 real, parameter:: RESTT = 611.14
63 REAL, save:: RALPD, RBETD, RGAMD
64
65 private pi
66
67 contains
68
69 SUBROUTINE suphec
70
71 ! From phylmd/suphec.F, version 1.2 2005/06/06 13:16:33
72 ! Initialise certaines constantes et certains paramètres physiques.
73
74 !------------------------------------------
75
76 PRINT *, 'Call sequence information: suphec'
77
78 ! 2. DEFINE ASTRONOMICAL CONSTANTS
79
80 RSIYEA = 365.25*RDAY*2.*PI/6.283076
81 RSIDAY = RDAY/(1.+RDAY/RSIYEA)
82 ROMEGA = 2.*PI/RSIDAY
83
84 print *, 'Astronomical constants '
85 print '('' day = '', E13.7, '' s'')', RDAY
86 print '('' half g. axis = '', E13.7, '' m'')', REA
87 print '('' mean anomaly = '', E13.7, '' -'')', REPSM
88 print '('' sideral year = '', E13.7, '' s'')', RSIYEA
89 print '('' sideral day = '', E13.7, '' s'')', RSIDAY
90 print '('' omega = '', E13.7, '' s-1'')', ROMEGA
91
92 ! 3. DEFINE GEOIDE.
93
94 print *, ' Geoide '
95 print '('' Gravity = '', E13.7, '' m s-2'')', RG
96 print '('' Earth radius = '', E13.7, '' m'')', RA
97
98 ! 4. DEFINE RADIATION CONSTANTS.
99
100 print *, ' Radiation '
101 print '('' Stefan-Bol. = '', E13.7, '' W m-2 K-4'')', RSIGMA
102
103 ! 5. DEFINE THERMODYNAMIC CONSTANTS, GAS PHASE.
104
105 RCVD = RCPD-RD
106 RCPV = 4. * RV
107 RCVV = RCPV-RV
108 RETV = RV / RD - 1.
109 print *, 'Thermodynamics, gas'
110 print '('' Ozone mass = '', e13.7)', RMO3
111 print *, "rd = ", RD, "J K-1 kg-1"
112 print *, "rv = ", RV, "J K-1 kg-1"
113 print '('' Cpd = '', e13.7)', RCPD
114 print '('' Cvd = '', e13.7)', RCVD
115 print '('' Cpv = '', e13.7)', RCPV
116 print '('' Cvv = '', e13.7)', RCVV
117 print '('' Rd/Cpd = '', e13.7)', RKAPPA
118 print '('' Rv / Rd - 1 = '', e13.7)', RETV
119
120 ! 6. DEFINE THERMODYNAMIC CONSTANTS, LIQUID PHASE.
121
122 RCW = RCPV
123 print *, 'Thermodynamic, liquid '
124 print '('' Cw = '', E13.7)', RCW
125
126 ! 7. DEFINE THERMODYNAMIC CONSTANTS, SOLID PHASE.
127
128 RCS = RCPV
129 print *, 'thermodynamic, solid'
130 print '('' Cs = '', E13.7)', RCS
131
132 ! 8. DEFINE THERMODYNAMIC CONSTANTS, TRANSITION OF PHASE.
133
134 RLMLT = RLSTT-RLVTT
135 print *, 'Thermodynamic, transition of phase:'
136 print '('' Fusion point = '', E13.7)', RTT
137 print '('' RLvTt = '', E13.7)', RLVTT
138 print '('' RLsTt = '', E13.7)', RLSTT
139 print '('' RLMlt = '', E13.7)', RLMLT
140 print '('' Normal pressure = '', E13.7)', RATM
141
142 ! 9. SATURATED VAPOUR PRESSURE.
143
144 RGAMW = (RCW-RCPV)/RV
145 RBETW = RLVTT/RV+RGAMW*RTT
146 RALPW = LOG(RESTT)+RBETW/RTT+RGAMW*LOG(RTT)
147 RGAMS = (RCS-RCPV)/RV
148 RBETS = RLSTT/RV+RGAMS*RTT
149 RALPS = LOG(RESTT)+RBETS/RTT+RGAMS*LOG(RTT)
150 RGAMD = RGAMS-RGAMW
151 RBETD = RBETS-RBETW
152 RALPD = RALPS-RALPW
153
154 END SUBROUTINE suphec
155
156 end module suphec_m

  ViewVC Help
Powered by ViewVC 1.1.21