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

Last change on this file since 2186 was 2181, checked in by jyg, 9 years ago

1/ Update of the loop on sub-surfaces in pbl_surface_mod.F90 : all initializations
are removed from the loop and put before the loop.
2/ The possibility of nudging RH, T, u, and v is added in lmdz1d.F90 (and in
1DUTILS.h).

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