source: LMDZ5/branches/testing/libf/phylmd/phys_local_var_mod.F90 @ 2542

Last change on this file since 2542 was 2542, checked in by Laurent Fairhead, 8 years ago

Merged trunk changes r2487:2541 into testing branch

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