/[lmdze]/trunk/Sources/phylmd/ini_histins.f
ViewVC logotype

Contents of /trunk/Sources/phylmd/ini_histins.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 175 - (show annotations)
Fri Feb 5 16:02:34 2016 UTC (8 years, 3 months ago) by guez
File size: 12351 byte(s)
Added argument itau_phy to ini_histins, phyetat0, phytrac and
phyredem0. Removed variable itau_phy of module temps. Avoiding side
effect in etat0 and phyetat0. The procedures ini_histins, phyetat0,
phytrac and phyredem0 are all called by physiq so there is no
cascading variable penalty.

In procedure inifilr, made the condition on colat0 weaker to allow for
rounding error.

Removed arguments flux_o, flux_g and t_slab of clmain, flux_o and
flux_g of clqh and interfsurf_hq, tslab and seaice of phyetat0 and
phyredem. NetCDF variables TSLAB and SEAICE no longer in
restartphy.nc. All these variables were related to the not-implemented
slab ocean. seaice and tslab were just set to 0 in phyetat0 and never
used nor changed. flux_o and flux_g were computed in clmain but never
used in physiq.

Removed argument swnet of clqh. Was used only to compute a local
variable, swdown, which was not used.

1 module ini_histins_m
2
3 implicit none
4
5 contains
6
7 subroutine ini_histins(dtime, ok_instan, nid_ins, itau_phy)
8
9 ! From phylmd/ini_histins.h, v 1.2 2005/05/25 13:10:09
10
11 use clesphys, only: ecrit_ins
12 use dimens_m, only: iim, jjm, llm, nqmx
13 use dimphy, only: klon
14 use disvert_m, only: presnivs
15 use dynetat0_m, only: day_ref, annee_ref
16 USE histbeg_totreg_m, ONLY : histbeg_totreg
17 USE histdef_m, ONLY : histdef
18 USE histend_m, ONLY : histend
19 USE histvert_m, ONLY : histvert
20 use indicesol, only: nbsrf, clnsurf
21 use iniadvtrac_m, only: tname, ttext
22 use phyetat0_m, only: rlon, rlat
23 USE ymds2ju_m, only: ymds2ju
24
25 REAL, intent(in):: dtime ! pas temporel de la physique (s)
26 logical, intent(in):: ok_instan
27 integer, intent(out):: nid_ins
28 integer, intent(in):: itau_phy
29
30 ! Local:
31 REAL zx_lon(iim, jjm + 1), zx_lat(iim, jjm + 1)
32 real zjulian, zsto, zout
33 integer i, nhori, nvert, nsrf, iq, it
34
35 !-------------------------------------------------------------------
36
37 IF (ok_instan) THEN
38 zsto = dtime * ecrit_ins
39 zout = dtime * ecrit_ins
40
41 CALL ymds2ju(annee_ref, 1, day_ref, 0.0, zjulian)
42
43 CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), rlon, zx_lon)
44 DO i = 1, iim
45 zx_lon(i, 1) = rlon(i+1)
46 zx_lon(i, (jjm + 1)) = rlon(i+1)
47 ENDDO
48 CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), rlat, zx_lat)
49 CALL histbeg_totreg("histins", zx_lon(:, 1), zx_lat(1, :), 1, iim, 1, &
50 jjm + 1, itau_phy, zjulian, dtime, nhori, nid_ins)
51 write(*, *)'Inst ', itau_phy, zjulian
52 CALL histvert(nid_ins, "presnivs", "Vertical levels", "mb", &
53 presnivs/100., nvert)
54
55 CALL histdef(nid_ins, "phis", "Surface geop. height", "-", &
56 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
57 "once", zsto, zout)
58
59 CALL histdef(nid_ins, "aire", "Grid area", "-", &
60 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
61 "once", zsto, zout)
62
63 ! Champs 2D:
64
65 CALL histdef(nid_ins, "tsol", "Surface Temperature", "K", &
66 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
67 "inst(X)", zsto, zout)
68
69 CALL histdef(nid_ins, "t2m", "Temperature 2m", "K", &
70 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
71 "inst(X)", zsto, zout)
72
73 CALL histdef(nid_ins, "q2m", "Specific humidity 2m", "Kg/Kg", &
74 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
75 "inst(X)", zsto, zout)
76
77 CALL histdef(nid_ins, "u10m", "Vent zonal 10m", "m/s", &
78 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
79 "inst(X)", zsto, zout)
80
81 CALL histdef(nid_ins, "v10m", "Vent meridien 10m", "m/s", &
82 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
83 "inst(X)", zsto, zout)
84
85 CALL histdef(nid_ins, "psol", "Surface Pressure", "Pa", &
86 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
87 "inst(X)", zsto, zout)
88
89 CALL histdef(nid_ins, "plul", "Large-scale Precip.", "mm/day", &
90 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
91 "inst(X)", zsto, zout)
92
93 CALL histdef(nid_ins, "pluc", "Convective Precip.", "mm/day", &
94 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
95 "inst(X)", zsto, zout)
96
97 CALL histdef(nid_ins, "cdrm", "Momentum drag coef.", "-", &
98 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
99 "inst(X)", zsto, zout)
100
101 CALL histdef(nid_ins, "cdrh", "Heat drag coef.", "-", &
102 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
103 "inst(X)", zsto, zout)
104
105 CALL histdef(nid_ins, "precip", "Precipitation Totale liq+sol", &
106 "kg/(s*m2)", &
107 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
108 "inst(X)", zsto, zout)
109
110 CALL histdef(nid_ins, "snow", "Snow fall", "kg/(s*m2)", &
111 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
112 "inst(X)", zsto, zout)
113
114 ! CALL histdef(nid_ins, "snow_mass", "Snow Mass", "kg/m2",
115 ! . iim, (jjm + 1), nhori, 1, 1, 1, -99,
116 ! . "inst(X)", zsto, zout)
117
118 CALL histdef(nid_ins, "topl", "OLR", "W/m2", &
119 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
120 "inst(X)", zsto, zout)
121
122 CALL histdef(nid_ins, "evap", "Evaporation", "kg/(s*m2)", &
123 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
124 "inst(X)", zsto, zout)
125
126 CALL histdef(nid_ins, "sols", "Solar rad. at surf.", "W/m2", &
127 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
128 "inst(X)", zsto, zout)
129
130 CALL histdef(nid_ins, "soll", "IR rad. at surface", "W/m2", &
131 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
132 "inst(X)", zsto, zout)
133
134 CALL histdef(nid_ins, "solldown", "Down. IR rad. at surface", &
135 "W/m2", iim, (jjm + 1), nhori, 1, 1, 1, -99, &
136 "inst(X)", zsto, zout)
137
138 CALL histdef(nid_ins, "bils", "Surf. total heat flux", "W/m2", &
139 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
140 "inst(X)", zsto, zout)
141
142 CALL histdef(nid_ins, "sens", "Sensible heat flux", "W/m2", &
143 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
144 "inst(X)", zsto, zout)
145
146 CALL histdef(nid_ins, "fder", "Heat flux derivation", "W/m2", &
147 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
148 "inst(X)", zsto, zout)
149
150 CALL histdef(nid_ins, "dtsvdfo", "Boundary-layer dTs(o)", "K/s", &
151 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
152 "inst(X)", zsto, zout)
153
154 CALL histdef(nid_ins, "dtsvdft", "Boundary-layer dTs(t)", "K/s", &
155 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
156 "inst(X)", zsto, zout)
157
158 CALL histdef(nid_ins, "dtsvdfg", "Boundary-layer dTs(g)", "K/s", &
159 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
160 "inst(X)", zsto, zout)
161
162 CALL histdef(nid_ins, "dtsvdfi", "Boundary-layer dTs(g)", "K/s", &
163 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
164 "inst(X)", zsto, zout)
165
166 DO nsrf = 1, nbsrf
167
168 call histdef(nid_ins, "pourc_"//clnsurf(nsrf), &
169 "% "//clnsurf(nsrf), "%", &
170 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
171 "inst(X)", zsto, zout)
172
173 call histdef(nid_ins, "fract_"//clnsurf(nsrf), &
174 "Fraction "//clnsurf(nsrf), "1", &
175 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
176 "inst(X)", zsto, zout)
177
178 call histdef(nid_ins, "sens_"//clnsurf(nsrf), &
179 "Sensible heat flux "//clnsurf(nsrf), "W/m2", &
180 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
181 "inst(X)", zsto, zout)
182
183 call histdef(nid_ins, "tsol_"//clnsurf(nsrf), &
184 "Surface Temperature"//clnsurf(nsrf), "W/m2", &
185 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
186 "inst(X)", zsto, zout)
187
188 call histdef(nid_ins, "lat_"//clnsurf(nsrf), &
189 "Latent heat flux "//clnsurf(nsrf), "W/m2", &
190 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
191 "inst(X)", zsto, zout)
192
193 call histdef(nid_ins, "taux_"//clnsurf(nsrf), &
194 "Zonal wind stress"//clnsurf(nsrf), "Pa", &
195 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
196 "inst(X)", zsto, zout)
197
198 call histdef(nid_ins, "tauy_"//clnsurf(nsrf), &
199 "Meridional xind stress "//clnsurf(nsrf), "Pa", &
200 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
201 "inst(X)", zsto, zout)
202
203 call histdef(nid_ins, "albe_"//clnsurf(nsrf), &
204 "Albedo "//clnsurf(nsrf), "-", &
205 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
206 "inst(X)", zsto, zout)
207
208 call histdef(nid_ins, "rugs_"//clnsurf(nsrf), &
209 "rugosite "//clnsurf(nsrf), "-", &
210 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
211 "inst(X)", zsto, zout)
212 !XXX
213 END DO
214 CALL histdef(nid_ins, "rugs", "rugosity", "-", &
215 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
216 "inst(X)", zsto, zout)
217
218 CALL histdef(nid_ins, "albs", "Surface albedo", "-", &
219 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
220 "inst(X)", zsto, zout)
221
222 CALL histdef(nid_ins, "s_pblh", "Boundary Layer Height", "m", &
223 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
224 "inst(X)", zsto, zout)
225
226 CALL histdef(nid_ins, "s_pblt", "T at Boundary Layer Height", &
227 "K", &
228 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
229 "inst(X)", zsto, zout)
230
231 CALL histdef(nid_ins, "s_lcl", "Condensation level", "m", &
232 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
233 "inst(X)", zsto, zout)
234
235 CALL histdef(nid_ins, "s_capCL", "Conv avlbl pot ener for ABL", "J/m2", &
236 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
237 "inst(X)", zsto, zout)
238
239 CALL histdef(nid_ins, "s_oliqCL", "Liq Water in BL", "kg/m2", &
240 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
241 "inst(X)", zsto, zout)
242
243 CALL histdef(nid_ins, "s_cteiCL", "Instability criteria (ABL)", "K", &
244 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
245 "inst(X)", zsto, zout)
246
247 CALL histdef(nid_ins, "s_therm", "Exces du thermique", "K", &
248 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
249 "inst(X)", zsto, zout)
250
251 CALL histdef(nid_ins, "s_trmb1", "deep_cape(HBTM2)", "J/m2", &
252 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
253 "inst(X)", zsto, zout)
254
255 CALL histdef(nid_ins, "s_trmb2", "inhibition (HBTM2)", "J/m2", &
256 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
257 "inst(X)", zsto, zout)
258
259 CALL histdef(nid_ins, "s_trmb3", "Point Omega (HBTM2)", "m", &
260 iim, (jjm + 1), nhori, 1, 1, 1, -99, &
261 "inst(X)", zsto, zout)
262
263 !IM cf. AM 081204 END
264
265 ! Champs 3D:
266
267 CALL histdef(nid_ins, "temp", "Temperature", "K", &
268 iim, (jjm + 1), nhori, llm, 1, llm, nvert, &
269 "inst(X)", zsto, zout)
270
271 CALL histdef(nid_ins, "vitu", "Zonal wind", "m/s", &
272 iim, (jjm + 1), nhori, llm, 1, llm, nvert, &
273 "inst(X)", zsto, zout)
274
275 CALL histdef(nid_ins, "vitv", "Merid wind", "m/s", &
276 iim, (jjm + 1), nhori, llm, 1, llm, nvert, &
277 "inst(X)", zsto, zout)
278
279 CALL histdef(nid_ins, "geop", "Geopotential height", "m", &
280 iim, (jjm + 1), nhori, llm, 1, llm, nvert, &
281 "inst(X)", zsto, zout)
282
283 CALL histdef(nid_ins, "pres", "Air pressure", "Pa", &
284 iim, (jjm + 1), nhori, llm, 1, llm, nvert, &
285 "inst(X)", zsto, zout)
286
287 CALL histdef(nid_ins, "dtvdf", "Boundary-layer dT", "K/s", &
288 iim, (jjm + 1), nhori, llm, 1, llm, nvert, &
289 "inst(X)", zsto, zout)
290
291 CALL histdef(nid_ins, "dqvdf", "Boundary-layer dQ", "Kg/Kg/s", &
292 iim, (jjm + 1), nhori, llm, 1, llm, nvert, &
293 "inst(X)", zsto, zout)
294
295 CALL histdef(nid_ins, "zmasse", "column density of air in cell", &
296 "kg m-2", iim, jjm + 1, nhori, llm, 1, llm, nvert, "inst(X)", &
297 zsto, zout)
298
299 DO it = 1, nqmx - 2
300 ! champ 2D
301 iq=it+2
302 CALL histdef(nid_ins, tname(iq), ttext(iq), "U/kga", iim, jjm+1, &
303 nhori, llm, 1, llm, nvert, "inst(X)", zsto, zout)
304 CALL histdef(nid_ins, "fl"//tname(iq), "Flux "//ttext(iq), &
305 "U/m2/s", iim, jjm+1, nhori, llm, 1, llm, nvert, &
306 "inst(X)", zsto, zout)
307
308 !---Ajout Olivia
309 CALL histdef(nid_ins, "d_tr_th_"//tname(iq), &
310 "tendance thermique"// ttext(iq), "?", &
311 iim, jjm+1, nhori, llm, 1, llm, nvert, &
312 "inst(X)", zsto, zout)
313 CALL histdef(nid_ins, "d_tr_cv_"//tname(iq), &
314 "tendance convection"// ttext(iq), "?", &
315 iim, jjm+1, nhori, llm, 1, llm, nvert, &
316 "inst(X)", zsto, zout)
317 CALL histdef(nid_ins, "d_tr_cl_"//tname(iq), &
318 "tendance couche limite"// ttext(iq), "?", &
319 iim, jjm+1, nhori, llm, 1, llm, nvert, &
320 "inst(X)", zsto, zout)
321 !---fin Olivia
322
323 ENDDO
324
325 CALL histend(nid_ins)
326 ENDIF
327
328 end subroutine ini_histins
329
330 end module ini_histins_m

  ViewVC Help
Powered by ViewVC 1.1.21