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

Annotation of /trunk/phylmd/suphec.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 70 - (hide annotations)
Mon Jun 24 15:39:52 2013 UTC (10 years, 10 months ago) by guez
Original Path: trunk/libf/phylmd/suphec.f90
File size: 4720 byte(s)
In procedure, "addfi" access directly the module variable "dtphys"
instead of going through an argument.

In "conflx", do not create a local variable for temperature with
reversed order of vertical levels. Instead, give an actual argument
with reversed order in "physiq".

Changed names of variables "rmd" and "rmv" from module "suphec_m" to
"md" and "mv".

In "hgardfou", print only the first temperature out of range found.

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     real, parameter:: RATM = 100000.
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     print *, 'Thermodynamic, trans. '
144     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     print '('' Normal press. = '', 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

  ViewVC Help
Powered by ViewVC 1.1.21