source: LMDZ6/branches/LMDZ-COSP/libf/phylmd/phys_local_var_mod.F90 @ 5898

Last change on this file since 5898 was 5894, checked in by Sebastien Nguyen, 2 weeks ago

rephase LMDZISO with 5864 version of phylmd + bug fixes in physiq_mod + other bugs in isoverif sections. Code now compiles and runs with -debug -isotopes true -isoverif. There are still isoverif error messages for Dexcess getting greater than 1000 on some points at some moments.

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