source: LMDZ6/branches/Amaury_dev/libf/phylmdiso/phys_local_var_mod.F90 @ 5119

Last change on this file since 5119 was 5101, checked in by abarral, 4 months ago

Handle DEBUG_IO in lmdz_cppkeys_wrapper.F90
Transform some files .F -> .[fF]90
[ne compile pas à cause de writefield_u non défini - en attente de réponse Laurent]

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