source: LMDZ6/trunk/libf/phylmdiso/phys_local_var_mod.F90 @ 4562

Last change on this file since 4562 was 4562, checked in by evignon, 13 months ago

nettoyage et reecriture propre de icefrac_lscp_mod
+ ajoute d'une option pour faire dependre la phase du nuage
de la distance / sommet
travail de Lea Raillard et Meryl Wimmer

File size: 62.3 KB
Line 
1!
2! $Id: phys_local_var_mod.F90 3888 2021-05-05 10:50:37Z jyg $
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 :: qbs_seri(:,:)
17      !$OMP THREADPRIVATE(qbs_seri)
18      REAL, SAVE, ALLOCATABLE :: u_seri(:,:), v_seri(:,:)
19      !$OMP THREADPRIVATE(u_seri, v_seri)
20      REAL, SAVE, ALLOCATABLE :: rneb_seri(:,:)
21      !$OMP THREADPRIVATE(rneb_seri)
22      REAL, SAVE, ALLOCATABLE :: d_rneb_dyn(:,:)
23      !$OMP THREADPRIVATE(d_rneb_dyn)
24      REAL, SAVE, ALLOCATABLE :: l_mixmin(:,:,:),l_mix(:,:,:),tke_dissip(:,:,:),wprime(:,:,:)
25      !$OMP THREADPRIVATE(l_mixmin, l_mix, tke_dissip,wprime)
26      REAL, SAVE, ALLOCATABLE :: tr_seri(:,:,:)
27      !$OMP THREADPRIVATE(tr_seri)
28      REAL, SAVE, ALLOCATABLE :: d_t_dyn(:,:), d_q_dyn(:,:)
29      !$OMP THREADPRIVATE(d_t_dyn, d_q_dyn)
30      REAL, SAVE, ALLOCATABLE :: d_ql_dyn(:,:), d_qs_dyn(:,:), d_qbs_dyn(:,:)
31      !$OMP THREADPRIVATE(d_ql_dyn, d_qs_dyn, d_qbs_dyn)
32      REAL, SAVE, ALLOCATABLE :: d_q_dyn2d(:), d_ql_dyn2d(:), d_qs_dyn2d(:), d_qbs_dyn2d(:)
33      !$OMP THREADPRIVATE(d_q_dyn2d, d_ql_dyn2d, d_qs_dyn2d, d_qbs_dyn2d)
34      REAL, SAVE, ALLOCATABLE :: d_u_dyn(:,:), d_v_dyn(:,:)
35      !$OMP THREADPRIVATE(d_u_dyn, d_v_dyn)
36      REAL, SAVE, ALLOCATABLE :: d_tr_dyn(:,:,:)
37      !$OMP THREADPRIVATE(d_tr_dyn)
38      REAL, SAVE, ALLOCATABLE :: d_t_con(:,:),d_q_con(:,:)
39      !$OMP THREADPRIVATE(d_t_con,d_q_con)
40      REAL, SAVE, ALLOCATABLE :: d_u_con(:,:),d_v_con(:,:)
41      !$OMP THREADPRIVATE(d_u_con,d_v_con)
42      REAL, SAVE, ALLOCATABLE :: d_t_wake(:,:),d_q_wake(:,:)
43      !$OMP THREADPRIVATE( d_t_wake,d_q_wake)
44      REAL, SAVE, ALLOCATABLE :: d_t_lsc(:,:),d_q_lsc(:,:),d_ql_lsc(:,:),d_qi_lsc(:,:)
45      !$OMP THREADPRIVATE(d_t_lsc,d_q_lsc,d_ql_lsc,d_qi_lsc)
46      REAL, SAVE, ALLOCATABLE :: d_t_lwr(:,:),d_t_lw0(:,:),d_t_swr(:,:),d_t_sw0(:,:)
47      !$OMP THREADPRIVATE(d_t_lwr,d_t_lw0,d_t_swr,d_t_sw0)
48      REAL, SAVE, ALLOCATABLE :: d_t_ajsb(:,:), d_q_ajsb(:,:)
49      !$OMP THREADPRIVATE(d_t_ajsb, d_q_ajsb)
50      REAL, SAVE, ALLOCATABLE :: d_t_ajs(:,:), d_q_ajs(:,:)
51      !$OMP THREADPRIVATE(d_t_ajs, d_q_ajs)
52      REAL, SAVE, ALLOCATABLE :: d_u_ajs(:,:), d_v_ajs(:,:)
53      !$OMP THREADPRIVATE(d_u_ajs, d_v_ajs)
54!nrlmd<
55      REAL, SAVE, ALLOCATABLE :: d_t_ajs_w(:,:), d_q_ajs_w(:,:)
56      !$OMP THREADPRIVATE(d_t_ajs_w, d_q_ajs_w)
57      REAL, SAVE, ALLOCATABLE :: d_t_ajs_x(:,:), d_q_ajs_x(:,:)
58      !$OMP THREADPRIVATE(d_t_ajs_x, d_q_ajs_x)
59!>nrlmd
60      REAL, SAVE, ALLOCATABLE :: d_t_eva(:,:),d_q_eva(:,:),d_ql_eva(:,:),d_qi_eva(:,:)
61      !$OMP THREADPRIVATE(d_t_eva,d_q_eva,d_ql_eva,d_qi_eva)
62      REAL, SAVE, ALLOCATABLE :: d_t_lscst(:,:),d_q_lscst(:,:)
63      !$OMP THREADPRIVATE(d_t_lscst,d_q_lscst)
64      REAL, SAVE, ALLOCATABLE :: d_t_lscth(:,:),d_q_lscth(:,:)
65      !$OMP THREADPRIVATE(d_t_lscth,d_q_lscth)
66      REAL, SAVE, ALLOCATABLE :: plul_th(:),plul_st(:)
67      !$OMP THREADPRIVATE(plul_th,plul_st)
68!tendances dues a oro et lif
69      REAL, SAVE, ALLOCATABLE :: d_t_oli(:,:)
70      !$OMP THREADPRIVATE(d_t_oli)
71      REAL, SAVE, ALLOCATABLE :: d_u_oli(:,:), d_v_oli(:,:)
72      !$OMP THREADPRIVATE(d_u_oli, d_v_oli)
73      REAL, SAVE, ALLOCATABLE :: d_t_vdf(:,:), d_q_vdf(:,:), d_qbs_vdf(:,:), d_t_diss(:,:)
74      !$OMP THREADPRIVATE( d_t_vdf, d_q_vdf, d_qbs_vdf, d_t_diss)
75      REAL, SAVE, ALLOCATABLE :: d_u_vdf(:,:), d_v_vdf(:,:)
76      !$OMP THREADPRIVATE(d_u_vdf, d_v_vdf)
77!nrlmd+jyg<
78      REAL, SAVE, ALLOCATABLE :: d_t_vdf_w(:,:), d_q_vdf_w(:,:)
79      !$OMP THREADPRIVATE( d_t_vdf_w, d_q_vdf_w)
80      REAL, SAVE, ALLOCATABLE :: d_t_vdf_x(:,:), d_q_vdf_x(:,:)
81      !$OMP THREADPRIVATE( d_t_vdf_x, d_q_vdf_x)
82      REAL, SAVE, ALLOCATABLE :: d_t_bs(:,:), d_q_bs(:,:), d_qbs_bs(:,:)
83      !$OMP THREADPRIVATE( d_t_bs,d_q_bs, d_qbs_bs)
84!>nrlmd+jyg
85      REAL, SAVE, ALLOCATABLE :: d_t_oro(:,:)
86      !$OMP THREADPRIVATE(d_t_oro)
87      REAL, SAVE, ALLOCATABLE :: d_u_oro(:,:), d_v_oro(:,:)
88      !$OMP THREADPRIVATE(d_u_oro, d_v_oro)
89      REAL, SAVE, ALLOCATABLE :: d_t_oro_gw(:,:)
90      !$OMP THREADPRIVATE(d_t_oro_gw)
91      REAL, SAVE, ALLOCATABLE :: d_u_oro_gw(:,:), d_v_oro_gw(:,:)
92      !$OMP THREADPRIVATE(d_u_oro_gw, d_v_oro_gw)
93      REAL, SAVE, ALLOCATABLE :: d_t_lif(:,:)
94      !$OMP THREADPRIVATE(d_t_lif)
95      REAL, SAVE, ALLOCATABLE :: d_u_lif(:,:), d_v_lif(:,:)
96      !$OMP THREADPRIVATE(d_u_lif, d_v_lif)
97! Tendances Ondes de G non oro (runs strato).
98      REAL, SAVE, ALLOCATABLE :: du_gwd_hines(:,:)
99      !$OMP THREADPRIVATE(du_gwd_hines)
100      REAL, SAVE, ALLOCATABLE :: dv_gwd_hines(:,:)
101      !$OMP THREADPRIVATE(dv_gwd_hines)
102      REAL, SAVE, ALLOCATABLE :: dv_gwd_rando(:,:)
103      !$OMP THREADPRIVATE(dv_gwd_rando)
104      REAL, SAVE, ALLOCATABLE :: dv_gwd_front(:,:)
105      !$OMP THREADPRIVATE(dv_gwd_front)
106      REAL, SAVE, ALLOCATABLE :: east_gwstress(:,:)
107      !$OMP THREADPRIVATE(east_gwstress)
108      REAL, SAVE, ALLOCATABLE :: west_gwstress(:,:)
109      !$OMP THREADPRIVATE(west_gwstress)
110      REAL, SAVE, ALLOCATABLE :: d_t_hin(:,:)
111      !$OMP THREADPRIVATE(d_t_hin)
112! tendance due a l'oxydation du methane
113      REAL, SAVE, ALLOCATABLE :: d_q_ch4(:,:)
114      !$OMP THREADPRIVATE(d_q_ch4)
115#ifdef ISO
116      REAL, SAVE, ALLOCATABLE :: xt_seri(:,:,:)
117      !$OMP THREADPRIVATE( xt_seri)
118      REAL, SAVE, ALLOCATABLE :: xtl_seri(:,:,:)
119      !$OMP THREADPRIVATE( xtl_seri)
120      REAL, SAVE, ALLOCATABLE :: xts_seri(:,:,:)
121      !$OMP THREADPRIVATE( xts_seri)
122      REAL, SAVE, ALLOCATABLE :: d_xt_eva(:,:,:)
123      !$OMP THREADPRIVATE( d_xt_eva)
124      REAL, SAVE, ALLOCATABLE :: d_xtl_eva(:,:,:)
125      !$OMP THREADPRIVATE( d_xtl_eva)
126      REAL, SAVE, ALLOCATABLE :: d_xti_eva(:,:,:)
127      !$OMP THREADPRIVATE( d_xti_eva)
128      REAL, SAVE, ALLOCATABLE :: d_xt_vdf(:,:,:)
129      !$OMP THREADPRIVATE( d_xt_vdf)
130      REAL, SAVE, ALLOCATABLE :: d_xt_dyn(:,:,:)
131      !$OMP THREADPRIVATE( d_xt_dyn)
132      REAL, SAVE, ALLOCATABLE :: d_xtl_dyn(:,:,:), d_xts_dyn(:,:,:)
133      !$OMP THREADPRIVATE(d_xtl_dyn, d_xts_dyn)
134      REAL, SAVE, ALLOCATABLE :: d_xt_con(:,:,:)
135      !$OMP THREADPRIVATE( d_xt_con)
136      REAL, SAVE, ALLOCATABLE :: d_xt_wake(:,:,:)
137      !$OMP THREADPRIVATE( d_xt_wake)
138      REAL, SAVE, ALLOCATABLE :: d_xt_lsc(:,:,:),d_xtl_lsc(:,:,:),d_xti_lsc(:,:,:)
139      !$OMP THREADPRIVATE( d_xt_lsc,d_xtl_lsc,d_xti_lsc)
140      REAL, SAVE, ALLOCATABLE :: d_xt_ajsb(:,:,:)
141      !$OMP THREADPRIVATE( d_xt_ajsb)
142      REAL, SAVE, ALLOCATABLE :: d_xt_ajs(:,:,:)
143      !$OMP THREADPRIVATE( d_xt_ajs)
144      REAL, SAVE, ALLOCATABLE :: d_xt_ajs_w(:,:,:), d_xt_ajs_x(:,:,:)
145      !$OMP THREADPRIVATE(d_xt_ajs_w, d_xt_ajs_x)
146      REAL, SAVE, ALLOCATABLE :: d_xt_vdf_w(:,:,:), d_xt_vdf_x(:,:,:)
147      !$OMP THREADPRIVATE(d_xt_vdf_w, d_xt_vdf_x)
148      REAL, SAVE, ALLOCATABLE :: d_xt_ch4(:,:,:)
149      !$OMP THREADPRIVATE( d_xt_ch4)
150      REAL, SAVE, ALLOCATABLE :: d_xt_prod_nucl(:,:,:)
151      !$OMP THREADPRIVATE( d_xt_prod_nucl)
152      REAL, SAVE, ALLOCATABLE :: d_xt_cosmo(:,:,:)
153      !$OMP THREADPRIVATE( d_xt_cosmo)
154      REAL, SAVE, ALLOCATABLE :: d_xt_decroiss(:,:,:)
155      !$OMP THREADPRIVATE( d_xt_decroiss)
156#endif
157
158! tendance du a la conersion Ec -> E thermique
159      REAL, SAVE, ALLOCATABLE :: d_t_ec(:,:)
160      !$OMP THREADPRIVATE(d_t_ec)
161      REAL, SAVE, ALLOCATABLE :: d_ts(:,:), d_tr(:,:,:)
162      !$OMP THREADPRIVATE(d_ts, d_tr)
163
164! diagnostique pour le rayonnement
165      REAL, SAVE, ALLOCATABLE :: topswad_aero(:),  solswad_aero(:)      ! diag
166      !$OMP THREADPRIVATE(topswad_aero,solswad_aero)
167      REAL, SAVE, ALLOCATABLE :: topswai_aero(:),  solswai_aero(:)      ! diag
168      !$OMP THREADPRIVATE(topswai_aero,solswai_aero)
169      REAL, SAVE, ALLOCATABLE :: topswad0_aero(:), solswad0_aero(:)     ! diag
170      !$OMP THREADPRIVATE(topswad0_aero,solswad0_aero)
171      REAL, SAVE, ALLOCATABLE :: topsw_aero(:,:),  solsw_aero(:,:)      ! diag
172      !$OMP THREADPRIVATE(topsw_aero,solsw_aero)
173      REAL, SAVE, ALLOCATABLE :: topsw0_aero(:,:), solsw0_aero(:,:)     ! diag
174      !$OMP THREADPRIVATE(topsw0_aero,solsw0_aero)
175      REAL, SAVE, ALLOCATABLE :: topswcf_aero(:,:),  solswcf_aero(:,:)  ! diag
176      !$OMP THREADPRIVATE(topswcf_aero,solswcf_aero)
177! LW radiation diagnostics CK
178      REAL, SAVE, ALLOCATABLE :: toplwad_aero(:),  sollwad_aero(:)      ! diag
179      !$OMP THREADPRIVATE(toplwad_aero,sollwad_aero)
180      REAL, SAVE, ALLOCATABLE :: toplwai_aero(:),  sollwai_aero(:)      ! diag
181      !$OMP THREADPRIVATE(toplwai_aero,sollwai_aero)
182      REAL, SAVE, ALLOCATABLE :: toplwad0_aero(:), sollwad0_aero(:)     ! diag
183      !$OMP THREADPRIVATE(toplwad0_aero,sollwad0_aero)
184! Special RRTM
185      REAL, SAVE, ALLOCATABLE :: ZLWFT0_i(:,:),  ZSWFT0_i(:,:)      ! diag
186      !$OMP THREADPRIVATE(ZLWFT0_i,ZSWFT0_i)
187      REAL, SAVE, ALLOCATABLE :: ZFLDN0(:,:),  ZFLUP0(:,:)      ! diag
188      !$OMP THREADPRIVATE(ZFLDN0,ZFLUP0)
189      REAL, SAVE, ALLOCATABLE :: ZFSDN0(:,:),  ZFSUP0(:,:)      ! diag
190      !$OMP THREADPRIVATE(ZFSDN0,ZFSUP0)
191!
192      REAL, SAVE, ALLOCATABLE :: stratomask(:,:)
193      !$OMP THREADPRIVATE(stratomask)
194      REAL, SAVE, ALLOCATABLE :: tausum_aero(:,:,:)
195      !$OMP THREADPRIVATE(tausum_aero)
196      REAL, SAVE, ALLOCATABLE :: drytausum_aero(:,:)
197      !$OMP THREADPRIVATE(drytausum_aero)
198      REAL, SAVE, ALLOCATABLE :: tau3d_aero(:,:,:,:)
199      !$OMP THREADPRIVATE(tau3d_aero)
200      REAL, SAVE, ALLOCATABLE :: scdnc(:,:)
201      !$OMP THREADPRIVATE(scdnc)
202      REAL, SAVE, ALLOCATABLE :: dNovrN(:)
203      !$OMP THREADPRIVATE(dNovrN)
204      REAL, SAVE, ALLOCATABLE :: cldncl(:)
205      !$OMP THREADPRIVATE(cldncl)
206      REAL, SAVE, ALLOCATABLE :: reffclwtop(:)
207      !$OMP THREADPRIVATE(reffclwtop)
208      REAL, SAVE, ALLOCATABLE :: lcc(:)
209      !$OMP THREADPRIVATE(lcc)
210      REAL, SAVE, ALLOCATABLE :: reffclws(:,:)
211      !$OMP THREADPRIVATE(reffclws)
212      REAL, SAVE, ALLOCATABLE :: reffclwc(:,:)
213      !$OMP THREADPRIVATE(reffclwc)
214      REAL, SAVE, ALLOCATABLE :: cldnvi(:)
215      !$OMP THREADPRIVATE(cldnvi)
216      REAL, SAVE, ALLOCATABLE :: lcc3d(:,:)
217      !$OMP THREADPRIVATE(lcc3d)
218      REAL, SAVE, ALLOCATABLE :: lcc3dcon(:,:)
219      !$OMP THREADPRIVATE(lcc3dcon)
220      REAL, SAVE, ALLOCATABLE :: lcc3dstra(:,:)
221      !$OMP THREADPRIVATE(lcc3dstra)
222      REAL, SAVE, ALLOCATABLE :: icc3dcon(:,:)
223      !$OMP THREADPRIVATE(icc3dcon)
224      REAL, SAVE, ALLOCATABLE :: icc3dstra(:,:)
225      !$OMP THREADPRIVATE(icc3dstra)
226      REAL, SAVE, ALLOCATABLE :: zfice(:,:)
227      !$OMP THREADPRIVATE(zfice)
228      REAL, SAVE, ALLOCATABLE :: od443aer(:)
229      !$OMP THREADPRIVATE(od443aer)
230      REAL, SAVE, ALLOCATABLE :: od550aer(:)
231      !$OMP THREADPRIVATE(od550aer)
232      REAL, SAVE, ALLOCATABLE :: dryod550aer(:)
233      !$OMP THREADPRIVATE(dryod550aer)
234      REAL, SAVE, ALLOCATABLE :: abs550aer(:)
235      !$OMP THREADPRIVATE(abs550aer)
236      REAL, SAVE, ALLOCATABLE :: od865aer(:)
237      !$OMP THREADPRIVATE(od865aer)
238      REAL, SAVE, ALLOCATABLE :: ec550aer(:,:)
239      !$OMP THREADPRIVATE(ec550aer)
240      REAL, SAVE, ALLOCATABLE :: od550lt1aer(:)
241      !$OMP THREADPRIVATE(od550lt1aer)
242      REAL, SAVE, ALLOCATABLE :: sconcso4(:)
243      !$OMP THREADPRIVATE(sconcso4)
244      REAL, SAVE, ALLOCATABLE :: sconcno3(:)
245      !$OMP THREADPRIVATE(sconcno3)
246      REAL, SAVE, ALLOCATABLE :: sconcoa(:)
247      !$OMP THREADPRIVATE(sconcoa)
248      REAL, SAVE, ALLOCATABLE :: sconcbc(:)
249      !$OMP THREADPRIVATE(sconcbc)
250      REAL, SAVE, ALLOCATABLE :: sconcss(:)
251      !$OMP THREADPRIVATE(sconcss)
252      REAL, SAVE, ALLOCATABLE :: sconcdust(:)
253      !$OMP THREADPRIVATE(sconcdust)
254      REAL, SAVE, ALLOCATABLE :: concso4(:,:)
255      !$OMP THREADPRIVATE(concso4)
256      REAL, SAVE, ALLOCATABLE :: concno3(:,:)
257      !$OMP THREADPRIVATE(concno3)
258      REAL, SAVE, ALLOCATABLE :: concoa(:,:)
259      !$OMP THREADPRIVATE(concoa)
260      REAL, SAVE, ALLOCATABLE :: concbc(:,:)
261      !$OMP THREADPRIVATE(concbc)
262      REAL, SAVE, ALLOCATABLE :: concss(:,:)
263      !$OMP THREADPRIVATE(concss)
264      REAL, SAVE, ALLOCATABLE :: concdust(:,:)
265      !$OMP THREADPRIVATE(concdust)
266      REAL, SAVE, ALLOCATABLE :: loadso4(:)
267      !$OMP THREADPRIVATE(loadso4)
268      REAL, SAVE, ALLOCATABLE :: loadoa(:)
269      !$OMP THREADPRIVATE(loadoa)
270      REAL, SAVE, ALLOCATABLE :: loadbc(:)
271      !$OMP THREADPRIVATE(loadbc)
272      REAL, SAVE, ALLOCATABLE :: loadss(:)
273      !$OMP THREADPRIVATE(loadss)
274      REAL, SAVE, ALLOCATABLE :: loaddust(:)
275      !$OMP THREADPRIVATE(loaddust)
276      REAL, SAVE, ALLOCATABLE :: loadno3(:)
277      !$OMP THREADPRIVATE(loadno3)
278      REAL, SAVE, ALLOCATABLE :: load_tmp1(:), load_tmp2(:)
279      !$OMP THREADPRIVATE(load_tmp1, load_tmp2)
280      REAL, SAVE, ALLOCATABLE :: load_tmp3(:), load_tmp4(:)
281      !$OMP THREADPRIVATE(load_tmp3, load_tmp4)
282      REAL, SAVE, ALLOCATABLE :: load_tmp5(:), load_tmp6(:)
283      !$OMP THREADPRIVATE(load_tmp5, load_tmp6)
284      REAL, SAVE, ALLOCATABLE :: load_tmp7(:), load_tmp8(:)
285      !$OMP THREADPRIVATE(load_tmp7, load_tmp8)
286      REAL, SAVE, ALLOCATABLE :: load_tmp9(:), load_tmp10(:)
287      !$OMP THREADPRIVATE(load_tmp9, load_tmp10)
288
289!IM ajout variables CFMIP2/CMIP5
290      REAL,ALLOCATABLE,SAVE :: topswad_aerop(:), solswad_aerop(:)
291!$OMP THREADPRIVATE(topswad_aerop, solswad_aerop)
292      REAL,ALLOCATABLE,SAVE :: topswai_aerop(:), solswai_aerop(:)
293!$OMP THREADPRIVATE(topswai_aerop, solswai_aerop)
294      REAL,ALLOCATABLE,SAVE :: topswad0_aerop(:), solswad0_aerop(:)
295!$OMP THREADPRIVATE(topswad0_aerop, solswad0_aerop)
296      REAL,ALLOCATABLE,SAVE :: topsw_aerop(:,:), topsw0_aerop(:,:) 
297!$OMP THREADPRIVATE(topsw_aerop, topsw0_aerop)
298      REAL,ALLOCATABLE,SAVE :: solsw_aerop(:,:), solsw0_aerop(:,:)
299!$OMP THREADPRIVATE(solsw_aerop, solsw0_aerop)
300      REAL,ALLOCATABLE,SAVE :: topswcf_aerop(:,:), solswcf_aerop(:,:)
301!$OMP THREADPRIVATE(topswcf_aerop, solswcf_aerop)
302
303! additional LW variables CK
304      REAL,ALLOCATABLE,SAVE :: toplwad_aerop(:), sollwad_aerop(:)
305!$OMP THREADPRIVATE(toplwad_aerop, sollwad_aerop)
306      REAL,ALLOCATABLE,SAVE :: toplwai_aerop(:), sollwai_aerop(:)
307!$OMP THREADPRIVATE(toplwai_aerop, sollwai_aerop)
308      REAL,ALLOCATABLE,SAVE :: toplwad0_aerop(:), sollwad0_aerop(:)
309!$OMP THREADPRIVATE(toplwad0_aerop, sollwad0_aerop)
310
311!Ajout de celles n??cessaires au phys_output_write_mod
312      REAL, SAVE, ALLOCATABLE :: tal1(:), pal1(:), pab1(:), pab2(:)
313!$OMP THREADPRIVATE(tal1, pal1, pab1, pab2)
314      REAL, SAVE, ALLOCATABLE :: ptstar(:), pt0(:), slp(:)
315!$OMP THREADPRIVATE(ptstar, pt0, slp)
316      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: sens, flwp, fiwp
317!$OMP THREADPRIVATE(sens, flwp, fiwp)
318!!
319!!         Wake variables
320      REAL,ALLOCATABLE,SAVE,DIMENSION(:)            :: alp_wake
321!$OMP THREADPRIVATE(alp_wake)           
322!!jyg!      REAL,ALLOCATABLE,SAVE,DIMENSION(:)            :: wake_h,wake_k
323      REAL,ALLOCATABLE,SAVE,DIMENSION(:)            :: wake_h
324      INTEGER,ALLOCATABLE,SAVE,DIMENSION(:)         :: wake_k
325!$OMP THREADPRIVATE(wake_h,wake_k)                       
326    REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)            :: wake_omg
327!$OMP THREADPRIVATE(wake_omg)                     
328    REAL, SAVE, ALLOCATABLE,DIMENSION(:,:)          :: d_deltat_wk, d_deltaq_wk
329!$OMP THREADPRIVATE(d_deltat_wk, d_deltaq_wk)
330      REAL,ALLOCATABLE,SAVE,DIMENSION(:)            :: d_s_wk, d_dens_a_wk, d_dens_wk
331!$OMP THREADPRIVATE(d_s_wk, d_dens_a_wk, d_dens_wk)
332    REAL, SAVE, ALLOCATABLE,DIMENSION(:,:)          :: d_deltat_wk_gw, d_deltaq_wk_gw
333!$OMP THREADPRIVATE(d_deltat_wk_gw, d_deltaq_wk_gw)
334    REAL, SAVE, ALLOCATABLE,DIMENSION(:,:)          :: d_deltat_vdf, d_deltaq_vdf
335!$OMP THREADPRIVATE(d_deltat_vdf, d_deltaq_vdf)
336!!!      REAL,ALLOCATABLE,SAVE,DIMENSION(:)          :: d_s_vdf, d_dens_vdf
337!!!OMP THREADPRIVATE(d_s_vdf, d_dens_vdf)
338    REAL, SAVE, ALLOCATABLE,DIMENSION(:,:)          :: d_deltat_the, d_deltaq_the
339!$OMP THREADPRIVATE(d_deltat_the, d_deltaq_the)
340!!!      REAL,ALLOCATABLE,SAVE,DIMENSION(:)          :: d_s_the, d_dens_the
341!!!OMP THREADPRIVATE(d_s_the, d_dens_the)
342      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)           :: d_deltat_ajs_cv, d_deltaq_ajs_cv
343!$OMP THREADPRIVATE(d_deltat_ajs_cv, d_deltaq_ajs_cv)                       
344#ifdef ISO
345    REAL, SAVE, ALLOCATABLE,DIMENSION(:,:,:)          :: d_deltaxt_wk
346!$OMP THREADPRIVATE(d_deltaxt_wk)
347    REAL, SAVE, ALLOCATABLE,DIMENSION(:,:,:)          :: d_deltaxt_wk_gw
348!$OMP THREADPRIVATE(d_deltaxt_wk_gw)
349    REAL, SAVE, ALLOCATABLE,DIMENSION(:,:,:)          ::  d_deltaxt_the
350!$OMP THREADPRIVATE(d_deltaxt_the)
351    REAL, SAVE, ALLOCATABLE,DIMENSION(:,:,:)          ::  d_deltaxt_vdf
352!$OMP THREADPRIVATE(d_deltaxt_vdf)
353      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)           ::  d_deltaxt_ajs_cv
354!$OMP THREADPRIVATE(d_deltaxt_ajs_cv)
355#endif                       
356!!         End of Wake variables
357!!
358      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: bils
359!$OMP THREADPRIVATE(bils)
360      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cdragm, cdragh
361!$OMP THREADPRIVATE(cdragm, cdragh)
362      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cldh, cldl, cldm, cldq, cldt, qsat2m
363!$OMP THREADPRIVATE(cldh, cldl, cldm, cldq, cldt, qsat2m )
364!AS: cldhjn, cldljn, cldmjn,cldtjn pas utilisés en tant que variables, juste noms de diagnostics
365      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: JrNt
366!$OMP THREADPRIVATE(JrNt)
367      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: dthmin, evap, snowerosion, fder, plcl, plfc, prw, prlw, prsw, prbsw
368!$OMP THREADPRIVATE(dthmin, evap, snowerosion, fder, plcl, plfc, prw, prlw, prsw, prbsw)
369      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zustar, zu10m, zv10m, rh2m
370!$OMP THREADPRIVATE(zustar, zu10m, zv10m, rh2m)
371      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: s_lcl, s_pblh, s_pblt, s_therm
372!$OMP THREADPRIVATE(s_lcl, s_pblh, s_pblt, s_therm)
373!
374!nrlmd+jyg<
375      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: s_pblh_x, s_pblh_w
376!$OMP THREADPRIVATE(s_pblh_x, s_pblh_w)
377      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: s_lcl_x, s_lcl_w
378!$OMP THREADPRIVATE(s_lcl_x, s_lcl_w)
379!>nrlmd+jyg
380!
381      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: slab_wfbils
382!$OMP THREADPRIVATE(slab_wfbils)
383      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: tpot, tpote, ue, uq, uwat, ve, vq, vwat, zxffonte
384!$OMP THREADPRIVATE(tpot, tpote, ue, uq, uwat, ve, vq, vwat, zxffonte)
385      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxustartlic, zxrhoslic
386!$OMP THREADPRIVATE(zxustartlic, zxrhoslic)
387      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxfqcalving
388!$OMP THREADPRIVATE(zxfqcalving)
389      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxfluxlat, zxtsol, snow_lsc, zxfqfonte
390!$OMP THREADPRIVATE(zxfluxlat, zxtsol, snow_lsc, zxfqfonte)
391      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxrunofflic
392!$OMP THREADPRIVATE(zxrunofflic)
393      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxqsurf, rain_lsc, rain_num
394!$OMP THREADPRIVATE(zxqsurf, rain_lsc, rain_num)
395#ifdef ISO
396      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: xtevap,xtprw
397!$OMP THREADPRIVATE(xtevap,xtprw)
398      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: h1_diag,runoff_diag
399      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: xtrunoff_diag
400!$OMP THREADPRIVATE(h1_diag,runoff_diag,xtrunoff_diag)
401      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: zxfxtcalving
402!$OMP THREADPRIVATE(zxfxtcalving)
403      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: xtsnow_lsc, zxfxtfonte
404!$OMP THREADPRIVATE(xtsnow_lsc, zxfxtfonte)
405      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: zxxtrunofflic
406!$OMP THREADPRIVATE(zxxtrunofflic)
407      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: xtrain_lsc
408!$OMP THREADPRIVATE(xtrain_lsc)
409#endif
410!
411!jyg+nrlmd<
412!!!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
413!                                                                          c
414!       Declarations liees a la couche limite differentiee w-x             c
415!                                                                          c
416!!!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
417      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: sens_x, sens_w
418!$OMP THREADPRIVATE(sens_x, sens_w)
419      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxfluxlat_x, zxfluxlat_w
420!$OMP THREADPRIVATE(zxfluxlat_x, zxfluxlat_w)
421      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: delta_qsurf
422!$OMP THREADPRIVATE(delta_qsurf)
423!jyg<
424!!! Entrees supplementaires couche-limite
425!!      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: t_x, t_w
426!!!$OMP THREADPRIVATE(t_x, t_w)
427!!      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: q_x, q_w
428!!!$OMP THREADPRIVATE(q_x, q_w)
429!>jyg
430!!! Sorties ferret
431      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: dtvdf_x, dtvdf_w
432!$OMP THREADPRIVATE(dtvdf_x, dtvdf_w)
433      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: dqvdf_x, dqvdf_w
434!$OMP THREADPRIVATE(dqvdf_x, dqvdf_w)
435! Variables supplementaires dans physiq.F relative au splitting de la surface
436      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: pbl_tke_input
437!$OMP THREADPRIVATE(pbl_tke_input)
438! Entree supplementaire Thermiques :
439      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: t_therm, q_therm, u_therm, v_therm
440!$OMP THREADPRIVATE(t_therm, q_therm, u_therm, v_therm)
441      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cdragh_x, cdragh_w
442!$OMP THREADPRIVATE(cdragh_x, cdragh_w)
443      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cdragm_x, cdragm_w
444!$OMP THREADPRIVATE(cdragm_x, cdragm_w)
445      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: kh, kh_x, kh_w
446!$OMP THREADPRIVATE(kh, kh_x, kh_w)
447#ifdef ISO
448      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: dxtvdf_x, dxtvdf_w
449!$OMP THREADPRIVATE(dxtvdf_x, dxtvdf_w)
450      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: xt_therm
451!$OMP THREADPRIVATE(xt_therm)
452#endif
453!!!
454!!!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
455      LOGICAL, SAVE, ALLOCATABLE :: ptconv(:,:)
456      !$OMP THREADPRIVATE(ptconv)
457      REAL, SAVE, ALLOCATABLE :: ratqsc(:,:)
458      !$OMP THREADPRIVATE(ratqsc)
459!>jyg+nrlmd
460  !
461      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: wbeff, convoccur, zmax_th, zq2m, zt2m
462!$OMP THREADPRIVATE(wbeff, convoccur, zmax_th, zq2m, zt2m)
463      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zt2m_min_mon, zt2m_max_mon
464!$OMP THREADPRIVATE(zt2m_min_mon, zt2m_max_mon)
465      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: t2m_min_mon, t2m_max_mon
466!$OMP THREADPRIVATE(t2m_min_mon, t2m_max_mon)
467      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: weak_inversion
468!$OMP THREADPRIVATE(weak_inversion)
469      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: alp_bl_conv,alp_bl_det
470!$OMP THREADPRIVATE(alp_bl_conv,alp_bl_det)
471      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: alp_bl_fluct_m,alp_bl_fluct_tke
472!$OMP THREADPRIVATE(alp_bl_fluct_m,alp_bl_fluct_tke)
473      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: alp_bl_stat, n2, s2
474!$OMP THREADPRIVATE(alp_bl_stat, n2, s2)
475      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: proba_notrig, random_notrig
476!$OMP THREADPRIVATE(proba_notrig, random_notrig)
477      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: fsolsw, wfbils, wfbilo
478!$OMP THREADPRIVATE(fsolsw, wfbils, wfbilo)
479      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: wfevap, wfrain, wfsnow
480!$OMP THREADPRIVATE(wfevap,wfrain,wfsnow)
481      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: t2m, fluxlat, fsollw,evap_pot
482!$OMP THREADPRIVATE(t2m, fluxlat, fsollw,evap_pot)
483      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: dnwd0, omega
484!$OMP THREADPRIVATE(dnwd0, omega)
485      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: epmax_diag ! epmax_cape
486!$OMP THREADPRIVATE(epmax_diag)
487!
488!  Deep convective variables used in phytrac
489      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: ep ! epmax_cape
490!$OMP THREADPRIVATE(ep)
491      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: dnwd, upwd
492!$OMP THREADPRIVATE(dnwd, upwd)
493      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: pmflxr, pmflxs
494!$OMP THREADPRIVATE(pmflxr, pmflxs)
495      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: wdtrainA, wdtrainS, wdtrainM
496!$OMP THREADPRIVATE(wdtrainA, wdtrainS, wdtrainM)
497      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: da, mp
498!$OMP THREADPRIVATE(da, mp)
499      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: wght_cvfd
500!$OMP THREADPRIVATE(wght_cvfd)
501      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:):: phi, phi2, elij, epmlmMm
502!$OMP THREADPRIVATE(phi, phi2, elij, epmlmMm)
503      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: d1a, dam
504!$OMP THREADPRIVATE(d1a, dam)
505      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: ev
506!$OMP THREADPRIVATE(ev)
507      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: qtaa
508!$OMP THREADPRIVATE(qtaa)
509      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: clw
510!$OMP THREADPRIVATE(clw)
511      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: eplaMm
512!$OMP THREADPRIVATE(eplaMm)
513      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:):: sij
514!$OMP THREADPRIVATE(sij)
515#ifdef ISO
516      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: xtwdtrainA
517!$OMP THREADPRIVATE(xtwdtrainA)
518      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: xtev
519!$OMP THREADPRIVATE(xtev)
520      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: xttaa
521!$OMP THREADPRIVATE(xttaa)
522      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: xtclw
523!$OMP THREADPRIVATE(xtclw)
524#ifdef DIAGISO
525      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: qlp
526!$OMP THREADPRIVATE(qlp)
527      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: qvp
528!$OMP THREADPRIVATE(qvp)
529      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: fq_detrainement
530!$OMP THREADPRIVATE(fq_detrainement)
531      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: fq_ddft
532!$OMP THREADPRIVATE(fq_ddft)
533      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: fq_fluxmasse
534!$OMP THREADPRIVATE(fq_fluxmasse)
535      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: fq_evapprecip
536!$OMP THREADPRIVATE(fq_evapprecip)
537      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: f_detrainement
538!$OMP THREADPRIVATE(f_detrainement)
539      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: q_detrainement
540!$OMP THREADPRIVATE(q_detrainement)
541      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: xt_detrainement
542!$OMP THREADPRIVATE(xt_detrainement)
543      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: xtlp
544!$OMP THREADPRIVATE(xtlp)
545      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: xtvp
546!$OMP THREADPRIVATE(xtvp)
547      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: q_the
548!$OMP THREADPRIVATE(q_the)
549      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: xt_the
550!$OMP THREADPRIVATE(xt_the)
551      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: fxt_detrainement
552!$OMP THREADPRIVATE(fxt_detrainement)
553      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: fxt_ddft
554!$OMP THREADPRIVATE(fxt_ddft)
555      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: fxt_fluxmasse
556!$OMP THREADPRIVATE(fxt_fluxmasse)
557      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: fxt_evapprecip
558!$OMP THREADPRIVATE(fxt_evapprecip)
559#endif
560#endif
561!
562!      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: coefh, coefm, lambda_th
563      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: lambda_th
564!$OMP THREADPRIVATE(lambda_th)
565      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: cldemi, cldfra, cldtau, fiwc, fl, re, flwc
566!$OMP THREADPRIVATE(cldemi, cldfra, cldtau, fiwc, fl, re, flwc)
567      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: qlth, qith, qsith, wiceth
568!$OMP THREADPRIVATE(qlth, qith, qsith, wiceth)
569      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: ref_liq, ref_ice, theta, zphi
570!$OMP THREADPRIVATE(ref_liq, ref_ice, theta, zphi)
571      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: ref_liq_pi, ref_ice_pi
572!$OMP THREADPRIVATE(ref_liq_pi, ref_ice_pi)
573      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: zx_rh, zx_rhl, zx_rhi
574!$OMP THREADPRIVATE(zx_rh, zx_rhl, zx_rhi)
575      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: prfl, psfl, fraca, bsfl
576!$OMP THREADPRIVATE(prfl, psfl, fraca, bsfl)
577      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: Vprecip, zw2
578!$OMP THREADPRIVATE(Vprecip, zw2)
579      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: pmfd, pmfu
580!$OMP THREADPRIVATE(pmfd, pmfu)
581      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: fluxt, fluxu, fluxv
582!$OMP THREADPRIVATE(fluxt, fluxu, fluxv)
583      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: uwriteSTD, vwriteSTD, wwriteSTD
584!$OMP THREADPRIVATE(uwriteSTD, vwriteSTD, wwriteSTD)
585      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: phiwriteSTD, qwriteSTD, twriteSTD, rhwriteSTD
586!$OMP THREADPRIVATE(phiwriteSTD, qwriteSTD, twriteSTD, rhwriteSTD)
587
588! ug et d'autres encore:
589      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: beta_prec
590!$OMP THREADPRIVATE(beta_prec)
591      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rneb,rnebjn,rneblsvol
592!$OMP THREADPRIVATE(rneb,rnebjn,rneblsvol)
593      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: pfraclr,pfracld
594!$OMP THREADPRIVATE(pfraclr,pfracld)
595      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: distcltop
596!$OMP THREADPRIVATE(distcltop)
597
598! variables de sorties MM
599      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: zxsnow,snowhgt,qsnow,to_ice
600      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: sissnow,runoff,albsol3_lic
601!$OMP THREADPRIVATE(zxsnow,snowhgt,qsnow,to_ice)
602!$OMP THREADPRIVATE(sissnow,runoff,albsol3_lic)
603#ifdef ISO
604      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: zxxtsnow
605!$OMP THREADPRIVATE(zxxtsnow)     
606      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: xtVprecip,xtVprecipi
607!$OMP THREADPRIVATE(xtVprecip,xtVprecipi)
608      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: pxtrfl, pxtsfl
609!$OMP THREADPRIVATE(pxtrfl, pxtsfl)
610#endif
611
612      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: p_tropopause, z_tropopause, t_tropopause
613!$OMP THREADPRIVATE(p_tropopause, z_tropopause, t_tropopause)
614
615      INTEGER,ALLOCATABLE,SAVE,DIMENSION(:,:) :: zn2mout
616!$OMP THREADPRIVATE(zn2mout)
617
618      REAL, SAVE, ALLOCATABLE :: qclr(:,:)
619      !$OMP THREADPRIVATE(qclr)
620      REAL, SAVE, ALLOCATABLE :: qcld(:,:)
621      !$OMP THREADPRIVATE(qcld)
622      REAL, SAVE, ALLOCATABLE :: qss(:,:)
623      !$OMP THREADPRIVATE(qss)
624      REAL, SAVE, ALLOCATABLE :: qvc(:,:)
625      !$OMP THREADPRIVATE(qvc)
626      REAL, SAVE, ALLOCATABLE :: rnebclr(:,:)
627      !$OMP THREADPRIVATE(rnebclr)
628      REAL, SAVE, ALLOCATABLE :: rnebss(:,:)
629      !$OMP THREADPRIVATE(rnebss)
630      REAL, SAVE, ALLOCATABLE :: gamma_ss(:,:)
631      !$OMP THREADPRIVATE(gamma_ss)
632      REAL, SAVE, ALLOCATABLE :: N1_ss(:,:)
633      !$OMP THREADPRIVATE(N1_ss)
634      REAL, SAVE, ALLOCATABLE :: N2_ss(:,:)
635      !$OMP THREADPRIVATE(N2_ss)
636      REAL, SAVE, ALLOCATABLE :: drneb_sub(:,:)
637      !$OMP THREADPRIVATE(drneb_sub)
638      REAL, SAVE, ALLOCATABLE :: drneb_con(:,:)
639      !$OMP THREADPRIVATE(drneb_con)
640      REAL, SAVE, ALLOCATABLE :: drneb_tur(:,:)
641      !$OMP THREADPRIVATE(drneb_tur)
642      REAL, SAVE, ALLOCATABLE :: drneb_avi(:,:)
643      !$OMP THREADPRIVATE(drneb_avi)
644      REAL, SAVE, ALLOCATABLE :: zqsatl(:,:)
645      !$OMP THREADPRIVATE(zqsatl)
646      REAL, SAVE, ALLOCATABLE :: zqsats(:,:)
647      !$OMP THREADPRIVATE(zqsats)
648      REAL, SAVE, ALLOCATABLE :: Tcontr(:,:)
649      !$OMP THREADPRIVATE(Tcontr)
650      REAL, SAVE, ALLOCATABLE :: qcontr(:,:)
651      !$OMP THREADPRIVATE(qcontr)
652      REAL, SAVE, ALLOCATABLE :: qcontr2(:,:)
653      !$OMP THREADPRIVATE(qcontr2)
654      REAL, SAVE, ALLOCATABLE :: fcontrN(:,:)
655      !$OMP THREADPRIVATE(fcontrN)
656      REAL, SAVE, ALLOCATABLE :: fcontrP(:,:)
657      !$OMP THREADPRIVATE(fcontrP)
658
659#ifdef CPP_StratAer
660!
661! variables for stratospheric aerosol
662      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: R2SO4
663!$OMP THREADPRIVATE(R2SO4)
664      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: DENSO4
665!$OMP THREADPRIVATE(DENSO4)
666      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: f_r_wet
667!$OMP THREADPRIVATE(f_r_wet)
668      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: decfluxaer
669!$OMP THREADPRIVATE(decfluxaer)
670      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: mdw
671!$OMP THREADPRIVATE(mdw)
672      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: OCS_lifetime
673!$OMP THREADPRIVATE(OCS_lifetime)
674      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: SO2_lifetime
675!$OMP THREADPRIVATE(SO2_lifetime)
676      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: alpha_bin
677!$OMP THREADPRIVATE(alpha_bin)
678      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: piz_bin
679!$OMP THREADPRIVATE(piz_bin)
680      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: cg_bin
681!$OMP THREADPRIVATE(cg_bin)
682      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tau_strat_550
683!$OMP THREADPRIVATE(tau_strat_550)
684      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tau_strat_1020
685!$OMP THREADPRIVATE(tau_strat_1020)
686      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tausum_strat
687!$OMP THREADPRIVATE(tausum_strat)
688      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: surf_PM25_sulf
689!$OMP THREADPRIVATE(surf_PM25_sulf)
690      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: vsed_aer
691!$OMP THREADPRIVATE(vsed_aer)
692!
693!---3D budget variables
694      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: budg_3D_nucl
695!$OMP THREADPRIVATE(budg_3D_nucl)
696      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: budg_3D_cond_evap
697!$OMP THREADPRIVATE(budg_3D_cond_evap)
698      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: budg_3D_ocs_to_so2
699!$OMP THREADPRIVATE(budg_3D_ocs_to_so2)
700      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: budg_3D_so2_to_h2so4
701!$OMP THREADPRIVATE(budg_3D_so2_to_h2so4)
702      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: budg_3D_backgr_ocs
703!$OMP THREADPRIVATE(budg_3D_backgr_ocs)
704      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: budg_3D_backgr_so2
705!$OMP THREADPRIVATE(budg_3D_backgr_so2)
706!
707!---2D budget variables
708      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_dry_ocs
709      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_dry_so2
710      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_dry_h2so4
711      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_dry_part
712!$OMP THREADPRIVATE(budg_dep_dry_ocs,budg_dep_dry_so2,budg_dep_dry_h2so4,budg_dep_dry_part)
713      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_wet_ocs
714      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_wet_so2
715      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_wet_h2so4
716      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_wet_part
717!$OMP THREADPRIVATE(budg_dep_wet_ocs,budg_dep_wet_so2,budg_dep_wet_h2so4,budg_dep_wet_part)
718      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_emi_ocs
719      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_emi_so2
720      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_emi_h2so4
721      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_emi_part
722!$OMP THREADPRIVATE(budg_emi_ocs,budg_emi_so2,budg_emi_h2so4,budg_emi_part)
723      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_ocs_to_so2
724      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_so2_to_h2so4
725      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_h2so4_to_part
726!$OMP THREADPRIVATE(budg_ocs_to_so2,budg_so2_to_h2so4,budg_h2so4_to_part)
727      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_sed_part
728!$OMP THREADPRIVATE(budg_sed_part)
729#endif
730
731CONTAINS
732
733!======================================================================
734SUBROUTINE phys_local_var_init
735USE dimphy
736USE infotrac_phy, ONLY : nbtr
737#ifdef ISO
738USE infotrac_phy, ONLY : ntraciso=>ntiso,niso
739#endif
740USE aero_mod
741USE indice_sol_mod
742USE phys_output_var_mod
743USE phys_state_var_mod
744
745IMPLICIT NONE
746      ALLOCATE(t_seri(klon,klev),q_seri(klon,klev),ql_seri(klon,klev),qs_seri(klon,klev), qbs_seri(klon,klev))
747      ALLOCATE(u_seri(klon,klev),v_seri(klon,klev))
748      ALLOCATE(l_mixmin(klon,klev+1,nbsrf),l_mix(klon,klev+1,nbsrf),tke_dissip(klon,klev+1,nbsrf),wprime(klon,klev+1,nbsrf))
749      l_mix(:,:,:)=0.;l_mixmin(:,:,:)=0.;tke_dissip(:,:,:)=0.;wprime(:,:,:)=0. ! doit etre initialse car pas toujours remplis
750
751      ALLOCATE(tr_seri(klon,klev,nbtr))
752      ALLOCATE(d_t_dyn(klon,klev),d_q_dyn(klon,klev))
753      ALLOCATE(d_ql_dyn(klon,klev),d_qs_dyn(klon,klev), d_qbs_dyn(klon,klev))
754      ALLOCATE(d_q_dyn2d(klon),d_ql_dyn2d(klon),d_qs_dyn2d(klon), d_qbs_dyn2d(klon))
755      ALLOCATE(d_u_dyn(klon,klev),d_v_dyn(klon,klev))
756      ALLOCATE(d_tr_dyn(klon,klev,nbtr))                   !RomP
757      ALLOCATE(d_t_con(klon,klev),d_q_con(klon,klev))
758      ALLOCATE(d_u_con(klon,klev),d_v_con(klon,klev))
759      ALLOCATE(d_t_wake(klon,klev),d_q_wake(klon,klev))
760      ALLOCATE(d_t_lsc(klon,klev),d_q_lsc(klon,klev))
761      ALLOCATE(d_t_lwr(klon,klev),d_t_lw0(klon,klev))
762      ALLOCATE(d_t_swr(klon,klev),d_t_sw0(klon,klev))
763      ALLOCATE(d_ql_lsc(klon,klev),d_qi_lsc(klon,klev))
764      ALLOCATE(d_t_ajsb(klon,klev),d_q_ajsb(klon,klev))
765      ALLOCATE(d_t_ajs(klon,klev),d_q_ajs(klon,klev))
766!nrlmd<
767      ALLOCATE(d_t_ajs_w(klon,klev),d_q_ajs_w(klon,klev))
768      ALLOCATE(d_t_ajs_x(klon,klev),d_q_ajs_x(klon,klev))
769!>nrlmd
770      ALLOCATE(d_u_ajs(klon,klev),d_v_ajs(klon,klev))
771      ALLOCATE(d_t_eva(klon,klev),d_q_eva(klon,klev))
772      ALLOCATE(d_ql_eva(klon,klev),d_qi_eva(klon,klev))
773      ALLOCATE(d_t_lscst(klon,klev),d_q_lscst(klon,klev))
774      ALLOCATE(d_t_lscth(klon,klev),d_q_lscth(klon,klev))
775      ALLOCATE(plul_st(klon),plul_th(klon))
776      ALLOCATE(d_t_vdf(klon,klev),d_q_vdf(klon,klev),d_t_diss(klon,klev))
777      ALLOCATE (d_qbs_vdf(klon,klev))
778      ALLOCATE(d_t_bs(klon,klev),d_q_bs(klon,klev),d_qbs_bs(klon,klev))
779      ALLOCATE(d_t_vdf_w(klon,klev),d_q_vdf_w(klon,klev))
780      ALLOCATE(d_t_vdf_x(klon,klev),d_q_vdf_x(klon,klev))
781#ifdef ISO
782      allocate(xt_seri(ntraciso,klon,klev))
783      allocate(xtl_seri(ntraciso,klon,klev))
784      allocate(xts_seri(ntraciso,klon,klev))
785      allocate(d_xt_dyn(ntraciso,klon,klev))
786      allocate(d_xtl_dyn(ntraciso,klon,klev))
787      allocate(d_xts_dyn(ntraciso,klon,klev))
788      allocate(d_xt_con(ntraciso,klon,klev))
789      allocate(d_xt_wake(ntraciso,klon,klev))
790      allocate(d_xt_lsc(ntraciso,klon,klev))
791      allocate(d_xtl_lsc(ntraciso,klon,klev))
792      allocate(d_xti_lsc(ntraciso,klon,klev))
793      allocate(d_xt_ajsb(ntraciso,klon,klev))
794      allocate(d_xt_ajs(ntraciso,klon,klev))
795      allocate(d_xt_ajs_w(ntraciso,klon,klev))
796      allocate(d_xt_ajs_x(ntraciso,klon,klev))
797      allocate(d_xt_eva(ntraciso,klon,klev))
798      allocate(d_xtl_eva(ntraciso,klon,klev))
799      allocate(d_xti_eva(ntraciso,klon,klev))
800      allocate(d_xt_vdf(ntraciso,klon,klev)) 
801      allocate(d_xt_vdf_w(ntraciso,klon,klev))
802      allocate(d_xt_vdf_x(ntraciso,klon,klev))
803      allocate(d_xt_ch4(ntraciso,klon,klev))
804      allocate(d_xt_prod_nucl(ntraciso,klon,klev))
805      allocate(d_xt_cosmo(ntraciso,klon,klev))
806      allocate(d_xt_decroiss(ntraciso,klon,klev))
807#endif
808
809      ALLOCATE(d_u_vdf(klon,klev),d_v_vdf(klon,klev))
810      ALLOCATE(d_t_oli(klon,klev),d_t_oro(klon,klev))
811      ALLOCATE(d_u_oli(klon,klev),d_v_oli(klon,klev))
812      ALLOCATE(d_u_oro(klon,klev),d_v_oro(klon,klev))
813      ALLOCATE(d_u_oro_gw(klon,klev),d_v_oro_gw(klon,klev))
814      ALLOCATE(d_t_oro_gw(klon,klev))
815      ALLOCATE(d_t_lif(klon,klev),d_t_ec(klon,klev))
816      ALLOCATE(d_u_lif(klon,klev),d_v_lif(klon,klev))
817      ALLOCATE(d_ts(klon,nbsrf), d_tr(klon,klev,nbtr))
818! Special RRTM
819      ALLOCATE(ZLWFT0_i(klon,klev+1),ZSWFT0_i(klon,klev+1),ZFLDN0(klon,klev+1))
820      ZFLDN0= 0.
821      ALLOCATE(ZFLUP0(klon,klev+1),ZFSDN0(klon,klev+1),ZFSUP0(klon,klev+1))
822!
823      ALLOCATE(topswad_aero(klon), solswad_aero(klon))
824      ALLOCATE(topswai_aero(klon), solswai_aero(klon))
825      ALLOCATE(topswad0_aero(klon), solswad0_aero(klon))
826      ALLOCATE(toplwad_aero(klon), sollwad_aero(klon))
827      ALLOCATE(toplwai_aero(klon), sollwai_aero(klon))
828      ALLOCATE(toplwad0_aero(klon), sollwad0_aero(klon))
829      ALLOCATE(topsw_aero(klon,naero_grp), solsw_aero(klon,naero_grp))
830      ALLOCATE(topsw0_aero(klon,naero_grp), solsw0_aero(klon,naero_grp))
831      ALLOCATE(topswcf_aero(klon,3), solswcf_aero(klon,3))
832      ALLOCATE(du_gwd_hines(klon,klev),dv_gwd_hines(klon,klev))
833      ALLOCATE(dv_gwd_rando(klon,klev),dv_gwd_front(klon,klev))
834      ALLOCATE(east_gwstress(klon,klev),west_gwstress(klon,klev))
835      east_gwstress(:,:)=0 !ym missing init
836      west_gwstress(:,:)=0 !ym missing init
837      ALLOCATE(d_t_hin(klon,klev))
838      ALLOCATE(d_q_ch4(klon,klev))
839      ALLOCATE(stratomask(klon,klev))
840      ALLOCATE(tausum_aero(klon,nwave,naero_tot))
841      ALLOCATE(drytausum_aero(klon,naero_tot))
842      ALLOCATE(tau3d_aero(klon,klev,nwave,naero_tot))
843      ALLOCATE(scdnc(klon, klev))
844      ALLOCATE(dNovrN(klon))
845      ALLOCATE(cldncl(klon))
846      ALLOCATE(reffclwtop(klon))
847      ALLOCATE(lcc(klon))
848      ALLOCATE(reffclws(klon, klev))
849      ALLOCATE(reffclwc(klon, klev))
850      ALLOCATE(cldnvi(klon))
851      ALLOCATE(lcc3d(klon, klev))
852      ALLOCATE(lcc3dcon(klon, klev))
853      ALLOCATE(lcc3dstra(klon, klev))
854      ALLOCATE(icc3dcon(klon, klev))
855      ALLOCATE(icc3dstra(klon, klev))
856      ALLOCATE(zfice(klon, klev))
857      ALLOCATE(od443aer(klon))
858      ALLOCATE(od550aer(klon))
859      ALLOCATE(od865aer(klon))
860      ALLOCATE(dryod550aer(klon))
861      dryod550aer(:) = 0.
862      ALLOCATE(abs550aer(klon))
863      abs550aer(:) = 0.
864      ALLOCATE(ec550aer(klon,klev))
865      ALLOCATE(od550lt1aer(klon))
866      ALLOCATE(sconcso4(klon))
867      ALLOCATE(sconcno3(klon))
868      ALLOCATE(sconcoa(klon))
869      ALLOCATE(sconcbc(klon))
870      ALLOCATE(sconcss(klon))
871      ALLOCATE(sconcdust(klon))
872      ALLOCATE(concso4(klon,klev))
873      ALLOCATE(concno3(klon,klev))
874      ALLOCATE(concoa(klon,klev))
875      ALLOCATE(concbc(klon,klev))
876      ALLOCATE(concss(klon,klev))
877      ALLOCATE(concdust(klon,klev))
878      ALLOCATE(loadso4(klon))
879      ALLOCATE(loadoa(klon))
880      ALLOCATE(loadbc(klon))
881      ALLOCATE(loadss(klon))
882      ALLOCATE(loaddust(klon))
883      ALLOCATE(loadno3(klon))
884      ALLOCATE(load_tmp1(klon))
885      ALLOCATE(load_tmp2(klon))
886      ALLOCATE(load_tmp3(klon))
887      ALLOCATE(load_tmp4(klon))
888      ALLOCATE(load_tmp5(klon))
889      ALLOCATE(load_tmp6(klon))
890      ALLOCATE(load_tmp7(klon))
891      ALLOCATE(load_tmp8(klon))
892      ALLOCATE(load_tmp9(klon))
893      ALLOCATE(load_tmp10(klon))
894
895!IM ajout variables CFMIP2/CMIP5
896      ALLOCATE(topswad_aerop(klon), solswad_aerop(klon))
897      ALLOCATE(topswai_aerop(klon), solswai_aerop(klon))
898      ALLOCATE(topswad0_aerop(klon), solswad0_aerop(klon))
899      ALLOCATE(topsw_aerop(klon,naero_grp), topsw0_aerop(klon,naero_grp))
900      ALLOCATE(solsw_aerop(klon,naero_grp), solsw0_aerop(klon,naero_grp))
901      ALLOCATE(topswcf_aerop(klon,naero_grp), solswcf_aerop(klon,naero_grp))
902
903! additional LW variables CK
904      ALLOCATE(toplwad_aerop(klon), sollwad_aerop(klon))
905      ALLOCATE(toplwai_aerop(klon), sollwai_aerop(klon))
906      ALLOCATE(toplwad0_aerop(klon), sollwad0_aerop(klon))
907
908! FH Ajout de celles necessaires au phys_output_write_mod
909
910      ALLOCATE(tal1(klon), pal1(klon), pab1(klon), pab2(klon))
911      ALLOCATE(ptstar(klon),pt0(klon),slp(klon))
912!!
913!!          Wake variables
914      ALLOCATE(alp_wake(klon))
915      ALLOCATE(wake_h(klon),wake_k(klon))
916      ALLOCATE(wake_omg(klon, klev))
917      ALLOCATE(d_deltat_wk(klon, klev), d_deltaq_wk(klon, klev))
918      ALLOCATE(d_s_wk(klon), d_dens_a_wk(klon), d_dens_wk(klon))
919      ALLOCATE(d_deltat_wk_gw(klon, klev), d_deltaq_wk_gw(klon, klev))
920      ALLOCATE(d_deltat_vdf(klon, klev), d_deltaq_vdf(klon, klev))
921!!      ALLOCATE( d_s_vdf(klon), d_dens_vdf(klon))
922      ALLOCATE(d_deltat_the(klon, klev), d_deltaq_the(klon, klev))
923!!      ALLOCATE( d_s_the(klon), d_dens_the(klon))
924      ALLOCATE(d_deltat_ajs_cv(klon, klev), d_deltaq_ajs_cv(klon, klev))
925#ifdef ISO
926      ALLOCATE(d_deltaxt_wk(ntraciso,klon, klev))
927      ALLOCATE(d_deltaxt_wk_gw(ntraciso,klon, klev))
928      ALLOCATE(d_deltaxt_the(ntraciso,klon, klev))
929      ALLOCATE(d_deltaxt_vdf(ntraciso,klon, klev))
930      ALLOCATE(d_deltaxt_ajs_cv(ntraciso,klon, klev))
931#endif
932!!         End of wake variables
933!!
934      ALLOCATE(bils(klon))
935      ALLOCATE(cdragm(klon), cdragh(klon), cldh(klon), cldl(klon))
936      ALLOCATE(cldm(klon), cldq(klon), cldt(klon), qsat2m(klon))
937      ALLOCATE(JrNt(klon))
938      ALLOCATE(dthmin(klon), evap(klon), snowerosion(klon), fder(klon), plcl(klon), plfc(klon))
939      ALLOCATE(prw(klon), prlw(klon), prsw(klon), prbsw(klon), zustar(klon), zu10m(klon), zv10m(klon), rh2m(klon))
940      ALLOCATE(s_lcl(klon))
941      ALLOCATE(s_pblh(klon), s_pblt(klon), s_therm(klon))
942!
943!nrlmd+jyg<
944      ALLOCATE(s_pblh_x(klon), s_pblh_w(klon))
945      ALLOCATE(s_lcl_x(klon), s_lcl_w(klon))
946!>nrlmd+jyg
947!
948      ALLOCATE(slab_wfbils(klon), tpot(klon), tpote(klon), ue(klon))
949      ALLOCATE(uq(klon), ve(klon), vq(klon), zxffonte(klon))
950      ALLOCATE(uwat(klon), vwat(klon))
951      ALLOCATE(zxfqcalving(klon), zxfluxlat(klon))
952      ALLOCATE(zxtsol(klon), snow_lsc(klon), zxfqfonte(klon), zxqsurf(klon))
953      ALLOCATE(zxrunofflic(klon))
954      ALLOCATE(rain_lsc(klon))
955      ALLOCATE(rain_num(klon))
956      ALLOCATE(qlth(klon,klev), qith(klon,klev), qsith(klon,klev), wiceth(klon,klev))
957      !
958#ifdef ISO
959      ALLOCATE(xtevap(ntraciso,klon))
960      ALLOCATE(xtprw(ntraciso,klon))
961      ALLOCATE(zxfxtcalving(niso,klon))
962      ALLOCATE(xtsnow_lsc(ntraciso,klon), zxfxtfonte(niso,klon))
963      ALLOCATE(zxxtrunofflic(niso,klon))
964      ALLOCATE(xtrain_lsc(ntraciso,klon))
965      ALLOCATE(xtrunoff_diag(niso,klon))
966      ALLOCATE(h1_diag(klon),runoff_diag(klon))
967#endif
968!
969      ALLOCATE(sens_x(klon), sens_w(klon))
970      ALLOCATE(zxfluxlat_x(klon), zxfluxlat_w(klon))
971      ALLOCATE(delta_qsurf(klon))
972!jyg<
973!!      ALLOCATE(t_x(klon,klev), t_w(klon,klev))
974!!      ALLOCATE(q_x(klon,klev), q_w(klon,klev))
975!>jyg
976      ALLOCATE(dtvdf_x(klon,klev), dtvdf_w(klon,klev))
977      dtvdf_x = 0 ; dtvdf_w=0 ;   !ym missing init
978      ALLOCATE(dqvdf_x(klon,klev), dqvdf_w(klon,klev))
979      dqvdf_x = 0 ; dqvdf_w=0 ;   !ym missing init
980      ALLOCATE(pbl_tke_input(klon,klev+1,nbsrf))
981      ALLOCATE(t_therm(klon,klev), q_therm(klon,klev),u_therm(klon,klev), v_therm(klon,klev))
982      ALLOCATE(cdragh_x(klon), cdragh_w(klon))
983      ALLOCATE(cdragm_x(klon), cdragm_w(klon))
984      ALLOCATE(kh(klon), kh_x(klon), kh_w(klon))
985#ifdef ISO
986      ALLOCATE(dxtvdf_x(ntraciso,klon,klev), dxtvdf_w(ntraciso,klon,klev))
987      ALLOCATE(xt_therm(ntraciso,klon,klev))
988#endif
989!
990      ALLOCATE(ptconv(klon,klev))
991      ALLOCATE(ratqsc(klon,klev))
992!
993      ALLOCATE(wbeff(klon), convoccur(klon), zmax_th(klon))
994      ALLOCATE(zq2m(klon), zt2m(klon), weak_inversion(klon))
995      ALLOCATE(zt2m_min_mon(klon), zt2m_max_mon(klon))
996      ALLOCATE(t2m_min_mon(klon), t2m_max_mon(klon))
997      ALLOCATE(sens(klon), flwp(klon), fiwp(klon))
998      ALLOCATE(alp_bl_conv(klon), alp_bl_det(klon))
999      alp_bl_conv(:)=0 ;  alp_bl_det(:)=0
1000      ALLOCATE(alp_bl_fluct_m(klon), alp_bl_fluct_tke(klon))
1001      alp_bl_fluct_m(:)=0 ; alp_bl_fluct_tke(:)= 0.
1002      ALLOCATE(alp_bl_stat(klon), n2(klon), s2(klon))
1003      alp_bl_stat(:)=0
1004      ALLOCATE(proba_notrig(klon), random_notrig(klon))
1005
1006      ALLOCATE(dnwd0(klon, klev))
1007!      ALLOCATE(upwd(klon, klev), omega(klon, klev), coefh(klon, klev))
1008      ALLOCATE(omega(klon, klev))
1009      ALLOCATE(epmax_diag(klon)) ! epmax_cape
1010!      ALLOCATE(coefm(klon, klev), lambda_th(klon, klev), cldemi(klon, klev))
1011      ALLOCATE(lambda_th(klon, klev), cldemi(klon, klev))
1012      ALLOCATE(cldfra(klon, klev), cldtau(klon, klev), fiwc(klon, klev))
1013      ALLOCATE(fl(klon, klev), re(klon, klev), flwc(klon, klev))
1014      ALLOCATE(ref_liq(klon, klev), ref_ice(klon, klev), theta(klon, klev))
1015      ALLOCATE(ref_liq_pi(klon, klev), ref_ice_pi(klon, klev))
1016      ALLOCATE(zphi(klon, klev), zx_rh(klon, klev), zx_rhl(klon,klev), zx_rhi(klon,klev))
1017      zx_rhl(:,:)=0.; zx_rhi(:,:)=0. ! because not always defined
1018      ALLOCATE(pmfd(klon, klev), pmfu(klon, klev))
1019
1020      ALLOCATE(t2m(klon, nbsrf), fluxlat(klon, nbsrf))
1021      ALLOCATE(fsollw(klon, nbsrf))
1022      ALLOCATE(fsolsw(klon, nbsrf), wfbils(klon, nbsrf), wfbilo(klon, nbsrf))
1023      ALLOCATE(wfevap(klon, nbsrf), wfrain(klon,nbsrf), wfsnow(klon, nbsrf))
1024      ALLOCATE(evap_pot(klon, nbsrf))
1025!
1026!  Deep convective variables used in phytrac
1027      ALLOCATE(pmflxr(klon, klev+1), pmflxs(klon, klev+1))
1028      ALLOCATE(wdtrainA(klon,klev),wdtrainS(klon,klev),wdtrainM(klon,klev))
1029      ALLOCATE(dnwd(klon, klev), upwd(klon, klev) )
1030      ALLOCATE(ep(klon,klev))                          ! epmax_cape
1031      ALLOCATE(da(klon,klev), mp(klon,klev) )
1032      ALLOCATE(phi(klon,klev,klev) )
1033      ALLOCATE(wght_cvfd(klon,klev) )
1034      ALLOCATE(phi2(klon,klev,klev) )
1035      ALLOCATE(d1a(klon,klev), dam(klon,klev))
1036      ALLOCATE(ev(klon,klev) )
1037      ALLOCATE(elij(klon,klev,klev) )
1038      ALLOCATE(qtaa(klon,klev) )
1039      ALLOCATE(clw(klon,klev) )
1040      ALLOCATE(epmlmMm(klon,klev,klev), eplaMm(klon,klev) )
1041      ALLOCATE(sij(klon,klev,klev) )
1042#ifdef ISO
1043      ALLOCATE(xtwdtrainA(ntraciso,klon,klev))
1044      ALLOCATE(xtev(ntraciso,klon,klev) )
1045      ALLOCATE(xttaa(ntraciso,klon,klev) )
1046      ALLOCATE(xtclw(ntraciso,klon,klev) )
1047#ifdef DIAGISO
1048      ALLOCATE(qlp(klon,klev))
1049      ALLOCATE(qvp(klon,klev))
1050      ALLOCATE(fq_detrainement(klon,klev))
1051      ALLOCATE(fq_ddft(klon,klev))
1052      ALLOCATE(fq_fluxmasse(klon,klev))
1053      ALLOCATE(fq_evapprecip(klon,klev))
1054      ALLOCATE(f_detrainement(klon,klev), q_detrainement(klon,klev))
1055      ALLOCATE(xtlp(ntraciso,klon,klev))
1056      ALLOCATE(xtvp(ntraciso,klon,klev))
1057      ALLOCATE(q_the(klon,klev), xt_the(ntraciso,klon,klev))
1058      ALLOCATE(fxt_detrainement(ntraciso,klon,klev))
1059      ALLOCATE(fxt_ddft(ntraciso,klon,klev))
1060      ALLOCATE(fxt_fluxmasse(ntraciso,klon,klev))
1061      ALLOCATE(fxt_evapprecip(ntraciso,klon,klev))
1062      ALLOCATE(xt_detrainement(ntraciso,klon,klev))
1063#endif
1064#endif
1065
1066      ALLOCATE(prfl(klon, klev+1))
1067      ALLOCATE(psfl(klon, klev+1), fraca(klon, klev+1), Vprecip(klon, klev+1))
1068      ALLOCATE(bsfl(klon,klev+1))
1069      ALLOCATE(zw2(klon, klev+1))
1070
1071      ALLOCATE(fluxu(klon, klev, nbsrf), fluxv(klon, klev, nbsrf))
1072      ALLOCATE(fluxt(klon, klev, nbsrf))
1073
1074      ALLOCATE(uwriteSTD(klon,nlevSTD,nfiles), vwriteSTD(klon,nlevSTD,nfiles))
1075      ALLOCATE(wwriteSTD(klon,nlevSTD,nfiles), phiwriteSTD(klon,nlevSTD,nfiles))
1076      ALLOCATE(qwriteSTD(klon,nlevSTD,nfiles), twriteSTD(klon,nlevSTD,nfiles))
1077      ALLOCATE(rhwriteSTD(klon,nlevSTD,nfiles))
1078
1079! ug et d'autres encore:
1080      ALLOCATE(beta_prec(klon,klev))
1081      ALLOCATE(rneb(klon,klev),rnebjn(klon,klev),rneblsvol(klon,klev))
1082      ALLOCATE(pfraclr(klon,klev),pfracld(klon,klev))
1083      pfraclr(:,:)=0. ; pfracld(:,:)=0. ! because not always defined
1084      ALLOCATE(distcltop(klon,klev))
1085
1086      ALLOCATE (zxsnow(klon),snowhgt(klon),qsnow(klon),to_ice(klon))
1087      ALLOCATE (sissnow(klon),runoff(klon),albsol3_lic(klon))
1088#ifdef ISO
1089      ALLOCATE (zxxtsnow(niso,klon))
1090      ALLOCATE(xtVprecip(ntraciso,klon, klev+1),xtVprecipi(ntraciso,klon, klev+1))
1091      ALLOCATE(pxtsfl(ntraciso,klon, klev+1),pxtrfl(ntraciso,klon, klev+1))
1092#endif
1093
1094      ALLOCATE (p_tropopause(klon))
1095      ALLOCATE (z_tropopause(klon))
1096      ALLOCATE (t_tropopause(klon))
1097
1098      ALLOCATE(zn2mout(klon,6))
1099
1100! Supersaturation
1101      ALLOCATE(rneb_seri(klon,klev))
1102      ALLOCATE(d_rneb_dyn(klon,klev))
1103      ALLOCATE(qclr(klon,klev), qcld(klon,klev), qss(klon,klev), qvc(klon,klev))
1104      ALLOCATE(rnebclr(klon,klev), rnebss(klon,klev), gamma_ss(klon,klev))
1105      ALLOCATE(N1_ss(klon,klev), N2_ss(klon,klev))
1106      ALLOCATE(drneb_sub(klon,klev), drneb_con(klon,klev), drneb_tur(klon,klev), drneb_avi(klon,klev))
1107      ALLOCATE(zqsatl(klon,klev), zqsats(klon,klev))
1108      ALLOCATE(Tcontr(klon,klev), qcontr(klon,klev), qcontr2(klon,klev), fcontrN(klon,klev), fcontrP(klon,klev))
1109
1110#ifdef CPP_StratAer
1111      ALLOCATE (R2SO4(klon,klev))
1112      ALLOCATE (DENSO4(klon,klev))
1113      ALLOCATE (f_r_wet(klon,klev))
1114      ALLOCATE (decfluxaer(klon,nbtr))
1115      ALLOCATE (mdw(nbtr))
1116      ALLOCATE (budg_3D_nucl(klon,klev))
1117      ALLOCATE (budg_3D_cond_evap(klon,klev))
1118      ALLOCATE (budg_3D_ocs_to_so2(klon,klev))
1119      ALLOCATE (budg_3D_so2_to_h2so4(klon,klev))
1120      ALLOCATE (budg_3D_backgr_ocs(klon,klev))
1121      ALLOCATE (budg_3D_backgr_so2(klon,klev))
1122      ALLOCATE (OCS_lifetime(klon,klev))
1123      ALLOCATE (SO2_lifetime(klon,klev))
1124      ALLOCATE (alpha_bin(nbands_sw_rrtm+nbands_lw_rrtm+nwave,nbtr))
1125      ALLOCATE (piz_bin(nbands_sw_rrtm+nbands_lw_rrtm+nwave,nbtr))
1126      ALLOCATE (cg_bin(nbands_sw_rrtm+nbands_lw_rrtm+nwave,nbtr))
1127      ALLOCATE (tau_strat_550(klon,klev))
1128      ALLOCATE (tau_strat_1020(klon,klev))
1129      ALLOCATE (tausum_strat(klon,3))
1130      ALLOCATE (budg_dep_dry_ocs(klon))
1131      ALLOCATE (budg_dep_wet_ocs(klon))
1132      ALLOCATE (budg_dep_dry_so2(klon))
1133      ALLOCATE (budg_dep_wet_so2(klon))
1134      ALLOCATE (budg_dep_dry_h2so4(klon))
1135      ALLOCATE (budg_dep_wet_h2so4(klon))
1136      ALLOCATE (budg_dep_dry_part(klon))
1137      ALLOCATE (budg_dep_wet_part(klon))
1138      ALLOCATE (budg_emi_ocs(klon))
1139      ALLOCATE (budg_emi_so2(klon))
1140      ALLOCATE (budg_emi_h2so4(klon))
1141      ALLOCATE (budg_emi_part(klon))
1142      ALLOCATE (budg_ocs_to_so2(klon))
1143      ALLOCATE (budg_so2_to_h2so4(klon))
1144      ALLOCATE (budg_h2so4_to_part(klon))
1145      ALLOCATE (budg_sed_part(klon))
1146      ALLOCATE (surf_PM25_sulf(klon))
1147      ALLOCATE (vsed_aer(klon,klev))
1148#endif
1149
1150END SUBROUTINE phys_local_var_init
1151
1152!======================================================================
1153SUBROUTINE phys_local_var_end
1154USE dimphy
1155USE indice_sol_mod
1156IMPLICIT NONE
1157      DEALLOCATE(t_seri,q_seri,ql_seri,qs_seri, qbs_seri)
1158      DEALLOCATE(u_seri,v_seri)
1159      DEALLOCATE(l_mixmin,l_mix, tke_dissip,wprime)
1160
1161      DEALLOCATE(tr_seri)
1162      DEALLOCATE(d_t_dyn,d_q_dyn)
1163      DEALLOCATE(d_ql_dyn,d_qs_dyn, d_qbs_dyn)
1164      DEALLOCATE(d_q_dyn2d,d_ql_dyn2d,d_qs_dyn2d, d_qbs_dyn2d)
1165      DEALLOCATE(d_u_dyn,d_v_dyn)
1166      DEALLOCATE(d_tr_dyn)                      !RomP
1167      DEALLOCATE(d_t_con,d_q_con)
1168      DEALLOCATE(d_u_con,d_v_con)
1169      DEALLOCATE(d_t_wake,d_q_wake)
1170      DEALLOCATE(d_t_lsc,d_q_lsc)
1171      DEALLOCATE(d_t_lwr,d_t_lw0)
1172      DEALLOCATE(d_t_swr,d_t_sw0)
1173      DEALLOCATE(d_ql_lsc,d_qi_lsc)
1174      DEALLOCATE(d_t_ajsb,d_q_ajsb)
1175      DEALLOCATE(d_t_ajs,d_q_ajs)
1176!nrlmd<
1177      DEALLOCATE(d_t_ajs_w,d_q_ajs_w)
1178      DEALLOCATE(d_t_ajs_x,d_q_ajs_x)
1179!>nrlmd
1180      DEALLOCATE(d_u_ajs,d_v_ajs)
1181      DEALLOCATE(d_t_eva,d_q_eva)
1182      DEALLOCATE(d_ql_eva,d_qi_eva)
1183      DEALLOCATE(d_t_lscst,d_q_lscst)
1184      DEALLOCATE(d_t_lscth,d_q_lscth)
1185      DEALLOCATE(plul_st,plul_th)
1186      DEALLOCATE(d_t_vdf,d_q_vdf,d_t_diss)
1187      DEALLOCATE(d_qbs_vdf)
1188      DEALLOCATE(d_t_bs,d_q_bs,d_qbs_bs)
1189#ifdef ISO
1190      deallocate(xt_seri,xtl_seri,xts_seri)
1191      DEALLOCATE(d_xtl_eva,d_xti_eva)
1192      deallocate(d_xt_dyn,d_xtl_dyn,d_xts_dyn)
1193      deallocate(d_xt_con)
1194      deallocate(d_xt_wake)
1195      deallocate(d_xt_lsc)
1196      deallocate(d_xtl_lsc,d_xti_lsc)
1197      deallocate(d_xt_ajsb)
1198      deallocate(d_xt_ajs)
1199      deallocate(d_xt_ajs_w,d_xt_ajs_x)
1200      deallocate(d_xt_eva)
1201      deallocate(d_xtl_eva)
1202      deallocate(d_xti_eva)
1203      deallocate(d_xt_vdf)
1204      deallocate(d_xt_vdf_w,d_xt_vdf_x)
1205      deallocate(d_xt_ch4)
1206      deallocate(d_xt_prod_nucl)
1207      deallocate(d_xt_cosmo)
1208      deallocate(d_xt_decroiss)
1209#endif
1210
1211      DEALLOCATE(d_u_vdf,d_v_vdf)
1212      DEALLOCATE(d_t_oli,d_t_oro)
1213      DEALLOCATE(d_u_oli,d_v_oli)
1214      DEALLOCATE(d_u_oro,d_v_oro)
1215      DEALLOCATE(d_t_oro_gw)
1216      DEALLOCATE(d_u_oro_gw,d_v_oro_gw)
1217      DEALLOCATE(d_t_lif,d_t_ec)
1218      DEALLOCATE(d_u_lif,d_v_lif)
1219      DEALLOCATE(d_ts, d_tr)
1220      DEALLOCATE(topswad_aero,solswad_aero)
1221      DEALLOCATE(topswai_aero,solswai_aero)
1222      DEALLOCATE(topswad0_aero,solswad0_aero)
1223      DEALLOCATE(toplwad_aero,sollwad_aero)
1224      DEALLOCATE(toplwai_aero,sollwai_aero)
1225      DEALLOCATE(toplwad0_aero,sollwad0_aero)
1226      DEALLOCATE(topsw_aero,solsw_aero)
1227      DEALLOCATE(topsw0_aero,solsw0_aero)
1228      DEALLOCATE(topswcf_aero,solswcf_aero)
1229      DEALLOCATE(stratomask)
1230      DEALLOCATE(tausum_aero)
1231      DEALLOCATE(drytausum_aero)
1232      DEALLOCATE(tau3d_aero)
1233      DEALLOCATE(scdnc)
1234      DEALLOCATE(dNovrN)
1235      DEALLOCATE(cldncl)
1236      DEALLOCATE(reffclwtop)
1237      DEALLOCATE(lcc)
1238      DEALLOCATE(reffclws)
1239      DEALLOCATE(reffclwc)
1240      DEALLOCATE(cldnvi)
1241      DEALLOCATE(lcc3d)
1242      DEALLOCATE(lcc3dcon)
1243      DEALLOCATE(lcc3dstra)
1244      DEALLOCATE(icc3dcon)
1245      DEALLOCATE(icc3dstra)
1246      DEALLOCATE(zfice)
1247      DEALLOCATE(od443aer)
1248      DEALLOCATE(od550aer)
1249      DEALLOCATE(od865aer)
1250      DEALLOCATE(dryod550aer)
1251      DEALLOCATE(abs550aer)
1252      DEALLOCATE(ec550aer)
1253      DEALLOCATE(od550lt1aer)
1254      DEALLOCATE(sconcso4)
1255      DEALLOCATE(sconcno3)
1256      DEALLOCATE(sconcoa)
1257      DEALLOCATE(sconcbc)
1258      DEALLOCATE(sconcss)
1259      DEALLOCATE(sconcdust)
1260      DEALLOCATE(concso4)
1261      DEALLOCATE(concno3)
1262      DEALLOCATE(concoa)
1263      DEALLOCATE(concbc)
1264      DEALLOCATE(concss)
1265      DEALLOCATE(concdust)
1266      DEALLOCATE(loadso4)
1267      DEALLOCATE(loadoa)
1268      DEALLOCATE(loadbc)
1269      DEALLOCATE(loadss)
1270      DEALLOCATE(loaddust)
1271      DEALLOCATE(loadno3)
1272      DEALLOCATE(load_tmp1)
1273      DEALLOCATE(load_tmp2)
1274      DEALLOCATE(load_tmp3)
1275      DEALLOCATE(load_tmp4)
1276      DEALLOCATE(load_tmp5)
1277      DEALLOCATE(load_tmp6)
1278      DEALLOCATE(load_tmp7)
1279      DEALLOCATE(load_tmp8)
1280      DEALLOCATE(load_tmp9)
1281      DEALLOCATE(load_tmp10)
1282      DEALLOCATE(du_gwd_hines,dv_gwd_hines,d_t_hin)
1283      DEALLOCATE(d_q_ch4)
1284      DEALLOCATE(dv_gwd_rando,dv_gwd_front)
1285      DEALLOCATE(east_gwstress,west_gwstress)
1286
1287!IM ajout variables CFMIP2/CMIP5
1288      DEALLOCATE(topswad_aerop, solswad_aerop)
1289      DEALLOCATE(topswai_aerop, solswai_aerop)
1290      DEALLOCATE(topswad0_aerop, solswad0_aerop)
1291      DEALLOCATE(topsw_aerop, topsw0_aerop)
1292      DEALLOCATE(solsw_aerop, solsw0_aerop)
1293      DEALLOCATE(topswcf_aerop, solswcf_aerop)
1294
1295!CK LW diagnostics
1296      DEALLOCATE(toplwad_aerop, sollwad_aerop)
1297      DEALLOCATE(toplwai_aerop, sollwai_aerop)
1298      DEALLOCATE(toplwad0_aerop, sollwad0_aerop)
1299
1300! FH Ajout de celles necessaires au phys_output_write_mod
1301      DEALLOCATE(tal1, pal1, pab1, pab2)
1302      DEALLOCATE(ptstar, pt0, slp)
1303!
1304      DEALLOCATE(alp_wake)
1305      DEALLOCATE(wake_h,wake_k)
1306      DEALLOCATE(wake_omg)
1307      DEALLOCATE(d_deltat_wk, d_deltaq_wk)
1308      DEALLOCATE(d_s_wk, d_dens_a_wk, d_dens_wk)
1309      DEALLOCATE(d_deltat_wk_gw, d_deltaq_wk_gw)
1310      DEALLOCATE(d_deltat_vdf, d_deltaq_vdf)
1311!!      DEALLOCATE( d_s_vdf, d_dens_vdf)
1312      DEALLOCATE(d_deltat_the, d_deltaq_the)
1313!!      DEALLOCATE( d_s_the, d_dens_the)
1314      DEALLOCATE(d_deltat_ajs_cv, d_deltaq_ajs_cv)
1315#ifdef ISO
1316      DEALLOCATE(d_deltaxt_wk)
1317      DEALLOCATE(d_deltaxt_wk_gw)
1318      DEALLOCATE(d_deltaxt_ajs_cv)
1319      DEALLOCATE(d_deltaxt_vdf)
1320#endif
1321!
1322      DEALLOCATE(bils)
1323      DEALLOCATE(cdragm, cdragh, cldh, cldl)
1324      DEALLOCATE(cldm, cldq, cldt, qsat2m)
1325      DEALLOCATE(JrNt)
1326      DEALLOCATE(dthmin, evap, snowerosion, fder, plcl, plfc)
1327      DEALLOCATE(prw, prlw, prsw, prbsw, zustar, zu10m, zv10m, rh2m, s_lcl)
1328      DEALLOCATE(s_pblh, s_pblt, s_therm)
1329!
1330!nrlmd+jyg<
1331      DEALLOCATE(s_pblh_x, s_pblh_w)
1332      DEALLOCATE(s_lcl_x, s_lcl_w)
1333!>nrlmd+jyg
1334!
1335      DEALLOCATE(slab_wfbils, tpot, tpote, ue)
1336      DEALLOCATE(uq, ve, vq, zxffonte)
1337      DEALLOCATE(uwat, vwat)
1338      DEALLOCATE(zxfqcalving, zxfluxlat)
1339      DEALLOCATE(zxrunofflic)
1340      DEALLOCATE(zxustartlic, zxrhoslic)
1341      DEALLOCATE(zxtsol, snow_lsc, zxfqfonte, zxqsurf)
1342      DEALLOCATE(rain_lsc)
1343      DEALLOCATE(rain_num)
1344      DEALLOCATE(qlth, qith, qsith, wiceth)
1345!
1346      DEALLOCATE(sens_x, sens_w)
1347      DEALLOCATE(zxfluxlat_x, zxfluxlat_w)
1348      DEALLOCATE(delta_qsurf)
1349!jyg<
1350!!      DEALLOCATE(t_x, t_w)
1351!!      DEALLOCATE(q_x, q_w)
1352!>jyg
1353      DEALLOCATE(d_t_vdf_x, d_t_vdf_w)
1354      DEALLOCATE(d_q_vdf_x, d_q_vdf_w)
1355      DEALLOCATE(pbl_tke_input)
1356      DEALLOCATE(t_therm, q_therm, u_therm, v_therm)
1357      DEALLOCATE(cdragh_x, cdragh_w)
1358      DEALLOCATE(cdragm_x, cdragm_w)
1359      DEALLOCATE(kh, kh_x, kh_w)
1360#ifdef ISO
1361      DEALLOCATE(xtevap,xtprw)
1362      DEALLOCATE(zxfxtcalving)
1363      DEALLOCATE(zxxtrunofflic)
1364      DEALLOCATE(xtsnow_lsc, zxfxtfonte)
1365      DEALLOCATE(xtrain_lsc)
1366      DEALLOCATE(dxtvdf_x, dxtvdf_w)
1367      DEALLOCATE(xt_therm)
1368      DEALLOCATE(h1_diag,runoff_diag,xtrunoff_diag)
1369#endif
1370!
1371      DEALLOCATE(ptconv)
1372      DEALLOCATE(ratqsc)
1373!
1374      DEALLOCATE(wbeff, convoccur, zmax_th)
1375      DEALLOCATE(zq2m, zt2m, weak_inversion)
1376      DEALLOCATE(zt2m_min_mon, zt2m_max_mon)
1377      DEALLOCATE(t2m_min_mon, t2m_max_mon)
1378      DEALLOCATE(sens, flwp, fiwp)
1379      DEALLOCATE(alp_bl_conv,alp_bl_det)
1380      DEALLOCATE(alp_bl_fluct_m,alp_bl_fluct_tke)
1381      DEALLOCATE(alp_bl_stat, n2, s2)
1382      DEALLOCATE(proba_notrig, random_notrig)
1383
1384      DEALLOCATE(dnwd0)
1385!      DEALLOCATE(upwd, omega, coefh)
1386      DEALLOCATE(omega)
1387      DEALLOCATE(epmax_diag)
1388!      DEALLOCATE(coefm, lambda_th, cldemi)
1389      DEALLOCATE(lambda_th, cldemi)
1390      DEALLOCATE(cldfra, cldtau, fiwc)
1391      DEALLOCATE(fl, re, flwc)
1392      DEALLOCATE(ref_liq, ref_ice, theta)
1393      DEALLOCATE(ref_liq_pi, ref_ice_pi)
1394      DEALLOCATE(zphi, zx_rh, zx_rhl, zx_rhi)
1395      DEALLOCATE(pmfd, pmfu)
1396
1397      DEALLOCATE(t2m, fluxlat)
1398      DEALLOCATE(fsollw, evap_pot)
1399      DEALLOCATE(fsolsw, wfbils, wfbilo)
1400      DEALLOCATE(wfevap,wfrain,wfsnow)
1401
1402      DEALLOCATE(pmflxr, pmflxs)
1403      DEALLOCATE(wdtrainA, wdtrainS, wdtrainM)
1404      DEALLOCATE(upwd, dnwd)
1405      DEALLOCATE(ep)
1406      DEALLOCATE(da, mp )
1407      DEALLOCATE(phi )
1408      DEALLOCATE(wght_cvfd )
1409      DEALLOCATE(phi2 )
1410      DEALLOCATE(d1a, dam)
1411      DEALLOCATE(ev )
1412      DEALLOCATE(elij )
1413      DEALLOCATE(qtaa )
1414      DEALLOCATE(clw )
1415      DEALLOCATE(epmlmMm, eplaMm )
1416      DEALLOCATE(sij )
1417#ifdef ISO
1418      DEALLOCATE(xtwdtrainA)
1419      DEALLOCATE(xttaa )
1420      DEALLOCATE(xtclw )
1421      DEALLOCATE(xtev )
1422#ifdef DIAGISO
1423      DEALLOCATE(qlp)
1424      DEALLOCATE(qvp)
1425      DEALLOCATE(fq_detrainement)
1426      DEALLOCATE(fq_ddft)
1427      DEALLOCATE(fq_fluxmasse)
1428      DEALLOCATE(fq_evapprecip)
1429      DEALLOCATE(f_detrainement,q_detrainement)
1430      DEALLOCATE(xtlp)
1431      DEALLOCATE(xtvp)
1432      DEALLOCATE(q_the,xt_the)
1433      DEALLOCATE(fxt_detrainement)
1434      DEALLOCATE(fxt_ddft)
1435      DEALLOCATE(fxt_fluxmasse)
1436      DEALLOCATE(fxt_evapprecip)
1437      DEALLOCATE(xt_detrainement)
1438#endif
1439#endif
1440
1441
1442      DEALLOCATE(prfl, psfl, bsfl, fraca, Vprecip)
1443      DEALLOCATE(zw2)
1444
1445      DEALLOCATE(fluxu, fluxv)
1446      DEALLOCATE(fluxt)
1447
1448      DEALLOCATE(uwriteSTD, vwriteSTD)
1449      DEALLOCATE(wwriteSTD, phiwriteSTD)
1450      DEALLOCATE(qwriteSTD, twriteSTD, rhwriteSTD)
1451
1452! ug et d'autres encore:
1453      DEALLOCATE(beta_prec)
1454      DEALLOCATE(rneb)
1455      DEALLOCATE(pfraclr,pfracld)
1456      DEALLOCATE(distcltop)
1457      DEALLOCATE (zxsnow,snowhgt,qsnow,to_ice,sissnow,runoff,albsol3_lic)
1458#ifdef ISO
1459      DEALLOCATE (zxxtsnow,xtVprecip,xtVprecipi,pxtrfl,pxtsfl)
1460#endif
1461
1462      DEALLOCATE (p_tropopause)
1463      DEALLOCATE (z_tropopause)
1464      DEALLOCATE (t_tropopause)
1465      DEALLOCATE(zn2mout)
1466
1467! Supersaturation
1468      DEALLOCATE(rneb_seri)
1469      DEALLOCATE(d_rneb_dyn)
1470      DEALLOCATE(qclr, qcld, qss, qvc)
1471      DEALLOCATE(rnebclr, rnebss, gamma_ss)
1472      DEALLOCATE(N1_ss, N2_ss)
1473      DEALLOCATE(drneb_sub, drneb_con, drneb_tur, drneb_avi)
1474      DEALLOCATE(zqsatl, zqsats)
1475      DEALLOCATE(Tcontr, qcontr, qcontr2, fcontrN, fcontrP)
1476
1477#ifdef CPP_StratAer
1478! variables for strat. aerosol CK
1479      DEALLOCATE (R2SO4)
1480      DEALLOCATE (DENSO4)
1481      DEALLOCATE (f_r_wet)
1482      DEALLOCATE (decfluxaer)
1483      DEALLOCATE (mdw)
1484      DEALLOCATE (SO2_lifetime)
1485      DEALLOCATE (OCS_lifetime)
1486      DEALLOCATE (alpha_bin)
1487      DEALLOCATE (piz_bin)
1488      DEALLOCATE (cg_bin)
1489      DEALLOCATE (tau_strat_550)
1490      DEALLOCATE (tau_strat_1020)
1491      DEALLOCATE (tausum_strat)
1492      DEALLOCATE (surf_PM25_sulf)
1493      DEALLOCATE (vsed_aer)
1494      DEALLOCATE (budg_3D_ocs_to_so2)
1495      DEALLOCATE (budg_3D_so2_to_h2so4)
1496      DEALLOCATE (budg_3D_backgr_ocs)
1497      DEALLOCATE (budg_3D_backgr_so2)
1498      DEALLOCATE (budg_3D_nucl)
1499      DEALLOCATE (budg_3D_cond_evap)
1500      DEALLOCATE (budg_dep_dry_ocs)
1501      DEALLOCATE (budg_dep_wet_ocs)
1502      DEALLOCATE (budg_dep_dry_so2)
1503      DEALLOCATE (budg_dep_wet_so2)
1504      DEALLOCATE (budg_dep_dry_h2so4)
1505      DEALLOCATE (budg_dep_wet_h2so4)
1506      DEALLOCATE (budg_dep_dry_part)
1507      DEALLOCATE (budg_dep_wet_part)
1508      DEALLOCATE (budg_emi_ocs)
1509      DEALLOCATE (budg_emi_so2)
1510      DEALLOCATE (budg_emi_h2so4)
1511      DEALLOCATE (budg_emi_part)
1512      DEALLOCATE (budg_ocs_to_so2)
1513      DEALLOCATE (budg_so2_to_h2so4)
1514      DEALLOCATE (budg_h2so4_to_part)
1515      DEALLOCATE (budg_sed_part)
1516#endif
1517
1518END SUBROUTINE phys_local_var_end
1519
1520END MODULE phys_local_var_mod
Note: See TracBrowser for help on using the repository browser.