/[lmdze]/trunk/phylmd/ini_histins.f90
ViewVC logotype

Contents of /trunk/phylmd/ini_histins.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 343 - (show annotations)
Mon Oct 28 08:14:26 2019 UTC (4 years, 6 months ago) by guez
File size: 14281 byte(s)
Add output variables rld and rldcs

Add output variables rld and rldcs (following LMDZ).

In procedure cdrag, rename variables zdu2, ztsolv, ztvd, zri to du2,
tsolv, tvd, ri. Replace `exp(log(psol))` by psol.

In procedure `pbl_surface`, rename u, v to `u_seri`, `v_seri`.

1 module ini_histins_m
2
3 implicit none
4
5 integer, save:: nid_ins
6
7 contains
8
9 subroutine ini_histins
10
11 ! From phylmd/ini_histins.h, version 1.2, 2005/05/25 13:10:09
12
13 use clesphys, only: ecrit_ins, ok_instan
14 use clesphys2, only: conv_emanuel
15 use comconst, only: dtphys
16 use dimensions, only: iim, jjm, llm, nqmx
17 use disvert_m, only: presnivs
18 use dynetat0_m, only: rlatu, rlonv
19 use dynetat0_chosen_m, only: day_ref, annee_ref
20 USE histbeg_totreg_m, ONLY : histbeg_totreg
21 USE histdef_m, ONLY : histdef
22 USE histend_m, ONLY : histend
23 USE histvert_m, ONLY : histvert
24 use indicesol, only: nbsrf, clnsurf
25 use infotrac_init_m, only: tname, ttext
26 use nr_util, only: pi
27 use phyetat0_m, only: itau_phy
28 USE ymds2ju_m, only: ymds2ju
29
30 ! Local:
31 double precision julian
32 real zsto, zout
33 integer nhori, nvert, nsrf, iq, it
34
35 !-------------------------------------------------------------------
36
37 print *, 'Call sequence information: ini_histins'
38
39 test_ok_instan: IF (ok_instan) THEN
40 zsto = dtphys * ecrit_ins
41 zout = dtphys * ecrit_ins
42 CALL ymds2ju(annee_ref, 1, day_ref, 0.0, julian)
43 CALL histbeg_totreg("histins", rlonv(:iim) / pi * 180., &
44 rlatu / pi * 180., 1, iim, &
45 1, jjm + 1, itau_phy, julian, dtphys, nhori, nid_ins)
46 print *, 'itau_phy = ', itau_phy
47 print *, "julian = ", julian
48 CALL histvert(nid_ins, "presnivs", "Vertical levels", "mb", &
49 presnivs/100., nvert)
50
51 ! Once:
52 CALL histdef(nid_ins, "phis", "surface geopotential", "m2 s-2", &
53 iim, jjm + 1, nhori, 1, 1, 1, -99, &
54 "once", zsto, zout)
55 CALL histdef(nid_ins, "aire", "Grid area", "-", &
56 iim, jjm + 1, nhori, 1, 1, 1, -99, &
57 "once", zsto, zout)
58
59 ! Champs 2D:
60
61 CALL histdef(nid_ins, "tsol", "Surface Temperature", "K", &
62 iim, jjm + 1, nhori, 1, 1, 1, -99, &
63 "inst(X)", zsto, zout)
64 CALL histdef(nid_ins, "t2m", "Temperature 2m", "K", &
65 iim, jjm + 1, nhori, 1, 1, 1, -99, &
66 "inst(X)", zsto, zout)
67 CALL histdef(nid_ins, "q2m", "Specific humidity 2m", "Kg/Kg", &
68 iim, jjm + 1, nhori, 1, 1, 1, -99, &
69 "inst(X)", zsto, zout)
70 CALL histdef(nid_ins, "u10m", "Vent zonal 10m", "m/s", &
71 iim, jjm + 1, nhori, 1, 1, 1, -99, &
72 "inst(X)", zsto, zout)
73 CALL histdef(nid_ins, "v10m", "Vent meridien 10m", "m/s", &
74 iim, jjm + 1, nhori, 1, 1, 1, -99, &
75 "inst(X)", zsto, zout)
76 CALL histdef(nid_ins, "psol", "Surface Pressure", "Pa", &
77 iim, jjm + 1, nhori, 1, 1, 1, -99, &
78 "inst(X)", zsto, zout)
79 CALL histdef(nid_ins, "plul", "Large-scale Precip.", "mm/day", &
80 iim, jjm + 1, nhori, 1, 1, 1, -99, &
81 "inst(X)", zsto, zout)
82 CALL histdef(nid_ins, "pluc", "Convective Precip.", "mm/day", &
83 iim, jjm + 1, nhori, 1, 1, 1, -99, &
84 "inst(X)", zsto, zout)
85 CALL histdef(nid_ins, "cdrm", "Momentum drag coef.", "-", &
86 iim, jjm + 1, nhori, 1, 1, 1, -99, &
87 "inst(X)", zsto, zout)
88 CALL histdef(nid_ins, "cdrh", "Heat drag coef.", "-", &
89 iim, jjm + 1, nhori, 1, 1, 1, -99, &
90 "inst(X)", zsto, zout)
91 CALL histdef(nid_ins, "precip", "Precipitation Totale liq+sol", &
92 "kg/(s*m2)", &
93 iim, jjm + 1, nhori, 1, 1, 1, -99, &
94 "inst(X)", zsto, zout)
95 CALL histdef(nid_ins, "snow", "Snow fall", "kg/(s*m2)", &
96 iim, jjm + 1, nhori, 1, 1, 1, -99, &
97 "inst(X)", zsto, zout)
98 CALL histdef(nid_ins, "topl", "OLR", "W/m2", &
99 iim, jjm + 1, nhori, 1, 1, 1, -99, &
100 "inst(X)", zsto, zout)
101 CALL histdef(nid_ins, "evap", "Evaporation", "kg/(s*m2)", &
102 iim, jjm + 1, nhori, 1, 1, 1, -99, &
103 "inst(X)", zsto, zout)
104 CALL histdef(nid_ins, "sols", "Solar rad. at surf.", "W/m2", &
105 iim, jjm + 1, nhori, 1, 1, 1, -99, &
106 "inst(X)", zsto, zout)
107 CALL histdef(nid_ins, "rls", "surface net downward longwave flux", &
108 "W/m2", iim, jjm + 1, nhori, 1, 1, 1, -99, "inst(X)", zsto, zout)
109 CALL histdef(nid_ins, "solldown", "Down. IR rad. at surface", &
110 "W/m2", iim, jjm + 1, nhori, 1, 1, 1, -99, &
111 "inst(X)", zsto, zout)
112 CALL histdef(nid_ins, "bils", "Surf. total heat flux", "W/m2", &
113 iim, jjm + 1, nhori, 1, 1, 1, -99, &
114 "inst(X)", zsto, zout)
115 CALL histdef(nid_ins, "sens", "Sensible heat flux", "W/m2", &
116 iim, jjm + 1, nhori, 1, 1, 1, -99, &
117 "inst(X)", zsto, zout)
118 CALL histdef(nid_ins, "fder", "Heat flux derivation", "W/m2", &
119 iim, jjm + 1, nhori, 1, 1, 1, -99, &
120 "inst(X)", zsto, zout)
121 CALL histdef(nid_ins, "dtsvdfo", "Boundary-layer dTs(o)", "K/s", &
122 iim, jjm + 1, nhori, 1, 1, 1, -99, &
123 "inst(X)", zsto, zout)
124 CALL histdef(nid_ins, "dtsvdft", "Boundary-layer dTs(t)", "K/s", &
125 iim, jjm + 1, nhori, 1, 1, 1, -99, &
126 "inst(X)", zsto, zout)
127 CALL histdef(nid_ins, "dtsvdfg", "Boundary-layer dTs(g)", "K/s", &
128 iim, jjm + 1, nhori, 1, 1, 1, -99, &
129 "inst(X)", zsto, zout)
130 CALL histdef(nid_ins, "dtsvdfi", "Boundary-layer dTs(g)", "K/s", &
131 iim, jjm + 1, nhori, 1, 1, 1, -99, &
132 "inst(X)", zsto, zout)
133 CALL histdef(nid_ins, "msnow", "surface snow amount", "kg/m2", &
134 iim, jjm + 1, nhori, 1, 1, 1, -99, "inst(X)", zsto, zout)
135 CALL histdef(nid_ins, "zxfqcalving", "ice calving", "kg m-2 s-1", &
136 iim, jjm + 1, nhori, 1, 1, 1, -99, "inst(X)", zsto, zout)
137 CALL histdef(nid_ins, "run_off_lic", "land ice melt to ocean", &
138 "kg m-2 s-1", iim, jjm + 1, nhori, 1, 1, 1, -99, "inst(X)", zsto, &
139 zout)
140 CALL histdef(nid_ins, "flat", "latent heat flux", "W m-2", iim, &
141 jjm + 1, nhori, 1, 1, 1, -99, "inst(X)", zsto, zout)
142
143 DO nsrf = 1, nbsrf
144 call histdef(nid_ins, "fract_"//clnsurf(nsrf), &
145 "Fraction "//clnsurf(nsrf), "1", &
146 iim, jjm + 1, nhori, 1, 1, 1, -99, &
147 "inst(X)", zsto, zout)
148 call histdef(nid_ins, "sens_"//clnsurf(nsrf), &
149 "Sensible heat flux "//clnsurf(nsrf), "W/m2", &
150 iim, jjm + 1, nhori, 1, 1, 1, -99, &
151 "inst(X)", zsto, zout)
152 call histdef(nid_ins, "tsol_"//clnsurf(nsrf), &
153 "Surface Temperature"//clnsurf(nsrf), "W/m2", &
154 iim, jjm + 1, nhori, 1, 1, 1, -99, &
155 "inst(X)", zsto, zout)
156 call histdef(nid_ins, "lat_"//clnsurf(nsrf), &
157 "Latent heat flux "//clnsurf(nsrf), "W/m2", &
158 iim, jjm + 1, nhori, 1, 1, 1, -99, &
159 "inst(X)", zsto, zout)
160 call histdef(nid_ins, "taux_"//clnsurf(nsrf), &
161 "Zonal wind stress"//clnsurf(nsrf), "Pa", &
162 iim, jjm + 1, nhori, 1, 1, 1, -99, &
163 "inst(X)", zsto, zout)
164 call histdef(nid_ins, "tauy_"//clnsurf(nsrf), &
165 "Meridional xind stress "//clnsurf(nsrf), "Pa", &
166 iim, jjm + 1, nhori, 1, 1, 1, -99, &
167 "inst(X)", zsto, zout)
168 call histdef(nid_ins, "albe_"//clnsurf(nsrf), &
169 "Albedo "//clnsurf(nsrf), "-", &
170 iim, jjm + 1, nhori, 1, 1, 1, -99, &
171 "inst(X)", zsto, zout)
172 call histdef(nid_ins, "rugs_"//clnsurf(nsrf), &
173 "rugosite "//clnsurf(nsrf), "-", &
174 iim, jjm + 1, nhori, 1, 1, 1, -99, &
175 "inst(X)", zsto, zout)
176 call histdef(nid_ins, "u10m_"//clnsurf(nsrf), &
177 "zonal wind 10 m "//clnsurf(nsrf), "m s-1", &
178 iim, jjm + 1, nhori, 1, 1, 1, -99, &
179 "inst(X)", zsto, zout)
180 call histdef(nid_ins, "v10m_"//clnsurf(nsrf), &
181 "meridional wind 10 m "//clnsurf(nsrf), "m s-1", &
182 iim, jjm + 1, nhori, 1, 1, 1, -99, &
183 "inst(X)", zsto, zout)
184 END DO
185
186 CALL histdef(nid_ins, "rugs", "rugosity", "-", &
187 iim, jjm + 1, nhori, 1, 1, 1, -99, &
188 "inst(X)", zsto, zout)
189 CALL histdef(nid_ins, "albs", "Surface albedo", "-", &
190 iim, jjm + 1, nhori, 1, 1, 1, -99, &
191 "inst(X)", zsto, zout)
192 CALL histdef(nid_ins, "s_pblh", "Boundary Layer Height", "m", &
193 iim, jjm + 1, nhori, 1, 1, 1, -99, &
194 "inst(X)", zsto, zout)
195 CALL histdef(nid_ins, "s_pblt", "T at Boundary Layer Height", &
196 "K", &
197 iim, jjm + 1, nhori, 1, 1, 1, -99, &
198 "inst(X)", zsto, zout)
199 CALL histdef(nid_ins, "s_lcl", "Condensation level", "m", &
200 iim, jjm + 1, nhori, 1, 1, 1, -99, &
201 "inst(X)", zsto, zout)
202 CALL histdef(nid_ins, "s_capCL", &
203 "Convective available potential energy for atmospheric boundary " &
204 // "layer", "J/m2", iim, jjm + 1, nhori, 1, 1, 1, -99, &
205 "inst(X)", zsto, zout)
206 CALL histdef(nid_ins, "s_oliqCL", "Liq Water in BL", "kg/m2", &
207 iim, jjm + 1, nhori, 1, 1, 1, -99, &
208 "inst(X)", zsto, zout)
209 CALL histdef(nid_ins, "s_cteiCL", "Instability criteria (ABL)", "K", &
210 iim, jjm + 1, nhori, 1, 1, 1, -99, &
211 "inst(X)", zsto, zout)
212 CALL histdef(nid_ins, "s_therm", "Exces du thermique", "K", &
213 iim, jjm + 1, nhori, 1, 1, 1, -99, &
214 "inst(X)", zsto, zout)
215 CALL histdef(nid_ins, "qsurf", "Surface Air humidity", "", &
216 iim, jjm + 1, nhori, 1, 1, 1, -99, &
217 "inst(X)", zsto, zout)
218
219 if (conv_emanuel) then
220 CALL histdef(nid_ins, "ptop", "cloud top pressure", &
221 "Pa", iim, jjm + 1, nhori, 1, 1, 1, -99, "inst(X)", zsto, zout)
222 CALL histdef(nid_ins, "dnwd0", "unsaturated downdraft", &
223 "kg/m2/s", iim, jjm + 1, nhori, llm, 1, llm, nvert, "inst(X)", &
224 zsto, zout)
225 end if
226
227 ! Champs 3D:
228
229 CALL histdef(nid_ins, "tro3", "ozone mole fraction", "-", &
230 iim, jjm + 1, nhori, llm, 1, llm, nvert, "inst(X)", zsto, zout)
231 CALL histdef(nid_ins, "temp", "Temperature", "K", &
232 iim, jjm + 1, nhori, llm, 1, llm, nvert, &
233 "inst(X)", zsto, zout)
234 CALL histdef(nid_ins, "vitu", "Zonal wind", "m/s", &
235 iim, jjm + 1, nhori, llm, 1, llm, nvert, &
236 "inst(X)", zsto, zout)
237 CALL histdef(nid_ins, "vitv", "Merid wind", "m/s", &
238 iim, jjm + 1, nhori, llm, 1, llm, nvert, &
239 "inst(X)", zsto, zout)
240 CALL histdef(nid_ins, "geop", "Geopotential height", "m", &
241 iim, jjm + 1, nhori, llm, 1, llm, nvert, &
242 "inst(X)", zsto, zout)
243 CALL histdef(nid_ins, "pres", "Air pressure", "Pa", &
244 iim, jjm + 1, nhori, llm, 1, llm, nvert, &
245 "inst(X)", zsto, zout)
246 CALL histdef(nid_ins, "dtvdf", "Boundary-layer dT", "K/s", &
247 iim, jjm + 1, nhori, llm, 1, llm, nvert, &
248 "inst(X)", zsto, zout)
249 CALL histdef(nid_ins, "dqvdf", "Boundary-layer dQ", "Kg/Kg/s", &
250 iim, jjm + 1, nhori, llm, 1, llm, nvert, &
251 "inst(X)", zsto, zout)
252 CALL histdef(nid_ins, "zmasse", "column density of air in cell", &
253 "kg m-2", iim, jjm + 1, nhori, llm, 1, llm, nvert, "inst(X)", &
254 zsto, zout)
255 CALL histdef(nid_ins, "rhum", "Relative humidity", &
256 "", iim, jjm + 1, nhori, llm, 1, llm, nvert, "inst(X)", &
257 zsto, zout)
258 CALL histdef(nid_ins, "d_t_ec", "kinetic dissipation dT", &
259 "K/s", iim, jjm + 1, nhori, llm, 1, llm, nvert, "inst(X)", &
260 zsto, zout)
261 CALL histdef(nid_ins, "dtsw0", "CS SW radiation dT", &
262 "K/s", iim, jjm + 1, nhori, llm, 1, llm, nvert, "inst(X)", &
263 zsto, zout)
264 CALL histdef(nid_ins, "dtlw0", "CS LW radiation dT", &
265 "K/s", iim, jjm + 1, nhori, llm, 1, llm, nvert, "inst(X)", &
266 zsto, zout)
267 CALL histdef(nid_ins, "pmflxr", "convective precipitation liquid", "", &
268 iim, jjm + 1, nhori, llm, 1, llm, nvert, "inst(X)", zsto, zout)
269 CALL histdef(nid_ins, "re", "cloud droplet effective radius", &
270 "micrometer", iim, jjm + 1, nhori, llm, 1, llm, nvert, &
271 "inst(X)", zsto, zout)
272 CALL histdef(nid_ins, "fl", &
273 "denominator of cloud droplet effective radius", "", iim, &
274 jjm + 1, nhori, llm, 1, llm, nvert, "inst(X)", zsto, zout)
275 CALL histdef(nid_ins, "rld", "LW downward radiation", "W m-2", iim, &
276 jjm + 1, nhori, llm, 1, llm, nvert, "inst(X)", zsto, zout)
277 CALL histdef(nid_ins, "rldcs", "LW CS downward radiation", "W m-2", &
278 iim, jjm + 1, nhori, llm, 1, llm, nvert, "inst(X)", zsto, zout)
279
280 DO it = 1, nqmx - 2
281 ! champ 2D
282 iq=it+2
283 CALL histdef(nid_ins, tname(iq), ttext(iq), "U/kga", iim, jjm+1, &
284 nhori, llm, 1, llm, nvert, "inst(X)", zsto, zout)
285 CALL histdef(nid_ins, "fl"//tname(iq), "Flux "//ttext(iq), &
286 "U/m2/s", iim, jjm+1, nhori, llm, 1, llm, nvert, &
287 "inst(X)", zsto, zout)
288 CALL histdef(nid_ins, "d_tr_th_"//tname(iq), &
289 "tendance thermique"// ttext(iq), "?", &
290 iim, jjm+1, nhori, llm, 1, llm, nvert, &
291 "inst(X)", zsto, zout)
292 CALL histdef(nid_ins, "d_tr_cv_"//tname(iq), &
293 "tendance convection"// ttext(iq), "?", &
294 iim, jjm+1, nhori, llm, 1, llm, nvert, &
295 "inst(X)", zsto, zout)
296 CALL histdef(nid_ins, "d_tr_cl_"//tname(iq), &
297 "tendance couche limite"// ttext(iq), "?", &
298 iim, jjm+1, nhori, llm, 1, llm, nvert, &
299 "inst(X)", zsto, zout)
300 ENDDO
301
302 CALL histend(nid_ins)
303 ENDIF test_ok_instan
304
305 end subroutine ini_histins
306
307 end module ini_histins_m

  ViewVC Help
Powered by ViewVC 1.1.21