1 | !WRF:MODEL_LAYER:CONSTANTS |
---|
2 | ! |
---|
3 | !PLANET MARS |
---|
4 | |
---|
5 | MODULE module_model_constants |
---|
6 | USE module_configure |
---|
7 | ! 2. Following are constants for use in defining real number bounds. |
---|
8 | |
---|
9 | ! A really small number. |
---|
10 | character(len=15) :: planet |
---|
11 | REAL , PARAMETER :: epsilon = 1.E-15 |
---|
12 | |
---|
13 | ! 4. Following is information related to the physical constants. |
---|
14 | |
---|
15 | ! These are the physical parameter used within the model. |
---|
16 | |
---|
17 | !! added in WRFV3 |
---|
18 | real , parameter :: mwdry = 43.49 ! molecular weight of dry air (g/mole) |
---|
19 | ! |
---|
20 | !------------------------------- |
---|
21 | |
---|
22 | REAL , PARAMETER :: asselin = .025 |
---|
23 | ! REAL , PARAMETER :: asselin = .0 |
---|
24 | REAL , PARAMETER :: cb = 25. |
---|
25 | |
---|
26 | REAL , PARAMETER :: XLV0 = 3.15E6 |
---|
27 | REAL , PARAMETER :: XLV1 = 2370. |
---|
28 | REAL , PARAMETER :: XLS0 = 2.905E6 |
---|
29 | REAL , PARAMETER :: XLS1 = 259.532 |
---|
30 | |
---|
31 | REAL , PARAMETER :: XLS = 2.85E6 |
---|
32 | REAL , PARAMETER :: XLV = 2.5E6 |
---|
33 | REAL , PARAMETER :: XLF = 3.50E5 |
---|
34 | |
---|
35 | REAL , PARAMETER :: rhowater = 1000. |
---|
36 | REAL , PARAMETER :: rhosnow = 100. |
---|
37 | REAL , PARAMETER :: rhoair0 = 0.02 !Earth Surface density: 1.217 kg/m3 |
---|
38 | !Mars Surface density: 0.020 kg/m3 |
---|
39 | REAL , PARAMETER :: DEGRAD = 3.1415926/180. |
---|
40 | REAL , PARAMETER :: DPD = 360./669. ! longitude solaire d'un jour? |
---|
41 | |
---|
42 | REAL , PARAMETER :: SVP1=0.6112 |
---|
43 | REAL , PARAMETER :: SVP2=17.67 |
---|
44 | REAL , PARAMETER :: SVP3=29.65 |
---|
45 | REAL , PARAMETER :: SVPT0=273.15 |
---|
46 | REAL , PARAMETER :: KARMAN=0.4 ! von karman constant |
---|
47 | REAL , PARAMETER :: STBOLT=5.67051E-8 ! stefan-boltzmann constant |
---|
48 | |
---|
49 | !! NB: c_s and c_k in WRFV2 moved to module_diffusion_em.F |
---|
50 | !! NB: no need in WRFV3 because set in namelist |
---|
51 | REAL , PARAMETER :: prandtl = 1./3.0 |
---|
52 | ! constants for w-damping option |
---|
53 | ! REAL , PARAMETER :: w_alpha = 0.3 ! strength m/s/s |
---|
54 | REAL , PARAMETER :: w_alpha = 2.0 ! strength m/s/s |
---|
55 | ! REAL , PARAMETER :: w_beta = 1.0 ! activation cfl number |
---|
56 | REAL , PARAMETER :: w_beta = 0.8 ! activation cfl number |
---|
57 | |
---|
58 | !! in WRFV3 |
---|
59 | ! REAL , PARAMETER :: w_alpha = 0.3 ! strength m/s/s |
---|
60 | ! REAL , PARAMETER :: w_beta = 1.0 ! activation cfl number |
---|
61 | !! |
---|
62 | REAL , PARAMETER :: pq0=379.90516 |
---|
63 | REAL , PARAMETER :: epsq2=0.2 |
---|
64 | ! REAL , PARAMETER :: epsq2=0.02 |
---|
65 | REAL , PARAMETER :: a2=17.2693882 |
---|
66 | REAL , PARAMETER :: a3=273.16 |
---|
67 | REAL , PARAMETER :: a4=35.86 |
---|
68 | REAL , PARAMETER :: epsq=1.e-12 |
---|
69 | !#if ( NMM_CORE == 1 ) |
---|
70 | REAL , PARAMETER :: climit=1.e-20 |
---|
71 | REAL , PARAMETER :: cm1=2937.4 |
---|
72 | REAL , PARAMETER :: cm2=4.9283 |
---|
73 | REAL , PARAMETER :: cm3=23.5518 |
---|
74 | ! REAL , PARAMETER :: defc=8.0 |
---|
75 | ! REAL , PARAMETER :: defm=32.0 |
---|
76 | REAL , PARAMETER :: defc=0.0 |
---|
77 | REAL , PARAMETER :: defm=99999.0 |
---|
78 | REAL , PARAMETER :: epsfc=1./1.05 |
---|
79 | REAL , PARAMETER :: epswet=0.0 |
---|
80 | REAL , PARAMETER :: fcdif=1./3. |
---|
81 | ! REAL , PARAMETER :: fcm=0.003 |
---|
82 | REAL , PARAMETER :: fcm=0.00003 |
---|
83 | ! REAL , PARAMETER :: fcm=0.0 |
---|
84 | REAL , PARAMETER :: p400=40000.0 |
---|
85 | REAL , PARAMETER :: phitp=15000.0 |
---|
86 | REAL , PARAMETER :: pi2=2.*3.1415926 |
---|
87 | REAL , PARAMETER :: plbtm=105000.0 |
---|
88 | REAL , PARAMETER :: plomd=64200.0 |
---|
89 | REAL , PARAMETER :: pmdhi=35000.0 |
---|
90 | REAL , PARAMETER :: q2ini=0.50 |
---|
91 | REAL , PARAMETER :: rhcrit_land=0.75 |
---|
92 | REAL , PARAMETER :: rhcrit_sea=0.80 |
---|
93 | REAL , PARAMETER :: rlag=14.8125 |
---|
94 | REAL , PARAMETER :: rlx=0.90 |
---|
95 | REAL , PARAMETER :: scq2=50.0 |
---|
96 | REAL , PARAMETER :: slopht=0.001 |
---|
97 | REAL , PARAMETER :: tlc=2.*0.703972477 |
---|
98 | REAL , PARAMETER :: wa=0.15 |
---|
99 | REAL , PARAMETER :: wght=0.35 |
---|
100 | REAL , PARAMETER :: wpc=0.075 |
---|
101 | REAL , PARAMETER :: z0land=0.10 |
---|
102 | ! REAL , PARAMETER :: z0max=0.01 |
---|
103 | REAL , PARAMETER :: z0max=0.008 |
---|
104 | REAL , PARAMETER :: z0sea=0.001 |
---|
105 | REAL, PARAMETER :: r_v=461.6 ! gas constant for water vapor |
---|
106 | !#endif |
---|
107 | |
---|
108 | !!!! needed in WRFV3 |
---|
109 | ! Earth |
---|
110 | |
---|
111 | ! The value for P2SI *must* be set to 1.0 for Earth |
---|
112 | ! Although, now we may not need this declaration here (see above) |
---|
113 | !REAL , PARAMETER :: P2SI = 1.0 |
---|
114 | |
---|
115 | ! Orbital constants: |
---|
116 | |
---|
117 | INTEGER , PARAMETER :: PLANET_YEAR = 365 |
---|
118 | REAL , PARAMETER :: OBLIQUITY = 23.5 |
---|
119 | REAL , PARAMETER :: ECCENTRICITY = 0.014 |
---|
120 | REAL , PARAMETER :: SEMIMAJORAXIS = 1.0 ! In AU |
---|
121 | ! Don't know the following values, so we'll fake them for now |
---|
122 | REAL , PARAMETER :: zero_date = 0.0 ! Time of perihelion passage |
---|
123 | ! Fraction into the year (from perhelion) of the |
---|
124 | ! occurrence of the Northern Spring Equinox |
---|
125 | REAL , PARAMETER :: EQUINOX_FRACTION= 0.0 |
---|
126 | !!!! needed in WRFV3 |
---|
127 | |
---|
128 | ! These are the physical constants planet dependent used within the model. |
---|
129 | |
---|
130 | real :: g |
---|
131 | REAL :: r_d |
---|
132 | REAL :: cp |
---|
133 | !REAL :: cpp |
---|
134 | REAL :: cv |
---|
135 | REAL :: cpv |
---|
136 | REAL :: cvv |
---|
137 | REAL :: cvpm |
---|
138 | REAL :: cliq |
---|
139 | REAL :: cice |
---|
140 | REAL :: psat |
---|
141 | REAL :: rcv |
---|
142 | REAL :: rcp |
---|
143 | REAL :: rovg |
---|
144 | REAL :: c2 |
---|
145 | REAL :: EOMEG ! angular rotation rate (rad.s-1) |
---|
146 | |
---|
147 | REAL :: p1000mb |
---|
148 | REAL :: t0 |
---|
149 | REAL :: p0 |
---|
150 | REAL :: cpovcv |
---|
151 | REAL :: cvovcp |
---|
152 | REAL :: rvovrd |
---|
153 | REAL :: gma |
---|
154 | REAL :: EP_1 |
---|
155 | REAL :: EP_2 |
---|
156 | REAL :: rfcp |
---|
157 | REAL :: p608 |
---|
158 | REAL :: rad |
---|
159 | REAL :: reradius |
---|
160 | Real :: molmas !Molecular mass |
---|
161 | |
---|
162 | REAL :: wdaysec ! duree du sol (s) ~88775 s |
---|
163 | REAL :: wmugaz ! Masse molaire de l'atm (g.mol-1) ~43.49 |
---|
164 | REAL :: womeg ! omega (rad.s-1) |
---|
165 | REAL :: wyear_day ! Duree de l'annee (sols) ~668.6 |
---|
166 | REAL :: wperiheli ! Dist.min. soleil-mars (Mkm) ~206.66 |
---|
167 | REAL :: waphelie ! Dist.max. soleil-mars (Mkm) ~249.22 |
---|
168 | REAL :: wperi_day ! Date du perihelie (sols depuis printemps) |
---|
169 | REAL :: wobliquit ! Obliquite de la planete (deg) ~25.2 |
---|
170 | REAL :: wz0 ! surface roughness (m) ~0.01 |
---|
171 | REAL :: wlmixmin ! longueur de melange ~100 |
---|
172 | REAL :: wemin_turb ! energie minimale ~1.e-8 |
---|
173 | REAL :: wemissiv ! Emissivite du sol martien ~.95 |
---|
174 | REAL :: wemissiceN ! Emissivite calotte nord |
---|
175 | REAL :: wemissiceS ! Emissivite calotte sud |
---|
176 | REAL :: walbediceN ! Albedo calotte nord !0.5 |
---|
177 | REAL :: walbediceS ! Albedo calotte sud !0.5 |
---|
178 | REAL :: wiceradiusN ! mean scat radius of CO2 snow (north) |
---|
179 | REAL :: wiceradiusS ! mean scat radius of CO2 snow (south) |
---|
180 | REAL :: wdtemisiceN ! time scale for snow metamorphism (north) !2 |
---|
181 | REAL :: wdtemisiceS ! time scale for snow metamorphism (south) !2 |
---|
182 | REAL :: wvolcapa ! volumetric capacity of soil (new soil model) |
---|
183 | REAL :: z_scale ! scale height |
---|
184 | |
---|
185 | REAL :: TT00 |
---|
186 | REAL :: nu |
---|
187 | CONTAINS |
---|
188 | SUBROUTINE init_module_model_constants |
---|
189 | IMPLICIT NONE |
---|
190 | Call initial_config |
---|
191 | planet=model_config_rec%planet |
---|
192 | !write(*,*) "unknown planet type", planet |
---|
193 | !stop |
---|
194 | |
---|
195 | ! These are the physical constants used within the model |
---|
196 | |
---|
197 | IF ( planet == "mars" ) then |
---|
198 | ! JM NOTE -- can we name this grav instead? |
---|
199 | g = 3.72 ! acceleration due to gravity (m {s}^-2) |
---|
200 | |
---|
201 | !#if ( NMM_CORE == 1 ) |
---|
202 | ! REAL :: r_d = 192. ! gas constant m2 s-2 K-1 |
---|
203 | ! REAL :: cp = 844.6 ! r= 8.314511E+0 *1000.E+0/mugaz |
---|
204 | !#else |
---|
205 | ! REAL :: r_d = 192. |
---|
206 | ! REAL :: cp = 844.6 |
---|
207 | !#endif |
---|
208 | |
---|
209 | r_d = 191. |
---|
210 | cp = 744.5 |
---|
211 | cliq = 4190. |
---|
212 | cice = 2106. |
---|
213 | psat = 610.78 |
---|
214 | t0 = 220. ! earth : 300 ... à remplacer par 220 ? |
---|
215 | p0 = 610. |
---|
216 | p1000mb = 610. |
---|
217 | reradius = 1./3397200. ! Rayon de mars (m) ~3397200 m |
---|
218 | EOMEG =7.0721E-5 ! angular rotation rate (rad.s-1) |
---|
219 | wdaysec = 88800. ! duree du sol (s) ~88775 s |
---|
220 | wmugaz = 43.49 ! Masse molaire de l'atm (g.mol-1) ~43.49 |
---|
221 | womeg = 7.0721E-5 ! omega (rad.s-1) |
---|
222 | wyear_day = 669. ! Duree de l'annee (sols) ~668.6 |
---|
223 | wperiheli = 206.66 ! Dist.min. soleil-mars (Mkm) ~206.66 |
---|
224 | waphelie = 249.22 ! Dist.max. soleil-mars (Mkm) ~249.22 |
---|
225 | wperi_day = 485. ! Date du perihelie (sols depuis printemps) |
---|
226 | wobliquit = 25.2 ! Obliquite de la planete (deg) ~25.2 |
---|
227 | wz0 = 1.e-2 ! surface roughness (m) ~0.01 |
---|
228 | wlmixmin = 30. ! longueur de melange ~100 |
---|
229 | wemin_turb = 1.e-6 ! energie minimale ~1.e-8 |
---|
230 | wemissiv = 0.95 ! Emissivite du sol martien ~.95 |
---|
231 | wemissiceN = 0.95 ! Emissivite calotte nord |
---|
232 | wemissiceS = 0.95 ! Emissivite calotte sud |
---|
233 | walbediceN = 0.65 ! Albedo calotte nord !0.5 |
---|
234 | walbediceS = 0.65 ! Albedo calotte sud !0.5 |
---|
235 | wiceradiusN = 100.e-6 ! mean scat radius of CO2 snow (north) |
---|
236 | wiceradiusS = 100.e-6 ! mean scat radius of CO2 snow (south) |
---|
237 | wdtemisiceN = 0.4 ! time scale for snow metamorphism (north) !2 |
---|
238 | wdtemisiceS = 0.4 ! time scale for snow metamorphism (south) !2 |
---|
239 | #ifdef NEWPHYS |
---|
240 | wvolcapa = 1.e6 ! volumetric capacity of soil (new soil model) |
---|
241 | #endif |
---|
242 | TT00=0. |
---|
243 | nu=0. |
---|
244 | !#endif |
---|
245 | ELSE if ( planet == "venus") then |
---|
246 | g = 8.87 |
---|
247 | r_d = 191.84383904727036 |
---|
248 | !cpp = 1000. |
---|
249 | cp = 1000. |
---|
250 | cliq = 4190. |
---|
251 | psat = 610.78 |
---|
252 | t0 = 735. ! earth : 300 |
---|
253 | p0 = 92.e5 |
---|
254 | p1000mb = 92.e5 |
---|
255 | reradius = 1./6051800. ! Rayon de mars (m) ~6051800 m |
---|
256 | rad = 6051800. |
---|
257 | wmugaz = 43.49 |
---|
258 | womeg = 0.2992549E-06 |
---|
259 | wdaysec = 0.1008707E08 |
---|
260 | TT00=460. |
---|
261 | nu=0.35 |
---|
262 | ELSE if ( planet == "titan") then |
---|
263 | g = 1.35 |
---|
264 | r_d = 298.734319568 |
---|
265 | cp = 1038.72627727 |
---|
266 | cliq = 4190. |
---|
267 | psat = 610.78 |
---|
268 | t0 = 94. ! earth : 300 |
---|
269 | p0 = 146144.796875 |
---|
270 | p1000mb = 146144.796875 |
---|
271 | reradius = 1./2575500.0 ! Rayon de mars (m) ~6051800 m |
---|
272 | rad = 2575500.0 |
---|
273 | wmugaz = 28.6 |
---|
274 | womeg = 0.2992549E-06 !!!!!!!!!!!!!!!!!!! |
---|
275 | wdaysec = 1377665.28 |
---|
276 | TT00=0. |
---|
277 | nu=0. |
---|
278 | ELSE if (( planet == "prescribed").or.(planet == "generic")) then |
---|
279 | open(17,file='planet_constant',form='formatted',status='old') |
---|
280 | rewind(17) |
---|
281 | read(17,*) g |
---|
282 | read(17,*) cp |
---|
283 | read(17,*) molmas |
---|
284 | read(17,*) t0 |
---|
285 | read(17,*) p0 |
---|
286 | read(17,*) rad |
---|
287 | close(17) |
---|
288 | r_d=8.314/(molmas*1e-3) |
---|
289 | p1000mb=p0 |
---|
290 | reradius=1./rad |
---|
291 | TT00=0. |
---|
292 | nu=0. |
---|
293 | Else |
---|
294 | write(*,*) "unknown planet type:", planet |
---|
295 | stop |
---|
296 | endif |
---|
297 | cv = cp-r_d |
---|
298 | cpv = 3.9*r_v |
---|
299 | cvv = cpv-r_v |
---|
300 | cvpm = -cv/cp |
---|
301 | rcv = r_d/cv |
---|
302 | rcp = r_d/cp |
---|
303 | rovg = r_d/g |
---|
304 | c2 = cp * rcv |
---|
305 | cpovcv = cp/(cp-r_d) |
---|
306 | cvovcp = 1./cpovcv |
---|
307 | rvovrd = r_v/r_d |
---|
308 | gma = -r_d*(1.-rcp)*0.5 |
---|
309 | EP_1 = r_v/r_d-1. |
---|
310 | EP_2 = r_d/r_v |
---|
311 | rfcp =0.25/cp |
---|
312 | p608 =rvovrd-1. |
---|
313 | z_scale =(r_d*t0/g)*1e-3 |
---|
314 | write(*,*) "planet : ", planet |
---|
315 | write(*,*) "g = ", g |
---|
316 | write(*,*) "cp = ", cp |
---|
317 | write(*,*) "r_d = ", r_d |
---|
318 | write(*,*) "t0 = ", t0 |
---|
319 | write(*,*) "p0 = ", p0 |
---|
320 | write(*,*) "T0 = ", TT00 |
---|
321 | write(*,*) "nu = ", nu |
---|
322 | END SUBROUTINE init_module_model_constants |
---|
323 | END MODULE module_model_constants |
---|