source: LMDZ6/branches/Amaury_dev/libf/phylmd/phys_local_var_mod.F90 @ 5185

Last change on this file since 5185 was 5185, checked in by abarral, 2 months ago

Replace REPROBUS CPP KEY by logical using handmade wonky wrapper

  • 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: 67.7 KB
Line 
1
2! $Id: phys_local_var_mod.F90 5185 2024-09-11 14:27:07Z abarral $
3
4MODULE 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 :: rneb_seri(:, :)
26  !$OMP THREADPRIVATE(rneb_seri)
27  REAL, SAVE, ALLOCATABLE :: d_rneb_dyn(:, :)
28  !$OMP THREADPRIVATE(d_rneb_dyn)
29  REAL, SAVE, ALLOCATABLE :: l_mixmin(:, :, :), l_mix(:, :, :), wprime(:, :, :)
30  !$OMP THREADPRIVATE(l_mixmin, l_mix, wprime)
31  REAL, SAVE, ALLOCATABLE :: pbl_eps(:, :, :)
32  !$OMP THREADPRIVATE(pbl_eps)
33  REAL, SAVE, ALLOCATABLE :: tke_shear(:, :, :), tke_buoy(:, :, :), tke_trans(:, :, :)
34  !$OMP THREADPRIVATE(tke_shear,tke_buoy,tke_trans)
35  REAL, SAVE, ALLOCATABLE :: tr_seri(:, :, :)
36  !$OMP THREADPRIVATE(tr_seri)
37  REAL, SAVE, ALLOCATABLE :: rhcl(:, :)
38  !$OMP THREADPRIVATE(rhcl)
39  REAL, SAVE, ALLOCATABLE :: d_t_dyn(:, :), d_q_dyn(:, :)
40  !$OMP THREADPRIVATE(d_t_dyn, d_q_dyn)
41  REAL, SAVE, ALLOCATABLE :: d_ql_dyn(:, :), d_qs_dyn(:, :), d_qbs_dyn(:, :)
42  !$OMP THREADPRIVATE(d_ql_dyn, d_qs_dyn, d_qbs_dyn)
43  REAL, SAVE, ALLOCATABLE :: d_q_dyn2d(:), d_ql_dyn2d(:), d_qs_dyn2d(:), d_qbs_dyn2d(:)
44  !$OMP THREADPRIVATE(d_q_dyn2d, d_ql_dyn2d, d_qs_dyn2d, d_qbs_dyn2d)
45  REAL, SAVE, ALLOCATABLE :: d_u_dyn(:, :), d_v_dyn(:, :)
46  !$OMP THREADPRIVATE(d_u_dyn, d_v_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(:) :: zustar, zu10m, zv10m, rh2m
388  !$OMP THREADPRIVATE(zustar, zu10m, zv10m, rh2m)
389  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: s_lcl, s_pblh, s_pblt, s_therm
390  !$OMP THREADPRIVATE(s_lcl, s_pblh, s_pblt, s_therm)
391
392  !nrlmd+jyg<
393  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: s_pblh_x, s_pblh_w
394  !$OMP THREADPRIVATE(s_pblh_x, s_pblh_w)
395  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: s_lcl_x, s_lcl_w
396  !$OMP THREADPRIVATE(s_lcl_x, s_lcl_w)
397  !>nrlmd+jyg
398
399  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: slab_wfbils
400  !$OMP THREADPRIVATE(slab_wfbils)
401  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: tpot, tpote, ue, uq, uwat, ve, vq, vwat, zxffonte
402  !$OMP THREADPRIVATE(tpot, tpote, ue, uq, uwat, ve, vq, vwat, zxffonte)
403  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: zxustartlic, zxrhoslic, zxqsaltlic
404  !$OMP THREADPRIVATE(zxustartlic, zxrhoslic, zxqsaltlic)
405  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: zxfqcalving
406  !$OMP THREADPRIVATE(zxfqcalving)
407  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: zxfluxlat, zxtsol, snow_lsc, zxfqfonte
408  !$OMP THREADPRIVATE(zxfluxlat, zxtsol, snow_lsc, zxfqfonte)
409!SN runoffdiag
410  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: zxrunofflic, runoff_diag
411  !$OMP THREADPRIVATE(zxrunofflic, runoff_diag)
412  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: zxqsurf, rain_lsc, rain_num
413  !$OMP THREADPRIVATE(zxqsurf, rain_lsc, rain_num)
414#ifdef ISO
415      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: xtevap,xtprw
416!$OMP THREADPRIVATE(xtevap,xtprw)
417      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: h1_diag
418      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: xtrunoff_diag
419!$OMP THREADPRIVATE(h1_diagv,xtrunoff_diag)
420      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: zxfxtcalving
421!$OMP THREADPRIVATE(zxfxtcalving)
422      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: xtsnow_lsc, zxfxtfonte
423!$OMP THREADPRIVATE(xtsnow_lsc, zxfxtfonte)
424      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: zxxtrunofflic
425!$OMP THREADPRIVATE(zxxtrunofflic)
426      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: xtrain_lsc
427!$OMP THREADPRIVATE(xtrain_lsc)
428#endif
429
430  !jyg+nrlmd<
431  !!!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
432  !                                                                          c
433  !       Declarations liees a la couche limite differentiee w-x             c
434  !                                                                          c
435  !!!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
436  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: sens_x, sens_w
437  !$OMP THREADPRIVATE(sens_x, sens_w)
438  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: zxfluxlat_x, zxfluxlat_w
439  !$OMP THREADPRIVATE(zxfluxlat_x, zxfluxlat_w)
440  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: delta_qsurf
441  !$OMP THREADPRIVATE(delta_qsurf)
442  !jyg<
443  !!! Entrees supplementaires couche-limite
444  !!      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: t_x, t_w
445  !!!$OMP THREADPRIVATE(t_x, t_w)
446  !!      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: q_x, q_w
447  !!!$OMP THREADPRIVATE(q_x, q_w)
448  !>jyg
449  !!! Sorties ferret
450  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: dtvdf_x, dtvdf_w
451  !$OMP THREADPRIVATE(dtvdf_x, dtvdf_w)
452  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: dqvdf_x, dqvdf_w
453  !$OMP THREADPRIVATE(dqvdf_x, dqvdf_w)
454  ! Variables supplementaires dans physiq.F relative au splitting de la surface
455  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :, :) :: pbl_tke_input
456  !$OMP THREADPRIVATE(pbl_tke_input)
457  ! Entree supplementaire Thermiques :
458  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: t_therm, q_therm, u_therm, v_therm
459  !$OMP THREADPRIVATE(t_therm, q_therm, u_therm, v_therm)
460  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: cdragh_x, cdragh_w
461  !$OMP THREADPRIVATE(cdragh_x, cdragh_w)
462  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: cdragm_x, cdragm_w
463  !$OMP THREADPRIVATE(cdragm_x, cdragm_w)
464  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: kh, kh_x, kh_w
465  !$OMP THREADPRIVATE(kh, kh_x, kh_w)
466#ifdef ISO
467      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: dxtvdf_x, dxtvdf_w
468!$OMP THREADPRIVATE(dxtvdf_x, dxtvdf_w)
469      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: xt_therm
470!$OMP THREADPRIVATE(xt_therm)
471#endif
472  !!!
473  !!!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
474  LOGICAL, SAVE, ALLOCATABLE :: ptconv(:, :)
475  !$OMP THREADPRIVATE(ptconv)
476  REAL, SAVE, ALLOCATABLE :: ratqsc(:, :)
477  !$OMP THREADPRIVATE(ratqsc)
478  !>jyg+nrlmd
479
480  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: wbeff, convoccur, zmax_th, zq2m, zt2m
481  !$OMP THREADPRIVATE(wbeff, convoccur, zmax_th, zq2m, zt2m)
482  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: zt2m_min_mon, zt2m_max_mon
483  !$OMP THREADPRIVATE(zt2m_min_mon, zt2m_max_mon)
484  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: t2m_min_mon, t2m_max_mon
485  !$OMP THREADPRIVATE(t2m_min_mon, t2m_max_mon)
486  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: weak_inversion
487  !$OMP THREADPRIVATE(weak_inversion)
488  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: alp_bl_conv, alp_bl_det
489  !$OMP THREADPRIVATE(alp_bl_conv,alp_bl_det)
490  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: alp_bl_fluct_m, alp_bl_fluct_tke
491  !$OMP THREADPRIVATE(alp_bl_fluct_m,alp_bl_fluct_tke)
492  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: alp_bl_stat, n2, s2, strig, zcong, zlcl_th
493  !$OMP THREADPRIVATE(alp_bl_stat, n2, s2, strig, zcong, zlcl_th)
494  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: proba_notrig, random_notrig
495  !$OMP THREADPRIVATE(proba_notrig, random_notrig)
496  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: fsolsw, wfbils
497  !$OMP THREADPRIVATE(fsolsw, wfbils)
498  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: wfevap
499  !$OMP THREADPRIVATE(wfevap)
500  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: t2m, fluxlat, fsollw, evap_pot
501  !$OMP THREADPRIVATE(t2m, fluxlat, fsollw,evap_pot)
502  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: dnwd0, omega
503  !$OMP THREADPRIVATE(dnwd0, omega)
504  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: epmax_diag ! epmax_cape
505  !$OMP THREADPRIVATE(epmax_diag)
506
507  !  Deep convective variables used in phytrac
508  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: ep ! epmax_cape
509  !$OMP THREADPRIVATE(ep)
510  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: dnwd, upwd
511  !$OMP THREADPRIVATE(dnwd, upwd)
512  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: pmflxr, pmflxs
513  !$OMP THREADPRIVATE(pmflxr, pmflxs)
514  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: wdtrainA, wdtrainS, wdtrainM
515  !$OMP THREADPRIVATE(wdtrainA, wdtrainS, wdtrainM)
516  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: da, mp
517  !$OMP THREADPRIVATE(da, mp)
518  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: wght_cvfd
519  !$OMP THREADPRIVATE(wght_cvfd)
520  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :, :) :: phi, phi2, elij, epmlmMm
521  !$OMP THREADPRIVATE(phi, phi2, elij, epmlmMm)
522  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: d1a, dam
523  !$OMP THREADPRIVATE(d1a, dam)
524  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: ev
525  !$OMP THREADPRIVATE(ev)
526  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: qtaa
527  !$OMP THREADPRIVATE(qtaa)
528  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: clw
529  !$OMP THREADPRIVATE(clw)
530  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: eplaMm
531  !$OMP THREADPRIVATE(eplaMm)
532  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :, :) :: sij
533  !$OMP THREADPRIVATE(sij)
534#ifdef ISO
535      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: xtwdtrainA
536!$OMP THREADPRIVATE(xtwdtrainA)
537      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: xtev
538!$OMP THREADPRIVATE(xtev)
539      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: xttaa
540!$OMP THREADPRIVATE(xttaa)
541      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: xtclw
542!$OMP THREADPRIVATE(xtclw)
543#ifdef DIAGISO
544      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: qlp
545!$OMP THREADPRIVATE(qlp)
546      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: qvp
547!$OMP THREADPRIVATE(qvp)
548      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: fq_detrainement
549!$OMP THREADPRIVATE(fq_detrainement)
550      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: fq_ddft
551!$OMP THREADPRIVATE(fq_ddft)
552      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: fq_fluxmasse
553!$OMP THREADPRIVATE(fq_fluxmasse)
554      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: fq_evapprecip
555!$OMP THREADPRIVATE(fq_evapprecip)
556      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: f_detrainement
557!$OMP THREADPRIVATE(f_detrainement)
558      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: q_detrainement
559!$OMP THREADPRIVATE(q_detrainement)
560      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: xt_detrainement
561!$OMP THREADPRIVATE(xt_detrainement)
562      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: xtlp
563!$OMP THREADPRIVATE(xtlp)
564      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: xtvp
565!$OMP THREADPRIVATE(xtvp)
566      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: q_the
567!$OMP THREADPRIVATE(q_the)
568      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: xt_the
569!$OMP THREADPRIVATE(xt_the)
570      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: fxt_detrainement
571!$OMP THREADPRIVATE(fxt_detrainement)
572      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: fxt_ddft
573!$OMP THREADPRIVATE(fxt_ddft)
574      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: fxt_fluxmasse
575!$OMP THREADPRIVATE(fxt_fluxmasse)
576      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:)  :: fxt_evapprecip
577!$OMP THREADPRIVATE(fxt_evapprecip)
578#endif
579#endif
580
581  !      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: coefh, coefm, lambda_th
582  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: lambda_th
583  !$OMP THREADPRIVATE(lambda_th)
584  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: cldemi, cldfra, cldtau, fiwc, fl, re, flwc
585  !$OMP THREADPRIVATE(cldemi, cldfra, cldtau, fiwc, fl, re, flwc)
586  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: qlth, qith, qsith, wiceth
587  !$OMP THREADPRIVATE(qlth, qith, qsith, wiceth)
588  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: ref_liq, ref_ice, theta, zphi
589  !$OMP THREADPRIVATE(ref_liq, ref_ice, theta, zphi)
590  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: ref_liq_pi, ref_ice_pi
591  !$OMP THREADPRIVATE(ref_liq_pi, ref_ice_pi)
592  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: zx_rh, zx_rhl, zx_rhi
593  !$OMP THREADPRIVATE(zx_rh, zx_rhl, zx_rhi)
594  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: prfl, psfl, fraca, bsfl
595  !$OMP THREADPRIVATE(prfl, psfl, fraca, bsfl)
596  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: Vprecip, zw2
597  !$OMP THREADPRIVATE(Vprecip, zw2)
598  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: pmfd, pmfu
599  !$OMP THREADPRIVATE(pmfd, pmfu)
600  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :, :) :: fluxt, fluxu, fluxv
601  !$OMP THREADPRIVATE(fluxt, fluxu, fluxv)
602  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :, :) :: uwriteSTD, vwriteSTD, wwriteSTD
603  !$OMP THREADPRIVATE(uwriteSTD, vwriteSTD, wwriteSTD)
604  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :, :) :: phiwriteSTD, qwriteSTD, twriteSTD, rhwriteSTD
605  !$OMP THREADPRIVATE(phiwriteSTD, qwriteSTD, twriteSTD, rhwriteSTD)
606
607
608  ! ug et d'autres encore:
609  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: beta_prec
610  !$OMP THREADPRIVATE(beta_prec)
611  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: rneb, rnebjn, rneblsvol
612  !$OMP THREADPRIVATE(rneb,rnebjn,rneblsvol)
613  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: pfraclr, pfracld
614  !$OMP THREADPRIVATE(pfraclr,pfracld)
615  REAL, SAVE, ALLOCATABLE :: cldfraliq(:, :)
616  !$OMP THREADPRIVATE(cldfraliq)
617  REAL, SAVE, ALLOCATABLE :: mean_icefracturb(:, :)
618  !$OMP THREADPRIVATE(mean_icefracturb)
619  REAL, SAVE, ALLOCATABLE :: sigma2_icefracturb(:, :)
620  !$OMP THREADPRIVATE(sigma2_icefracturb)
621
622  ! variables de sorties MM
623  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: zxsnow, snowhgt, qsnow, to_ice
624  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: sissnow, runoff, albsol3_lic
625  !$OMP THREADPRIVATE(zxsnow,snowhgt,qsnow,to_ice)
626  !$OMP THREADPRIVATE(sissnow,runoff,albsol3_lic)
627#ifdef ISO
628      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: zxxtsnow
629!$OMP THREADPRIVATE(zxxtsnow)     
630      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: xtVprecip,xtVprecipi
631!$OMP THREADPRIVATE(xtVprecip,xtVprecipi)
632      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: pxtrfl, pxtsfl
633!$OMP THREADPRIVATE(pxtrfl, pxtsfl)
634#endif
635
636  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: p_tropopause, z_tropopause, t_tropopause
637  !$OMP THREADPRIVATE(p_tropopause, z_tropopause, t_tropopause)
638
639  INTEGER, ALLOCATABLE, SAVE, DIMENSION(:, :) :: zn2mout
640  !$OMP THREADPRIVATE(zn2mout)
641
642  REAL, SAVE, ALLOCATABLE :: qclr(:, :)
643  !$OMP THREADPRIVATE(qclr)
644  REAL, SAVE, ALLOCATABLE :: qcld(:, :)
645  !$OMP THREADPRIVATE(qcld)
646  REAL, SAVE, ALLOCATABLE :: qss(:, :)
647  !$OMP THREADPRIVATE(qss)
648  REAL, SAVE, ALLOCATABLE :: qvc(:, :)
649  !$OMP THREADPRIVATE(qvc)
650  REAL, SAVE, ALLOCATABLE :: rnebclr(:, :)
651  !$OMP THREADPRIVATE(rnebclr)
652  REAL, SAVE, ALLOCATABLE :: rnebss(:, :)
653  !$OMP THREADPRIVATE(rnebss)
654  REAL, SAVE, ALLOCATABLE :: gamma_ss(:, :)
655  !$OMP THREADPRIVATE(gamma_ss)
656  REAL, SAVE, ALLOCATABLE :: N1_ss(:, :)
657  !$OMP THREADPRIVATE(N1_ss)
658  REAL, SAVE, ALLOCATABLE :: N2_ss(:, :)
659  !$OMP THREADPRIVATE(N2_ss)
660  REAL, SAVE, ALLOCATABLE :: drneb_sub(:, :)
661  !$OMP THREADPRIVATE(drneb_sub)
662  REAL, SAVE, ALLOCATABLE :: drneb_con(:, :)
663  !$OMP THREADPRIVATE(drneb_con)
664  REAL, SAVE, ALLOCATABLE :: drneb_tur(:, :)
665  !$OMP THREADPRIVATE(drneb_tur)
666  REAL, SAVE, ALLOCATABLE :: drneb_avi(:, :)
667  !$OMP THREADPRIVATE(drneb_avi)
668  REAL, SAVE, ALLOCATABLE :: zqsatl(:, :)
669  !$OMP THREADPRIVATE(zqsatl)
670  REAL, SAVE, ALLOCATABLE :: zqsats(:, :)
671  !$OMP THREADPRIVATE(zqsats)
672  REAL, SAVE, ALLOCATABLE :: Tcontr(:, :)
673  !$OMP THREADPRIVATE(Tcontr)
674  REAL, SAVE, ALLOCATABLE :: qcontr(:, :)
675  !$OMP THREADPRIVATE(qcontr)
676  REAL, SAVE, ALLOCATABLE :: qcontr2(:, :)
677  !$OMP THREADPRIVATE(qcontr2)
678  REAL, SAVE, ALLOCATABLE :: fcontrN(:, :)
679  !$OMP THREADPRIVATE(fcontrN)
680  REAL, SAVE, ALLOCATABLE :: fcontrP(:, :)
681  !$OMP THREADPRIVATE(fcontrP)
682  REAL, SAVE, ALLOCATABLE :: distcltop(:, :)
683  !$OMP THREADPRIVATE(distcltop)
684  REAL, SAVE, ALLOCATABLE :: temp_cltop(:, :)
685  !$OMP THREADPRIVATE(temp_cltop)
686
687
688  !--POPRECIP variables
689  REAL, SAVE, ALLOCATABLE :: qraindiag(:, :)
690  !$OMP THREADPRIVATE(qraindiag)
691  REAL, SAVE, ALLOCATABLE :: qsnowdiag(:, :)
692  !$OMP THREADPRIVATE(qsnowdiag)
693  REAL, SAVE, ALLOCATABLE :: dqreva(:, :)
694  !$OMP THREADPRIVATE(dqreva)
695  REAL, SAVE, ALLOCATABLE :: dqrauto(:, :)
696  !$OMP THREADPRIVATE(dqrauto)
697  REAL, SAVE, ALLOCATABLE :: dqrcol(:, :)
698  !$OMP THREADPRIVATE(dqrcol)
699  REAL, SAVE, ALLOCATABLE :: dqrmelt(:, :)
700  !$OMP THREADPRIVATE(dqrmelt)
701  REAL, SAVE, ALLOCATABLE :: dqrfreez(:, :)
702  !$OMP THREADPRIVATE(dqrfreez)
703  REAL, SAVE, ALLOCATABLE :: dqssub(:, :)
704  !$OMP THREADPRIVATE(dqssub)
705  REAL, SAVE, ALLOCATABLE :: dqsauto(:, :)
706  !$OMP THREADPRIVATE(dqsauto)
707  REAL, SAVE, ALLOCATABLE :: dqsagg(:, :)
708  !$OMP THREADPRIVATE(dqsagg)
709  REAL, SAVE, ALLOCATABLE :: dqsrim(:, :)
710  !$OMP THREADPRIVATE(dqsrim)
711  REAL, SAVE, ALLOCATABLE :: dqsmelt(:, :)
712  !$OMP THREADPRIVATE(dqsmelt)
713  REAL, SAVE, ALLOCATABLE :: dqsfreez(:, :)
714  !$OMP THREADPRIVATE(dqsfreez)
715
716  ! variables for stratospheric aerosol
717  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: d_q_emiss
718  !$OMP THREADPRIVATE(d_q_emiss)
719  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: R2SO4
720  !$OMP THREADPRIVATE(R2SO4)
721  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :, :) :: R2SO4B
722  !$OMP THREADPRIVATE(R2SO4B)
723  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: DENSO4
724  !$OMP THREADPRIVATE(DENSO4)
725  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :, :) :: DENSO4B
726  !$OMP THREADPRIVATE(DENSO4B)
727  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: f_r_wet
728  !$OMP THREADPRIVATE(f_r_wet)
729  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :, :) :: f_r_wetB
730  !$OMP THREADPRIVATE(f_r_wetB)
731  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: decfluxaer
732  !$OMP THREADPRIVATE(decfluxaer)
733  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: mdw
734  !$OMP THREADPRIVATE(mdw)
735  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: OCS_lifetime
736  !$OMP THREADPRIVATE(OCS_lifetime)
737  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: SO2_lifetime
738  !$OMP THREADPRIVATE(SO2_lifetime)
739  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: H2SO4_lifetime
740  !$OMP THREADPRIVATE(H2SO4_lifetime)
741  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: O3_clim
742  !$OMP THREADPRIVATE(O3_clim)
743  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: alpha_bin
744  !$OMP THREADPRIVATE(alpha_bin)
745  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: piz_bin
746  !$OMP THREADPRIVATE(piz_bin)
747  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: cg_bin
748  !$OMP THREADPRIVATE(cg_bin)
749  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: tau_strat_550
750  !$OMP THREADPRIVATE(tau_strat_550)
751  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: tau_strat_1020
752  !$OMP THREADPRIVATE(tau_strat_1020)
753  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: tausum_strat
754  !$OMP THREADPRIVATE(tausum_strat)
755  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: surf_PM25_sulf
756  !$OMP THREADPRIVATE(surf_PM25_sulf)
757  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: vsed_aer
758  !$OMP THREADPRIVATE(vsed_aer)
759  !     Sulfate aerosol concentration (dry mixing ratio) (condensed H2SO4 mmr)
760  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: sulfmmr
761  !$OMP THREADPRIVATE(sulfmmr)
762  !     SAD all aerosols (cm2/cm3)
763  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: SAD_sulfate
764  !$OMP THREADPRIVATE(SAD_sulfate)
765  !     sulfate MMR in different modes (based on sulfmmr, it must be dry mmr)
766  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :, :) :: sulfmmr_mode
767  !$OMP THREADPRIVATE(sulfmmr_mode)
768  !     particle concentration in different modes (part/m3)
769  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :, :) :: nd_mode
770  !$OMP THREADPRIVATE(nd_mode)
771
772  !---3D budget variables
773  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: budg_3D_nucl
774  !$OMP THREADPRIVATE(budg_3D_nucl)
775  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: budg_3D_cond_evap
776  !$OMP THREADPRIVATE(budg_3D_cond_evap)
777  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: budg_3D_ocs_to_so2
778  !$OMP THREADPRIVATE(budg_3D_ocs_to_so2)
779  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: budg_3D_so2_to_h2so4
780  !$OMP THREADPRIVATE(budg_3D_so2_to_h2so4)
781  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: budg_3D_backgr_ocs
782  !$OMP THREADPRIVATE(budg_3D_backgr_ocs)
783  REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: budg_3D_backgr_so2
784  !$OMP THREADPRIVATE(budg_3D_backgr_so2)
785
786  !---2D budget variables
787  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_dry_ocs
788  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_dry_so2
789  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_dry_h2so4
790  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_dry_part
791  !$OMP THREADPRIVATE(budg_dep_dry_ocs,budg_dep_dry_so2,budg_dep_dry_h2so4,budg_dep_dry_part)
792  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_wet_ocs
793  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_wet_so2
794  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_wet_h2so4
795  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_wet_part
796  !$OMP THREADPRIVATE(budg_dep_wet_ocs,budg_dep_wet_so2,budg_dep_wet_h2so4,budg_dep_wet_part)
797  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_emi_ocs
798  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_emi_so2
799  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_emi_h2so4
800  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_emi_part
801  !$OMP THREADPRIVATE(budg_emi_ocs,budg_emi_so2,budg_emi_h2so4,budg_emi_part)
802  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_ocs_to_so2
803  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_so2_to_h2so4
804  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_h2so4_to_part
805  !$OMP THREADPRIVATE(budg_ocs_to_so2,budg_so2_to_h2so4,budg_h2so4_to_part)
806  REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_sed_part
807  !$OMP THREADPRIVATE(budg_sed_part)
808
809CONTAINS
810
811  !======================================================================
812  SUBROUTINE phys_local_var_init
813    USE dimphy
814    USE infotrac_phy, ONLY: nbtr, nqtot
815#ifdef ISO
816USE infotrac_phy, ONLY: ntraciso=>ntiso,niso
817#endif
818    USE aero_mod
819    USE indice_sol_mod
820    USE phys_output_var_mod
821    USE phys_state_var_mod
822    USE infotrac_phy, ONLY: nbtr_bin
823
824    IMPLICIT NONE
825    ALLOCATE(t_seri(klon, klev), q_seri(klon, klev), ql_seri(klon, klev), qs_seri(klon, klev), qbs_seri(klon, klev))
826    ! SN 4D ISO
827    ALLOCATE(qx_seri(klon, klev, nqtot))
828    ! SN
829    ALLOCATE(u_seri(klon, klev), v_seri(klon, klev))
830    ALLOCATE(l_mixmin(klon, klev + 1, nbsrf), l_mix(klon, klev + 1, nbsrf), wprime(klon, klev + 1, nbsrf))
831    ALLOCATE(pbl_eps(klon, klev + 1, nbsrf + 1))
832    ALLOCATE(tke_shear(klon, klev + 1, nbsrf), tke_buoy(klon, klev + 1, nbsrf), tke_trans(klon, klev + 1, nbsrf))
833    pbl_eps(:, :, :) = 0.
834    tke_shear(:, :, :) = 0.; tke_buoy(:, :, :) = 0.; tke_trans(:, :, :) = 0.
835    l_mix(:, :, :) = 0.;l_mixmin(:, :, :) = 0.;wprime(:, :, :) = 0. ! doit etre initialse car pas toujours remplis
836    ALLOCATE(rhcl(klon, klev))
837    ALLOCATE(tr_seri(klon, klev, nbtr))
838    ALLOCATE(d_t_dyn(klon, klev), d_q_dyn(klon, klev))
839    ALLOCATE(d_ql_dyn(klon, klev), d_qs_dyn(klon, klev), d_qbs_dyn(klon, klev))
840    ALLOCATE(d_q_dyn2d(klon), d_ql_dyn2d(klon), d_qs_dyn2d(klon), d_qbs_dyn2d(klon))
841    ALLOCATE(d_u_dyn(klon, klev), d_v_dyn(klon, klev))
842    ALLOCATE(d_tr_dyn(klon, klev, nbtr))                   !RomP
843    ALLOCATE(d_t_con(klon, klev), d_q_con(klon, klev), d_q_con_zmasse(klon, klev))
844    ALLOCATE(d_u_con(klon, klev), d_v_con(klon, klev))
845    ALLOCATE(d_t_wake(klon, klev), d_q_wake(klon, klev))
846    ALLOCATE(d_t_lsc(klon, klev), d_q_lsc(klon, klev))
847    ALLOCATE(d_t_lwr(klon, klev), d_t_lw0(klon, klev))
848    ALLOCATE(d_t_swr(klon, klev), d_t_sw0(klon, klev))
849    ALLOCATE(d_ql_lsc(klon, klev), d_qi_lsc(klon, klev))
850    ALLOCATE(d_t_ajsb(klon, klev), d_q_ajsb(klon, klev))
851    ALLOCATE(d_t_ajs(klon, klev), d_q_ajs(klon, klev))
852    !nrlmd<
853    ALLOCATE(d_t_ajs_w(klon, klev), d_q_ajs_w(klon, klev))
854    ALLOCATE(d_t_ajs_x(klon, klev), d_q_ajs_x(klon, klev))
855    !>nrlmd
856    ALLOCATE(d_u_ajs(klon, klev), d_v_ajs(klon, klev))
857    ALLOCATE(d_t_eva(klon, klev), d_q_eva(klon, klev))
858    ! SN 4D ISO
859    ALLOCATE(d_qx_eva(klon, klev, nqtot))
860    ! SN
861    ALLOCATE(d_ql_eva(klon, klev), d_qi_eva(klon, klev))
862    ALLOCATE(d_t_lscst(klon, klev), d_q_lscst(klon, klev))
863    ALLOCATE(d_t_lscth(klon, klev), d_q_lscth(klon, klev))
864    ALLOCATE(plul_st(klon), plul_th(klon))
865    ALLOCATE(d_t_vdf(klon, klev), d_q_vdf(klon, klev), d_t_diss(klon, klev))
866    ALLOCATE (d_qbs_vdf(klon, klev))
867    ALLOCATE(d_t_bsss(klon, klev), d_q_bsss(klon, klev), d_qbs_bsss(klon, klev))
868    ALLOCATE(d_t_vdf_w(klon, klev), d_q_vdf_w(klon, klev))
869    ALLOCATE(d_t_vdf_x(klon, klev), d_q_vdf_x(klon, klev))
870#ifdef ISO
871      allocate(xt_seri(ntraciso,klon,klev))
872      allocate(xtl_seri(ntraciso,klon,klev))
873      allocate(xts_seri(ntraciso,klon,klev))
874      allocate(xtbs_seri(ntraciso,klon,klev))
875      allocate(d_xt_dyn(ntraciso,klon,klev))
876      allocate(d_xtl_dyn(ntraciso,klon,klev))
877      allocate(d_xts_dyn(ntraciso,klon,klev))
878      allocate(d_xtbs_dyn(ntraciso,klon,klev))
879      allocate(d_xt_con(ntraciso,klon,klev))
880      allocate(d_xt_wake(ntraciso,klon,klev))
881      allocate(d_xt_lsc(ntraciso,klon,klev))
882      allocate(d_xtl_lsc(ntraciso,klon,klev))
883      allocate(d_xti_lsc(ntraciso,klon,klev))
884      allocate(d_xt_ajsb(ntraciso,klon,klev))
885      allocate(d_xt_ajs(ntraciso,klon,klev))
886      allocate(d_xt_ajs_w(ntraciso,klon,klev))
887      allocate(d_xt_ajs_x(ntraciso,klon,klev))
888      allocate(d_xt_eva(ntraciso,klon,klev))
889      allocate(d_xtl_eva(ntraciso,klon,klev))
890      allocate(d_xti_eva(ntraciso,klon,klev))
891      allocate(d_xt_vdf(ntraciso,klon,klev)) 
892      allocate(d_xt_vdf_w(ntraciso,klon,klev))
893      allocate(d_xt_vdf_x(ntraciso,klon,klev))
894      allocate(d_xt_ch4(ntraciso,klon,klev))
895      allocate(d_xt_prod_nucl(ntraciso,klon,klev))
896      allocate(d_xt_cosmo(ntraciso,klon,klev))
897      allocate(d_xt_decroiss(ntraciso,klon,klev))
898#endif
899
900    ALLOCATE(d_u_vdf(klon, klev), d_v_vdf(klon, klev))
901    ALLOCATE(d_t_oli(klon, klev), d_t_oro(klon, klev))
902    ALLOCATE(d_u_oli(klon, klev), d_v_oli(klon, klev))
903    ALLOCATE(d_u_oro(klon, klev), d_v_oro(klon, klev))
904    ALLOCATE(d_u_oro_gw(klon, klev), d_v_oro_gw(klon, klev))
905    ALLOCATE(d_t_oro_gw(klon, klev))
906    ALLOCATE(d_t_lif(klon, klev), d_t_ec(klon, klev))
907    ALLOCATE(d_u_lif(klon, klev), d_v_lif(klon, klev))
908    ALLOCATE(d_ts(klon, nbsrf), d_tr(klon, klev, nbtr))
909
910    ! Special RRTM
911    ALLOCATE(ZLWFT0_i(klon, klev + 1), ZSWFT0_i(klon, klev + 1), ZFLDN0(klon, klev + 1))
912    ZFLDN0 = 0.
913    ALLOCATE(ZFLUP0(klon, klev + 1), ZFSDN0(klon, klev + 1), ZFSUP0(klon, klev + 1))
914
915    ALLOCATE(topswad_aero(klon), solswad_aero(klon))
916    ALLOCATE(topswai_aero(klon), solswai_aero(klon))
917    ALLOCATE(topswad0_aero(klon), solswad0_aero(klon))
918    ALLOCATE(toplwad_aero(klon), sollwad_aero(klon))
919    ALLOCATE(toplwai_aero(klon), sollwai_aero(klon))
920    ALLOCATE(toplwad0_aero(klon), sollwad0_aero(klon))
921    ALLOCATE(topsw_aero(klon, naero_grp), solsw_aero(klon, naero_grp))
922    ALLOCATE(topsw0_aero(klon, naero_grp), solsw0_aero(klon, naero_grp))
923    ALLOCATE(topswcf_aero(klon, 3), solswcf_aero(klon, 3))
924    ALLOCATE(du_gwd_hines(klon, klev), dv_gwd_hines(klon, klev))
925    ALLOCATE(dv_gwd_rando(klon, klev), dv_gwd_front(klon, klev))
926    ALLOCATE(east_gwstress(klon, klev), west_gwstress(klon, klev))
927    east_gwstress(:, :) = 0 !ym missing init
928    west_gwstress(:, :) = 0 !ym missing init
929    ALLOCATE(d_t_hin(klon, klev))
930    ALLOCATE(d_q_ch4(klon, klev))
931    ALLOCATE(stratomask(klon, klev))
932    ALLOCATE(tausum_aero(klon, nwave, naero_tot))
933    ALLOCATE(drytausum_aero(klon, naero_tot))
934    ALLOCATE(tau3d_aero(klon, klev, nwave, naero_tot))
935    ALLOCATE(dNovrN(klon))
936    ALLOCATE(zfice(klon, klev))
937    ALLOCATE(od443aer(klon))
938    ALLOCATE(od550aer(klon))
939    ALLOCATE(od865aer(klon))
940    ALLOCATE(dryod550aer(klon))
941    dryod550aer(:) = 0.
942    ALLOCATE(abs550aer(klon))
943    abs550aer(:) = 0.
944    ALLOCATE(ec550aer(klon, klev))
945    ALLOCATE(od550lt1aer(klon))
946    ALLOCATE(sconcso4(klon))
947    ALLOCATE(sconcno3(klon))
948    ALLOCATE(sconcoa(klon))
949    ALLOCATE(sconcbc(klon))
950    ALLOCATE(sconcss(klon))
951    ALLOCATE(sconcdust(klon))
952    ALLOCATE(concso4(klon, klev))
953    ALLOCATE(concno3(klon, klev))
954    ALLOCATE(concoa(klon, klev))
955    ALLOCATE(concbc(klon, klev))
956    ALLOCATE(concss(klon, klev))
957    ALLOCATE(concdust(klon, klev))
958    ALLOCATE(loadso4(klon))
959    ALLOCATE(loadoa(klon))
960    ALLOCATE(loadbc(klon))
961    ALLOCATE(loadss(klon))
962    ALLOCATE(loaddust(klon))
963    ALLOCATE(loadno3(klon))
964    ALLOCATE(load_tmp1(klon))
965    ALLOCATE(load_tmp2(klon))
966    ALLOCATE(load_tmp3(klon))
967    ALLOCATE(load_tmp4(klon))
968    ALLOCATE(load_tmp5(klon))
969    ALLOCATE(load_tmp6(klon))
970    ALLOCATE(load_tmp7(klon))
971    ALLOCATE(load_tmp8(klon))
972    ALLOCATE(load_tmp9(klon))
973    ALLOCATE(load_tmp10(klon))
974
975    !IM ajout variables CFMIP2/CMIP5
976    ALLOCATE(topswad_aerop(klon), solswad_aerop(klon))
977    ALLOCATE(topswai_aerop(klon), solswai_aerop(klon))
978    ALLOCATE(topswad0_aerop(klon), solswad0_aerop(klon))
979    ALLOCATE(topsw_aerop(klon, naero_grp), topsw0_aerop(klon, naero_grp))
980    ALLOCATE(solsw_aerop(klon, naero_grp), solsw0_aerop(klon, naero_grp))
981    ALLOCATE(topswcf_aerop(klon, naero_grp), solswcf_aerop(klon, naero_grp))
982
983    ! additional LW variables CK
984    ALLOCATE(toplwad_aerop(klon), sollwad_aerop(klon))
985    ALLOCATE(toplwai_aerop(klon), sollwai_aerop(klon))
986    ALLOCATE(toplwad0_aerop(klon), sollwad0_aerop(klon))
987
988    !AI Ajout Ecrad (3Deffect)
989    ALLOCATE(topswad_aero_s2(klon), solswad_aero_s2(klon))
990    ALLOCATE(topswai_aero_s2(klon), solswai_aero_s2(klon))
991    ALLOCATE(topswad0_aero_s2(klon), solswad0_aero_s2(klon))
992    ALLOCATE(topsw_aero_s2(klon, naero_grp), topsw0_aero_s2(klon, naero_grp))
993    ALLOCATE(solsw_aero_s2(klon, naero_grp), solsw0_aero_s2(klon, naero_grp))
994    ALLOCATE(topswcf_aero_s2(klon, naero_grp), solswcf_aero_s2(klon, naero_grp))
995    ! additional LW variables CK
996    ALLOCATE(toplwad_aero_s2(klon), sollwad_aero_s2(klon))
997    ALLOCATE(toplwai_aero_s2(klon), sollwai_aero_s2(klon))
998    ALLOCATE(toplwad0_aero_s2(klon), sollwad0_aero_s2(klon))
999
1000    ! FH Ajout de celles necessaires au phys_output_write_mod
1001
1002    ALLOCATE(tal1(klon), pal1(klon), pab1(klon), pab2(klon))
1003    ALLOCATE(ptstar(klon), pt0(klon), slp(klon))
1004    !!
1005    !!          Wake variables
1006    ALLOCATE(alp_wake(klon))
1007    ALLOCATE(wake_h(klon), wake_k(klon))
1008    ALLOCATE(wake_omg(klon, klev))
1009    ALLOCATE(d_deltat_wk(klon, klev), d_deltaq_wk(klon, klev))
1010    ALLOCATE(d_s_wk(klon), d_s_a_wk(klon), d_dens_wk(klon), d_dens_a_wk(klon))
1011    ALLOCATE(d_deltat_wk_gw(klon, klev), d_deltaq_wk_gw(klon, klev))
1012    ALLOCATE(d_deltat_vdf(klon, klev), d_deltaq_vdf(klon, klev))
1013    !!      ALLOCATE( d_s_vdf(klon), d_dens_vdf(klon))
1014    ALLOCATE(d_deltat_the(klon, klev), d_deltaq_the(klon, klev))
1015    !!      ALLOCATE( d_s_the(klon), d_dens_the(klon))
1016    ALLOCATE(d_deltat_ajs_cv(klon, klev), d_deltaq_ajs_cv(klon, klev))
1017#ifdef ISO
1018      ALLOCATE(d_deltaxt_wk(ntraciso,klon, klev))
1019      ALLOCATE(d_deltaxt_wk_gw(ntraciso,klon, klev))
1020      ALLOCATE(d_deltaxt_the(ntraciso,klon, klev))
1021      ALLOCATE(d_deltaxt_vdf(ntraciso,klon, klev))
1022      ALLOCATE(d_deltaxt_ajs_cv(ntraciso,klon, klev))
1023#endif
1024    !!         End of wake variables
1025    !!
1026    ALLOCATE(bils(klon))
1027    ALLOCATE(cdragm(klon), cdragh(klon), cldh(klon), cldl(klon))
1028    ALLOCATE(cldm(klon), cldq(klon), cldt(klon), qsat2m(klon))
1029    ALLOCATE(JrNt(klon))
1030    ALLOCATE(dthmin(klon), evap(klon), snowerosion(klon), fder(klon), plcl(klon), plfc(klon))
1031    ALLOCATE(prw(klon), prlw(klon), prsw(klon), prbsw(klon), water_budget(klon), zustar(klon), zu10m(klon), zv10m(klon), rh2m(klon))
1032    ALLOCATE(s_lcl(klon))
1033    ALLOCATE(s_pblh(klon), s_pblt(klon), s_therm(klon))
1034
1035    !nrlmd+jyg<
1036    ALLOCATE(s_pblh_x(klon), s_pblh_w(klon))
1037    ALLOCATE(s_lcl_x(klon), s_lcl_w(klon))
1038    !>nrlmd+jyg
1039
1040    ALLOCATE(slab_wfbils(klon), tpot(klon), tpote(klon), ue(klon))
1041    ALLOCATE(uq(klon), ve(klon), vq(klon), zxffonte(klon))
1042    ALLOCATE(uwat(klon), vwat(klon))
1043    ALLOCATE(zxfqcalving(klon), zxfluxlat(klon))
1044    ALLOCATE(zxtsol(klon), snow_lsc(klon), zxfqfonte(klon), zxqsurf(klon))
1045! SN add runoff_diag
1046      ALLOCATE(zxrunofflic(klon), runoff_diag(klon))
1047      runoff_diag(:)=0.
1048    ALLOCATE(zxustartlic(klon), zxrhoslic(klon), zxqsaltlic(klon))
1049    zxustartlic(:) = 0. ; zxrhoslic(:) = 0. ; zxqsaltlic(:) = 0.
1050    ALLOCATE(rain_lsc(klon))
1051    ALLOCATE(rain_num(klon))
1052    ALLOCATE(qlth(klon, klev), qith(klon, klev), qsith(klon, klev), wiceth(klon, klev))
1053#ifdef ISO
1054      ALLOCATE(xtevap(ntraciso,klon))
1055      ALLOCATE(xtprw(ntraciso,klon))
1056      ALLOCATE(zxfxtcalving(niso,klon))
1057      ALLOCATE(xtsnow_lsc(ntraciso,klon), zxfxtfonte(niso,klon))
1058      ALLOCATE(zxxtrunofflic(niso,klon))
1059      ALLOCATE(xtrain_lsc(ntraciso,klon))
1060      ALLOCATE(xtrunoff_diag(niso,klon))
1061      ALLOCATE(h1_diag(klon))
1062!SN
1063      xtrunoff_diag(:,:)=0. ! because variables are only given values on knon grid points
1064#endif
1065
1066    ALLOCATE(sens_x(klon), sens_w(klon))
1067    ALLOCATE(zxfluxlat_x(klon), zxfluxlat_w(klon))
1068    ALLOCATE(delta_qsurf(klon))
1069    !jyg<
1070    !!      ALLOCATE(t_x(klon,klev), t_w(klon,klev))
1071    !!      ALLOCATE(q_x(klon,klev), q_w(klon,klev))
1072    !>jyg
1073    ALLOCATE(dtvdf_x(klon, klev), dtvdf_w(klon, klev))
1074    dtvdf_x = 0 ; dtvdf_w = 0 ;
1075    !ym missing init
1076    ALLOCATE(dqvdf_x(klon, klev), dqvdf_w(klon, klev))
1077    dqvdf_x = 0 ; dqvdf_w = 0 ;
1078    !ym missing init
1079    ALLOCATE(pbl_tke_input(klon, klev + 1, nbsrf))
1080    ALLOCATE(t_therm(klon, klev), q_therm(klon, klev), u_therm(klon, klev), v_therm(klon, klev))
1081    ALLOCATE(cdragh_x(klon), cdragh_w(klon))
1082    ALLOCATE(cdragm_x(klon), cdragm_w(klon))
1083    ALLOCATE(kh(klon), kh_x(klon), kh_w(klon))
1084#ifdef ISO
1085      ALLOCATE(dxtvdf_x(ntraciso,klon,klev), dxtvdf_w(ntraciso,klon,klev))
1086      ALLOCATE(xt_therm(ntraciso,klon,klev))
1087#endif
1088
1089    ALLOCATE(ptconv(klon, klev))
1090    ALLOCATE(ratqsc(klon, klev))
1091
1092    ALLOCATE(wbeff(klon), convoccur(klon), zmax_th(klon))
1093    ALLOCATE(zq2m(klon), zt2m(klon), weak_inversion(klon))
1094    ALLOCATE(zt2m_min_mon(klon), zt2m_max_mon(klon))
1095    ALLOCATE(t2m_min_mon(klon), t2m_max_mon(klon))
1096    ALLOCATE(sens(klon), flwp(klon), fiwp(klon))
1097    ALLOCATE(alp_bl_conv(klon), alp_bl_det(klon))
1098    alp_bl_conv(:) = 0 ;  alp_bl_det(:) = 0
1099    ALLOCATE(alp_bl_fluct_m(klon), alp_bl_fluct_tke(klon))
1100    alp_bl_fluct_m(:) = 0 ; alp_bl_fluct_tke(:) = 0.
1101    ALLOCATE(alp_bl_stat(klon), n2(klon), s2(klon), strig(klon), zcong(klon), zlcl_th(klon))
1102    alp_bl_stat(:) = 0
1103    ALLOCATE(proba_notrig(klon), random_notrig(klon))
1104
1105    ALLOCATE(dnwd0(klon, klev))
1106    !      ALLOCATE(upwd(klon, klev), omega(klon, klev), coefh(klon, klev))
1107    ALLOCATE(omega(klon, klev))
1108    ALLOCATE(epmax_diag(klon)) ! epmax_cape
1109    !      ALLOCATE(coefm(klon, klev), lambda_th(klon, klev), cldemi(klon, klev))
1110    ALLOCATE(lambda_th(klon, klev), cldemi(klon, klev))
1111    ALLOCATE(cldfra(klon, klev), cldtau(klon, klev), fiwc(klon, klev))
1112    ALLOCATE(fl(klon, klev), re(klon, klev), flwc(klon, klev))
1113    ALLOCATE(ref_liq(klon, klev), ref_ice(klon, klev), theta(klon, klev))
1114    ALLOCATE(ref_liq_pi(klon, klev), ref_ice_pi(klon, klev))
1115    ALLOCATE(zphi(klon, klev), zx_rh(klon, klev), zx_rhl(klon, klev), zx_rhi(klon, klev))
1116    zx_rhl(:, :) = 0.; zx_rhi(:, :) = 0. ! because not always defined
1117    ALLOCATE(pmfd(klon, klev), pmfu(klon, klev))
1118
1119    ALLOCATE(t2m(klon, nbsrf), fluxlat(klon, nbsrf))
1120    ALLOCATE(fsollw(klon, nbsrf))
1121    ALLOCATE(fsolsw(klon, nbsrf), wfbils(klon, nbsrf))
1122    ALLOCATE(wfevap(klon, nbsrf))
1123    ALLOCATE(evap_pot(klon, nbsrf))
1124    ! FC
1125    ALLOCATE(zxfluxq(klon, klev), zxfluxt(klon, klev))
1126
1127    !  Deep convective variables used in phytrac
1128    ALLOCATE(pmflxr(klon, klev + 1), pmflxs(klon, klev + 1))
1129    ALLOCATE(wdtrainA(klon, klev), wdtrainS(klon, klev), wdtrainM(klon, klev))
1130    ALLOCATE(dnwd(klon, klev), upwd(klon, klev))
1131    ALLOCATE(ep(klon, klev))                          ! epmax_cape
1132    ALLOCATE(da(klon, klev), mp(klon, klev))
1133    ALLOCATE(phi(klon, klev, klev))
1134    ALLOCATE(wght_cvfd(klon, klev))
1135    ALLOCATE(phi2(klon, klev, klev))
1136    ALLOCATE(d1a(klon, klev), dam(klon, klev))
1137    ALLOCATE(ev(klon, klev))
1138    ALLOCATE(elij(klon, klev, klev))
1139    ALLOCATE(qtaa(klon, klev))
1140    ALLOCATE(clw(klon, klev))
1141    ALLOCATE(epmlmMm(klon, klev, klev), eplaMm(klon, klev))
1142    ALLOCATE(sij(klon, klev, klev))
1143#ifdef ISO
1144      ALLOCATE(xtwdtrainA(ntraciso,klon,klev))
1145      ALLOCATE(xtev(ntraciso,klon,klev) )
1146      ALLOCATE(xttaa(ntraciso,klon,klev) )
1147      ALLOCATE(xtclw(ntraciso,klon,klev) )
1148#ifdef DIAGISO
1149      ALLOCATE(qlp(klon,klev))
1150      ALLOCATE(qvp(klon,klev))
1151      ALLOCATE(fq_detrainement(klon,klev))
1152      ALLOCATE(fq_ddft(klon,klev))
1153      ALLOCATE(fq_fluxmasse(klon,klev))
1154      ALLOCATE(fq_evapprecip(klon,klev))
1155      ALLOCATE(f_detrainement(klon,klev), q_detrainement(klon,klev))
1156      ALLOCATE(xtlp(ntraciso,klon,klev))
1157      ALLOCATE(xtvp(ntraciso,klon,klev))
1158      ALLOCATE(q_the(klon,klev), xt_the(ntraciso,klon,klev))
1159      ALLOCATE(fxt_detrainement(ntraciso,klon,klev))
1160      ALLOCATE(fxt_ddft(ntraciso,klon,klev))
1161      ALLOCATE(fxt_fluxmasse(ntraciso,klon,klev))
1162      ALLOCATE(fxt_evapprecip(ntraciso,klon,klev))
1163      ALLOCATE(xt_detrainement(ntraciso,klon,klev))
1164#endif
1165#endif
1166
1167    ALLOCATE(prfl(klon, klev + 1))
1168    ALLOCATE(psfl(klon, klev + 1), fraca(klon, klev + 1), Vprecip(klon, klev + 1))
1169    ALLOCATE(bsfl(klon, klev + 1))
1170    ALLOCATE(zw2(klon, klev + 1))
1171
1172    ALLOCATE(fluxu(klon, klev, nbsrf), fluxv(klon, klev, nbsrf))
1173    ALLOCATE(fluxt(klon, klev, nbsrf))
1174
1175    ALLOCATE(uwriteSTD(klon, nlevSTD, nfiles), vwriteSTD(klon, nlevSTD, nfiles))
1176    ALLOCATE(wwriteSTD(klon, nlevSTD, nfiles), phiwriteSTD(klon, nlevSTD, nfiles))
1177    ALLOCATE(qwriteSTD(klon, nlevSTD, nfiles), twriteSTD(klon, nlevSTD, nfiles))
1178    ALLOCATE(rhwriteSTD(klon, nlevSTD, nfiles))
1179
1180    ! ug et d'autres encore:
1181    ALLOCATE(beta_prec(klon, klev))
1182    ALLOCATE(rneb(klon, klev), rnebjn(klon, klev), rneblsvol(klon, klev))
1183    ALLOCATE(pfraclr(klon, klev), pfracld(klon, klev))
1184    pfraclr(:, :) = 0. ; pfracld(:, :) = 0. ! because not always defined
1185    ALLOCATE(cldfraliq(klon, klev))
1186    ALLOCATE(sigma2_icefracturb(klon, klev))
1187    ALLOCATE(mean_icefracturb(klon, klev))
1188    ALLOCATE(distcltop(klon, klev))
1189    ALLOCATE(temp_cltop(klon, klev))
1190
1191    ALLOCATE (zxsnow(klon), snowhgt(klon), qsnow(klon), to_ice(klon))
1192    ALLOCATE (sissnow(klon), runoff(klon), albsol3_lic(klon))
1193#ifdef ISO
1194      ALLOCATE (zxxtsnow(niso,klon))
1195      ALLOCATE(xtVprecip(ntraciso,klon, klev+1),xtVprecipi(ntraciso,klon, klev+1))
1196      ALLOCATE(pxtsfl(ntraciso,klon, klev+1),pxtrfl(ntraciso,klon, klev+1))
1197#endif
1198
1199    ALLOCATE (p_tropopause(klon))
1200    ALLOCATE (z_tropopause(klon))
1201    ALLOCATE (t_tropopause(klon))
1202
1203    ALLOCATE(zn2mout(klon, 6))
1204
1205    ! Supersaturation
1206    ALLOCATE(rneb_seri(klon, klev))
1207    ALLOCATE(d_rneb_dyn(klon, klev))
1208    ALLOCATE(qclr(klon, klev), qcld(klon, klev), qss(klon, klev), qvc(klon, klev))
1209    ALLOCATE(rnebclr(klon, klev), rnebss(klon, klev), gamma_ss(klon, klev))
1210    ALLOCATE(N1_ss(klon, klev), N2_ss(klon, klev))
1211    ALLOCATE(drneb_sub(klon, klev), drneb_con(klon, klev), drneb_tur(klon, klev), drneb_avi(klon, klev))
1212    ALLOCATE(zqsatl(klon, klev), zqsats(klon, klev))
1213    ALLOCATE(Tcontr(klon, klev), qcontr(klon, klev), qcontr2(klon, klev), fcontrN(klon, klev), fcontrP(klon, klev))
1214
1215    !--POPRECIP variables
1216    ALLOCATE(qraindiag(klon, klev), qsnowdiag(klon, klev))
1217    ALLOCATE(dqreva(klon, klev), dqssub(klon, klev))
1218    ALLOCATE(dqrauto(klon, klev), dqrcol(klon, klev), dqrmelt(klon, klev), dqrfreez(klon, klev))
1219    ALLOCATE(dqsauto(klon, klev), dqsagg(klon, klev), dqsrim(klon, klev), dqsmelt(klon, klev), dqsfreez(klon, klev))
1220
1221    IF (CPPKEY_STRATAER) THEN
1222      ALLOCATE (d_q_emiss(klon, klev))
1223      ALLOCATE (R2SO4(klon, klev))
1224      ALLOCATE (R2SO4B(klon, klev, nbtr_bin))
1225      ALLOCATE (DENSO4(klon, klev))
1226      ALLOCATE (DENSO4B(klon, klev, nbtr_bin))
1227      ALLOCATE (f_r_wet(klon, klev))
1228      ALLOCATE (f_r_wetB(klon, klev, nbtr_bin))
1229      ALLOCATE (decfluxaer(klon, nbtr))
1230      ALLOCATE (mdw(nbtr))
1231      ALLOCATE (budg_3D_nucl(klon, klev))
1232      ALLOCATE (budg_3D_cond_evap(klon, klev))
1233      ALLOCATE (budg_3D_ocs_to_so2(klon, klev))
1234      ALLOCATE (budg_3D_so2_to_h2so4(klon, klev))
1235      ALLOCATE (budg_3D_backgr_ocs(klon, klev))
1236      ALLOCATE (budg_3D_backgr_so2(klon, klev))
1237      ALLOCATE (OCS_lifetime(klon, klev))
1238      ALLOCATE (SO2_lifetime(klon, klev))
1239      ALLOCATE (H2SO4_lifetime(klon, klev))
1240      ALLOCATE (O3_clim(klon, klev))
1241      ALLOCATE (alpha_bin(nbands_sw_rrtm + nbands_lw_rrtm + nwave, nbtr))
1242      ALLOCATE (piz_bin(nbands_sw_rrtm + nbands_lw_rrtm + nwave, nbtr))
1243      ALLOCATE (cg_bin(nbands_sw_rrtm + nbands_lw_rrtm + nwave, nbtr))
1244      ALLOCATE (tau_strat_550(klon, klev))
1245      ALLOCATE (tau_strat_1020(klon, klev))
1246      ALLOCATE (tausum_strat(klon, 3))
1247      ALLOCATE (budg_dep_dry_ocs(klon))
1248      ALLOCATE (budg_dep_wet_ocs(klon))
1249      ALLOCATE (budg_dep_dry_so2(klon))
1250      ALLOCATE (budg_dep_wet_so2(klon))
1251      ALLOCATE (budg_dep_dry_h2so4(klon))
1252      ALLOCATE (budg_dep_wet_h2so4(klon))
1253      ALLOCATE (budg_dep_dry_part(klon))
1254      ALLOCATE (budg_dep_wet_part(klon))
1255      ALLOCATE (budg_emi_ocs(klon))
1256      ALLOCATE (budg_emi_so2(klon))
1257      ALLOCATE (budg_emi_h2so4(klon))
1258      ALLOCATE (budg_emi_part(klon))
1259      ALLOCATE (budg_ocs_to_so2(klon))
1260      ALLOCATE (budg_so2_to_h2so4(klon))
1261      ALLOCATE (budg_h2so4_to_part(klon))
1262      ALLOCATE (budg_sed_part(klon))
1263      ALLOCATE (surf_PM25_sulf(klon))
1264      ALLOCATE (vsed_aer(klon, klev))
1265      ALLOCATE (sulfmmr(klon, klev))
1266      ALLOCATE (SAD_sulfate(klon, klev))
1267      ALLOCATE (sulfmmr_mode(klon, klev, nbtr_bin))
1268      ALLOCATE (nd_mode(klon, klev, nbtr_bin))
1269    END IF
1270
1271  END SUBROUTINE phys_local_var_init
1272
1273  !======================================================================
1274  SUBROUTINE phys_local_var_end
1275    USE dimphy
1276    USE indice_sol_mod
1277    IMPLICIT NONE
1278    DEALLOCATE(t_seri, q_seri, ql_seri, qs_seri, qbs_seri)
1279    ! SN 4D ISO
1280    DEALLOCATE(qx_seri)
1281    ! SN
1282    DEALLOCATE(u_seri, v_seri)
1283    DEALLOCATE(l_mixmin, l_mix, wprime)
1284    DEALLOCATE(tke_shear, tke_buoy, tke_trans)
1285    DEALLOCATE(pbl_eps)
1286    DEALLOCATE(rhcl)
1287    DEALLOCATE(tr_seri)
1288    DEALLOCATE(d_t_dyn, d_q_dyn)
1289    DEALLOCATE(d_ql_dyn, d_qs_dyn, d_qbs_dyn)
1290    DEALLOCATE(d_q_dyn2d, d_ql_dyn2d, d_qs_dyn2d, d_qbs_dyn2d)
1291    DEALLOCATE(d_u_dyn, d_v_dyn)
1292    DEALLOCATE(d_tr_dyn)                      !RomP
1293    DEALLOCATE(d_t_con, d_q_con, d_q_con_zmasse)
1294    DEALLOCATE(d_u_con, d_v_con)
1295    DEALLOCATE(d_t_wake, d_q_wake)
1296    DEALLOCATE(d_t_lsc, d_q_lsc)
1297    DEALLOCATE(d_t_lwr, d_t_lw0)
1298    DEALLOCATE(d_t_swr, d_t_sw0)
1299    DEALLOCATE(d_ql_lsc, d_qi_lsc)
1300    DEALLOCATE(d_t_ajsb, d_q_ajsb)
1301    DEALLOCATE(d_t_ajs, d_q_ajs)
1302    !nrlmd<
1303    DEALLOCATE(d_t_ajs_w, d_q_ajs_w)
1304    DEALLOCATE(d_t_ajs_x, d_q_ajs_x)
1305    !>nrlmd
1306    DEALLOCATE(d_u_ajs, d_v_ajs)
1307    DEALLOCATE(d_t_eva, d_q_eva)
1308    ! SN 4D ISO
1309    DEALLOCATE(d_qx_eva)
1310    ! SN
1311    DEALLOCATE(d_ql_eva, d_qi_eva)
1312    DEALLOCATE(d_t_lscst, d_q_lscst)
1313    DEALLOCATE(d_t_lscth, d_q_lscth)
1314    DEALLOCATE(plul_st, plul_th)
1315    DEALLOCATE(d_t_vdf, d_q_vdf, d_t_diss)
1316    DEALLOCATE(d_qbs_vdf)
1317    DEALLOCATE(d_t_bsss, d_q_bsss, d_qbs_bsss)
1318#ifdef ISO
1319      deallocate(xt_seri,xtl_seri,xts_seri,xtbs_seri)
1320      DEALLOCATE(d_xtl_eva,d_xti_eva)
1321      deallocate(d_xt_dyn,d_xtl_dyn,d_xts_dyn,d_xtbs_dyn)
1322      deallocate(d_xt_con)
1323      deallocate(d_xt_wake)
1324      deallocate(d_xt_lsc)
1325      deallocate(d_xtl_lsc,d_xti_lsc)
1326      deallocate(d_xt_ajsb)
1327      deallocate(d_xt_ajs)
1328      deallocate(d_xt_ajs_w,d_xt_ajs_x)
1329      deallocate(d_xt_eva)
1330      deallocate(d_xtl_eva)
1331      deallocate(d_xti_eva)
1332      deallocate(d_xt_vdf)
1333      deallocate(d_xt_vdf_w,d_xt_vdf_x)
1334      deallocate(d_xt_ch4)
1335      deallocate(d_xt_prod_nucl)
1336      deallocate(d_xt_cosmo)
1337      deallocate(d_xt_decroiss)
1338#endif
1339
1340    DEALLOCATE(d_u_vdf, d_v_vdf)
1341    DEALLOCATE(d_t_oli, d_t_oro)
1342    DEALLOCATE(d_u_oli, d_v_oli)
1343    DEALLOCATE(d_u_oro, d_v_oro)
1344    DEALLOCATE(d_t_oro_gw)
1345    DEALLOCATE(d_u_oro_gw, d_v_oro_gw)
1346    DEALLOCATE(d_t_lif, d_t_ec)
1347    DEALLOCATE(d_u_lif, d_v_lif)
1348    DEALLOCATE(d_ts, d_tr)
1349    DEALLOCATE(topswad_aero, solswad_aero)
1350    DEALLOCATE(topswai_aero, solswai_aero)
1351    DEALLOCATE(topswad0_aero, solswad0_aero)
1352    DEALLOCATE(toplwad_aero, sollwad_aero)
1353    DEALLOCATE(toplwai_aero, sollwai_aero)
1354    DEALLOCATE(toplwad0_aero, sollwad0_aero)
1355    DEALLOCATE(topsw_aero, solsw_aero)
1356    DEALLOCATE(topsw0_aero, solsw0_aero)
1357    DEALLOCATE(topswcf_aero, solswcf_aero)
1358    DEALLOCATE(stratomask)
1359    DEALLOCATE(tausum_aero)
1360    DEALLOCATE(drytausum_aero)
1361    DEALLOCATE(tau3d_aero)
1362    DEALLOCATE(dNovrN)
1363    DEALLOCATE(zfice)
1364    DEALLOCATE(od443aer)
1365    DEALLOCATE(od550aer)
1366    DEALLOCATE(od865aer)
1367    DEALLOCATE(dryod550aer)
1368    DEALLOCATE(abs550aer)
1369    DEALLOCATE(ec550aer)
1370    DEALLOCATE(od550lt1aer)
1371    DEALLOCATE(sconcso4)
1372    DEALLOCATE(sconcno3)
1373    DEALLOCATE(sconcoa)
1374    DEALLOCATE(sconcbc)
1375    DEALLOCATE(sconcss)
1376    DEALLOCATE(sconcdust)
1377    DEALLOCATE(concso4)
1378    DEALLOCATE(concno3)
1379    DEALLOCATE(concoa)
1380    DEALLOCATE(concbc)
1381    DEALLOCATE(concss)
1382    DEALLOCATE(concdust)
1383    DEALLOCATE(loadso4)
1384    DEALLOCATE(loadoa)
1385    DEALLOCATE(loadbc)
1386    DEALLOCATE(loadss)
1387    DEALLOCATE(loaddust)
1388    DEALLOCATE(loadno3)
1389    DEALLOCATE(load_tmp1)
1390    DEALLOCATE(load_tmp2)
1391    DEALLOCATE(load_tmp3)
1392    DEALLOCATE(load_tmp4)
1393    DEALLOCATE(load_tmp5)
1394    DEALLOCATE(load_tmp6)
1395    DEALLOCATE(load_tmp7)
1396    DEALLOCATE(load_tmp8)
1397    DEALLOCATE(load_tmp9)
1398    DEALLOCATE(load_tmp10)
1399    DEALLOCATE(du_gwd_hines, dv_gwd_hines, d_t_hin)
1400    DEALLOCATE(d_q_ch4)
1401    DEALLOCATE(dv_gwd_rando, dv_gwd_front)
1402    DEALLOCATE(east_gwstress, west_gwstress)
1403
1404    !IM ajout variables CFMIP2/CMIP5
1405    DEALLOCATE(topswad_aerop, solswad_aerop)
1406    DEALLOCATE(topswai_aerop, solswai_aerop)
1407    DEALLOCATE(topswad0_aerop, solswad0_aerop)
1408    DEALLOCATE(topsw_aerop, topsw0_aerop)
1409    DEALLOCATE(solsw_aerop, solsw0_aerop)
1410    DEALLOCATE(topswcf_aerop, solswcf_aerop)
1411    !CK LW diagnostics
1412    DEALLOCATE(toplwad_aerop, sollwad_aerop)
1413    DEALLOCATE(toplwai_aerop, sollwai_aerop)
1414    DEALLOCATE(toplwad0_aerop, sollwad0_aerop)
1415
1416    !AI Ajout pour Ecrad (3Deffect)
1417    DEALLOCATE(topswad_aero_s2, solswad_aero_s2)
1418    DEALLOCATE(topswai_aero_s2, solswai_aero_s2)
1419    DEALLOCATE(topswad0_aero_s2, solswad0_aero_s2)
1420    DEALLOCATE(topsw_aero_s2, topsw0_aero_s2)
1421    DEALLOCATE(solsw_aero_s2, solsw0_aero_s2)
1422    DEALLOCATE(topswcf_aero_s2, solswcf_aero_s2)
1423    !CK LW diagnostics
1424    DEALLOCATE(toplwad_aero_s2, sollwad_aero_s2)
1425    DEALLOCATE(toplwai_aero_s2, sollwai_aero_s2)
1426    DEALLOCATE(toplwad0_aero_s2, sollwad0_aero_s2)
1427
1428    ! FH Ajout de celles necessaires au phys_output_write_mod
1429    DEALLOCATE(tal1, pal1, pab1, pab2)
1430    DEALLOCATE(ptstar, pt0, slp)
1431
1432    DEALLOCATE(alp_wake)
1433    DEALLOCATE(wake_h, wake_k)
1434    DEALLOCATE(wake_omg)
1435    DEALLOCATE(d_deltat_wk, d_deltaq_wk)
1436    DEALLOCATE(d_s_wk, d_s_a_wk, d_dens_wk, d_dens_a_wk)
1437    DEALLOCATE(d_deltat_wk_gw, d_deltaq_wk_gw)
1438    DEALLOCATE(d_deltat_vdf, d_deltaq_vdf)
1439    !!      DEALLOCATE( d_s_vdf, d_dens_vdf)
1440    DEALLOCATE(d_deltat_the, d_deltaq_the)
1441    !!      DEALLOCATE( d_s_the, d_dens_the)
1442    DEALLOCATE(d_deltat_ajs_cv, d_deltaq_ajs_cv)
1443#ifdef ISO
1444      DEALLOCATE(d_deltaxt_wk)
1445      DEALLOCATE(d_deltaxt_wk_gw)
1446      DEALLOCATE(d_deltaxt_ajs_cv)
1447      DEALLOCATE(d_deltaxt_vdf)
1448#endif
1449
1450    DEALLOCATE(bils)
1451    DEALLOCATE(cdragm, cdragh, cldh, cldl)
1452    DEALLOCATE(cldm, cldq, cldt, qsat2m)
1453    DEALLOCATE(JrNt)
1454    DEALLOCATE(dthmin, evap, snowerosion, fder, plcl, plfc)
1455    DEALLOCATE(prw, prlw, prsw, prbsw, water_budget, zustar, zu10m, zv10m, rh2m, s_lcl)
1456    DEALLOCATE(s_pblh, s_pblt, s_therm)
1457
1458    !nrlmd+jyg<
1459    DEALLOCATE(s_pblh_x, s_pblh_w)
1460    DEALLOCATE(s_lcl_x, s_lcl_w)
1461    !>nrlmd+jyg
1462
1463    DEALLOCATE(slab_wfbils, tpot, tpote, ue)
1464    DEALLOCATE(uq, ve, vq, zxffonte)
1465    DEALLOCATE(uwat, vwat)
1466    DEALLOCATE(zxfqcalving, zxfluxlat)
1467! SN runoff_diag
1468      DEALLOCATE(zxrunofflic, runoff_diag)
1469    DEALLOCATE(zxustartlic, zxrhoslic, zxqsaltlic)
1470    DEALLOCATE(zxtsol, snow_lsc, zxfqfonte, zxqsurf)
1471    DEALLOCATE(rain_lsc)
1472    DEALLOCATE(rain_num)
1473    DEALLOCATE(qlth, qith, qsith, wiceth)
1474
1475    DEALLOCATE(sens_x, sens_w)
1476    DEALLOCATE(zxfluxlat_x, zxfluxlat_w)
1477    DEALLOCATE(delta_qsurf)
1478    !jyg<
1479    !!      DEALLOCATE(t_x, t_w)
1480    !!      DEALLOCATE(q_x, q_w)
1481    !>jyg
1482    DEALLOCATE(d_t_vdf_x, d_t_vdf_w)
1483    DEALLOCATE(d_q_vdf_x, d_q_vdf_w)
1484    DEALLOCATE(pbl_tke_input)
1485    DEALLOCATE(t_therm, q_therm, u_therm, v_therm)
1486    DEALLOCATE(cdragh_x, cdragh_w)
1487    DEALLOCATE(cdragm_x, cdragm_w)
1488    DEALLOCATE(kh, kh_x, kh_w)
1489#ifdef ISO
1490      DEALLOCATE(xtevap,xtprw)
1491      DEALLOCATE(zxfxtcalving)
1492      DEALLOCATE(zxxtrunofflic)
1493      DEALLOCATE(xtsnow_lsc, zxfxtfonte)
1494      DEALLOCATE(xtrain_lsc)
1495      DEALLOCATE(dxtvdf_x, dxtvdf_w)
1496      DEALLOCATE(xt_therm)
1497      DEALLOCATE(h1_diag,xtrunoff_diag)
1498#endif
1499
1500    DEALLOCATE(ptconv)
1501    DEALLOCATE(ratqsc)
1502
1503    DEALLOCATE(wbeff, convoccur, zmax_th)
1504    DEALLOCATE(zq2m, zt2m, weak_inversion)
1505    DEALLOCATE(zt2m_min_mon, zt2m_max_mon)
1506    DEALLOCATE(t2m_min_mon, t2m_max_mon)
1507    DEALLOCATE(sens, flwp, fiwp)
1508    DEALLOCATE(alp_bl_conv, alp_bl_det)
1509    DEALLOCATE(alp_bl_fluct_m, alp_bl_fluct_tke)
1510    DEALLOCATE(alp_bl_stat, n2, s2, strig, zcong, zlcl_th)
1511    DEALLOCATE(proba_notrig, random_notrig)
1512    !FC
1513    DEALLOCATE(zxfluxq, zxfluxt)
1514
1515    DEALLOCATE(dnwd0)
1516    !      DEALLOCATE(upwd, omega, coefh)
1517    DEALLOCATE(omega)
1518    DEALLOCATE(epmax_diag)
1519    !      DEALLOCATE(coefm, lambda_th, cldemi)
1520    DEALLOCATE(lambda_th, cldemi)
1521    DEALLOCATE(cldfra, cldtau, fiwc)
1522    DEALLOCATE(fl, re, flwc)
1523    DEALLOCATE(ref_liq, ref_ice, theta)
1524    DEALLOCATE(ref_liq_pi, ref_ice_pi)
1525    DEALLOCATE(zphi, zx_rh, zx_rhl, zx_rhi)
1526    DEALLOCATE(pmfd, pmfu)
1527
1528    DEALLOCATE(t2m, fluxlat)
1529    DEALLOCATE(fsollw, evap_pot)
1530    DEALLOCATE(fsolsw, wfbils)
1531    DEALLOCATE(wfevap)
1532
1533    DEALLOCATE(pmflxr, pmflxs)
1534    DEALLOCATE(wdtrainA, wdtrainS, wdtrainM)
1535    DEALLOCATE(upwd, dnwd)
1536    DEALLOCATE(ep)
1537    DEALLOCATE(da, mp)
1538    DEALLOCATE(phi)
1539    DEALLOCATE(wght_cvfd)
1540    DEALLOCATE(phi2)
1541    DEALLOCATE(d1a, dam)
1542    DEALLOCATE(ev)
1543    DEALLOCATE(elij)
1544    DEALLOCATE(qtaa)
1545    DEALLOCATE(clw)
1546    DEALLOCATE(epmlmMm, eplaMm)
1547    DEALLOCATE(sij)
1548#ifdef ISO
1549      DEALLOCATE(xtwdtrainA)
1550      DEALLOCATE(xttaa )
1551      DEALLOCATE(xtclw )
1552      DEALLOCATE(xtev )
1553#ifdef DIAGISO
1554      DEALLOCATE(qlp)
1555      DEALLOCATE(qvp)
1556      DEALLOCATE(fq_detrainement)
1557      DEALLOCATE(fq_ddft)
1558      DEALLOCATE(fq_fluxmasse)
1559      DEALLOCATE(fq_evapprecip)
1560      DEALLOCATE(f_detrainement,q_detrainement)
1561      DEALLOCATE(xtlp)
1562      DEALLOCATE(xtvp)
1563      DEALLOCATE(q_the,xt_the)
1564      DEALLOCATE(fxt_detrainement)
1565      DEALLOCATE(fxt_ddft)
1566      DEALLOCATE(fxt_fluxmasse)
1567      DEALLOCATE(fxt_evapprecip)
1568      DEALLOCATE(xt_detrainement)
1569#endif
1570#endif
1571
1572
1573    DEALLOCATE(prfl, psfl, bsfl, fraca, Vprecip)
1574    DEALLOCATE(zw2)
1575
1576    DEALLOCATE(fluxu, fluxv)
1577    DEALLOCATE(fluxt)
1578
1579    DEALLOCATE(uwriteSTD, vwriteSTD)
1580    DEALLOCATE(wwriteSTD, phiwriteSTD)
1581    DEALLOCATE(qwriteSTD, twriteSTD, rhwriteSTD)
1582
1583    ! ug et d'autres encore:
1584    DEALLOCATE(beta_prec)
1585    DEALLOCATE(rneb)
1586    DEALLOCATE(pfraclr, pfracld)
1587    DEALLOCATE(cldfraliq)
1588    DEALLOCATE(sigma2_icefracturb)
1589    DEALLOCATE(mean_icefracturb)
1590    DEALLOCATE (zxsnow, snowhgt, qsnow, to_ice, sissnow, runoff, albsol3_lic)
1591    DEALLOCATE(distcltop)
1592    DEALLOCATE(temp_cltop)
1593#ifdef ISO
1594      DEALLOCATE (zxxtsnow,xtVprecip,xtVprecipi,pxtrfl,pxtsfl)
1595#endif
1596
1597    DEALLOCATE (p_tropopause)
1598    DEALLOCATE (z_tropopause)
1599    DEALLOCATE (t_tropopause)
1600    DEALLOCATE(zn2mout)
1601
1602    ! Supersaturation
1603    DEALLOCATE(rneb_seri)
1604    DEALLOCATE(d_rneb_dyn)
1605    DEALLOCATE(qclr, qcld, qss, qvc)
1606    DEALLOCATE(rnebclr, rnebss, gamma_ss)
1607    DEALLOCATE(N1_ss, N2_ss)
1608    DEALLOCATE(drneb_sub, drneb_con, drneb_tur, drneb_avi)
1609    DEALLOCATE(zqsatl, zqsats)
1610    DEALLOCATE(Tcontr, qcontr, qcontr2, fcontrN, fcontrP)
1611
1612    !--POPRECIP variables
1613    DEALLOCATE(qraindiag, qsnowdiag)
1614    DEALLOCATE(dqreva, dqssub)
1615    DEALLOCATE(dqrauto, dqrcol, dqrmelt, dqrfreez)
1616    DEALLOCATE(dqsauto, dqsagg, dqsrim, dqsmelt, dqsfreez)
1617
1618    IF (CPPKEY_STRATAER) THEN
1619      ! variables for strat. aerosol CK
1620      DEALLOCATE (d_q_emiss)
1621      DEALLOCATE (R2SO4, R2SO4B)
1622      DEALLOCATE (DENSO4, DENSO4B)
1623      DEALLOCATE (f_r_wet, f_r_wetB)
1624      DEALLOCATE (decfluxaer)
1625      DEALLOCATE (mdw)
1626      DEALLOCATE (SO2_lifetime)
1627      DEALLOCATE (OCS_lifetime)
1628      DEALLOCATE (H2SO4_lifetime)
1629      DEALLOCATE (O3_clim)
1630      DEALLOCATE (alpha_bin)
1631      DEALLOCATE (piz_bin)
1632      DEALLOCATE (cg_bin)
1633      DEALLOCATE (tau_strat_550)
1634      DEALLOCATE (tau_strat_1020)
1635      DEALLOCATE (tausum_strat)
1636      DEALLOCATE (surf_PM25_sulf)
1637      DEALLOCATE (vsed_aer)
1638      DEALLOCATE (sulfmmr)
1639      DEALLOCATE (SAD_sulfate)
1640      DEALLOCATE (sulfmmr_mode)
1641      DEALLOCATE (nd_mode)
1642      DEALLOCATE (budg_3D_ocs_to_so2)
1643      DEALLOCATE (budg_3D_so2_to_h2so4)
1644      DEALLOCATE (budg_3D_backgr_ocs)
1645      DEALLOCATE (budg_3D_backgr_so2)
1646      DEALLOCATE (budg_3D_nucl)
1647      DEALLOCATE (budg_3D_cond_evap)
1648      DEALLOCATE (budg_dep_dry_ocs)
1649      DEALLOCATE (budg_dep_wet_ocs)
1650      DEALLOCATE (budg_dep_dry_so2)
1651      DEALLOCATE (budg_dep_wet_so2)
1652      DEALLOCATE (budg_dep_dry_h2so4)
1653      DEALLOCATE (budg_dep_wet_h2so4)
1654      DEALLOCATE (budg_dep_dry_part)
1655      DEALLOCATE (budg_dep_wet_part)
1656      DEALLOCATE (budg_emi_ocs)
1657      DEALLOCATE (budg_emi_so2)
1658      DEALLOCATE (budg_emi_h2so4)
1659      DEALLOCATE (budg_emi_part)
1660      DEALLOCATE (budg_ocs_to_so2)
1661      DEALLOCATE (budg_so2_to_h2so4)
1662      DEALLOCATE (budg_h2so4_to_part)
1663      DEALLOCATE (budg_sed_part)
1664    END IF
1665
1666  END SUBROUTINE phys_local_var_end
1667
1668END MODULE phys_local_var_mod
Note: See TracBrowser for help on using the repository browser.