source: LMDZ6/trunk/libf/phylmdiso/phys_local_var_mod.F90 @ 4768

Last change on this file since 4768 was 4753, checked in by lfalletti, 8 months ago

Add d_q_emiss declaration for Reprobus, which was missing.

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