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

Last change on this file since 5761 was 5728, checked in by aborella, 4 weeks ago

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