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

Annotation of /trunk/phylmd/suphec.f

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.21