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

Last change on this file since 4889 was 4889, checked in by Laurent Fairhead, 7 weeks ago

Modifications from r4887 that were forgotten in phylmdiso
LF

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