source: LMDZ5/branches/LF-private/libf/phylmd/ini_histrac.h @ 5425

Last change on this file since 5425 was 1813, checked in by idelkadi, 11 years ago
  1. transform phytrac into a module, in order to pass some variables

(tracer tendencies) to the standard physiq ouput codes.

  1. Correct a (big) bug in the call to phytrac.
  2. Include w*, and ALEs in the call to phytrac and traclmdz.

physiq.F

  • Bug correction in the call of phytrac from the physics u10m,v10m, ustar -> zu10m, zv10m, zustar

phytrac.F90 -> phytrac_mod.F90

  • Tranformation of routine phytrac into a module phytrac_mod, in order to tranfer the tracer tendencies from phytrac to

phys_output...

  • Inclusion of w*, Ale bl/wake in the call to phytrac and traclmdz

(to be used for dust emmission)

by respectively, vertical diffusion, thermal plumes and convection

  • desactivation of ini_histrac.h and write_histrac.h
  • USE phys_output_mod removed since it was creating a circular

dependency

between phytrac_mod and phys_output_mod.
So the automatic computation of ecrit_tra is desactivated

ini_histrac.h and write_histrac.h

Descactivated in phytrac but kept for backard compatibility
couchelimite -> iflag_vdf_trac>0

phys_output_ctrlout_mod.F90

New variables : o_dtr_vdf, o_dtr_the ... for output of tracer tendencies

phys_output_mod.F90

Default definition for these new output variables.

phys_output_write_F90.h

disapears, included directly in phys_output_write_mod.F90

phys_output_write_mod.F90

writing of the tracer tendencies

phys_state_var_mod.F90

New declaration (wstar)

traclmdz_mod.F90

  • Inclusion of w*, Ale bl/wake in the call to phytrac and traclmdz

(to be used for dust emmission)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 11.0 KB
Line 
1!
2! $Id $
3!
4  IF (ecrit_tra>0.) THEN
5!$OMP MASTER
6!!!     CALL ymds2ju(annee_ref, 1, day_ref, 0.0, zjulian)
7! correction pour l heure initiale                               !jyg
8!                                                               !jyg
9      CALL ymds2ju(annee_ref, 1, day_ref, hour, zjulian)         !jyg
10
11     CALL histbeg_phy("histrac", itau_phy, zjulian, pdtphys,nhori, nid_tra)
12     CALL histvert(nid_tra, "presnivs", "Vertical levels", "Pa",klev, presnivs, nvert,"down")
13
14     zsto = pdtphys
15     zout = ecrit_tra
16     CALL histdef(nid_tra, "phis", "Surface geop. height", "-",   &
17          iim,jj_nb,nhori, 1,1,1, -99, 32,"once",  zsto,zout)
18     CALL histdef(nid_tra, "aire", "Grid area", "-",              &
19          iim,jj_nb,nhori, 1,1,1, -99, 32,"once",  zsto,zout)
20     CALL histdef(nid_tra, "zmasse", "column density of air in cell", &
21          "kg m-2", iim, jj_nb, nhori, klev, 1, klev, nvert, 32, "ave(X)", &
22          zsto,zout)
23! RomP >>>
24     CALL histdef(nid_tra, "sourceBE", "source 7Be", &
25          "at/kgA/s", iim, jj_nb, nhori, klev, 1, klev, nvert, 32, "ave(X)", &
26          zsto,zout)
27! RomP <<<
28
29!TRACEURS
30!----------------
31     DO it = 1,nbtr
32        iiq = niadv(it+2)
33
34! CONCENTRATIONS
35        CALL histdef(nid_tra, tname(iiq), ttext(iiq), "U/kga",    &
36             iim,jj_nb,nhori, klev,1,klev,nvert, 32,"ave(X)", zsto,zout)
37
38! TD LESSIVAGE
39        IF (lessivage .AND. aerosol(it)) THEN
40           CALL histdef(nid_tra, "fl"//tname(iiq),"Flux "//ttext(iiq), &
41                "at/m2/s",iim,jj_nb,nhori, klev,1,klev,nvert, 32,       &
42                "ave(X)", zsto,zout)
43           CALL histdef(nid_tra, "d_tr_ls_"//tname(iiq),      &
44                "tendance lessivage large scale"// ttext(iiq), "?",&
45                iim,jj_nb,nhori, klev,1,klev,nvert, 32,       &
46                "ave(X)", zsto,zout)
47           CALL histdef(nid_tra, "d_tr_insc_"//tname(iiq),      &
48                "tendance lessivage large scale"// ttext(iiq), "?",&
49                iim,jj_nb,nhori, klev,1,klev,nvert, 32,       &
50                "ave(X)", zsto,zout)
51           CALL histdef(nid_tra, "d_tr_bcscav_"//tname(iiq),      &
52                "tendance lessivage large scale"// ttext(iiq), "?",&
53                iim,jj_nb,nhori, klev,1,klev,nvert, 32,       &
54                "ave(X)", zsto,zout)
55           CALL histdef(nid_tra, "d_tr_evls_"//tname(iiq),      &
56                "tendance lessivage large scale"// ttext(iiq), "?",&
57                iim,jj_nb,nhori, klev,1,klev,nvert, 32,       &
58                "ave(X)", zsto,zout)
59!  Tracer concentration in LS precipitation at surface
60           CALL histdef(nid_tra, "qpr_ls_"//tname(iiq),       &
61                "concentration in LS precip"// ttext(iiq), "at/kgw", &
62                iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
63                "ave(X)", zsto,zout)     
64                 END IF
65
66! TD THERMIQUES
67        IF (iflag_thermals.gt.0) THEN
68           CALL histdef(nid_tra, "d_tr_th_"//tname(iiq),      &
69                "tendance thermique"// ttext(iiq), "?",       &
70                iim,jj_nb,nhori, klev,1,klev,nvert, 32,       &
71                "ave(X)", zsto,zout)
72        ENDIF
73
74! TD CONVECTION
75        IF (iflag_con.GE.2) THEN
76           CALL histdef(nid_tra, "d_tr_cv_"//tname(iiq),   &
77                "tendance convection"// ttext(iiq), "?",   &
78                iim,jj_nb,nhori, klev,1,klev,nvert, 32,    &
79                "ave(X)", zsto,zout)
80        ENDIF
81
82! RomP >>>
83        IF (iflag_con.EQ.30) THEN
84           CALL histdef(nid_tra, "d_tr_cvMA_"//tname(iiq),   &
85                "tendance convection"// ttext(iiq), "?",&
86                iim,jj_nb,nhori, klev,1,klev,nvert, 32,    &
87                "ave(X)", zsto,zout)
88           CALL histdef(nid_tra, "d_tr_trsp_"//tname(iiq),   &
89                "tendance transport "// ttext(iiq), "at/kga",   &
90                iim,jj_nb,nhori, klev,1,klev,nvert, 32,    &
91                "ave(X)", zsto,zout)
92           CALL histdef(nid_tra, "d_tr_sscav_"//tname(iiq),   &
93                "tendance lessivage flux satures "// ttext(iiq), "at/kga",   &
94                iim,jj_nb,nhori, klev,1,klev,nvert, 32,    &
95                "ave(X)", zsto,zout)
96           CALL histdef(nid_tra, "d_tr_sat_"//tname(iiq),   &
97                "tendance flux satures "// ttext(iiq), "at/kga",  &
98                iim,jj_nb,nhori, klev,1,klev,nvert, 32,    &
99                "ave(X)", zsto,zout)
100           CALL histdef(nid_tra, "d_tr_uscav_"//tname(iiq),  &
101                "tendance flux insatures "// ttext(iiq), "at/kga", &
102                iim,jj_nb,nhori, klev,1,klev,nvert, 32,    &
103                "ave(X)", zsto,zout)
104           CALL histdef(nid_tra, "tr_pr_"//tname(iiq),  &
105                "concentration dans precip"// ttext(iiq), "at/kga", &
106                iim,jj_nb,nhori, klev,1,klev,nvert, 32,    &
107                "ave(X)", zsto,zout)
108           CALL histdef(nid_tra, "tr_aa_"//tname(iiq),  &
109                "concentration precip issu AA"// ttext(iiq), "at/kga", &
110                iim,jj_nb,nhori, klev,1,klev,nvert, 32,    &
111                "ave(X)", zsto,zout)
112           CALL histdef(nid_tra, "tr_mel_"//tname(iiq),  &
113                "concentration precip issu melange"// ttext(iiq), "at/kga", &
114                iim,jj_nb,nhori, klev,1,klev,nvert, 32,    &
115                "ave(X)", zsto,zout)
116           CALL histdef(nid_tra, "tr_di_"//tname(iiq),  &
117                "concentration dans descente insaturee"// ttext(iiq), "at/kga", &
118                iim,jj_nb,nhori, klev,1,klev,nvert, 32,    &
119                "ave(X)", zsto,zout)
120           CALL histdef(nid_tra, "tr_trspdi_"//tname(iiq),  &
121                "conc descente insaturee MA"// ttext(iiq), "at/kga", &
122                iim,jj_nb,nhori, klev,1,klev,nvert, 32,    &
123                "ave(X)", zsto,zout)
124           CALL histdef(nid_tra, "zmfd1a_"//tname(iiq),  &
125                "zmfd1a"// ttext(iiq), "_", &
126                iim,jj_nb,nhori, klev,1,klev,nvert, 32,    &
127                "ave(X)", zsto,zout)
128           CALL histdef(nid_tra, "zmfphi2_"//tname(iiq),  &
129                "zmfphi2"// ttext(iiq), "_", &
130                iim,jj_nb,nhori, klev,1,klev,nvert, 32,    &
131                "ave(X)", zsto,zout)
132           CALL histdef(nid_tra, "zmfdam_"//tname(iiq),  &
133                "zmfdam"// ttext(iiq), "_", &
134                iim,jj_nb,nhori, klev,1,klev,nvert, 32,    &
135                "ave(X)", zsto,zout)
136          ENDIF
137! RomP <<<
138           CALL histdef(nid_tra, "dtrdyn_"//tname(iiq),  &
139                "td dyn tra"// ttext(iiq), "at/kga", &
140                iim,jj_nb,nhori, klev,1,klev,nvert, 32,  &
141                "ave(X)", zsto,zout)
142! TD decroissance radioactive
143           CALL histdef(nid_tra, "d_tr_dec_"//tname(iiq),   &
144                "tendance decroi radio "// ttext(iiq), "",  &
145                iim,jj_nb,nhori, klev,1,klev,nvert, 32,  &
146                "ave(X)", zsto,zout)
147
148! TD COUCHE-LIMITE
149      IF (iflag_vdf_trac>=0) THEN
150        CALL histdef(nid_tra, "d_tr_cl_"//tname(iiq),      &
151             "tendance couche limite"// ttext(iiq), "?",   &
152             iim,jj_nb,nhori, klev,1,klev,nvert, 32,       &
153             "ave(X)", zsto,zout)
154!  Dry deposit (1st layer and surface)
155        CALL histdef(nid_tra, "d_tr_dry_"//tname(iiq),       &
156             "tendancy dry deposit"// ttext(iiq), "at/kga/step", &
157             iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
158             "ave(X)", zsto,zout)     
159        CALL histdef(nid_tra, "flux_tr_dry_"//tname(iiq),       &
160             "dry deposit at surf (downward)"// ttext(iiq), "at/m2/step", &
161             iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
162             "ave(X)", zsto,zout)     
163      ENDIF
164     ENDDO
165
166     CALL histdef(nid_tra, "Mint", "Mint","",         &
167          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
168          "inst(X)", zout,zout)
169     CALL histdef(nid_tra, "frac_impa", "frac_impa","",         &
170          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
171          "inst(X)", zout,zout)
172     CALL histdef(nid_tra, "frac_nucl", "frac_nucl","",         &
173          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
174          "inst(X)", zout,zout)
175!---------------   
176!
177! VENT (niveau 1)
178     CALL histdef(nid_tra, "pyu1", "Vent niv 1", "-",      &
179          iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
180          "inst(X)",  zout,zout)     
181     CALL histdef(nid_tra, "pyv1", "Vent niv 1", "-",      &
182          iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
183          "inst(X)",  zout,zout)
184
185! TEMPERATURE DU SOL
186     CALL histdef(nid_tra, "ftsol1", "temper sol", "-",    &
187          iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
188          "inst(X)",  zout,zout)
189     CALL histdef(nid_tra, "ftsol2", "temper sol", "-",    &
190          iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
191          "inst(X)",  zout,zout)
192     CALL histdef(nid_tra, "ftsol3", "temper sol", "-",    &
193          iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
194          "inst",  zout,zout)
195     CALL histdef(nid_tra, "ftsol4", "temper sol", "-",    &
196          iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
197          "inst(X)",  zout,zout)
198
199! NATURE DU SOL
200     CALL histdef(nid_tra, "psrf1", "nature sol", "-",     &
201          iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
202          "inst(X)",  zout,zout)
203     CALL histdef(nid_tra, "psrf2", "nature sol", "-",     &
204          iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
205          "inst(X)",  zout,zout)
206     CALL histdef(nid_tra, "psrf3", "nature sol", "-",     &
207          iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
208          "inst(X)",  zout,zout)
209     CALL histdef(nid_tra, "psrf4", "nature sol", "-",     &
210          iim,jj_nb,nhori, 1,1,1, -99, 32,                 & 
211          "inst(X)",  zout,zout)
212! DIVERS
213     CALL histdef(nid_tra, "pplay", "pressure","-",        &
214          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
215          "inst(X)", zout,zout)
216     CALL histdef(nid_tra, "T", "temperature","K",         &
217          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
218          "inst(X)", zout,zout)
219     CALL histdef(nid_tra, "mfu", "flux u mont","-",       &
220          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
221          "ave(X)", zsto,zout)
222     CALL histdef(nid_tra, "mfd", "flux u decen","-",      &
223          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
224          "ave(X)", zsto,zout)
225     CALL histdef(nid_tra, "en_u", "flux u mont","-",      &
226          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
227          "ave(X)", zsto,zout)
228     CALL histdef(nid_tra, "en_d", "flux u mont","-",      &
229          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
230          "ave(X)", zsto,zout)
231     CALL histdef(nid_tra, "de_d", "flux u mont","-",      &
232          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
233          "ave(X)", zsto,zout)
234     CALL histdef(nid_tra, "de_u", "flux u decen","-",     &
235          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
236          "ave(X)", zsto,zout)
237     CALL histdef(nid_tra, "coefh", "turbulent coef","-",  &
238          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
239          "ave(X)", zsto,zout)   
240     
241     CALL histend(nid_tra)
242!$OMP END MASTER
243  END IF ! ecrit_tra>0.
244 
Note: See TracBrowser for help on using the repository browser.