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

Last change on this file since 5020 was 5007, checked in by evignon, 3 months ago

ajout de la nouvelle paramétrisation du partitonnement de phase
dans les nuages de phase mixte de Lea Raillard
La parametrisation s'active avec iflag_icefrac=1 et est fondé
sur la theorie de creation et maintien de sursaturation en atmosphere
turbulente avec ou sans presence de cristaux de glace

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