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

Annotation of /trunk/phylmd/ini_histins.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 279 - (hide annotations)
Fri Jul 20 14:30:23 2018 UTC (5 years, 10 months ago) by guez
File size: 13915 byte(s)
fqcalving was saved in physiq and had intent inout in pbl_surface. So
we could set fqcalving to 0 only once per run. The point is fqcalving
must be defined everywhere for the computation of the average over all
surfaces, even values that get multiplied by pctsrf = 0. I find it
clearer to set fqcalving to 0 at every call of pbl_surface. This is
more expensive but allows to give intent out to fqcalving in
pbl_surface and remove the save attribute in physiq.

Add zxfqcalving output netCDF variable (following LMDZ).

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

  ViewVC Help
Powered by ViewVC 1.1.21