source: LMDZ6/branches/contrails/libf/phylmd/phys_local_var_mod.F90 @ 5797

Last change on this file since 5797 was 5797, checked in by aborella, 4 months ago

Bugfix for saturation adjustment in cirrus mixing + bugfix for contrails sedimentation + new diagnostics + support for unadjusted contrails

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