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