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

Last change on this file since 2492 was 2481, checked in by fhourdin, 8 years ago

Introduction d'une dependance epmax=f(Cape) sur proposition de Camille Risi

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