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

Last change on this file since 2237 was 2194, checked in by fhourdin, 10 years ago

Use of add_phys_tend to add the tendencies from radiation.
In order to control temperature range after radiation.

Utilisation de add_phys_tend pour ajouter les tendances
du rayonnement, de façon à contrôler les températures après
cet ajout.

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