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

Last change on this file since 3927 was 3927, checked in by Laurent Fairhead, 3 years ago

Initial import of the physics wih isotopes from Camille Risi
CR

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