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

Last change on this file since 5644 was 5643, checked in by aborella, 3 months ago

Various minor corrections to ISSR and contrails param

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