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

Last change on this file since 2562 was 2561, checked in by fhourdin, 8 years ago

Parametrisation d'une longueur de melange verticale minimum associee
aux circulations meso-echelle introduites par le relief sous maille.
D'apres Etienne Vignon et Frédéric Hourdin

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