source: LMDZ6/branches/LMDZ_ECRad/libf/phylmd/phys_local_var_mod.F90 @ 4202

Last change on this file since 4202 was 4188, checked in by idelkadi, 2 years ago

Implementation of the Ecrad radiative transfer code in the LMD model (continued) :
Integration of aerosols (direct effect)

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