source: LMDZ6/trunk/libf/phylmd/phys_local_var_mod.F90 @ 3779

Last change on this file since 3779 was 3779, checked in by asima, 4 years ago

Code cleaning : cld*jn are removed as variables, because they only serve as output names.

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 48.0 KB
Line 
1!
2! $Id: phys_local_var_mod.F90 3779 2020-10-22 12:17:40Z asima $
3!
4      MODULE phys_local_var_mod
5! Variables locales pour effectuer les appels en serie
6!======================================================================
7!
8!
9!======================================================================
10! Declaration des variables
11
12      REAL, SAVE, ALLOCATABLE :: t_seri(:,:), q_seri(:,:)
13      !$OMP THREADPRIVATE(t_seri, q_seri)
14      REAL, SAVE, ALLOCATABLE :: ql_seri(:,:),qs_seri(:,:)
15      !$OMP THREADPRIVATE(ql_seri,qs_seri)
16      REAL, SAVE, ALLOCATABLE :: u_seri(:,:), v_seri(:,:)
17      !$OMP THREADPRIVATE(u_seri, v_seri)
18      REAL, SAVE, ALLOCATABLE :: l_mixmin(:,:,:), l_mix(:,:,:)
19      !$OMP THREADPRIVATE(l_mixmin, l_mix)
20
21      REAL, SAVE, ALLOCATABLE :: tr_seri(:,:,:)
22      !$OMP THREADPRIVATE(tr_seri)
23      REAL, SAVE, ALLOCATABLE :: d_t_dyn(:,:), d_q_dyn(:,:)
24      !$OMP THREADPRIVATE(d_t_dyn, d_q_dyn)
25      REAL, SAVE, ALLOCATABLE :: d_ql_dyn(:,:), d_qs_dyn(:,:)
26      !$OMP THREADPRIVATE(d_ql_dyn, d_qs_dyn)
27      REAL, SAVE, ALLOCATABLE :: d_q_dyn2d(:), d_ql_dyn2d(:), d_qs_dyn2d(:)
28      !$OMP THREADPRIVATE(d_q_dyn2d, d_ql_dyn2d, d_qs_dyn2d)
29      REAL, SAVE, ALLOCATABLE :: d_u_dyn(:,:), d_v_dyn(:,:)
30      !$OMP THREADPRIVATE(d_u_dyn, d_v_dyn)
31      REAL, SAVE, ALLOCATABLE :: d_tr_dyn(:,:,:)
32      !$OMP THREADPRIVATE(d_tr_dyn)
33      REAL, SAVE, ALLOCATABLE :: d_t_con(:,:),d_q_con(:,:)
34      !$OMP THREADPRIVATE(d_t_con,d_q_con)
35      REAL, SAVE, ALLOCATABLE :: d_u_con(:,:),d_v_con(:,:)
36      !$OMP THREADPRIVATE(d_u_con,d_v_con)
37      REAL, SAVE, ALLOCATABLE :: d_t_wake(:,:),d_q_wake(:,:)
38      !$OMP THREADPRIVATE( d_t_wake,d_q_wake)
39      REAL, SAVE, ALLOCATABLE :: d_t_lsc(:,:),d_q_lsc(:,:),d_ql_lsc(:,:),d_qi_lsc(:,:)
40      !$OMP THREADPRIVATE(d_t_lsc,d_q_lsc,d_ql_lsc,d_qi_lsc)
41      REAL, SAVE, ALLOCATABLE :: d_t_lwr(:,:),d_t_lw0(:,:),d_t_swr(:,:),d_t_sw0(:,:)
42      !$OMP THREADPRIVATE(d_t_lwr,d_t_lw0,d_t_swr,d_t_sw0)
43      REAL, SAVE, ALLOCATABLE :: d_t_ajsb(:,:), d_q_ajsb(:,:)
44      !$OMP THREADPRIVATE(d_t_ajsb, d_q_ajsb)
45      REAL, SAVE, ALLOCATABLE :: d_t_ajs(:,:), d_q_ajs(:,:)
46      !$OMP THREADPRIVATE(d_t_ajs, d_q_ajs)
47      REAL, SAVE, ALLOCATABLE :: d_u_ajs(:,:), d_v_ajs(:,:)
48      !$OMP THREADPRIVATE(d_u_ajs, d_v_ajs)
49!nrlmd<
50      REAL, SAVE, ALLOCATABLE :: d_t_ajs_w(:,:), d_q_ajs_w(:,:)
51      !$OMP THREADPRIVATE(d_t_ajs_w, d_q_ajs_w)
52      REAL, SAVE, ALLOCATABLE :: d_t_ajs_x(:,:), d_q_ajs_x(:,:)
53      !$OMP THREADPRIVATE(d_t_ajs_x, d_q_ajs_x)
54!>nrlmd
55      REAL, SAVE, ALLOCATABLE :: d_t_eva(:,:),d_q_eva(:,:),d_ql_eva(:,:),d_qi_eva(:,:)
56      !$OMP THREADPRIVATE(d_t_eva,d_q_eva,d_ql_eva,d_qi_eva)
57      REAL, SAVE, ALLOCATABLE :: d_t_lscst(:,:),d_q_lscst(:,:)
58      !$OMP THREADPRIVATE(d_t_lscst,d_q_lscst)
59      REAL, SAVE, ALLOCATABLE :: d_t_lscth(:,:),d_q_lscth(:,:)
60      !$OMP THREADPRIVATE(d_t_lscth,d_q_lscth)
61      REAL, SAVE, ALLOCATABLE :: plul_th(:),plul_st(:)
62      !$OMP THREADPRIVATE(plul_th,plul_st)
63!tendances dues a oro et lif
64      REAL, SAVE, ALLOCATABLE :: d_t_oli(:,:)
65      !$OMP THREADPRIVATE(d_t_oli)
66      REAL, SAVE, ALLOCATABLE :: d_u_oli(:,:), d_v_oli(:,:)
67      !$OMP THREADPRIVATE(d_u_oli, d_v_oli)
68      REAL, SAVE, ALLOCATABLE :: d_t_vdf(:,:), d_q_vdf(:,:), d_t_diss(:,:)
69      !$OMP THREADPRIVATE( d_t_vdf, d_q_vdf,d_t_diss)
70      REAL, SAVE, ALLOCATABLE :: d_u_vdf(:,:), d_v_vdf(:,:)
71      !$OMP THREADPRIVATE(d_u_vdf, d_v_vdf)
72!nrlmd+jyg<
73      REAL, SAVE, ALLOCATABLE :: d_t_vdf_w(:,:), d_q_vdf_w(:,:)
74      !$OMP THREADPRIVATE( d_t_vdf_w, d_q_vdf_w)
75      REAL, SAVE, ALLOCATABLE :: d_t_vdf_x(:,:), d_q_vdf_x(:,:)
76      !$OMP THREADPRIVATE( d_t_vdf_x, d_q_vdf_x)
77!>nrlmd+jyg
78      REAL, SAVE, ALLOCATABLE :: d_t_oro(:,:)
79      !$OMP THREADPRIVATE(d_t_oro)
80      REAL, SAVE, ALLOCATABLE :: d_u_oro(:,:), d_v_oro(:,:)
81      !$OMP THREADPRIVATE(d_u_oro, d_v_oro)
82      REAL, SAVE, ALLOCATABLE :: d_t_oro_gw(:,:)
83      !$OMP THREADPRIVATE(d_t_oro_gw)
84      REAL, SAVE, ALLOCATABLE :: d_u_oro_gw(:,:), d_v_oro_gw(:,:)
85      !$OMP THREADPRIVATE(d_u_oro_gw, d_v_oro_gw)
86      REAL, SAVE, ALLOCATABLE :: d_t_lif(:,:)
87      !$OMP THREADPRIVATE(d_t_lif)
88      REAL, SAVE, ALLOCATABLE :: d_u_lif(:,:), d_v_lif(:,:)
89      !$OMP THREADPRIVATE(d_u_lif, d_v_lif)
90! Tendances Ondes de G non oro (runs strato).
91      REAL, SAVE, ALLOCATABLE :: du_gwd_hines(:,:)
92      !$OMP THREADPRIVATE(du_gwd_hines)
93      REAL, SAVE, ALLOCATABLE :: dv_gwd_hines(:,:)
94      !$OMP THREADPRIVATE(dv_gwd_hines)
95      REAL, SAVE, ALLOCATABLE :: dv_gwd_rando(:,:)
96      !$OMP THREADPRIVATE(dv_gwd_rando)
97      REAL, SAVE, ALLOCATABLE :: dv_gwd_front(:,:)
98      !$OMP THREADPRIVATE(dv_gwd_front)
99      REAL, SAVE, ALLOCATABLE :: east_gwstress(:,:)
100      !$OMP THREADPRIVATE(east_gwstress)
101      REAL, SAVE, ALLOCATABLE :: west_gwstress(:,:)
102      !$OMP THREADPRIVATE(west_gwstress)
103      REAL, SAVE, ALLOCATABLE :: d_t_hin(:,:)
104      !$OMP THREADPRIVATE(d_t_hin)
105! tendance due a l'oxydation du methane
106      REAL, SAVE, ALLOCATABLE :: d_q_ch4(:,:)
107      !$OMP THREADPRIVATE(d_q_ch4)
108
109! tendance du a la conersion Ec -> E thermique
110      REAL, SAVE, ALLOCATABLE :: d_t_ec(:,:)
111      !$OMP THREADPRIVATE(d_t_ec)
112      REAL, SAVE, ALLOCATABLE :: d_ts(:,:), d_tr(:,:,:)
113      !$OMP THREADPRIVATE(d_ts, d_tr)
114
115! diagnostique pour le rayonnement
116      REAL, SAVE, ALLOCATABLE :: topswad_aero(:),  solswad_aero(:)      ! diag
117      !$OMP THREADPRIVATE(topswad_aero,solswad_aero)
118      REAL, SAVE, ALLOCATABLE :: topswai_aero(:),  solswai_aero(:)      ! diag
119      !$OMP THREADPRIVATE(topswai_aero,solswai_aero)
120      REAL, SAVE, ALLOCATABLE :: topswad0_aero(:), solswad0_aero(:)     ! diag
121      !$OMP THREADPRIVATE(topswad0_aero,solswad0_aero)
122      REAL, SAVE, ALLOCATABLE :: topsw_aero(:,:),  solsw_aero(:,:)      ! diag
123      !$OMP THREADPRIVATE(topsw_aero,solsw_aero)
124      REAL, SAVE, ALLOCATABLE :: topsw0_aero(:,:), solsw0_aero(:,:)     ! diag
125      !$OMP THREADPRIVATE(topsw0_aero,solsw0_aero)
126      REAL, SAVE, ALLOCATABLE :: topswcf_aero(:,:),  solswcf_aero(:,:)  ! diag
127      !$OMP THREADPRIVATE(topswcf_aero,solswcf_aero)
128! LW radiation diagnostics CK
129      REAL, SAVE, ALLOCATABLE :: toplwad_aero(:),  sollwad_aero(:)      ! diag
130      !$OMP THREADPRIVATE(toplwad_aero,sollwad_aero)
131      REAL, SAVE, ALLOCATABLE :: toplwai_aero(:),  sollwai_aero(:)      ! diag
132      !$OMP THREADPRIVATE(toplwai_aero,sollwai_aero)
133      REAL, SAVE, ALLOCATABLE :: toplwad0_aero(:), sollwad0_aero(:)     ! diag
134      !$OMP THREADPRIVATE(toplwad0_aero,sollwad0_aero)
135! Special RRTM
136      REAL, SAVE, ALLOCATABLE :: ZLWFT0_i(:,:),  ZSWFT0_i(:,:)      ! diag
137      !$OMP THREADPRIVATE(ZLWFT0_i,ZSWFT0_i)
138      REAL, SAVE, ALLOCATABLE :: ZFLDN0(:,:),  ZFLUP0(:,:)      ! diag
139      !$OMP THREADPRIVATE(ZFLDN0,ZFLUP0)
140      REAL, SAVE, ALLOCATABLE :: ZFSDN0(:,:),  ZFSUP0(:,:)      ! diag
141      !$OMP THREADPRIVATE(ZFSDN0,ZFSUP0)
142!
143      REAL, SAVE, ALLOCATABLE :: stratomask(:,:)
144      !$OMP THREADPRIVATE(stratomask)
145      REAL, SAVE, ALLOCATABLE :: tausum_aero(:,:,:)
146      !$OMP THREADPRIVATE(tausum_aero)
147      REAL, SAVE, ALLOCATABLE :: drytausum_aero(:,:)
148      !$OMP THREADPRIVATE(drytausum_aero)
149      REAL, SAVE, ALLOCATABLE :: tau3d_aero(:,:,:,:)
150      !$OMP THREADPRIVATE(tau3d_aero)
151      REAL, SAVE, ALLOCATABLE :: scdnc(:,:)
152      !$OMP THREADPRIVATE(scdnc)
153      REAL, SAVE, ALLOCATABLE :: dNovrN(:)
154      !$OMP THREADPRIVATE(dNovrN)
155      REAL, SAVE, ALLOCATABLE :: cldncl(:)
156      !$OMP THREADPRIVATE(cldncl)
157      REAL, SAVE, ALLOCATABLE :: reffclwtop(:)
158      !$OMP THREADPRIVATE(reffclwtop)
159      REAL, SAVE, ALLOCATABLE :: lcc(:)
160      !$OMP THREADPRIVATE(lcc)
161      REAL, SAVE, ALLOCATABLE :: reffclws(:,:)
162      !$OMP THREADPRIVATE(reffclws)
163      REAL, SAVE, ALLOCATABLE :: reffclwc(:,:)
164      !$OMP THREADPRIVATE(reffclwc)
165      REAL, SAVE, ALLOCATABLE :: cldnvi(:)
166      !$OMP THREADPRIVATE(cldnvi)
167      REAL, SAVE, ALLOCATABLE :: lcc3d(:,:)
168      !$OMP THREADPRIVATE(lcc3d)
169      REAL, SAVE, ALLOCATABLE :: lcc3dcon(:,:)
170      !$OMP THREADPRIVATE(lcc3dcon)
171      REAL, SAVE, ALLOCATABLE :: lcc3dstra(:,:)
172      !$OMP THREADPRIVATE(lcc3dstra)
173      REAL, SAVE, ALLOCATABLE :: icc3dcon(:,:)
174      !$OMP THREADPRIVATE(icc3dcon)
175      REAL, SAVE, ALLOCATABLE :: icc3dstra(:,:)
176      !$OMP THREADPRIVATE(icc3dstra)
177      REAL, SAVE, ALLOCATABLE :: zfice(:,:)
178      !$OMP THREADPRIVATE(zfice)
179      REAL, SAVE, ALLOCATABLE :: od443aer(:)
180      !$OMP THREADPRIVATE(od443aer)
181      REAL, SAVE, ALLOCATABLE :: od550aer(:)
182      !$OMP THREADPRIVATE(od550aer)
183      REAL, SAVE, ALLOCATABLE :: dryod550aer(:)
184      !$OMP THREADPRIVATE(dryod550aer)
185      REAL, SAVE, ALLOCATABLE :: abs550aer(:)
186      !$OMP THREADPRIVATE(abs550aer)
187      REAL, SAVE, ALLOCATABLE :: od865aer(:)
188      !$OMP THREADPRIVATE(od865aer)
189      REAL, SAVE, ALLOCATABLE :: ec550aer(:,:)
190      !$OMP THREADPRIVATE(ec550aer)
191      REAL, SAVE, ALLOCATABLE :: od550lt1aer(:)
192      !$OMP THREADPRIVATE(od550lt1aer)
193      REAL, SAVE, ALLOCATABLE :: sconcso4(:)
194      !$OMP THREADPRIVATE(sconcso4)
195      REAL, SAVE, ALLOCATABLE :: sconcno3(:)
196      !$OMP THREADPRIVATE(sconcno3)
197      REAL, SAVE, ALLOCATABLE :: sconcoa(:)
198      !$OMP THREADPRIVATE(sconcoa)
199      REAL, SAVE, ALLOCATABLE :: sconcbc(:)
200      !$OMP THREADPRIVATE(sconcbc)
201      REAL, SAVE, ALLOCATABLE :: sconcss(:)
202      !$OMP THREADPRIVATE(sconcss)
203      REAL, SAVE, ALLOCATABLE :: sconcdust(:)
204      !$OMP THREADPRIVATE(sconcdust)
205      REAL, SAVE, ALLOCATABLE :: concso4(:,:)
206      !$OMP THREADPRIVATE(concso4)
207      REAL, SAVE, ALLOCATABLE :: concno3(:,:)
208      !$OMP THREADPRIVATE(concno3)
209      REAL, SAVE, ALLOCATABLE :: concoa(:,:)
210      !$OMP THREADPRIVATE(concoa)
211      REAL, SAVE, ALLOCATABLE :: concbc(:,:)
212      !$OMP THREADPRIVATE(concbc)
213      REAL, SAVE, ALLOCATABLE :: concss(:,:)
214      !$OMP THREADPRIVATE(concss)
215      REAL, SAVE, ALLOCATABLE :: concdust(:,:)
216      !$OMP THREADPRIVATE(concdust)
217      REAL, SAVE, ALLOCATABLE :: loadso4(:)
218      !$OMP THREADPRIVATE(loadso4)
219      REAL, SAVE, ALLOCATABLE :: loadoa(:)
220      !$OMP THREADPRIVATE(loadoa)
221      REAL, SAVE, ALLOCATABLE :: loadbc(:)
222      !$OMP THREADPRIVATE(loadbc)
223      REAL, SAVE, ALLOCATABLE :: loadss(:)
224      !$OMP THREADPRIVATE(loadss)
225      REAL, SAVE, ALLOCATABLE :: loaddust(:)
226      !$OMP THREADPRIVATE(loaddust)
227      REAL, SAVE, ALLOCATABLE :: loadno3(:)
228      !$OMP THREADPRIVATE(loadno3)
229      REAL, SAVE, ALLOCATABLE :: load_tmp1(:), load_tmp2(:)
230      !$OMP THREADPRIVATE(load_tmp1, load_tmp2)
231      REAL, SAVE, ALLOCATABLE :: load_tmp3(:), load_tmp4(:)
232      !$OMP THREADPRIVATE(load_tmp3, load_tmp4)
233      REAL, SAVE, ALLOCATABLE :: load_tmp5(:), load_tmp6(:)
234      !$OMP THREADPRIVATE(load_tmp5, load_tmp6)
235      REAL, SAVE, ALLOCATABLE :: load_tmp7(:), load_tmp8(:)
236      !$OMP THREADPRIVATE(load_tmp7, load_tmp8)
237      REAL, SAVE, ALLOCATABLE :: load_tmp9(:), load_tmp10(:)
238      !$OMP THREADPRIVATE(load_tmp9, load_tmp10)
239
240!IM ajout variables CFMIP2/CMIP5
241      REAL,ALLOCATABLE,SAVE :: topswad_aerop(:), solswad_aerop(:)
242!$OMP THREADPRIVATE(topswad_aerop, solswad_aerop)
243      REAL,ALLOCATABLE,SAVE :: topswai_aerop(:), solswai_aerop(:)
244!$OMP THREADPRIVATE(topswai_aerop, solswai_aerop)
245      REAL,ALLOCATABLE,SAVE :: topswad0_aerop(:), solswad0_aerop(:)
246!$OMP THREADPRIVATE(topswad0_aerop, solswad0_aerop)
247      REAL,ALLOCATABLE,SAVE :: topsw_aerop(:,:), topsw0_aerop(:,:) 
248!$OMP THREADPRIVATE(topsw_aerop, topsw0_aerop)
249      REAL,ALLOCATABLE,SAVE :: solsw_aerop(:,:), solsw0_aerop(:,:)
250!$OMP THREADPRIVATE(solsw_aerop, solsw0_aerop)
251      REAL,ALLOCATABLE,SAVE :: topswcf_aerop(:,:), solswcf_aerop(:,:)
252!$OMP THREADPRIVATE(topswcf_aerop, solswcf_aerop)
253
254! additional LW variables CK
255      REAL,ALLOCATABLE,SAVE :: toplwad_aerop(:), sollwad_aerop(:)
256!$OMP THREADPRIVATE(toplwad_aerop, sollwad_aerop)
257      REAL,ALLOCATABLE,SAVE :: toplwai_aerop(:), sollwai_aerop(:)
258!$OMP THREADPRIVATE(toplwai_aerop, sollwai_aerop)
259      REAL,ALLOCATABLE,SAVE :: toplwad0_aerop(:), sollwad0_aerop(:)
260!$OMP THREADPRIVATE(toplwad0_aerop, sollwad0_aerop)
261
262!Ajout de celles n??cessaires au phys_output_write_mod
263      REAL, SAVE, ALLOCATABLE :: tal1(:), pal1(:), pab1(:), pab2(:)
264!$OMP THREADPRIVATE(tal1, pal1, pab1, pab2)
265      REAL, SAVE, ALLOCATABLE :: ptstar(:), pt0(:), slp(:)
266!$OMP THREADPRIVATE(ptstar, pt0, slp)
267      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: sens, flwp, fiwp
268!$OMP THREADPRIVATE(sens, flwp, fiwp)
269!!
270!!         Wake variables
271      REAL,ALLOCATABLE,SAVE,DIMENSION(:)            :: alp_wake
272!$OMP THREADPRIVATE(alp_wake)           
273!!jyg!      REAL,ALLOCATABLE,SAVE,DIMENSION(:)            :: wake_h,wake_k
274      REAL,ALLOCATABLE,SAVE,DIMENSION(:)            :: wake_h
275      INTEGER,ALLOCATABLE,SAVE,DIMENSION(:)         :: wake_k
276!$OMP THREADPRIVATE(wake_h,wake_k)                       
277    REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)            :: wake_omg
278!$OMP THREADPRIVATE(wake_omg)                     
279    REAL, SAVE, ALLOCATABLE,DIMENSION(:,:)          :: d_deltat_wk, d_deltaq_wk
280!$OMP THREADPRIVATE(d_deltat_wk, d_deltaq_wk)
281      REAL,ALLOCATABLE,SAVE,DIMENSION(:)            :: d_s_wk, d_dens_a_wk, d_dens_wk
282!$OMP THREADPRIVATE(d_s_wk, d_dens_a_wk, d_dens_wk)
283    REAL, SAVE, ALLOCATABLE,DIMENSION(:,:)          :: d_deltat_wk_gw, d_deltaq_wk_gw
284!$OMP THREADPRIVATE(d_deltat_wk_gw, d_deltaq_wk_gw)
285    REAL, SAVE, ALLOCATABLE,DIMENSION(:,:)          :: d_deltat_vdf, d_deltaq_vdf
286!$OMP THREADPRIVATE(d_deltat_vdf, d_deltaq_vdf)
287!!!      REAL,ALLOCATABLE,SAVE,DIMENSION(:)          :: d_s_vdf, d_dens_vdf
288!!!OMP THREADPRIVATE(d_s_vdf, d_dens_vdf)
289    REAL, SAVE, ALLOCATABLE,DIMENSION(:,:)          :: d_deltat_the, d_deltaq_the
290!$OMP THREADPRIVATE(d_deltat_the, d_deltaq_the)
291!!!      REAL,ALLOCATABLE,SAVE,DIMENSION(:)          :: d_s_the, d_dens_the
292!!!OMP THREADPRIVATE(d_s_the, d_dens_the)
293      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)           :: d_deltat_ajs_cv, d_deltaq_ajs_cv
294!$OMP THREADPRIVATE(d_deltat_ajs_cv, d_deltaq_ajs_cv)                       
295!!         End of Wake variables
296!!
297      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: bils
298!$OMP THREADPRIVATE(bils)
299      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cdragm, cdragh
300!$OMP THREADPRIVATE(cdragm, cdragh)
301      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cldh, cldl, cldm, cldq, cldt, qsat2m
302!$OMP THREADPRIVATE(cldh, cldl, cldm, cldq, cldt, qsat2m )
303!AS: cldhjn, cldljn, cldmjn,cldtjn pas utilisés en tant que variables, juste noms de diagnostics
304      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: JrNt
305!$OMP THREADPRIVATE(JrNt)
306      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: dthmin, evap, fder, plcl, plfc, prw, prlw, prsw
307!$OMP THREADPRIVATE(dthmin, evap, fder, plcl, plfc, prw, prlw, prsw)
308      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zustar, zu10m, zv10m, rh2m
309!$OMP THREADPRIVATE(zustar, zu10m, zv10m, rh2m)
310      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: s_lcl, s_pblh, s_pblt, s_therm
311!$OMP THREADPRIVATE(s_lcl, s_pblh, s_pblt, s_therm)
312!
313!nrlmd+jyg<
314      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: s_pblh_x, s_pblh_w
315!$OMP THREADPRIVATE(s_pblh_x, s_pblh_w)
316      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: s_lcl_x, s_lcl_w
317!$OMP THREADPRIVATE(s_lcl_x, s_lcl_w)
318!>nrlmd+jyg
319!
320      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: slab_wfbils
321!$OMP THREADPRIVATE(slab_wfbils)
322      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: tpot, tpote, ue, uq, uwat, ve, vq, vwat, zxffonte
323!$OMP THREADPRIVATE(tpot, tpote, ue, uq, uwat, ve, vq, vwat, zxffonte)
324      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxfqcalving
325!$OMP THREADPRIVATE(zxfqcalving)
326      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxfluxlat, zxtsol, snow_lsc, zxfqfonte
327!$OMP THREADPRIVATE(zxfluxlat, zxtsol, snow_lsc, zxfqfonte)
328      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxrunofflic
329!$OMP THREADPRIVATE(zxrunofflic)
330      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxqsurf, rain_lsc, rain_num
331!$OMP THREADPRIVATE(zxqsurf, rain_lsc, rain_num)
332!
333!jyg+nrlmd<
334!!!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
335!                                                                          c
336!       Declarations liees a la couche limite differentiee w-x             c
337!                                                                          c
338!!!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
339      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: sens_x, sens_w
340!$OMP THREADPRIVATE(sens_x, sens_w)
341      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxfluxlat_x, zxfluxlat_w
342!$OMP THREADPRIVATE(zxfluxlat_x, zxfluxlat_w)
343!jyg<
344!!! Entrees supplementaires couche-limite
345!!      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: t_x, t_w
346!!!$OMP THREADPRIVATE(t_x, t_w)
347!!      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: q_x, q_w
348!!!$OMP THREADPRIVATE(q_x, q_w)
349!>jyg
350!!! Sorties ferret
351      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: dtvdf_x, dtvdf_w
352!$OMP THREADPRIVATE(dtvdf_x, dtvdf_w)
353      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: dqvdf_x, dqvdf_w
354!$OMP THREADPRIVATE(dqvdf_x, dqvdf_w)
355! Variables supplementaires dans physiq.F relative au splitting de la surface
356      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: pbl_tke_input
357!$OMP THREADPRIVATE(pbl_tke_input)
358! Entree supplementaire Thermiques :
359      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: t_therm, q_therm, u_therm, v_therm
360!$OMP THREADPRIVATE(t_therm, q_therm, u_therm, v_therm)
361      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cdragh_x, cdragh_w
362!$OMP THREADPRIVATE(cdragh_x, cdragh_w)
363      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cdragm_x, cdragm_w
364!$OMP THREADPRIVATE(cdragm_x, cdragm_w)
365      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: kh, kh_x, kh_w
366!$OMP THREADPRIVATE(kh, kh_x, kh_w)
367!!!
368!!!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
369      LOGICAL, SAVE, ALLOCATABLE :: ptconv(:,:)
370      !$OMP THREADPRIVATE(ptconv)
371      REAL, SAVE, ALLOCATABLE :: ratqsc(:,:)
372      !$OMP THREADPRIVATE(ratqsc)
373!>jyg+nrlmd
374  !
375      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: wbeff, convoccur, zmax_th, zq2m, zt2m
376!$OMP THREADPRIVATE(wbeff, convoccur, zmax_th, zq2m, zt2m)
377      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zt2m_min_mon, zt2m_max_mon
378!$OMP THREADPRIVATE(zt2m_min_mon, zt2m_max_mon)
379      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: t2m_min_mon, t2m_max_mon
380!$OMP THREADPRIVATE(t2m_min_mon, t2m_max_mon)
381      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zq2m_cor, zt2m_cor
382!$OMP THREADPRIVATE(zq2m_cor, zt2m_cor)
383      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zu10m_cor, zv10m_cor
384!$OMP THREADPRIVATE(zu10m_cor, zv10m_cor)
385      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zrh2m_cor, zqsat2m_cor
386!$OMP THREADPRIVATE(zrh2m_cor, zqsat2m_cor)
387      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: weak_inversion
388!$OMP THREADPRIVATE(weak_inversion)
389      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: alp_bl_conv,alp_bl_det
390!$OMP THREADPRIVATE(alp_bl_conv,alp_bl_det)
391      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: alp_bl_fluct_m,alp_bl_fluct_tke
392!$OMP THREADPRIVATE(alp_bl_fluct_m,alp_bl_fluct_tke)
393      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: alp_bl_stat, n2, s2
394!$OMP THREADPRIVATE(alp_bl_stat, n2, s2)
395      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: proba_notrig, random_notrig
396!$OMP THREADPRIVATE(proba_notrig, random_notrig)
397      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cv_gen
398!$OMP THREADPRIVATE(cv_gen)
399      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: fsolsw, wfbils, wfbilo
400!$OMP THREADPRIVATE(fsolsw, wfbils, wfbilo)
401      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: wfevap, wfrain, wfsnow
402!$OMP THREADPRIVATE(wfevap,wfrain,wfsnow)
403      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: t2m, fluxlat, fsollw,evap_pot
404!$OMP THREADPRIVATE(t2m, fluxlat, fsollw,evap_pot)
405      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: dnwd0, omega
406!$OMP THREADPRIVATE(dnwd0, omega)
407      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: epmax_diag ! epmax_cape
408!$OMP THREADPRIVATE(epmax_diag)
409!
410!  Deep convective variables used in phytrac
411      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: ep ! epmax_cape
412!$OMP THREADPRIVATE(ep)
413      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: dnwd, upwd
414!$OMP THREADPRIVATE(dnwd, upwd)
415      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: pmflxr, pmflxs
416!$OMP THREADPRIVATE(pmflxr, pmflxs)
417      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: wdtrainA, wdtrainS, wdtrainM
418!$OMP THREADPRIVATE(wdtrainA, wdtrainS, wdtrainM)
419      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: da, mp
420!$OMP THREADPRIVATE(da, mp)
421      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: wght_cvfd
422!$OMP THREADPRIVATE(wght_cvfd)
423      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:):: phi, phi2, elij, epmlmMm
424!$OMP THREADPRIVATE(phi, phi2, elij, epmlmMm)
425      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: d1a, dam
426!$OMP THREADPRIVATE(d1a, dam)
427      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: ev
428!$OMP THREADPRIVATE(ev)
429      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: qtaa
430!$OMP THREADPRIVATE(qtaa)
431      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: clw
432!$OMP THREADPRIVATE(clw)
433      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: eplaMm
434!$OMP THREADPRIVATE(eplaMm)
435      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:):: sij
436!$OMP THREADPRIVATE(sij)
437!
438!      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: coefh, coefm, lambda_th
439      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: lambda_th
440!$OMP THREADPRIVATE(lambda_th)
441      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: cldemi, cldfra, cldtau, fiwc, fl, re, flwc
442!$OMP THREADPRIVATE(cldemi, cldfra, cldtau, fiwc, fl, re, flwc)
443      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: ref_liq, ref_ice, theta, zphi
444!$OMP THREADPRIVATE(ref_liq, ref_ice, theta, zphi)
445      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: ref_liq_pi, ref_ice_pi
446!$OMP THREADPRIVATE(ref_liq_pi, ref_ice_pi)
447      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: zx_rh
448!$OMP THREADPRIVATE(zx_rh)
449      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: prfl, psfl, fraca
450!$OMP THREADPRIVATE(prfl, psfl, fraca)
451      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: Vprecip, zw2
452!$OMP THREADPRIVATE(Vprecip, zw2)
453      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: pmfd, pmfu
454!$OMP THREADPRIVATE(pmfd, pmfu)
455      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: fluxt, fluxu, fluxv
456!$OMP THREADPRIVATE(fluxt, fluxu, fluxv)
457      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: uwriteSTD, vwriteSTD, wwriteSTD
458!$OMP THREADPRIVATE(uwriteSTD, vwriteSTD, wwriteSTD)
459      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: phiwriteSTD, qwriteSTD, twriteSTD, rhwriteSTD
460!$OMP THREADPRIVATE(phiwriteSTD, qwriteSTD, twriteSTD, rhwriteSTD)
461
462! ug et d'autres encore:
463      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: beta_prec
464!$OMP THREADPRIVATE(beta_prec)
465      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rneb,rnebjn,rneblsvol
466!$OMP THREADPRIVATE(rneb,rnebjn,rneblsvol)
467
468! variables de sorties MM
469      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: zxsnow,snowhgt,qsnow,to_ice
470      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: sissnow,runoff,albsol3_lic
471!$OMP THREADPRIVATE(zxsnow,snowhgt,qsnow,to_ice)
472!$OMP THREADPRIVATE(sissnow,runoff,albsol3_lic)
473
474      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: p_tropopause, z_tropopause, t_tropopause
475!$OMP THREADPRIVATE(p_tropopause, z_tropopause, t_tropopause)
476
477#ifdef CPP_StratAer
478!
479! variables for stratospheric aerosol
480      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: R2SO4
481!$OMP THREADPRIVATE(R2SO4)
482      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: DENSO4
483!$OMP THREADPRIVATE(DENSO4)
484      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: f_r_wet
485!$OMP THREADPRIVATE(f_r_wet)
486      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: decfluxaer
487!$OMP THREADPRIVATE(decfluxaer)
488      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: mdw
489!$OMP THREADPRIVATE(mdw)
490      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: OCS_lifetime
491!$OMP THREADPRIVATE(OCS_lifetime)
492      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: SO2_lifetime
493!$OMP THREADPRIVATE(SO2_lifetime)
494      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: alpha_bin
495!$OMP THREADPRIVATE(alpha_bin)
496      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: piz_bin
497!$OMP THREADPRIVATE(piz_bin)
498      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: cg_bin
499!$OMP THREADPRIVATE(cg_bin)
500      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tau_strat_550
501!$OMP THREADPRIVATE(tau_strat_550)
502      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tau_strat_1020
503!$OMP THREADPRIVATE(tau_strat_1020)
504      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tausum_strat
505!$OMP THREADPRIVATE(tausum_strat)
506      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: surf_PM25_sulf
507!$OMP THREADPRIVATE(surf_PM25_sulf)
508      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: vsed_aer
509!$OMP THREADPRIVATE(vsed_aer)
510!
511!---3D budget variables
512      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: budg_3D_nucl
513!$OMP THREADPRIVATE(budg_3D_nucl)
514      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: budg_3D_cond_evap
515!$OMP THREADPRIVATE(budg_3D_cond_evap)
516      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: budg_3D_ocs_to_so2
517!$OMP THREADPRIVATE(budg_3D_ocs_to_so2)
518      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: budg_3D_so2_to_h2so4
519!$OMP THREADPRIVATE(budg_3D_so2_to_h2so4)
520      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: budg_3D_backgr_ocs
521!$OMP THREADPRIVATE(budg_3D_backgr_ocs)
522      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: budg_3D_backgr_so2
523!$OMP THREADPRIVATE(budg_3D_backgr_so2)
524!
525!---2D budget variables
526      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_dry_ocs
527      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_dry_so2
528      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_dry_h2so4
529      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_dry_part
530!$OMP THREADPRIVATE(budg_dep_dry_ocs,budg_dep_dry_so2,budg_dep_dry_h2so4,budg_dep_dry_part)
531      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_wet_ocs
532      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_wet_so2
533      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_wet_h2so4
534      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_wet_part
535!$OMP THREADPRIVATE(budg_dep_wet_ocs,budg_dep_wet_so2,budg_dep_wet_h2so4,budg_dep_wet_part)
536      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_emi_ocs
537      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_emi_so2
538      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_emi_h2so4
539      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_emi_part
540!$OMP THREADPRIVATE(budg_emi_ocs,budg_emi_so2,budg_emi_h2so4,budg_emi_part)
541      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_ocs_to_so2
542      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_so2_to_h2so4
543      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_h2so4_to_part
544!$OMP THREADPRIVATE(budg_ocs_to_so2,budg_so2_to_h2so4,budg_h2so4_to_part)
545      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_sed_part
546!$OMP THREADPRIVATE(budg_sed_part)
547#endif
548
549CONTAINS
550
551!======================================================================
552SUBROUTINE phys_local_var_init
553USE dimphy
554USE infotrac_phy, ONLY : nbtr
555USE aero_mod
556USE indice_sol_mod
557USE phys_output_var_mod
558USE phys_state_var_mod
559
560IMPLICIT NONE
561      ALLOCATE(t_seri(klon,klev),q_seri(klon,klev),ql_seri(klon,klev),qs_seri(klon,klev))
562      ALLOCATE(u_seri(klon,klev),v_seri(klon,klev))
563      ALLOCATE(l_mixmin(klon,klev+1,nbsrf), l_mix(klon,klev+1,nbsrf))
564      l_mix(:,:,:)=0. ; l_mixmin(:,:,:)=0. ! doit etre initialse car pas toujours remplis
565
566      ALLOCATE(tr_seri(klon,klev,nbtr))
567      ALLOCATE(d_t_dyn(klon,klev),d_q_dyn(klon,klev))
568      ALLOCATE(d_ql_dyn(klon,klev),d_qs_dyn(klon,klev))
569      ALLOCATE(d_q_dyn2d(klon),d_ql_dyn2d(klon),d_qs_dyn2d(klon))
570      ALLOCATE(d_u_dyn(klon,klev),d_v_dyn(klon,klev))
571      ALLOCATE(d_tr_dyn(klon,klev,nbtr))                   !RomP
572      ALLOCATE(d_t_con(klon,klev),d_q_con(klon,klev))
573      ALLOCATE(d_u_con(klon,klev),d_v_con(klon,klev))
574      ALLOCATE(d_t_wake(klon,klev),d_q_wake(klon,klev))
575      ALLOCATE(d_t_lsc(klon,klev),d_q_lsc(klon,klev))
576      ALLOCATE(d_t_lwr(klon,klev),d_t_lw0(klon,klev))
577      ALLOCATE(d_t_swr(klon,klev),d_t_sw0(klon,klev))
578      ALLOCATE(d_ql_lsc(klon,klev),d_qi_lsc(klon,klev))
579      ALLOCATE(d_t_ajsb(klon,klev),d_q_ajsb(klon,klev))
580      ALLOCATE(d_t_ajs(klon,klev),d_q_ajs(klon,klev))
581!nrlmd<
582      ALLOCATE(d_t_ajs_w(klon,klev),d_q_ajs_w(klon,klev))
583      ALLOCATE(d_t_ajs_x(klon,klev),d_q_ajs_x(klon,klev))
584!>nrlmd
585      ALLOCATE(d_u_ajs(klon,klev),d_v_ajs(klon,klev))
586      ALLOCATE(d_t_eva(klon,klev),d_q_eva(klon,klev))
587      ALLOCATE(d_ql_eva(klon,klev),d_qi_eva(klon,klev))
588      ALLOCATE(d_t_lscst(klon,klev),d_q_lscst(klon,klev))
589      ALLOCATE(d_t_lscth(klon,klev),d_q_lscth(klon,klev))
590      ALLOCATE(plul_st(klon),plul_th(klon))
591      ALLOCATE(d_t_vdf(klon,klev),d_q_vdf(klon,klev),d_t_diss(klon,klev))
592
593      ALLOCATE(d_t_vdf_w(klon,klev),d_q_vdf_w(klon,klev))
594      ALLOCATE(d_t_vdf_x(klon,klev),d_q_vdf_x(klon,klev))
595
596      ALLOCATE(d_u_vdf(klon,klev),d_v_vdf(klon,klev))
597      ALLOCATE(d_t_oli(klon,klev),d_t_oro(klon,klev))
598      ALLOCATE(d_u_oli(klon,klev),d_v_oli(klon,klev))
599      ALLOCATE(d_u_oro(klon,klev),d_v_oro(klon,klev))
600      ALLOCATE(d_u_oro_gw(klon,klev),d_v_oro_gw(klon,klev))
601      ALLOCATE(d_t_oro_gw(klon,klev))
602      ALLOCATE(d_t_lif(klon,klev),d_t_ec(klon,klev))
603      ALLOCATE(d_u_lif(klon,klev),d_v_lif(klon,klev))
604      ALLOCATE(d_ts(klon,nbsrf), d_tr(klon,klev,nbtr))
605! Special RRTM
606      ALLOCATE(ZLWFT0_i(klon,klev+1),ZSWFT0_i(klon,klev+1),ZFLDN0(klon,klev+1))
607      ZFLDN0= 0.
608      ALLOCATE(ZFLUP0(klon,klev+1),ZFSDN0(klon,klev+1),ZFSUP0(klon,klev+1))
609!
610      ALLOCATE(topswad_aero(klon), solswad_aero(klon))
611      ALLOCATE(topswai_aero(klon), solswai_aero(klon))
612      ALLOCATE(topswad0_aero(klon), solswad0_aero(klon))
613      ALLOCATE(toplwad_aero(klon), sollwad_aero(klon))
614      ALLOCATE(toplwai_aero(klon), sollwai_aero(klon))
615      ALLOCATE(toplwad0_aero(klon), sollwad0_aero(klon))
616      ALLOCATE(topsw_aero(klon,naero_grp), solsw_aero(klon,naero_grp))
617      ALLOCATE(topsw0_aero(klon,naero_grp), solsw0_aero(klon,naero_grp))
618      ALLOCATE(topswcf_aero(klon,3), solswcf_aero(klon,3))
619      ALLOCATE(du_gwd_hines(klon,klev),dv_gwd_hines(klon,klev))
620      ALLOCATE(dv_gwd_rando(klon,klev),dv_gwd_front(klon,klev))
621      ALLOCATE(east_gwstress(klon,klev),west_gwstress(klon,klev))
622      east_gwstress(:,:)=0 !ym missing init
623      west_gwstress(:,:)=0 !ym missing init
624      ALLOCATE(d_t_hin(klon,klev))
625      ALLOCATE(d_q_ch4(klon,klev))
626      ALLOCATE(stratomask(klon,klev))
627      ALLOCATE(tausum_aero(klon,nwave,naero_tot))
628      ALLOCATE(drytausum_aero(klon,naero_tot))
629      ALLOCATE(tau3d_aero(klon,klev,nwave,naero_tot))
630      ALLOCATE(scdnc(klon, klev))
631      ALLOCATE(dNovrN(klon))
632      ALLOCATE(cldncl(klon))
633      ALLOCATE(reffclwtop(klon))
634      ALLOCATE(lcc(klon))
635      ALLOCATE(reffclws(klon, klev))
636      ALLOCATE(reffclwc(klon, klev))
637      ALLOCATE(cldnvi(klon))
638      ALLOCATE(lcc3d(klon, klev))
639      ALLOCATE(lcc3dcon(klon, klev))
640      ALLOCATE(lcc3dstra(klon, klev))
641      ALLOCATE(icc3dcon(klon, klev))
642      ALLOCATE(icc3dstra(klon, klev))
643      ALLOCATE(zfice(klon, klev))
644      ALLOCATE(od443aer(klon))
645      ALLOCATE(od550aer(klon))
646      ALLOCATE(od865aer(klon))
647      ALLOCATE(dryod550aer(klon))
648      dryod550aer(:) = 0.
649      ALLOCATE(abs550aer(klon))
650      abs550aer(:) = 0.
651      ALLOCATE(ec550aer(klon,klev))
652      ALLOCATE(od550lt1aer(klon))
653      ALLOCATE(sconcso4(klon))
654      ALLOCATE(sconcno3(klon))
655      ALLOCATE(sconcoa(klon))
656      ALLOCATE(sconcbc(klon))
657      ALLOCATE(sconcss(klon))
658      ALLOCATE(sconcdust(klon))
659      ALLOCATE(concso4(klon,klev))
660      ALLOCATE(concno3(klon,klev))
661      ALLOCATE(concoa(klon,klev))
662      ALLOCATE(concbc(klon,klev))
663      ALLOCATE(concss(klon,klev))
664      ALLOCATE(concdust(klon,klev))
665      ALLOCATE(loadso4(klon))
666      ALLOCATE(loadoa(klon))
667      ALLOCATE(loadbc(klon))
668      ALLOCATE(loadss(klon))
669      ALLOCATE(loaddust(klon))
670      ALLOCATE(loadno3(klon))
671      ALLOCATE(load_tmp1(klon))
672      ALLOCATE(load_tmp2(klon))
673      ALLOCATE(load_tmp3(klon))
674      ALLOCATE(load_tmp4(klon))
675      ALLOCATE(load_tmp5(klon))
676      ALLOCATE(load_tmp6(klon))
677      ALLOCATE(load_tmp7(klon))
678      ALLOCATE(load_tmp8(klon))
679      ALLOCATE(load_tmp9(klon))
680      ALLOCATE(load_tmp10(klon))
681
682!IM ajout variables CFMIP2/CMIP5
683      ALLOCATE(topswad_aerop(klon), solswad_aerop(klon))
684      ALLOCATE(topswai_aerop(klon), solswai_aerop(klon))
685      ALLOCATE(topswad0_aerop(klon), solswad0_aerop(klon))
686      ALLOCATE(topsw_aerop(klon,naero_grp), topsw0_aerop(klon,naero_grp))
687      ALLOCATE(solsw_aerop(klon,naero_grp), solsw0_aerop(klon,naero_grp))
688      ALLOCATE(topswcf_aerop(klon,naero_grp), solswcf_aerop(klon,naero_grp))
689
690! additional LW variables CK
691      ALLOCATE(toplwad_aerop(klon), sollwad_aerop(klon))
692      ALLOCATE(toplwai_aerop(klon), sollwai_aerop(klon))
693      ALLOCATE(toplwad0_aerop(klon), sollwad0_aerop(klon))
694
695! FH Ajout de celles necessaires au phys_output_write_mod
696
697      ALLOCATE(tal1(klon), pal1(klon), pab1(klon), pab2(klon))
698      ALLOCATE(ptstar(klon),pt0(klon),slp(klon))
699!!
700!!          Wake variables
701      ALLOCATE(alp_wake(klon))
702      ALLOCATE(wake_h(klon),wake_k(klon))
703      ALLOCATE(wake_omg(klon, klev))
704      ALLOCATE(d_deltat_wk(klon, klev), d_deltaq_wk(klon, klev))
705      ALLOCATE(d_s_wk(klon), d_dens_a_wk(klon), d_dens_wk(klon))
706      ALLOCATE(d_deltat_wk_gw(klon, klev), d_deltaq_wk_gw(klon, klev))
707      ALLOCATE(d_deltat_vdf(klon, klev), d_deltaq_vdf(klon, klev))
708!!      ALLOCATE( d_s_vdf(klon), d_dens_vdf(klon))
709      ALLOCATE(d_deltat_the(klon, klev), d_deltaq_the(klon, klev))
710!!      ALLOCATE( d_s_the(klon), d_dens_the(klon))
711      ALLOCATE(d_deltat_ajs_cv(klon, klev), d_deltaq_ajs_cv(klon, klev))
712!!         End of wake variables
713!!
714      ALLOCATE(bils(klon))
715      ALLOCATE(cdragm(klon), cdragh(klon), cldh(klon), cldl(klon))
716      ALLOCATE(cldm(klon), cldq(klon), cldt(klon), qsat2m(klon))
717      ALLOCATE(JrNt(klon))
718      ALLOCATE(dthmin(klon), evap(klon), fder(klon), plcl(klon), plfc(klon))
719      ALLOCATE(prw(klon), prlw(klon), prsw(klon), zustar(klon), zu10m(klon), zv10m(klon), rh2m(klon))
720      ALLOCATE(s_lcl(klon))
721      ALLOCATE(s_pblh(klon), s_pblt(klon), s_therm(klon))
722!
723!nrlmd+jyg<
724      ALLOCATE(s_pblh_x(klon), s_pblh_w(klon))
725      ALLOCATE(s_lcl_x(klon), s_lcl_w(klon))
726!>nrlmd+jyg
727!
728      ALLOCATE(slab_wfbils(klon), tpot(klon), tpote(klon), ue(klon))
729      ALLOCATE(uq(klon), ve(klon), vq(klon), zxffonte(klon))
730      ALLOCATE(uwat(klon), vwat(klon))
731      ALLOCATE(zxfqcalving(klon), zxfluxlat(klon))
732      ALLOCATE(zxtsol(klon), snow_lsc(klon), zxfqfonte(klon), zxqsurf(klon))
733      ALLOCATE(zxrunofflic(klon))
734      ALLOCATE(rain_lsc(klon))
735      ALLOCATE(rain_num(klon))
736!
737      ALLOCATE(sens_x(klon), sens_w(klon))
738      ALLOCATE(zxfluxlat_x(klon), zxfluxlat_w(klon))
739!jyg<
740!!      ALLOCATE(t_x(klon,klev), t_w(klon,klev))
741!!      ALLOCATE(q_x(klon,klev), q_w(klon,klev))
742!>jyg
743      ALLOCATE(dtvdf_x(klon,klev), dtvdf_w(klon,klev))
744      dtvdf_x = 0 ; dtvdf_w=0 ;   !ym missing init
745      ALLOCATE(dqvdf_x(klon,klev), dqvdf_w(klon,klev))
746      dqvdf_x = 0 ; dqvdf_w=0 ;   !ym missing init
747      ALLOCATE(pbl_tke_input(klon,klev+1,nbsrf))
748      ALLOCATE(t_therm(klon,klev), q_therm(klon,klev),u_therm(klon,klev), v_therm(klon,klev))
749      ALLOCATE(cdragh_x(klon), cdragh_w(klon))
750      ALLOCATE(cdragm_x(klon), cdragm_w(klon))
751      ALLOCATE(kh(klon), kh_x(klon), kh_w(klon))
752!
753      ALLOCATE(ptconv(klon,klev))
754      ALLOCATE(ratqsc(klon,klev))
755!
756      ALLOCATE(wbeff(klon), convoccur(klon), zmax_th(klon))
757      ALLOCATE(zq2m(klon), zt2m(klon), weak_inversion(klon))
758      ALLOCATE(zt2m_min_mon(klon), zt2m_max_mon(klon))
759      ALLOCATE(t2m_min_mon(klon), t2m_max_mon(klon))
760      ALLOCATE(zq2m_cor(klon), zt2m_cor(klon), zu10m_cor(klon), zv10m_cor(klon))
761      ALLOCATE(zrh2m_cor(klon), zqsat2m_cor(klon))
762      ALLOCATE(sens(klon), flwp(klon), fiwp(klon))
763      ALLOCATE(alp_bl_conv(klon), alp_bl_det(klon))
764      alp_bl_conv(:)=0 ;  alp_bl_det(:)=0
765      ALLOCATE(alp_bl_fluct_m(klon), alp_bl_fluct_tke(klon))
766      alp_bl_fluct_m(:)=0 ; alp_bl_fluct_tke(:)= 0.
767      ALLOCATE(alp_bl_stat(klon), n2(klon), s2(klon))
768      alp_bl_stat(:)=0
769      ALLOCATE(proba_notrig(klon), random_notrig(klon))
770      ALLOCATE(cv_gen(klon))
771
772      ALLOCATE(dnwd0(klon, klev))
773!      ALLOCATE(upwd(klon, klev), omega(klon, klev), coefh(klon, klev))
774      ALLOCATE(omega(klon, klev))
775      ALLOCATE(epmax_diag(klon)) ! epmax_cape
776!      ALLOCATE(coefm(klon, klev), lambda_th(klon, klev), cldemi(klon, klev))
777      ALLOCATE(lambda_th(klon, klev), cldemi(klon, klev))
778      ALLOCATE(cldfra(klon, klev), cldtau(klon, klev), fiwc(klon, klev))
779      ALLOCATE(fl(klon, klev), re(klon, klev), flwc(klon, klev))
780      ALLOCATE(ref_liq(klon, klev), ref_ice(klon, klev), theta(klon, klev))
781      ALLOCATE(ref_liq_pi(klon, klev), ref_ice_pi(klon, klev))
782      ALLOCATE(zphi(klon, klev), zx_rh(klon, klev))
783      ALLOCATE(pmfd(klon, klev), pmfu(klon, klev))
784
785      ALLOCATE(t2m(klon, nbsrf), fluxlat(klon, nbsrf))
786      ALLOCATE(fsollw(klon, nbsrf))
787      ALLOCATE(fsolsw(klon, nbsrf), wfbils(klon, nbsrf), wfbilo(klon, nbsrf))
788      ALLOCATE(wfevap(klon, nbsrf), wfrain(klon,nbsrf), wfsnow(klon, nbsrf))
789      ALLOCATE(evap_pot(klon, nbsrf))
790!
791!  Deep convective variables used in phytrac
792      ALLOCATE(pmflxr(klon, klev+1), pmflxs(klon, klev+1))
793      ALLOCATE(wdtrainA(klon,klev),wdtrainS(klon,klev),wdtrainM(klon,klev))
794      ALLOCATE(dnwd(klon, klev), upwd(klon, klev) )
795      ALLOCATE(ep(klon,klev))                          ! epmax_cape
796      ALLOCATE(da(klon,klev), mp(klon,klev) )
797      ALLOCATE(phi(klon,klev,klev) )
798      ALLOCATE(wght_cvfd(klon,klev) )
799      ALLOCATE(phi2(klon,klev,klev) )
800      ALLOCATE(d1a(klon,klev), dam(klon,klev))
801      ALLOCATE(ev(klon,klev) )
802      ALLOCATE(elij(klon,klev,klev) )
803      ALLOCATE(qtaa(klon,klev) )
804      ALLOCATE(clw(klon,klev) )
805      ALLOCATE(epmlmMm(klon,klev,klev), eplaMm(klon,klev) )
806      ALLOCATE(sij(klon,klev,klev) )
807
808      ALLOCATE(prfl(klon, klev+1))
809      ALLOCATE(psfl(klon, klev+1), fraca(klon, klev+1), Vprecip(klon, klev+1))
810      ALLOCATE(zw2(klon, klev+1))
811
812      ALLOCATE(fluxu(klon, klev, nbsrf), fluxv(klon, klev, nbsrf))
813      ALLOCATE(fluxt(klon, klev, nbsrf))
814
815      ALLOCATE(uwriteSTD(klon,nlevSTD,nfiles), vwriteSTD(klon,nlevSTD,nfiles))
816      ALLOCATE(wwriteSTD(klon,nlevSTD,nfiles), phiwriteSTD(klon,nlevSTD,nfiles))
817      ALLOCATE(qwriteSTD(klon,nlevSTD,nfiles), twriteSTD(klon,nlevSTD,nfiles))
818      ALLOCATE(rhwriteSTD(klon,nlevSTD,nfiles))
819
820! ug et d'autres encore:
821      ALLOCATE(beta_prec(klon,klev))
822      ALLOCATE(rneb(klon,klev),rnebjn(klon,klev),rneblsvol(klon,klev))
823
824
825      ALLOCATE (zxsnow(klon),snowhgt(klon),qsnow(klon),to_ice(klon))
826      ALLOCATE (sissnow(klon),runoff(klon),albsol3_lic(klon))
827
828      ALLOCATE (p_tropopause(klon))
829      ALLOCATE (z_tropopause(klon))
830      ALLOCATE (t_tropopause(klon))
831
832#ifdef CPP_StratAer
833      ALLOCATE (R2SO4(klon,klev))
834      ALLOCATE (DENSO4(klon,klev))
835      ALLOCATE (f_r_wet(klon,klev))
836      ALLOCATE (decfluxaer(klon,nbtr))
837      ALLOCATE (mdw(nbtr))
838      ALLOCATE (budg_3D_nucl(klon,klev))
839      ALLOCATE (budg_3D_cond_evap(klon,klev))
840      ALLOCATE (budg_3D_ocs_to_so2(klon,klev))
841      ALLOCATE (budg_3D_so2_to_h2so4(klon,klev))
842      ALLOCATE (budg_3D_backgr_ocs(klon,klev))
843      ALLOCATE (budg_3D_backgr_so2(klon,klev))
844      ALLOCATE (OCS_lifetime(klon,klev))
845      ALLOCATE (SO2_lifetime(klon,klev))
846      ALLOCATE (alpha_bin(nbands_sw_rrtm+nbands_lw_rrtm+nwave,nbtr))
847      ALLOCATE (piz_bin(nbands_sw_rrtm+nbands_lw_rrtm+nwave,nbtr))
848      ALLOCATE (cg_bin(nbands_sw_rrtm+nbands_lw_rrtm+nwave,nbtr))
849      ALLOCATE (tau_strat_550(klon,klev))
850      ALLOCATE (tau_strat_1020(klon,klev))
851      ALLOCATE (tausum_strat(klon,3))
852      ALLOCATE (budg_dep_dry_ocs(klon))
853      ALLOCATE (budg_dep_wet_ocs(klon))
854      ALLOCATE (budg_dep_dry_so2(klon))
855      ALLOCATE (budg_dep_wet_so2(klon))
856      ALLOCATE (budg_dep_dry_h2so4(klon))
857      ALLOCATE (budg_dep_wet_h2so4(klon))
858      ALLOCATE (budg_dep_dry_part(klon))
859      ALLOCATE (budg_dep_wet_part(klon))
860      ALLOCATE (budg_emi_ocs(klon))
861      ALLOCATE (budg_emi_so2(klon))
862      ALLOCATE (budg_emi_h2so4(klon))
863      ALLOCATE (budg_emi_part(klon))
864      ALLOCATE (budg_ocs_to_so2(klon))
865      ALLOCATE (budg_so2_to_h2so4(klon))
866      ALLOCATE (budg_h2so4_to_part(klon))
867      ALLOCATE (budg_sed_part(klon))
868      ALLOCATE (surf_PM25_sulf(klon))
869      ALLOCATE (vsed_aer(klon,klev))
870#endif
871
872END SUBROUTINE phys_local_var_init
873
874!======================================================================
875SUBROUTINE phys_local_var_end
876USE dimphy
877USE indice_sol_mod
878IMPLICIT NONE
879      DEALLOCATE(t_seri,q_seri,ql_seri,qs_seri)
880      DEALLOCATE(u_seri,v_seri)
881      DEALLOCATE(l_mixmin,l_mix)
882
883      DEALLOCATE(tr_seri)
884      DEALLOCATE(d_t_dyn,d_q_dyn)
885      DEALLOCATE(d_ql_dyn,d_qs_dyn)
886      DEALLOCATE(d_q_dyn2d,d_ql_dyn2d,d_qs_dyn2d)
887      DEALLOCATE(d_u_dyn,d_v_dyn)
888      DEALLOCATE(d_tr_dyn)                      !RomP
889      DEALLOCATE(d_t_con,d_q_con)
890      DEALLOCATE(d_u_con,d_v_con)
891      DEALLOCATE(d_t_wake,d_q_wake)
892      DEALLOCATE(d_t_lsc,d_q_lsc)
893      DEALLOCATE(d_t_lwr,d_t_lw0)
894      DEALLOCATE(d_t_swr,d_t_sw0)
895      DEALLOCATE(d_ql_lsc,d_qi_lsc)
896      DEALLOCATE(d_t_ajsb,d_q_ajsb)
897      DEALLOCATE(d_t_ajs,d_q_ajs)
898!nrlmd<
899      DEALLOCATE(d_t_ajs_w,d_q_ajs_w)
900      DEALLOCATE(d_t_ajs_x,d_q_ajs_x)
901!>nrlmd
902      DEALLOCATE(d_u_ajs,d_v_ajs)
903      DEALLOCATE(d_t_eva,d_q_eva)
904      DEALLOCATE(d_ql_eva,d_qi_eva)
905      DEALLOCATE(d_t_lscst,d_q_lscst)
906      DEALLOCATE(d_t_lscth,d_q_lscth)
907      DEALLOCATE(plul_st,plul_th)
908      DEALLOCATE(d_t_vdf,d_q_vdf,d_t_diss)
909      DEALLOCATE(d_u_vdf,d_v_vdf)
910      DEALLOCATE(d_t_oli,d_t_oro)
911      DEALLOCATE(d_u_oli,d_v_oli)
912      DEALLOCATE(d_u_oro,d_v_oro)
913      DEALLOCATE(d_t_oro_gw)
914      DEALLOCATE(d_u_oro_gw,d_v_oro_gw)
915      DEALLOCATE(d_t_lif,d_t_ec)
916      DEALLOCATE(d_u_lif,d_v_lif)
917      DEALLOCATE(d_ts, d_tr)
918      DEALLOCATE(topswad_aero,solswad_aero)
919      DEALLOCATE(topswai_aero,solswai_aero)
920      DEALLOCATE(topswad0_aero,solswad0_aero)
921      DEALLOCATE(toplwad_aero,sollwad_aero)
922      DEALLOCATE(toplwai_aero,sollwai_aero)
923      DEALLOCATE(toplwad0_aero,sollwad0_aero)
924      DEALLOCATE(topsw_aero,solsw_aero)
925      DEALLOCATE(topsw0_aero,solsw0_aero)
926      DEALLOCATE(topswcf_aero,solswcf_aero)
927      DEALLOCATE(stratomask)
928      DEALLOCATE(tausum_aero)
929      DEALLOCATE(drytausum_aero)
930      DEALLOCATE(tau3d_aero)
931      DEALLOCATE(scdnc)
932      DEALLOCATE(dNovrN)
933      DEALLOCATE(cldncl)
934      DEALLOCATE(reffclwtop)
935      DEALLOCATE(lcc)
936      DEALLOCATE(reffclws)
937      DEALLOCATE(reffclwc)
938      DEALLOCATE(cldnvi)
939      DEALLOCATE(lcc3d)
940      DEALLOCATE(lcc3dcon)
941      DEALLOCATE(lcc3dstra)
942      DEALLOCATE(icc3dcon)
943      DEALLOCATE(icc3dstra)
944      DEALLOCATE(zfice)
945      DEALLOCATE(od443aer)
946      DEALLOCATE(od550aer)
947      DEALLOCATE(od865aer)
948      DEALLOCATE(dryod550aer)
949      DEALLOCATE(abs550aer)
950      DEALLOCATE(ec550aer)
951      DEALLOCATE(od550lt1aer)
952      DEALLOCATE(sconcso4)
953      DEALLOCATE(sconcno3)
954      DEALLOCATE(sconcoa)
955      DEALLOCATE(sconcbc)
956      DEALLOCATE(sconcss)
957      DEALLOCATE(sconcdust)
958      DEALLOCATE(concso4)
959      DEALLOCATE(concno3)
960      DEALLOCATE(concoa)
961      DEALLOCATE(concbc)
962      DEALLOCATE(concss)
963      DEALLOCATE(concdust)
964      DEALLOCATE(loadso4)
965      DEALLOCATE(loadoa)
966      DEALLOCATE(loadbc)
967      DEALLOCATE(loadss)
968      DEALLOCATE(loaddust)
969      DEALLOCATE(loadno3)
970      DEALLOCATE(load_tmp1)
971      DEALLOCATE(load_tmp2)
972      DEALLOCATE(load_tmp3)
973      DEALLOCATE(load_tmp4)
974      DEALLOCATE(load_tmp5)
975      DEALLOCATE(load_tmp6)
976      DEALLOCATE(load_tmp7)
977      DEALLOCATE(load_tmp8)
978      DEALLOCATE(load_tmp9)
979      DEALLOCATE(load_tmp10)
980      DEALLOCATE(du_gwd_hines,dv_gwd_hines,d_t_hin)
981      DEALLOCATE(d_q_ch4)
982      DEALLOCATE(dv_gwd_rando,dv_gwd_front)
983      DEALLOCATE(east_gwstress,west_gwstress)
984
985!IM ajout variables CFMIP2/CMIP5
986      DEALLOCATE(topswad_aerop, solswad_aerop)
987      DEALLOCATE(topswai_aerop, solswai_aerop)
988      DEALLOCATE(topswad0_aerop, solswad0_aerop)
989      DEALLOCATE(topsw_aerop, topsw0_aerop)
990      DEALLOCATE(solsw_aerop, solsw0_aerop)
991      DEALLOCATE(topswcf_aerop, solswcf_aerop)
992
993!CK LW diagnostics
994      DEALLOCATE(toplwad_aerop, sollwad_aerop)
995      DEALLOCATE(toplwai_aerop, sollwai_aerop)
996      DEALLOCATE(toplwad0_aerop, sollwad0_aerop)
997
998! FH Ajout de celles necessaires au phys_output_write_mod
999      DEALLOCATE(tal1, pal1, pab1, pab2)
1000      DEALLOCATE(ptstar, pt0, slp)
1001!
1002      DEALLOCATE(alp_wake)
1003      DEALLOCATE(wake_h,wake_k)
1004      DEALLOCATE(wake_omg)
1005      DEALLOCATE(d_deltat_wk, d_deltaq_wk)
1006      DEALLOCATE(d_s_wk, d_dens_a_wk, d_dens_wk)
1007      DEALLOCATE(d_deltat_wk_gw, d_deltaq_wk_gw)
1008      DEALLOCATE(d_deltat_vdf, d_deltaq_vdf)
1009!!      DEALLOCATE( d_s_vdf, d_dens_vdf)
1010      DEALLOCATE(d_deltat_the, d_deltaq_the)
1011!!      DEALLOCATE( d_s_the, d_dens_the)
1012      DEALLOCATE(d_deltat_ajs_cv, d_deltaq_ajs_cv)
1013!
1014      DEALLOCATE(bils)
1015      DEALLOCATE(cdragm, cdragh, cldh, cldl)
1016      DEALLOCATE(cldm, cldq, cldt, qsat2m)
1017      DEALLOCATE(JrNt)
1018      DEALLOCATE(dthmin, evap, fder, plcl, plfc)
1019      DEALLOCATE(prw, prlw, prsw, zustar, zu10m, zv10m, rh2m, s_lcl)
1020      DEALLOCATE(s_pblh, s_pblt, s_therm)
1021!
1022!nrlmd+jyg<
1023      DEALLOCATE(s_pblh_x, s_pblh_w)
1024      DEALLOCATE(s_lcl_x, s_lcl_w)
1025!>nrlmd+jyg
1026!
1027      DEALLOCATE(slab_wfbils, tpot, tpote, ue)
1028      DEALLOCATE(uq, ve, vq, zxffonte)
1029      DEALLOCATE(uwat, vwat)
1030      DEALLOCATE(zxfqcalving, zxfluxlat)
1031      DEALLOCATE(zxrunofflic)
1032      DEALLOCATE(zxtsol, snow_lsc, zxfqfonte, zxqsurf)
1033      DEALLOCATE(rain_lsc)
1034      DEALLOCATE(rain_num)
1035!
1036      DEALLOCATE(sens_x, sens_w)
1037      DEALLOCATE(zxfluxlat_x, zxfluxlat_w)
1038!jyg<
1039!!      DEALLOCATE(t_x, t_w)
1040!!      DEALLOCATE(q_x, q_w)
1041!>jyg
1042      DEALLOCATE(d_t_vdf_x, d_t_vdf_w)
1043      DEALLOCATE(d_q_vdf_x, d_q_vdf_w)
1044      DEALLOCATE(pbl_tke_input)
1045      DEALLOCATE(t_therm, q_therm, u_therm, v_therm)
1046      DEALLOCATE(cdragh_x, cdragh_w)
1047      DEALLOCATE(cdragm_x, cdragm_w)
1048      DEALLOCATE(kh, kh_x, kh_w)
1049!
1050      DEALLOCATE(ptconv)
1051      DEALLOCATE(ratqsc)
1052!
1053      DEALLOCATE(wbeff, convoccur, zmax_th)
1054      DEALLOCATE(zq2m, zt2m, weak_inversion)
1055      DEALLOCATE(zt2m_min_mon, zt2m_max_mon)
1056      DEALLOCATE(t2m_min_mon, t2m_max_mon)
1057      DEALLOCATE(zq2m_cor, zt2m_cor, zu10m_cor, zv10m_cor)
1058      DEALLOCATE(zrh2m_cor, zqsat2m_cor)
1059      DEALLOCATE(sens, flwp, fiwp)
1060      DEALLOCATE(alp_bl_conv,alp_bl_det)
1061      DEALLOCATE(alp_bl_fluct_m,alp_bl_fluct_tke)
1062      DEALLOCATE(alp_bl_stat, n2, s2)
1063      DEALLOCATE(proba_notrig, random_notrig)
1064      DEALLOCATE(cv_gen)
1065
1066      DEALLOCATE(dnwd0)
1067!      DEALLOCATE(upwd, omega, coefh)
1068      DEALLOCATE(omega)
1069      DEALLOCATE(epmax_diag)
1070!      DEALLOCATE(coefm, lambda_th, cldemi)
1071      DEALLOCATE(lambda_th, cldemi)
1072      DEALLOCATE(cldfra, cldtau, fiwc)
1073      DEALLOCATE(fl, re, flwc)
1074      DEALLOCATE(ref_liq, ref_ice, theta)
1075      DEALLOCATE(ref_liq_pi, ref_ice_pi)
1076      DEALLOCATE(zphi, zx_rh)
1077      DEALLOCATE(pmfd, pmfu)
1078
1079      DEALLOCATE(t2m, fluxlat)
1080      DEALLOCATE(fsollw, evap_pot)
1081      DEALLOCATE(fsolsw, wfbils, wfbilo)
1082      DEALLOCATE(wfevap,wfrain,wfsnow)
1083
1084      DEALLOCATE(pmflxr, pmflxs)
1085      DEALLOCATE(wdtrainA, wdtrainS, wdtrainM)
1086      DEALLOCATE(upwd, dnwd)
1087      DEALLOCATE(ep)
1088      DEALLOCATE(da, mp )
1089      DEALLOCATE(phi )
1090      DEALLOCATE(wght_cvfd )
1091      DEALLOCATE(phi2 )
1092      DEALLOCATE(d1a, dam)
1093      DEALLOCATE(ev )
1094      DEALLOCATE(elij )
1095      DEALLOCATE(qtaa )
1096      DEALLOCATE(clw )
1097      DEALLOCATE(epmlmMm, eplaMm )
1098      DEALLOCATE(sij )
1099
1100
1101      DEALLOCATE(prfl, psfl, fraca, Vprecip)
1102      DEALLOCATE(zw2)
1103
1104      DEALLOCATE(fluxu, fluxv)
1105      DEALLOCATE(fluxt)
1106
1107      DEALLOCATE(uwriteSTD, vwriteSTD)
1108      DEALLOCATE(wwriteSTD, phiwriteSTD)
1109      DEALLOCATE(qwriteSTD, twriteSTD, rhwriteSTD)
1110
1111! ug et d'autres encore:
1112      DEALLOCATE(beta_prec)
1113      DEALLOCATE(rneb)
1114      DEALLOCATE (zxsnow,snowhgt,qsnow,to_ice,sissnow,runoff,albsol3_lic)
1115
1116      DEALLOCATE (p_tropopause)
1117      DEALLOCATE (z_tropopause)
1118      DEALLOCATE (t_tropopause)
1119
1120#ifdef CPP_StratAer
1121! variables for strat. aerosol CK
1122      DEALLOCATE (R2SO4)
1123      DEALLOCATE (DENSO4)
1124      DEALLOCATE (f_r_wet)
1125      DEALLOCATE (decfluxaer)
1126      DEALLOCATE (mdw)
1127      DEALLOCATE (SO2_lifetime)
1128      DEALLOCATE (OCS_lifetime)
1129      DEALLOCATE (alpha_bin)
1130      DEALLOCATE (piz_bin)
1131      DEALLOCATE (cg_bin)
1132      DEALLOCATE (tau_strat_550)
1133      DEALLOCATE (tau_strat_1020)
1134      DEALLOCATE (tausum_strat)
1135      DEALLOCATE (surf_PM25_sulf)
1136      DEALLOCATE (vsed_aer)
1137      DEALLOCATE (budg_3D_ocs_to_so2)
1138      DEALLOCATE (budg_3D_so2_to_h2so4)
1139      DEALLOCATE (budg_3D_backgr_ocs)
1140      DEALLOCATE (budg_3D_backgr_so2)
1141      DEALLOCATE (budg_3D_nucl)
1142      DEALLOCATE (budg_3D_cond_evap)
1143      DEALLOCATE (budg_dep_dry_ocs)
1144      DEALLOCATE (budg_dep_wet_ocs)
1145      DEALLOCATE (budg_dep_dry_so2)
1146      DEALLOCATE (budg_dep_wet_so2)
1147      DEALLOCATE (budg_dep_dry_h2so4)
1148      DEALLOCATE (budg_dep_wet_h2so4)
1149      DEALLOCATE (budg_dep_dry_part)
1150      DEALLOCATE (budg_dep_wet_part)
1151      DEALLOCATE (budg_emi_ocs)
1152      DEALLOCATE (budg_emi_so2)
1153      DEALLOCATE (budg_emi_h2so4)
1154      DEALLOCATE (budg_emi_part)
1155      DEALLOCATE (budg_ocs_to_so2)
1156      DEALLOCATE (budg_so2_to_h2so4)
1157      DEALLOCATE (budg_h2so4_to_part)
1158      DEALLOCATE (budg_sed_part)
1159#endif
1160
1161END SUBROUTINE phys_local_var_end
1162
1163END MODULE phys_local_var_mod
Note: See TracBrowser for help on using the repository browser.