source: LMDZ5/trunk/libf/phylmd/phys_local_var_mod.F90 @ 2534

Last change on this file since 2534 was 2518, checked in by jbmadeleine, 8 years ago

Declaration de la variable zxrunofflic qui manquait suite au commit 2517

  • 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: 33.8 KB
Line 
1!
2! $Id: phys_local_var_mod.F90 2518 2016-05-20 14:38:46Z musat $
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
19      REAL, SAVE, ALLOCATABLE :: tr_seri(:,:,:)
20      !$OMP THREADPRIVATE(tr_seri)
21      REAL, SAVE, ALLOCATABLE :: d_t_dyn(:,:), d_q_dyn(:,:)
22      !$OMP THREADPRIVATE(d_t_dyn, d_q_dyn)
23      REAL, SAVE, ALLOCATABLE :: d_ql_dyn(:,:), d_qs_dyn(:,:)
24      !$OMP THREADPRIVATE(d_ql_dyn, d_qs_dyn)
25      REAL, SAVE, ALLOCATABLE :: d_q_dyn2d(:), d_ql_dyn2d(:), d_qs_dyn2d(:)
26      !$OMP THREADPRIVATE(d_q_dyn2d, d_ql_dyn2d, d_qs_dyn2d)
27      REAL, SAVE, ALLOCATABLE :: d_u_dyn(:,:), d_v_dyn(:,:)
28      !$OMP THREADPRIVATE(d_u_dyn, d_v_dyn)
29!!!!
30      REAL, SAVE, ALLOCATABLE :: d_tr_dyn(:,:,:)
31      !$OMP THREADPRIVATE(d_tr_dyn)
32!!!!
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(:,:)
56      !$OMP THREADPRIVATE(d_t_eva,d_q_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_lif(:,:)
83      !$OMP THREADPRIVATE(d_t_lif)
84      REAL, SAVE, ALLOCATABLE :: d_u_lif(:,:), d_v_lif(:,:)
85      !$OMP THREADPRIVATE(d_u_lif, d_v_lif)
86! Tendances Ondes de G non oro (runs strato).
87      REAL, SAVE, ALLOCATABLE :: du_gwd_hines(:,:)
88      !$OMP THREADPRIVATE(du_gwd_hines)
89      REAL, SAVE, ALLOCATABLE :: dv_gwd_hines(:,:)
90      !$OMP THREADPRIVATE(dv_gwd_hines)
91      REAL, SAVE, ALLOCATABLE :: dv_gwd_rando(:,:)
92      !$OMP THREADPRIVATE(dv_gwd_rando)
93      REAL, SAVE, ALLOCATABLE :: dv_gwd_front(:,:)
94      !$OMP THREADPRIVATE(dv_gwd_front)
95      REAL, SAVE, ALLOCATABLE :: east_gwstress(:,:)
96      !$OMP THREADPRIVATE(east_gwstress)
97      REAL, SAVE, ALLOCATABLE :: west_gwstress(:,:)
98      !$OMP THREADPRIVATE(west_gwstress)
99      REAL, SAVE, ALLOCATABLE :: d_t_hin(:,:)
100      !$OMP THREADPRIVATE(d_t_hin)
101! tendance due a l'oxydation du methane
102      REAL, SAVE, ALLOCATABLE :: d_q_ch4(:,:)
103      !$OMP THREADPRIVATE(d_q_ch4)
104
105! tendance du a la conersion Ec -> E thermique
106      REAL, SAVE, ALLOCATABLE :: d_t_ec(:,:)
107      !$OMP THREADPRIVATE(d_t_ec)
108      REAL, SAVE, ALLOCATABLE :: d_ts(:,:), d_tr(:,:,:)
109      !$OMP THREADPRIVATE(d_ts, d_tr)
110
111! diagnostique pour le rayonnement
112      REAL, SAVE, ALLOCATABLE :: topswad_aero(:),  solswad_aero(:)      ! diag
113      !$OMP THREADPRIVATE(topswad_aero,solswad_aero)
114      REAL, SAVE, ALLOCATABLE :: topswai_aero(:),  solswai_aero(:)      ! diag
115      !$OMP THREADPRIVATE(topswai_aero,solswai_aero)
116      REAL, SAVE, ALLOCATABLE :: topswad0_aero(:), solswad0_aero(:)     ! diag
117      !$OMP THREADPRIVATE(topswad0_aero,solswad0_aero)
118      REAL, SAVE, ALLOCATABLE :: topsw_aero(:,:),  solsw_aero(:,:)      ! diag
119      !$OMP THREADPRIVATE(topsw_aero,solsw_aero)
120      REAL, SAVE, ALLOCATABLE :: topsw0_aero(:,:), solsw0_aero(:,:)     ! diag
121      !$OMP THREADPRIVATE(topsw0_aero,solsw0_aero)
122      REAL, SAVE, ALLOCATABLE :: topswcf_aero(:,:),  solswcf_aero(:,:)  ! diag
123      !$OMP THREADPRIVATE(topswcf_aero,solswcf_aero)
124! LW radiation diagnostics CK
125      REAL, SAVE, ALLOCATABLE :: toplwad_aero(:),  sollwad_aero(:)      ! diag
126      !$OMP THREADPRIVATE(toplwad_aero,sollwad_aero)
127      REAL, SAVE, ALLOCATABLE :: toplwai_aero(:),  sollwai_aero(:)      ! diag
128      !$OMP THREADPRIVATE(toplwai_aero,sollwai_aero)
129      REAL, SAVE, ALLOCATABLE :: toplwad0_aero(:), sollwad0_aero(:)     ! diag
130      !$OMP THREADPRIVATE(toplwad0_aero,sollwad0_aero)
131! Special RRTM
132      REAL, SAVE, ALLOCATABLE :: ZLWFT0_i(:,:),  ZSWFT0_i(:,:)      ! diag
133      !$OMP THREADPRIVATE(ZLWFT0_i,ZSWFT0_i)
134      REAL, SAVE, ALLOCATABLE :: ZFLDN0(:,:),  ZFLUP0(:,:)      ! diag
135      !$OMP THREADPRIVATE(ZFLDN0,ZFLUP0)
136      REAL, SAVE, ALLOCATABLE :: ZFSDN0(:,:),  ZFSUP0(:,:)      ! diag
137      !$OMP THREADPRIVATE(ZFSDN0,ZFSUP0)
138!
139      REAL, SAVE, ALLOCATABLE :: tausum_aero(:,:,:)
140      !$OMP THREADPRIVATE(tausum_aero)
141      REAL, SAVE, ALLOCATABLE :: tau3d_aero(:,:,:,:)
142      !$OMP THREADPRIVATE(tau3d_aero)
143      REAL, SAVE, ALLOCATABLE :: scdnc(:,:)
144      !$OMP THREADPRIVATE(scdnc)
145      REAL, SAVE, ALLOCATABLE :: cldncl(:)
146      !$OMP THREADPRIVATE(cldncl)
147      REAL, SAVE, ALLOCATABLE :: reffclwtop(:)
148      !$OMP THREADPRIVATE(reffclwtop)
149      REAL, SAVE, ALLOCATABLE :: lcc(:)
150      !$OMP THREADPRIVATE(lcc)
151      REAL, SAVE, ALLOCATABLE :: reffclws(:,:)
152      !$OMP THREADPRIVATE(reffclws)
153      REAL, SAVE, ALLOCATABLE :: reffclwc(:,:)
154      !$OMP THREADPRIVATE(reffclwc)
155      REAL, SAVE, ALLOCATABLE :: cldnvi(:)
156      !$OMP THREADPRIVATE(cldnvi)
157      REAL, SAVE, ALLOCATABLE :: lcc3d(:,:)
158      !$OMP THREADPRIVATE(lcc3d)
159      REAL, SAVE, ALLOCATABLE :: lcc3dcon(:,:)
160      !$OMP THREADPRIVATE(lcc3dcon)
161      REAL, SAVE, ALLOCATABLE :: lcc3dstra(:,:)
162      !$OMP THREADPRIVATE(lcc3dstra)
163      REAL, SAVE, ALLOCATABLE :: od550aer(:)
164      !$OMP THREADPRIVATE(od550aer)
165      REAL, SAVE, ALLOCATABLE :: absvisaer(:)
166      !$OMP THREADPRIVATE(absvisaer)
167      REAL, SAVE, ALLOCATABLE :: od865aer(:)
168      !$OMP THREADPRIVATE(od865aer)
169      REAL, SAVE, ALLOCATABLE :: ec550aer(:,:)
170      !$OMP THREADPRIVATE(ec550aer)
171      REAL, SAVE, ALLOCATABLE :: od550lt1aer(:)
172      !$OMP THREADPRIVATE(od550lt1aer)
173      REAL, SAVE, ALLOCATABLE :: sconcso4(:)
174      !$OMP THREADPRIVATE(sconcso4)
175      REAL, SAVE, ALLOCATABLE :: sconcno3(:)
176      !$OMP THREADPRIVATE(sconcno3)
177      REAL, SAVE, ALLOCATABLE :: sconcoa(:)
178      !$OMP THREADPRIVATE(sconcoa)
179      REAL, SAVE, ALLOCATABLE :: sconcbc(:)
180      !$OMP THREADPRIVATE(sconcbc)
181      REAL, SAVE, ALLOCATABLE :: sconcss(:)
182      !$OMP THREADPRIVATE(sconcss)
183      REAL, SAVE, ALLOCATABLE :: sconcdust(:)
184      !$OMP THREADPRIVATE(sconcdust)
185      REAL, SAVE, ALLOCATABLE :: concso4(:,:)
186      !$OMP THREADPRIVATE(concso4)
187      REAL, SAVE, ALLOCATABLE :: concno3(:,:)
188      !$OMP THREADPRIVATE(concno3)
189      REAL, SAVE, ALLOCATABLE :: concoa(:,:)
190      !$OMP THREADPRIVATE(concoa)
191      REAL, SAVE, ALLOCATABLE :: concbc(:,:)
192      !$OMP THREADPRIVATE(concbc)
193      REAL, SAVE, ALLOCATABLE :: concss(:,:)
194      !$OMP THREADPRIVATE(concss)
195      REAL, SAVE, ALLOCATABLE :: concdust(:,:)
196      !$OMP THREADPRIVATE(concdust)
197      REAL, SAVE, ALLOCATABLE :: loadso4(:)
198      !$OMP THREADPRIVATE(loadso4)
199      REAL, SAVE, ALLOCATABLE :: loadoa(:)
200      !$OMP THREADPRIVATE(loadoa)
201      REAL, SAVE, ALLOCATABLE :: loadbc(:)
202      !$OMP THREADPRIVATE(loadbc)
203      REAL, SAVE, ALLOCATABLE :: loadss(:)
204      !$OMP THREADPRIVATE(loadss)
205      REAL, SAVE, ALLOCATABLE :: loaddust(:)
206      !$OMP THREADPRIVATE(loaddust)
207      REAL, SAVE, ALLOCATABLE :: load_tmp1(:)
208      !$OMP THREADPRIVATE(load_tmp1)
209      REAL, SAVE, ALLOCATABLE :: load_tmp2(:)
210      !$OMP THREADPRIVATE(load_tmp2)
211      REAL, SAVE, ALLOCATABLE :: load_tmp3(:)
212      !$OMP THREADPRIVATE(load_tmp3)
213      REAL, SAVE, ALLOCATABLE :: load_tmp4(:)
214      !$OMP THREADPRIVATE(load_tmp4)
215      REAL, SAVE, ALLOCATABLE :: load_tmp5(:)
216      !$OMP THREADPRIVATE(load_tmp5)
217      REAL, SAVE, ALLOCATABLE :: load_tmp6(:)
218      !$OMP THREADPRIVATE(load_tmp6)
219      REAL, SAVE, ALLOCATABLE :: load_tmp7(:)
220      !$OMP THREADPRIVATE(load_tmp7)
221
222!IM ajout variables CFMIP2/CMIP5
223      REAL,ALLOCATABLE,SAVE :: topswad_aerop(:), solswad_aerop(:)
224!$OMP THREADPRIVATE(topswad_aerop, solswad_aerop)
225      REAL,ALLOCATABLE,SAVE :: topswai_aerop(:), solswai_aerop(:)
226!$OMP THREADPRIVATE(topswai_aerop, solswai_aerop)
227      REAL,ALLOCATABLE,SAVE :: topswad0_aerop(:), solswad0_aerop(:)
228!$OMP THREADPRIVATE(topswad0_aerop, solswad0_aerop)
229      REAL,ALLOCATABLE,SAVE :: topsw_aerop(:,:), topsw0_aerop(:,:) 
230!$OMP THREADPRIVATE(topsw_aerop, topsw0_aerop)
231      REAL,ALLOCATABLE,SAVE :: solsw_aerop(:,:), solsw0_aerop(:,:)
232!$OMP THREADPRIVATE(solsw_aerop, solsw0_aerop)
233      REAL,ALLOCATABLE,SAVE :: topswcf_aerop(:,:), solswcf_aerop(:,:)
234!$OMP THREADPRIVATE(topswcf_aerop, solswcf_aerop)
235
236! additional LW variables CK
237      REAL,ALLOCATABLE,SAVE :: toplwad_aerop(:), sollwad_aerop(:)
238!$OMP THREADPRIVATE(toplwad_aerop, sollwad_aerop)
239      REAL,ALLOCATABLE,SAVE :: toplwai_aerop(:), sollwai_aerop(:)
240!$OMP THREADPRIVATE(toplwai_aerop, sollwai_aerop)
241      REAL,ALLOCATABLE,SAVE :: toplwad0_aerop(:), sollwad0_aerop(:)
242!$OMP THREADPRIVATE(toplwad0_aerop, sollwad0_aerop)
243
244!Ajout de celles nécessaires au phys_output_write_mod
245      REAL, SAVE, ALLOCATABLE :: tal1(:), pal1(:), pab1(:), pab2(:)
246!$OMP THREADPRIVATE(tal1, pal1, pab1, pab2)
247      REAL, SAVE, ALLOCATABLE :: ptstar(:), pt0(:), slp(:)
248!$OMP THREADPRIVATE(ptstar, pt0, slp)
249      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: sens, flwp, fiwp
250!$OMP THREADPRIVATE(sens, flwp, fiwp)
251      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: ale_wake, alp_wake, bils
252!$OMP THREADPRIVATE(ale_wake, alp_wake, bils)
253      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cdragm, cdragh
254!$OMP THREADPRIVATE(cdragm, cdragh)
255      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cldh, cldl, cldm, cldq, cldt, qsat2m
256!$OMP THREADPRIVATE(cldh, cldl, cldm, cldq, cldt, qsat2m )
257      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cldhjn, cldljn, cldmjn,cldtjn
258!$OMP THREADPRIVATE(cldhjn, cldljn, cldmjn, cldtjn)
259      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: JrNt
260!$OMP THREADPRIVATE(JrNt)
261      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: dthmin, evap, fder, plcl, plfc, prw, prlw, prsw
262!$OMP THREADPRIVATE(dthmin, evap, fder, plcl, plfc, prw, prlw, prsw)
263      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zustar, zu10m, zv10m, rh2m
264!$OMP THREADPRIVATE(zustar, zu10m, zv10m, rh2m)
265      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: s_lcl, s_pblh, s_pblt, s_therm
266!$OMP THREADPRIVATE(s_lcl, s_pblh, s_pblt, s_therm)
267!
268!nrlmd+jyg<
269      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: s_pblh_x, s_pblh_w
270!$OMP THREADPRIVATE(s_pblh_x, s_pblh_w)
271      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: s_lcl_x, s_lcl_w
272!$OMP THREADPRIVATE(s_lcl_x, s_lcl_w)
273!>nrlmd+jyg
274!
275      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: slab_wfbils
276!$OMP THREADPRIVATE(slab_wfbils)
277      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: tpot, tpote, ue, uq, ve, vq, zxffonte
278!$OMP THREADPRIVATE(tpot, tpote, ue, uq, ve, vq, zxffonte)
279      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxfqcalving
280!$OMP THREADPRIVATE(zxfqcalving)
281      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxfluxlat, zxtsol, snow_lsc, zxfqfonte
282!$OMP THREADPRIVATE(zxfluxlat, zxtsol, snow_lsc, zxfqfonte)
283      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxrunofflic
284!$OMP THREADPRIVATE(zxrunofflic)
285      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxqsurf, rain_lsc, rain_num
286!$OMP THREADPRIVATE(zxqsurf, rain_lsc, rain_num)
287!
288!jyg+nrlmd<
289!!!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
290!                                                                          c
291!       Declarations liees a la couche limite differentiee w-x             c
292!                                                                          c
293!!!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
294      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: sens_x, sens_w
295!$OMP THREADPRIVATE(sens_x, sens_w)
296      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxfluxlat_x, zxfluxlat_w
297!$OMP THREADPRIVATE(zxfluxlat_x, zxfluxlat_w)
298!jyg<
299!!! Entrées supplémentaires couche-limite
300!!      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: t_x, t_w
301!!!$OMP THREADPRIVATE(t_x, t_w)
302!!      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: q_x, q_w
303!!!$OMP THREADPRIVATE(q_x, q_w)
304!>jyg
305!!! Sorties ferret
306      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: dtvdf_x, dtvdf_w
307!$OMP THREADPRIVATE(dtvdf_x, dtvdf_w)
308      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: dqvdf_x, dqvdf_w
309!$OMP THREADPRIVATE(dqvdf_x, dqvdf_w)
310      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: undi_tke, wake_tke
311!$OMP THREADPRIVATE(undi_tke, wake_tke)
312! Variables supplémentaires dans physiq.F relative au splitting de la surface
313      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: pbl_tke_input
314!$OMP THREADPRIVATE(pbl_tke_input)
315! Entree supplementaire Thermiques :
316      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: t_therm, q_therm
317!$OMP THREADPRIVATE(t_therm, q_therm)
318      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cdragh_x, cdragh_w
319!$OMP THREADPRIVATE(cdragh_x, cdragh_w)
320      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cdragm_x, cdragm_w
321!$OMP THREADPRIVATE(cdragm_x, cdragm_w)
322      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: kh, kh_x, kh_w
323!$OMP THREADPRIVATE(kh, kh_x, kh_w)
324!!!
325!!!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
326!>jyg+nrlmd
327  !
328      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: wake_h, wbeff, zmax_th, zq2m, zt2m
329!$OMP THREADPRIVATE(wake_h, wbeff, zmax_th, zq2m, zt2m)
330      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zt2m_min_mon, zt2m_max_mon
331!$OMP THREADPRIVATE(zt2m_min_mon, zt2m_max_mon)
332      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: t2m_min_mon, t2m_max_mon
333!$OMP THREADPRIVATE(t2m_min_mon, t2m_max_mon)
334      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: weak_inversion
335!$OMP THREADPRIVATE(weak_inversion)
336      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: ale_bl_stat,alp_bl_conv,alp_bl_det
337!$OMP THREADPRIVATE(ale_bl_stat,alp_bl_conv,alp_bl_det)
338      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: alp_bl_fluct_m,alp_bl_fluct_tke
339!$OMP THREADPRIVATE(alp_bl_fluct_m,alp_bl_fluct_tke)
340      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: alp_bl_stat, n2, s2
341!$OMP THREADPRIVATE(alp_bl_stat, n2, s2)
342      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: proba_notrig, random_notrig
343!$OMP THREADPRIVATE(proba_notrig, random_notrig)
344      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: fsolsw, wfbils, wfbilo
345!$OMP THREADPRIVATE(fsolsw, wfbils, wfbilo)
346      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: t2m, fluxlat, fsollw,evap_pot
347!$OMP THREADPRIVATE(t2m, fluxlat, fsollw,evap_pot)
348      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: dnwd, dnwd0, upwd, omega
349!$OMP THREADPRIVATE(dnwd, dnwd0, upwd, omega)
350      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: epmax_diag ! epmax_cape
351!$OMP THREADPRIVATE(epmax_diag)
352      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: ep ! epmax_cape
353!$OMP THREADPRIVATE(ep)
354!      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: coefh, coefm, lambda_th
355      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: lambda_th
356!$OMP THREADPRIVATE(lambda_th)
357      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: cldemi, cldfra, cldtau, fiwc, fl, re, flwc
358!$OMP THREADPRIVATE(cldemi, cldfra, cldtau, fiwc, fl, re, flwc)
359      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: ref_liq, ref_ice, theta, zphi
360!$OMP THREADPRIVATE(ref_liq, ref_ice, theta, zphi)
361      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: ref_liq_pi, ref_ice_pi
362!$OMP THREADPRIVATE(ref_liq_pi, ref_ice_pi)
363      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: wake_omg, zx_rh
364!$OMP THREADPRIVATE(wake_omg, zx_rh)
365      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: pmflxr, pmflxs, prfl, psfl, fraca
366!$OMP THREADPRIVATE(pmflxr, pmflxs, prfl, psfl, fraca)
367      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: Vprecip, zw2
368!$OMP THREADPRIVATE(Vprecip, zw2)
369      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: pmfd, pmfu
370!$OMP THREADPRIVATE(pmfd, pmfu)
371      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: fluxt, fluxu, fluxv
372!$OMP THREADPRIVATE(fluxt, fluxu, fluxv)
373      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: uwriteSTD, vwriteSTD, wwriteSTD
374!$OMP THREADPRIVATE(uwriteSTD, vwriteSTD, wwriteSTD)
375      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: phiwriteSTD, qwriteSTD, twriteSTD, rhwriteSTD
376!$OMP THREADPRIVATE(phiwriteSTD, qwriteSTD, twriteSTD, rhwriteSTD)
377
378! ug et d'autres encore:
379      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: wdtrainA, wdtrainM
380!$OMP THREADPRIVATE(wdtrainA, wdtrainM)
381      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: beta_prec
382!$OMP THREADPRIVATE(beta_prec)
383      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rneb,rnebjn
384!$OMP THREADPRIVATE(rneb,rnebjn)
385
386! variables de sorties MM
387      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: zxsnow,snowhgt,qsnow,to_ice
388      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: sissnow,runoff,albsol3_lic
389!$OMP THREADPRIVATE(zxsnow,snowhgt,qsnow,to_ice)
390!$OMP THREADPRIVATE(sissnow,runoff,albsol3_lic)
391
392CONTAINS
393
394!======================================================================
395SUBROUTINE phys_local_var_init
396USE dimphy
397USE infotrac_phy, ONLY : nbtr
398USE aero_mod
399USE indice_sol_mod
400USE phys_output_var_mod
401USE phys_state_var_mod
402
403IMPLICIT NONE
404      allocate(t_seri(klon,klev),q_seri(klon,klev),ql_seri(klon,klev),qs_seri(klon,klev))
405      allocate(u_seri(klon,klev),v_seri(klon,klev))
406
407      allocate(tr_seri(klon,klev,nbtr))
408      allocate(d_t_dyn(klon,klev),d_q_dyn(klon,klev))
409      allocate(d_ql_dyn(klon,klev),d_qs_dyn(klon,klev))
410      allocate(d_q_dyn2d(klon),d_ql_dyn2d(klon),d_qs_dyn2d(klon))
411      allocate(d_u_dyn(klon,klev),d_v_dyn(klon,klev))
412      allocate(d_tr_dyn(klon,klev,nbtr))                   !RomP
413      allocate(d_t_con(klon,klev),d_q_con(klon,klev))
414      allocate(d_u_con(klon,klev),d_v_con(klon,klev))
415      allocate(d_t_wake(klon,klev),d_q_wake(klon,klev))
416      allocate(d_t_lsc(klon,klev),d_q_lsc(klon,klev))
417      allocate(d_t_lwr(klon,klev),d_t_lw0(klon,klev))
418      allocate(d_t_swr(klon,klev),d_t_sw0(klon,klev))
419      allocate(d_ql_lsc(klon,klev),d_qi_lsc(klon,klev))
420      allocate(d_t_ajsb(klon,klev),d_q_ajsb(klon,klev))
421      allocate(d_t_ajs(klon,klev),d_q_ajs(klon,klev))
422!nrlmd<
423      allocate(d_t_ajs_w(klon,klev),d_q_ajs_w(klon,klev))
424      allocate(d_t_ajs_x(klon,klev),d_q_ajs_x(klon,klev))
425!>nrlmd
426      allocate(d_u_ajs(klon,klev),d_v_ajs(klon,klev))
427      allocate(d_t_eva(klon,klev),d_q_eva(klon,klev))
428      allocate(d_t_lscst(klon,klev),d_q_lscst(klon,klev))
429      allocate(d_t_lscth(klon,klev),d_q_lscth(klon,klev))
430      allocate(plul_st(klon),plul_th(klon))
431      allocate(d_t_vdf(klon,klev),d_q_vdf(klon,klev),d_t_diss(klon,klev))
432!nrlmd+jyg<
433      allocate(d_t_vdf_w(klon,klev),d_q_vdf_w(klon,klev))
434      allocate(d_t_vdf_x(klon,klev),d_q_vdf_x(klon,klev))
435!>nrlmd+jyg
436      allocate(d_u_vdf(klon,klev),d_v_vdf(klon,klev))
437      allocate(d_t_oli(klon,klev),d_t_oro(klon,klev))
438      allocate(d_u_oli(klon,klev),d_v_oli(klon,klev))
439      allocate(d_u_oro(klon,klev),d_v_oro(klon,klev))
440      allocate(d_t_lif(klon,klev),d_t_ec(klon,klev))
441      allocate(d_u_lif(klon,klev),d_v_lif(klon,klev))
442      allocate(d_ts(klon,nbsrf), d_tr(klon,klev,nbtr))
443! Special RRTM
444      allocate(ZLWFT0_i(klon,klev+1),ZSWFT0_i(klon,klev+1),ZFLDN0(klon,klev+1))
445      allocate(ZFLUP0(klon,klev+1),ZFSDN0(klon,klev+1),ZFSUP0(klon,klev+1))
446!
447      allocate(topswad_aero(klon), solswad_aero(klon))
448      allocate(topswai_aero(klon), solswai_aero(klon))
449      allocate(topswad0_aero(klon), solswad0_aero(klon))
450     ! LW diagnostics CK
451      allocate(toplwad_aero(klon), sollwad_aero(klon))
452      allocate(toplwai_aero(klon), sollwai_aero(klon))
453      allocate(toplwad0_aero(klon), sollwad0_aero(klon))
454      ! end
455      allocate(topsw_aero(klon,naero_grp), solsw_aero(klon,naero_grp))
456      allocate(topsw0_aero(klon,naero_grp), solsw0_aero(klon,naero_grp))
457      allocate(topswcf_aero(klon,3), solswcf_aero(klon,3))
458      allocate(du_gwd_hines(klon,klev),dv_gwd_hines(klon,klev))
459      allocate(dv_gwd_rando(klon,klev),dv_gwd_front(klon,klev))
460      allocate(east_gwstress(klon,klev),west_gwstress(klon,klev))
461      allocate(d_t_hin(klon,klev))
462      allocate(d_q_ch4(klon,klev))
463!      allocate(tausum_aero(klon,nwave,naero_spc))
464!      allocate(tau3d_aero(klon,klev,nwave,naero_spc))
465!--correction mini bug OB
466      allocate(tausum_aero(klon,nwave,naero_tot))
467      allocate(tau3d_aero(klon,klev,nwave,naero_tot))
468      allocate(scdnc(klon, klev))
469      allocate(cldncl(klon))
470      allocate(reffclwtop(klon))
471      allocate(lcc(klon))
472      allocate(reffclws(klon, klev))
473      allocate(reffclwc(klon, klev))
474      allocate(cldnvi(klon))
475      allocate(lcc3d(klon, klev))
476      allocate(lcc3dcon(klon, klev))
477      allocate(lcc3dstra(klon, klev))
478      allocate(od550aer(klon))
479      allocate(od865aer(klon))
480      allocate(absvisaer(klon))
481      allocate(ec550aer(klon,klev))
482      allocate(od550lt1aer(klon))
483      allocate(sconcso4(klon))
484      allocate(sconcno3(klon))
485      allocate(sconcoa(klon))
486      allocate(sconcbc(klon))
487      allocate(sconcss(klon))
488      allocate(sconcdust(klon))
489      allocate(concso4(klon,klev))
490      allocate(concno3(klon,klev))
491      allocate(concoa(klon,klev))
492      allocate(concbc(klon,klev))
493      allocate(concss(klon,klev))
494      allocate(concdust(klon,klev))
495      allocate(loadso4(klon))
496      allocate(loadoa(klon))
497      allocate(loadbc(klon))
498      allocate(loadss(klon))
499      allocate(loaddust(klon))
500      allocate(load_tmp1(klon))
501      allocate(load_tmp2(klon))
502      allocate(load_tmp3(klon))
503      allocate(load_tmp4(klon))
504      allocate(load_tmp5(klon))
505      allocate(load_tmp6(klon))
506      allocate(load_tmp7(klon))
507
508!IM ajout variables CFMIP2/CMIP5
509      ALLOCATE(topswad_aerop(klon), solswad_aerop(klon))
510      ALLOCATE(topswai_aerop(klon), solswai_aerop(klon))
511      ALLOCATE(topswad0_aerop(klon), solswad0_aerop(klon))
512      ALLOCATE(topsw_aerop(klon,naero_grp), topsw0_aerop(klon,naero_grp))
513      ALLOCATE(solsw_aerop(klon,naero_grp), solsw0_aerop(klon,naero_grp))
514      ALLOCATE(topswcf_aerop(klon,naero_grp), solswcf_aerop(klon,naero_grp))
515
516! additional LW variables CK
517      ALLOCATE(toplwad_aerop(klon), sollwad_aerop(klon))
518      ALLOCATE(toplwai_aerop(klon), sollwai_aerop(klon))
519      ALLOCATE(toplwad0_aerop(klon), sollwad0_aerop(klon))
520
521! FH Ajout de celles nécessaires au phys_output_write_mod
522
523      ALLOCATE(tal1(klon), pal1(klon), pab1(klon), pab2(klon))
524      ALLOCATE(ptstar(klon),pt0(klon),slp(klon))
525      ALLOCATE(ale_wake(klon), alp_wake(klon), bils(klon))
526      ALLOCATE(cdragm(klon), cdragh(klon), cldh(klon), cldl(klon))
527      ALLOCATE(cldm(klon), cldq(klon), cldt(klon), qsat2m(klon))
528      ALLOCATE(cldhjn(klon), cldljn(klon), cldmjn(klon), cldtjn(klon))
529      ALLOCATE(JrNt(klon))
530      ALLOCATE(dthmin(klon), evap(klon), fder(klon), plcl(klon), plfc(klon))
531      ALLOCATE(prw(klon), prlw(klon), prsw(klon), zustar(klon), zu10m(klon), zv10m(klon), rh2m(klon))
532      ALLOCATE(s_lcl(klon))
533      ALLOCATE(s_pblh(klon), s_pblt(klon), s_therm(klon))
534!
535!nrlmd+jyg<
536      ALLOCATE(s_pblh_x(klon), s_pblh_w(klon))
537      ALLOCATE(s_lcl_x(klon), s_lcl_w(klon))
538!>nrlmd+jyg
539!
540      ALLOCATE(slab_wfbils(klon), tpot(klon), tpote(klon), ue(klon))
541      ALLOCATE(uq(klon), ve(klon), vq(klon), zxffonte(klon))
542      ALLOCATE(zxfqcalving(klon), zxfluxlat(klon))
543      ALLOCATE(zxtsol(klon), snow_lsc(klon), zxfqfonte(klon), zxqsurf(klon))
544      ALLOCATE(zxrunofflic(klon))
545      ALLOCATE(rain_lsc(klon))
546      ALLOCATE(rain_num(klon))
547!
548      ALLOCATE(sens_x(klon), sens_w(klon))
549      ALLOCATE(zxfluxlat_x(klon), zxfluxlat_w(klon))
550!jyg<
551!!      ALLOCATE(t_x(klon,klev), t_w(klon,klev))
552!!      ALLOCATE(q_x(klon,klev), q_w(klon,klev))
553!>jyg
554      ALLOCATE(dtvdf_x(klon,klev), dtvdf_w(klon,klev))
555      ALLOCATE(dqvdf_x(klon,klev), dqvdf_w(klon,klev))
556      ALLOCATE(undi_tke(klon,klev), wake_tke(klon,klev))
557      ALLOCATE(pbl_tke_input(klon,klev+1,nbsrf))
558      ALLOCATE(t_therm(klon,klev), q_therm(klon,klev))
559      ALLOCATE(cdragh_x(klon), cdragh_w(klon))
560      ALLOCATE(cdragm_x(klon), cdragm_w(klon))
561      ALLOCATE(kh(klon), kh_x(klon), kh_w(klon))
562!
563      ALLOCATE(wake_h(klon), wbeff(klon), zmax_th(klon))
564      ALLOCATE(zq2m(klon), zt2m(klon), weak_inversion(klon))
565      ALLOCATE(zt2m_min_mon(klon), zt2m_max_mon(klon))
566      ALLOCATE(t2m_min_mon(klon), t2m_max_mon(klon))
567      ALLOCATE(sens(klon), flwp(klon), fiwp(klon))
568      ALLOCATE(ale_bl_stat(klon), alp_bl_conv(klon), alp_bl_det(klon))
569      ALLOCATE(alp_bl_fluct_m(klon), alp_bl_fluct_tke(klon))
570      ALLOCATE(alp_bl_stat(klon), n2(klon), s2(klon))
571      ALLOCATE(proba_notrig(klon), random_notrig(klon))
572
573      ALLOCATE(dnwd(klon, klev), dnwd0(klon, klev))
574!      ALLOCATE(upwd(klon, klev), omega(klon, klev), coefh(klon, klev))
575      ALLOCATE(upwd(klon, klev), omega(klon, klev))
576      ALLOCATE(epmax_diag(klon)) ! epmax_cape
577      ALLOCATE(ep(klon,klev)) ! epmax_cape
578!      ALLOCATE(coefm(klon, klev), lambda_th(klon, klev), cldemi(klon, klev))
579      ALLOCATE(lambda_th(klon, klev), cldemi(klon, klev))
580      ALLOCATE(cldfra(klon, klev), cldtau(klon, klev), fiwc(klon, klev))
581      ALLOCATE(fl(klon, klev), re(klon, klev), flwc(klon, klev))
582      ALLOCATE(ref_liq(klon, klev), ref_ice(klon, klev), theta(klon, klev))
583      ALLOCATE(ref_liq_pi(klon, klev), ref_ice_pi(klon, klev))
584      ALLOCATE(zphi(klon, klev), wake_omg(klon, klev), zx_rh(klon, klev))
585      ALLOCATE(pmfd(klon, klev), pmfu(klon, klev))
586
587      ALLOCATE(t2m(klon, nbsrf), fluxlat(klon, nbsrf))
588      ALLOCATE(fsollw(klon, nbsrf))
589      ALLOCATE(fsolsw(klon, nbsrf), wfbils(klon, nbsrf), wfbilo(klon, nbsrf))
590      ALLOCATE(evap_pot(klon, nbsrf))
591
592      ALLOCATE(pmflxr(klon, klev+1), pmflxs(klon, klev+1), prfl(klon, klev+1))
593      ALLOCATE(psfl(klon, klev+1), fraca(klon, klev+1), Vprecip(klon, klev+1))
594      ALLOCATE(zw2(klon, klev+1))
595
596      ALLOCATE(fluxu(klon, klev, nbsrf), fluxv(klon, klev, nbsrf))
597      ALLOCATE(fluxt(klon, klev, nbsrf))
598
599      ALLOCATE(uwriteSTD(klon,nlevSTD,nfiles), vwriteSTD(klon,nlevSTD,nfiles))
600      ALLOCATE(wwriteSTD(klon,nlevSTD,nfiles), phiwriteSTD(klon,nlevSTD,nfiles))
601      ALLOCATE(qwriteSTD(klon,nlevSTD,nfiles), twriteSTD(klon,nlevSTD,nfiles))
602      ALLOCATE(rhwriteSTD(klon,nlevSTD,nfiles))
603
604! ug et d'autres encore:
605      ALLOCATE(wdtrainA(klon,klev),wdtrainM(klon,klev))
606      ALLOCATE(beta_prec(klon,klev))
607      ALLOCATE(rneb(klon,klev),rnebjn(klon,klev))
608
609
610      ALLOCATE (zxsnow(klon),snowhgt(klon),qsnow(klon),to_ice(klon))
611      ALLOCATE (sissnow(klon),runoff(klon),albsol3_lic(klon))
612
613
614
615END SUBROUTINE phys_local_var_init
616
617!======================================================================
618SUBROUTINE phys_local_var_end
619USE dimphy
620USE indice_sol_mod
621IMPLICIT NONE
622      deallocate(t_seri,q_seri,ql_seri,qs_seri)
623      deallocate(u_seri,v_seri)
624
625      deallocate(tr_seri)
626      deallocate(d_t_dyn,d_q_dyn)
627      deallocate(d_ql_dyn,d_qs_dyn)
628      deallocate(d_q_dyn2d,d_ql_dyn2d,d_qs_dyn2d)
629      deallocate(d_u_dyn,d_v_dyn)
630      deallocate(d_tr_dyn)                      !RomP
631      deallocate(d_t_con,d_q_con)
632      deallocate(d_u_con,d_v_con)
633      deallocate(d_t_wake,d_q_wake)
634      deallocate(d_t_lsc,d_q_lsc)
635      deallocate(d_t_lwr,d_t_lw0)
636      deallocate(d_t_swr,d_t_sw0)
637      deallocate(d_ql_lsc,d_qi_lsc)
638      deallocate(d_t_ajsb,d_q_ajsb)
639      deallocate(d_t_ajs,d_q_ajs)
640!nrlmd<
641      deallocate(d_t_ajs_w,d_q_ajs_w)
642      deallocate(d_t_ajs_x,d_q_ajs_x)
643!>nrlmd
644      deallocate(d_u_ajs,d_v_ajs)
645      deallocate(d_t_eva,d_q_eva)
646      deallocate(d_t_lscst,d_q_lscst)
647      deallocate(d_t_lscth,d_q_lscth)
648      deallocate(plul_st,plul_th)
649      deallocate(d_t_vdf,d_q_vdf,d_t_diss)
650!nrlmd+jyg<
651      deallocate(d_t_vdf_w,d_q_vdf_w)
652      deallocate(d_t_vdf_x,d_q_vdf_x)
653!>nrlmd+jyg
654      deallocate(d_u_vdf,d_v_vdf)
655      deallocate(d_t_oli,d_t_oro)
656      deallocate(d_u_oli,d_v_oli)
657      deallocate(d_u_oro,d_v_oro)
658      deallocate(d_t_lif,d_t_ec)
659      deallocate(d_u_lif,d_v_lif)
660      deallocate(d_ts, d_tr)
661      deallocate(topswad_aero,solswad_aero)
662      deallocate(topswai_aero,solswai_aero)
663      deallocate(topswad0_aero,solswad0_aero)
664      ! LW additional CK
665      deallocate(toplwad_aero,sollwad_aero)
666      deallocate(toplwai_aero,sollwai_aero)
667      deallocate(toplwad0_aero,sollwad0_aero)
668      ! end
669      deallocate(topsw_aero,solsw_aero)
670      deallocate(topsw0_aero,solsw0_aero)
671      deallocate(topswcf_aero,solswcf_aero)
672      deallocate(tausum_aero)
673      deallocate(tau3d_aero)
674      deallocate(scdnc)
675      deallocate(cldncl)
676      deallocate(reffclwtop)
677      deallocate(lcc)
678      deallocate(reffclws)
679      deallocate(reffclwc)
680      deallocate(cldnvi)
681      deallocate(lcc3d)
682      deallocate(lcc3dcon)
683      deallocate(lcc3dstra)
684      deallocate(od550aer)
685      deallocate(od865aer)
686      deallocate(absvisaer)
687      deallocate(ec550aer)
688      deallocate(od550lt1aer)
689      deallocate(sconcso4)
690      deallocate(sconcno3)
691      deallocate(sconcoa)
692      deallocate(sconcbc)
693      deallocate(sconcss)
694      deallocate(sconcdust)
695      deallocate(concso4)
696      deallocate(concno3)
697      deallocate(concoa)
698      deallocate(concbc)
699      deallocate(concss)
700      deallocate(concdust)
701      deallocate(loadso4)
702      deallocate(loadoa)
703      deallocate(loadbc)
704      deallocate(loadss)
705      deallocate(loaddust)
706      deallocate(load_tmp1)
707      deallocate(load_tmp2)
708      deallocate(load_tmp3)
709      deallocate(load_tmp4)
710      deallocate(load_tmp5)
711      deallocate(load_tmp6)
712      deallocate(load_tmp7)
713      deallocate(du_gwd_hines,dv_gwd_hines,d_t_hin)
714      deallocate(d_q_ch4)
715      deallocate(dv_gwd_rando,dv_gwd_front)
716      deallocate(east_gwstress,west_gwstress)
717
718!IM ajout variables CFMIP2/CMIP5
719      deallocate(topswad_aerop, solswad_aerop)
720      deallocate(topswai_aerop, solswai_aerop)
721      deallocate(topswad0_aerop, solswad0_aerop)
722      deallocate(topsw_aerop, topsw0_aerop)
723      deallocate(solsw_aerop, solsw0_aerop)
724      deallocate(topswcf_aerop, solswcf_aerop)
725
726!CK LW diagnostics
727      deallocate(toplwad_aerop, sollwad_aerop)
728      deallocate(toplwai_aerop, sollwai_aerop)
729      deallocate(toplwad0_aerop, sollwad0_aerop)
730
731! FH Ajout de celles nécessaires au phys_output_write_mod
732      DEALLOCATE(tal1, pal1, pab1, pab2)
733      DEALLOCATE(ptstar, pt0, slp)
734      DEALLOCATE(ale_wake, alp_wake, bils)
735      DEALLOCATE(cdragm, cdragh, cldh, cldl)
736      DEALLOCATE(cldm, cldq, cldt, qsat2m)
737      DEALLOCATE(cldljn, cldmjn, cldhjn, cldtjn, JrNt)
738      DEALLOCATE(dthmin, evap, fder, plcl, plfc)
739      DEALLOCATE(prw, prlw, prsw, zustar, zu10m, zv10m, rh2m, s_lcl)
740      DEALLOCATE(s_pblh, s_pblt, s_therm)
741!
742!nrlmd+jyg<
743      DEALLOCATE(s_pblh_x, s_pblh_w)
744      DEALLOCATE(s_lcl_x, s_lcl_w)
745!>nrlmd+jyg
746!
747      DEALLOCATE(slab_wfbils, tpot, tpote, ue)
748      DEALLOCATE(uq, ve, vq, zxffonte)
749      DEALLOCATE(zxfqcalving, zxfluxlat)
750      DEALLOCATE(zxrunofflic)
751      DEALLOCATE(zxtsol, snow_lsc, zxfqfonte, zxqsurf)
752      DEALLOCATE(rain_lsc)
753      DEALLOCATE(rain_num)
754!
755      DEALLOCATE(sens_x, sens_w)
756      DEALLOCATE(zxfluxlat_x, zxfluxlat_w)
757!jyg<
758!!      DEALLOCATE(t_x, t_w)
759!!      DEALLOCATE(q_x, q_w)
760!>jyg
761      DEALLOCATE(dtvdf_x, dtvdf_w)
762      DEALLOCATE(dqvdf_x, dqvdf_w)
763      DEALLOCATE(undi_tke, wake_tke)
764      DEALLOCATE(pbl_tke_input)
765      DEALLOCATE(t_therm, q_therm)
766      DEALLOCATE(cdragh_x, cdragh_w)
767      DEALLOCATE(cdragm_x, cdragm_w)
768      DEALLOCATE(kh, kh_x, kh_w)
769!
770      DEALLOCATE(wake_h, wbeff, zmax_th)
771      DEALLOCATE(zq2m, zt2m, weak_inversion)
772      DEALLOCATE(zt2m_min_mon, zt2m_max_mon)
773      DEALLOCATE(t2m_min_mon, t2m_max_mon)
774      DEALLOCATE(sens, flwp, fiwp)
775      DEALLOCATE(ale_bl_stat,alp_bl_conv,alp_bl_det)
776      DEALLOCATE(alp_bl_fluct_m,alp_bl_fluct_tke)
777      DEALLOCATE(alp_bl_stat, n2, s2)
778      DEALLOCATE(proba_notrig, random_notrig)
779
780      DEALLOCATE(dnwd, dnwd0)
781!      DEALLOCATE(upwd, omega, coefh)
782      DEALLOCATE(upwd, omega)
783      DEALLOCATE(epmax_diag)
784      DEALLOCATE(ep)
785!      DEALLOCATE(coefm, lambda_th, cldemi)
786      DEALLOCATE(lambda_th, cldemi)
787      DEALLOCATE(cldfra, cldtau, fiwc)
788      DEALLOCATE(fl, re, flwc)
789      DEALLOCATE(ref_liq, ref_ice, theta)
790      DEALLOCATE(ref_liq_pi, ref_ice_pi)
791      DEALLOCATE(zphi, wake_omg, zx_rh)
792      DEALLOCATE(pmfd, pmfu)
793
794      DEALLOCATE(t2m, fluxlat)
795      DEALLOCATE(fsollw, evap_pot)
796      DEALLOCATE(fsolsw, wfbils, wfbilo)
797
798      DEALLOCATE(pmflxr, pmflxs, prfl)
799      DEALLOCATE(psfl, fraca, Vprecip)
800      DEALLOCATE(zw2)
801
802      DEALLOCATE(fluxu, fluxv)
803      DEALLOCATE(fluxt)
804
805      DEALLOCATE(uwriteSTD, vwriteSTD)
806      DEALLOCATE(wwriteSTD, phiwriteSTD)
807      DEALLOCATE(qwriteSTD, twriteSTD, rhwriteSTD)
808
809! ug et d'autres encore:
810      DEALLOCATE(wdtrainA, wdtrainM)
811      DEALLOCATE(beta_prec)
812      DEALLOCATE(rneb)
813      DEALLOCATE (zxsnow,snowhgt,qsnow,to_ice,sissnow,runoff,albsol3_lic)
814
815END SUBROUTINE phys_local_var_end
816
817END MODULE phys_local_var_mod
Note: See TracBrowser for help on using the repository browser.