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

Last change on this file since 4881 was 4881, checked in by evignon, 7 weeks ago

extraction plus propre de la dissipation de TKE

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