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

Last change on this file since 5715 was 5662, checked in by Laurent Fairhead, 5 weeks ago

Ajout du modèle thermodynamique de glace de mer interactive améliorant les flux échangés à la surface de la banquise (Doctorat de Nicolas Michalezyk, Contact : Nicolas Michaleyk, Guillaume Gastineau)

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