source: LMDZ4/branches/LMDZ4-dev/libf/phylmd/phys_state_var_mod.F90 @ 1248

Last change on this file since 1248 was 1227, checked in by jghattas, 15 years ago
  • Inclusion d'un premier version du cycle de carbon dans LMDZ. Attention

!! Il s'agit d'un version ou les nouveaux cles cycle_carbon_tr et
cycle_carbon_cpl ne sont pas teste. Avec les ancinenes parametres le
modele donne les memes resultats qu'avant. L'interface avec ORCHIDEE n'a
pas encore etait modifie.

  • physiq.F, phys_cal_mod.F90 : ajout d'un nouveau module qui contient qq parametres pour le calendrier et le pas de temps acutelle de la physiq. Ce module pourrait etre elargie plus tard / LF + JG


  • infotrac.F90 : les noms du traceurs peut prendre un nom plus long (15 caracteres) dans traceur.def
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 17.8 KB
Line 
1      MODULE phys_state_var_mod
2! Variables sauvegardees pour le startphy.nc
3!======================================================================
4!
5!
6!======================================================================
7! Declaration des variables
8      USE dimphy
9      INTEGER, PARAMETER :: nlevSTD=17
10      INTEGER, PARAMETER :: nout=3
11      INTEGER, PARAMETER :: napisccp=1
12      INTEGER, SAVE :: radpas
13      REAL, SAVE :: dtime, solaire_etat0
14!$OMP THREADPRIVATE(radpas)
15!$OMP THREADPRIVATE(dtime, solaire_etat0)
16
17      REAL, ALLOCATABLE, SAVE :: rlat(:), rlon(:), pctsrf(:,:)
18!$OMP THREADPRIVATE(rlat, rlon, pctsrf)
19      REAL, ALLOCATABLE, SAVE :: ftsol(:,:)
20!$OMP THREADPRIVATE(ftsol)
21!      character(len=6), SAVE :: ocean
22!!!!!!$OMP THREADPRIVATE(ocean)
23!      logical, SAVE :: ok_veget
24!!!!!!$OMP THREADPRIVATE(ok_veget)
25      REAL, ALLOCATABLE, SAVE :: falb1(:,:), falb2(:,:)
26!$OMP THREADPRIVATE(falb1, falb2)
27      REAL, ALLOCATABLE, SAVE :: rain_fall(:), snow_fall(:)
28!$OMP THREADPRIVATE( rain_fall, snow_fall)
29      REAL, ALLOCATABLE, SAVE :: solsw(:), sollw(:)
30!$OMP THREADPRIVATE(solsw, sollw)
31      REAL, ALLOCATABLE, SAVE :: radsol(:)
32!$OMP THREADPRIVATE(radsol)
33
34!clesphy0 param physiq
35!
36! Parametres de l'Orographie a l'Echelle Sous-Maille (OESM):
37!
38      REAL, ALLOCATABLE, SAVE :: zmea(:), zstd(:), zsig(:), zgam(:)
39!$OMP THREADPRIVATE(zmea, zstd, zsig, zgam)
40      REAL, ALLOCATABLE, SAVE :: zthe(:), zpic(:), zval(:)
41!$OMP THREADPRIVATE(zthe, zpic, zval)
42!     REAL tabcntr0(100)
43      REAL, ALLOCATABLE, SAVE :: rugoro(:)
44!$OMP THREADPRIVATE(rugoro)
45      REAL, ALLOCATABLE, SAVE :: t_ancien(:,:), q_ancien(:,:)
46!$OMP THREADPRIVATE(t_ancien, q_ancien)
47      REAL, ALLOCATABLE, SAVE :: u_ancien(:,:), v_ancien(:,:)
48!$OMP THREADPRIVATE(u_ancien, v_ancien)
49      LOGICAL, SAVE :: ancien_ok
50!$OMP THREADPRIVATE(ancien_ok)
51      REAL, ALLOCATABLE, SAVE :: clwcon(:,:),rnebcon(:,:)
52!$OMP THREADPRIVATE(clwcon,rnebcon)
53      REAL, ALLOCATABLE, SAVE :: ratqs(:,:)
54!$OMP THREADPRIVATE(ratqs)
55      REAL, ALLOCATABLE, SAVE :: pbl_tke(:,:,:) ! turb kinetic energy
56!$OMP THREADPRIVATE(pbl_tke)
57      REAL, ALLOCATABLE, SAVE :: zmax0(:), f0(:) !
58!$OMP THREADPRIVATE(zmax0,f0)
59      REAL, ALLOCATABLE, SAVE :: ema_work1(:,:), ema_work2(:,:)
60!$OMP THREADPRIVATE(ema_work1,ema_work2)
61      REAL, ALLOCATABLE, SAVE :: entr_therm(:,:), fm_therm(:,:)
62!$OMP THREADPRIVATE(entr_therm,fm_therm)
63      REAL, ALLOCATABLE, SAVE :: detr_therm(:,:)
64!$OMP THREADPRIVATE(detr_therm)
65!IM 150408
66!     pour phsystoke avec thermiques
67      REAL,ALLOCATABLE,SAVE :: clwcon0th(:,:),rnebcon0th(:,:)
68!$OMP THREADPRIVATE(clwcon0th,rnebcon0th)
69! radiation outputs
70      REAL,ALLOCATABLE,SAVE :: swdn0(:,:), swdn(:,:)
71!$OMP THREADPRIVATE(swdn0,swdn)
72      REAL,ALLOCATABLE,SAVE :: swup0(:,:), swup(:,:)
73!$OMP THREADPRIVATE(swup0,swup)
74      REAL,ALLOCATABLE,SAVE :: SWdn200clr(:), SWdn200(:)
75!$OMP THREADPRIVATE(SWdn200clr,SWdn200)
76      REAL,ALLOCATABLE,SAVE :: SWup200clr(:), SWup200(:)
77!$OMP THREADPRIVATE(SWup200clr,SWup200)
78      REAL,ALLOCATABLE,SAVE :: lwdn0(:,:), lwdn(:,:)
79!$OMP THREADPRIVATE(lwdn0,lwdn)
80      REAL,ALLOCATABLE,SAVE :: lwup0(:,:), lwup(:,:)
81!$OMP THREADPRIVATE(lwup0,lwup)
82      REAL,ALLOCATABLE,SAVE :: LWdn200clr(:), LWdn200(:)
83!$OMP THREADPRIVATE(LWdn200clr,LWdn200)
84      REAL,ALLOCATABLE,SAVE :: LWup200clr(:), LWup200(:)
85!$OMP THREADPRIVATE(LWup200clr,LWup200)
86      REAL,ALLOCATABLE,SAVE :: LWdnTOA(:), LWdnTOAclr(:)
87!$OMP THREADPRIVATE(LWdnTOA,LWdnTOAclr)
88! pressure level
89      REAL,ALLOCATABLE,SAVE :: tsumSTD(:,:,:)
90!$OMP THREADPRIVATE(tsumSTD)
91      REAL,ALLOCATABLE,SAVE :: usumSTD(:,:,:), vsumSTD(:,:,:)
92!$OMP THREADPRIVATE(usumSTD,vsumSTD)
93      REAL,ALLOCATABLE,SAVE :: wsumSTD(:,:,:), phisumSTD(:,:,:)
94!$OMP THREADPRIVATE(wsumSTD,phisumSTD)
95      REAL,ALLOCATABLE,SAVE :: qsumSTD(:,:,:), rhsumSTD(:,:,:)
96!$OMP THREADPRIVATE(qsumSTD,rhsumSTD)
97      REAL,ALLOCATABLE,SAVE :: tnondef(:,:,:)
98!$OMP THREADPRIVATE(tnondef)
99      REAL,ALLOCATABLE,SAVE :: uvsumSTD(:,:,:)
100!$OMP THREADPRIVATE(uvsumSTD)
101      REAL,ALLOCATABLE,SAVE :: vqsumSTD(:,:,:)
102!$OMP THREADPRIVATE(vqsumSTD)
103      REAL,ALLOCATABLE,SAVE :: vTsumSTD(:,:,:)
104!$OMP THREADPRIVATE(vTsumSTD)
105      REAL,ALLOCATABLE,SAVE :: wqsumSTD(:,:,:)
106!$OMP THREADPRIVATE(wqsumSTD)
107      REAL,ALLOCATABLE,SAVE :: vphisumSTD(:,:,:)
108!$OMP THREADPRIVATE(vphisumSTD)
109      REAL,ALLOCATABLE,SAVE :: wTsumSTD(:,:,:)
110!$OMP THREADPRIVATE(wTsumSTD)
111      REAL,ALLOCATABLE,SAVE :: u2sumSTD(:,:,:)
112!$OMP THREADPRIVATE(u2sumSTD)
113      REAL,ALLOCATABLE,SAVE :: v2sumSTD(:,:,:)
114!$OMP THREADPRIVATE(v2sumSTD)
115      REAL,ALLOCATABLE,SAVE :: T2sumSTD(:,:,:)
116!$OMP THREADPRIVATE(T2sumSTD)
117      INTEGER,ALLOCATABLE,SAVE :: seed_old(:,:)
118!$OMP THREADPRIVATE(seed_old)
119      REAL,ALLOCATABLE,SAVE :: zuthe(:),zvthe(:)
120!$OMP THREADPRIVATE(zuthe,zvthe)
121      REAL,ALLOCATABLE,SAVE :: alb_neig(:)
122!$OMP THREADPRIVATE(alb_neig)
123!cloud base mass flux
124      REAL,ALLOCATABLE,SAVE :: ema_workcbmf(:), ema_cbmf(:)
125!$OMP THREADPRIVATE(ema_workcbmf,ema_cbmf)
126!cloud base pressure & cloud top pressure
127      REAL,ALLOCATABLE,SAVE :: ema_pcb(:), ema_pct(:)
128!$OMP THREADPRIVATE(ema_pcb,ema_pct)
129      REAL,ALLOCATABLE,SAVE :: Ma(:,:)        ! undilute upward mass flux
130!$OMP THREADPRIVATE(Ma)
131      REAL,ALLOCATABLE,SAVE :: qcondc(:,:)    ! in-cld water content from convect
132!$OMP THREADPRIVATE(qcondc)
133      REAL,ALLOCATABLE,SAVE :: wd(:) ! sb
134!$OMP THREADPRIVATE(wd)
135      REAL,ALLOCATABLE,SAVE :: sigd(:)
136!$OMP THREADPRIVATE(sigd)
137!
138      REAL,ALLOCATABLE,SAVE :: cin(:)
139!$OMP THREADPRIVATE(cin)
140! ftd : differential heating between wake and environment
141      REAL,ALLOCATABLE,SAVE :: ftd(:,:)
142!$OMP THREADPRIVATE(ftd)
143! fqd : differential moistening between wake and environment
144      REAL,ALLOCATABLE,SAVE :: fqd(:,:)     
145!$OMP THREADPRIVATE(fqd)
146!34EK
147! -- Variables de controle de ALE et ALP
148!ALE : Energie disponible pour soulevement : utilisee par la
149!      convection d'Emanuel pour le declenchement et la regulation
150      REAL,ALLOCATABLE,SAVE :: ALE(:)
151!$OMP THREADPRIVATE(ALE)
152!ALP : Puissance  disponible pour soulevement
153      REAL,ALLOCATABLE,SAVE :: ALP(:)
154!$OMP THREADPRIVATE(ALP)
155!
156! nouvelles variables pour le couplage convection-couche limite
157      REAL,ALLOCATABLE,SAVE :: Ale_bl(:)
158!$OMP THREADPRIVATE(Ale_bl)
159      REAL,ALLOCATABLE,SAVE :: Alp_bl(:)
160!$OMP THREADPRIVATE(Alp_bl)
161      INTEGER,ALLOCATABLE,SAVE :: lalim_conv(:)
162!$OMP THREADPRIVATE(lalim_conv)
163      REAL,ALLOCATABLE,SAVE :: wght_th(:,:)
164!$OMP THREADPRIVATE(wght_th)
165!
166! variables de la wake
167! wake_deltat : ecart de temperature avec la zone non perturbee
168! wake_deltaq : ecart d'humidite avec la zone non perturbee
169! wake_Cstar  : vitesse d'etalement de la poche
170! wake_s      : fraction surfacique occupee par la poche froide
171! wake_fip    : Gust Front Impinging power - ALP
172! dt_wake, dq_wake: LS tendencies due to wake
173      REAL,ALLOCATABLE,SAVE :: wake_deltat(:,:)
174!$OMP THREADPRIVATE(wake_deltat)
175      REAL,ALLOCATABLE,SAVE :: wake_deltaq(:,:)
176!$OMP THREADPRIVATE(wake_deltaq)
177      REAL,ALLOCATABLE,SAVE :: wake_Cstar(:)
178!$OMP THREADPRIVATE(wake_Cstar)
179      REAL,ALLOCATABLE,SAVE :: wake_s(:)
180!$OMP THREADPRIVATE(wake_s)
181      REAL,ALLOCATABLE,SAVE :: wake_fip(:)
182!$OMP THREADPRIVATE(wake_fip)
183      REAL,ALLOCATABLE,SAVE :: dt_wake(:,:)
184!$OMP THREADPRIVATE(dt_wake)
185      REAL,ALLOCATABLE,SAVE :: dq_wake(:,:)
186!$OMP THREADPRIVATE(dq_wake)
187!
188! pfrac_impa : Produits des coefs lessivage impaction
189! pfrac_nucl : Produits des coefs lessivage nucleation
190! pfrac_1nucl: Produits des coefs lessi nucl (alpha = 1)
191      REAL,ALLOCATABLE,SAVE :: pfrac_impa(:,:), pfrac_nucl(:,:)
192!$OMP THREADPRIVATE(pfrac_impa,pfrac_nucl)
193      REAL,ALLOCATABLE,SAVE :: pfrac_1nucl(:,:)
194!$OMP THREADPRIVATE(pfrac_1nucl)
195!
196      REAL,ALLOCATABLE,SAVE :: total_rain(:), nday_rain(:) 
197!$OMP THREADPRIVATE(total_rain,nday_rain)
198      REAL,ALLOCATABLE,SAVE :: paire_ter(:)
199!$OMP THREADPRIVATE(paire_ter)
200! albsol1: albedo du sol total pour SW visible
201! albsol2: albedo du sol total pour SW proche IR
202      REAL,ALLOCATABLE,SAVE :: albsol1(:), albsol2(:)
203!$OMP THREADPRIVATE(albsol1,albsol2)
204
205      REAL, ALLOCATABLE, SAVE:: wo(:,:)
206      ! column-density of ozone in a layer, in kilo-Dobsons
207      !$OMP THREADPRIVATE(wo)
208
209! heat : chauffage solaire
210! heat0: chauffage solaire ciel clair
211! cool : refroidissement infrarouge
212! cool0 : refroidissement infrarouge ciel clair
213! sollwdown : downward LW flux at surface
214! sollwdownclr : downward CS LW flux at surface
215! toplwdown : downward CS LW flux at TOA
216! toplwdownclr : downward CS LW flux at TOA
217      REAL,ALLOCATABLE,SAVE :: clwcon0(:,:),rnebcon0(:,:)
218!$OMP THREADPRIVATE(clwcon0,rnebcon0)
219      REAL,ALLOCATABLE,SAVE :: heat(:,:)   
220!$OMP THREADPRIVATE(heat)
221      REAL,ALLOCATABLE,SAVE :: heat0(:,:)
222!$OMP THREADPRIVATE(heat0)
223      REAL,ALLOCATABLE,SAVE :: cool(:,:)
224!$OMP THREADPRIVATE(cool)
225      REAL,ALLOCATABLE,SAVE :: cool0(:,:)
226!$OMP THREADPRIVATE(cool0)
227      REAL,ALLOCATABLE,SAVE :: topsw(:), toplw(:)
228!$OMP THREADPRIVATE(topsw,toplw)
229      REAL,ALLOCATABLE,SAVE :: sollwdown(:)
230!$OMP THREADPRIVATE(sollwdown)
231      REAL,ALLOCATABLE,SAVE :: sollwdownclr(:)
232!$OMP THREADPRIVATE(sollwdownclr)
233      REAL,ALLOCATABLE,SAVE :: toplwdown(:)
234!$OMP THREADPRIVATE(toplwdown)
235      REAL,ALLOCATABLE,SAVE :: toplwdownclr(:)
236!$OMP THREADPRIVATE(toplwdownclr)
237      REAL,ALLOCATABLE,SAVE :: topsw0(:),toplw0(:),solsw0(:),sollw0(:)
238!$OMP THREADPRIVATE(topsw0,toplw0,solsw0,sollw0)
239      REAL,ALLOCATABLE,SAVE :: albpla(:)
240!$OMP THREADPRIVATE(albpla)
241! pbase : cloud base pressure
242! bbase : cloud base buoyancy
243      REAL,ALLOCATABLE,SAVE :: cape(:)
244!$OMP THREADPRIVATE(cape)
245      REAL,ALLOCATABLE,SAVE :: pbase(:)
246!$OMP THREADPRIVATE(pbase)
247      REAL,ALLOCATABLE,SAVE :: bbase(:)
248!$OMP THREADPRIVATE(bbase)
249!
250      REAL,SAVE,ALLOCATABLE :: zqasc(:,:)
251!$OMP THREADPRIVATE( zqasc)
252      INTEGER,ALLOCATABLE,SAVE :: ibas_con(:), itop_con(:)
253!$OMP THREADPRIVATE(ibas_con,itop_con)
254      REAL,SAVE,ALLOCATABLE :: rain_con(:)
255!$OMP THREADPRIVATE(rain_con)
256      REAL,SAVE,ALLOCATABLE :: snow_con(:)
257!$OMP THREADPRIVATE(snow_con)
258!
259      REAL,SAVE,ALLOCATABLE :: rlonPOS(:)
260!$OMP THREADPRIVATE(rlonPOS)
261      REAL,SAVE,ALLOCATABLE :: newsst(:)
262!$OMP THREADPRIVATE(newsst)
263      REAL,SAVE,ALLOCATABLE :: u10m(:,:), v10m(:,:)
264!$OMP THREADPRIVATE(u10m,v10m)
265!
266! ok_ade=T -ADE=topswad-topsw
267! ok_aie=T ->
268!       ok_ade=T -AIE=topswai-topswad
269!       ok_ade=F -AIE=topswai-topsw
270!
271!topswad, solswad : Aerosol direct effect
272      REAL,SAVE,ALLOCATABLE :: topswad(:), solswad(:)
273!$OMP THREADPRIVATE(topswad,solswad)
274!topswai, solswai : Aerosol indirect effect
275      REAL,SAVE,ALLOCATABLE :: topswai(:), solswai(:)
276!$OMP THREADPRIVATE(topswai,solswai)
277
278      REAL,SAVE,ALLOCATABLE :: tau_aero(:,:,:,:), piz_aero(:,:,:,:), cg_aero(:,:,:,:)
279!$OMP THREADPRIVATE(tau_aero, piz_aero, cg_aero)
280      REAL,SAVE,ALLOCATABLE :: ccm(:,:,:)
281!$OMP THREADPRIVATE(ccm)
282
283CONTAINS
284
285!======================================================================
286SUBROUTINE phys_state_var_init
287use dimphy
288use aero_mod
289IMPLICIT NONE
290#include "indicesol.h"
291#include "control.h"
292      ALLOCATE(rlat(klon), rlon(klon))
293      ALLOCATE(pctsrf(klon,nbsrf))
294      ALLOCATE(ftsol(klon,nbsrf))
295      ALLOCATE(falb1(klon,nbsrf))
296      ALLOCATE(falb2(klon,nbsrf))
297      ALLOCATE(rain_fall(klon))
298      ALLOCATE(snow_fall(klon))
299      ALLOCATE(solsw(klon), sollw(klon))
300      ALLOCATE(radsol(klon))
301      ALLOCATE(zmea(klon), zstd(klon), zsig(klon), zgam(klon))
302      ALLOCATE(zthe(klon), zpic(klon), zval(klon))
303
304      ALLOCATE(rugoro(klon))
305      ALLOCATE(t_ancien(klon,klev), q_ancien(klon,klev))
306      ALLOCATE(u_ancien(klon,klev), v_ancien(klon,klev))
307      ALLOCATE(clwcon(klon,klev),rnebcon(klon,klev))
308      ALLOCATE(ratqs(klon,klev))
309      ALLOCATE(pbl_tke(klon,klev+1,nbsrf))
310      ALLOCATE(zmax0(klon), f0(klon))
311      ALLOCATE(ema_work1(klon,klev), ema_work2(klon,klev))
312      ALLOCATE(entr_therm(klon,klev), fm_therm(klon,klev+1))
313      ALLOCATE(detr_therm(klon,klev))
314!     pour phsystoke avec thermiques
315      ALLOCATE(clwcon0th(klon,klev),rnebcon0th(klon,klev))
316! radiation outputs
317      ALLOCATE(swdn0(klon,klevp1), swdn(klon,klevp1))
318      ALLOCATE(swup0(klon,klevp1), swup(klon,klevp1))
319      ALLOCATE(lwdn0(klon,klevp1), lwdn(klon,klevp1))
320      ALLOCATE(lwup0(klon,klevp1), lwup(klon,klevp1))
321      ALLOCATE(SWdn200clr(klon), SWdn200(klon))
322      ALLOCATE(SWup200clr(klon), SWup200(klon))
323      ALLOCATE(LWdn200clr(klon), LWdn200(klon))
324      ALLOCATE(LWup200clr(klon), LWup200(klon))
325      ALLOCATE(LWdnTOA(klon), LWdnTOAclr(klon))
326! pressure level
327      ALLOCATE(tsumSTD(klon,nlevSTD,nout))
328      ALLOCATE(usumSTD(klon,nlevSTD,nout), vsumSTD(klon,nlevSTD,nout))
329      ALLOCATE(wsumSTD(klon,nlevSTD,nout), phisumSTD(klon,nlevSTD,nout))
330      ALLOCATE(qsumSTD(klon,nlevSTD,nout), rhsumSTD(klon,nlevSTD,nout))
331      ALLOCATE(tnondef(klon,nlevSTD,nout))
332      ALLOCATE(uvsumSTD(klon,nlevSTD,nout))
333      ALLOCATE(vqsumSTD(klon,nlevSTD,nout))
334      ALLOCATE(vTsumSTD(klon,nlevSTD,nout))
335      ALLOCATE(wqsumSTD(klon,nlevSTD,nout))
336      ALLOCATE(vphisumSTD(klon,nlevSTD,nout))
337      ALLOCATE(wTsumSTD(klon,nlevSTD,nout))
338      ALLOCATE(u2sumSTD(klon,nlevSTD,nout))
339      ALLOCATE(v2sumSTD(klon,nlevSTD,nout))
340      ALLOCATE(T2sumSTD(klon,nlevSTD,nout))
341      ALLOCATE(seed_old(klon,napisccp))
342      ALLOCATE(zuthe(klon),zvthe(klon))
343      ALLOCATE(alb_neig(klon))
344!cloud base mass flux
345      ALLOCATE(ema_workcbmf(klon), ema_cbmf(klon))
346!cloud base pressure & cloud top pressure
347      ALLOCATE(ema_pcb(klon), ema_pct(klon))
348!
349      ALLOCATE(Ma(klon,klev))
350      ALLOCATE(qcondc(klon,klev))
351      ALLOCATE(wd(klon))
352      ALLOCATE(sigd(klon))
353      ALLOCATE(cin(klon), ALE(klon), ALP(klon))
354      ALLOCATE(ftd(klon,klev), fqd(klon,klev))
355      ALLOCATE(Ale_bl(klon))
356      ALLOCATE(Alp_bl(klon))
357      ALLOCATE(lalim_conv(klon))
358      ALLOCATE(wght_th(klon,klev))
359      ALLOCATE(wake_deltat(klon,klev), wake_deltaq(klon,klev))
360      ALLOCATE(wake_Cstar(klon), wake_s(klon), wake_fip(klon))
361      ALLOCATE(dt_wake(klon,klev), dq_wake(klon,klev))
362      ALLOCATE(pfrac_impa(klon,klev), pfrac_nucl(klon,klev))
363      ALLOCATE(pfrac_1nucl(klon,klev))
364      ALLOCATE(total_rain(klon), nday_rain(klon))
365      ALLOCATE(paire_ter(klon))
366      ALLOCATE(albsol1(klon), albsol2(klon))
367      ALLOCATE(wo(klon,klev))
368      ALLOCATE(clwcon0(klon,klev),rnebcon0(klon,klev))
369      ALLOCATE(heat(klon,klev), heat0(klon,klev))
370      ALLOCATE(cool(klon,klev), cool0(klon,klev))
371      ALLOCATE(topsw(klon), toplw(klon))
372      ALLOCATE(sollwdown(klon), sollwdownclr(klon))
373      ALLOCATE(toplwdown(klon), toplwdownclr(klon))
374      ALLOCATE(topsw0(klon),toplw0(klon),solsw0(klon),sollw0(klon))
375      ALLOCATE(albpla(klon))
376      ALLOCATE(cape(klon))
377      ALLOCATE(pbase(klon),bbase(klon))
378      ALLOCATE(zqasc(klon,klev))
379      ALLOCATE(ibas_con(klon), itop_con(klon))
380      ALLOCATE(rain_con(klon), snow_con(klon))
381      ALLOCATE(rlonPOS(klon))
382      ALLOCATE(newsst(klon))
383      ALLOCATE(u10m(klon,nbsrf), v10m(klon,nbsrf))
384      ALLOCATE(topswad(klon), solswad(klon))
385      ALLOCATE(topswai(klon), solswai(klon))
386      ALLOCATE(tau_aero(klon,klev,naero_grp,nbands),piz_aero(klon,klev,naero_grp,nbands),cg_aero(klon,klev,naero_grp,nbands))
387      ALLOCATE(ccm(klon,klev,nbands))
388
389END SUBROUTINE phys_state_var_init
390
391!======================================================================
392SUBROUTINE phys_state_var_end
393use dimphy
394IMPLICIT NONE
395#include "indicesol.h"
396#include "control.h"
397
398      deallocate(rlat, rlon, pctsrf, ftsol, falb1, falb2)
399      deallocate(rain_fall, snow_fall, solsw, sollw, radsol)
400      deallocate(zmea, zstd, zsig, zgam)
401      deallocate(zthe, zpic, zval)
402      deallocate(rugoro, t_ancien, q_ancien, clwcon, rnebcon)
403      deallocate(        u_ancien, v_ancien                 )
404      deallocate(ratqs, pbl_tke)
405      deallocate(zmax0, f0)
406      deallocate(ema_work1, ema_work2)
407      deallocate(entr_therm, fm_therm)
408      deallocate(detr_therm)
409      deallocate(clwcon0th, rnebcon0th)
410! radiation outputs
411      deallocate(swdn0, swdn)
412      deallocate(swup0, swup)
413      deallocate(lwdn0, lwdn)
414      deallocate(lwup0, lwup)
415      deallocate(SWdn200clr, SWdn200)
416      deallocate(SWup200clr, SWup200)
417      deallocate(LWdn200clr, LWdn200)
418      deallocate(LWup200clr, LWup200)
419      deallocate(LWdnTOA, LWdnTOAclr)
420! pressure level
421      deallocate(tsumSTD)
422      deallocate(usumSTD, vsumSTD)
423      deallocate(wsumSTD, phisumSTD)
424      deallocate(tnondef)
425      deallocate(qsumSTD, rhsumSTD)
426      deallocate(uvsumSTD)
427      deallocate(vqsumSTD)
428      deallocate(vTsumSTD)
429      deallocate(wqsumSTD)
430      deallocate(vphisumSTD)
431      deallocate(wTsumSTD)
432      deallocate(u2sumSTD)
433      deallocate(v2sumSTD)
434      deallocate(T2sumSTD)
435      deallocate(seed_old)
436      deallocate(zuthe, zvthe)
437      deallocate(alb_neig)
438      deallocate(ema_workcbmf, ema_cbmf)
439      deallocate(ema_pcb, ema_pct)
440      deallocate(Ma, qcondc)
441      deallocate(wd, sigd)
442      deallocate(cin, ALE, ALP)
443      deallocate(ftd, fqd)
444      deallocate(Ale_bl, Alp_bl)
445      deallocate(lalim_conv, wght_th)
446      deallocate(wake_deltat, wake_deltaq)
447      deallocate(wake_Cstar, wake_s, wake_fip)
448      deallocate(dt_wake, dq_wake)
449      deallocate(pfrac_impa, pfrac_nucl)
450      deallocate(pfrac_1nucl)
451      deallocate(total_rain, nday_rain)
452      deallocate(paire_ter)
453      deallocate(albsol1, albsol2)
454      deallocate(wo)
455      deallocate(clwcon0,rnebcon0)
456      deallocate(heat, heat0)
457      deallocate(cool, cool0)
458      deallocate(topsw, toplw)
459      deallocate(sollwdown, sollwdownclr)
460      deallocate(toplwdown, toplwdownclr)
461      deallocate(topsw0,toplw0,solsw0,sollw0)
462      deallocate(albpla)
463      deallocate(cape)
464      deallocate(pbase,bbase)
465      deallocate(zqasc)
466      deallocate(ibas_con, itop_con)
467      deallocate(rain_con, snow_con)
468      deallocate(rlonPOS)
469      deallocate(newsst)
470      deallocate(u10m, v10m)
471      deallocate(topswad, solswad)
472      deallocate(topswai, solswai)
473      deallocate(tau_aero,piz_aero,cg_aero)
474      deallocate(ccm)
475       
476END SUBROUTINE phys_state_var_end
477
478      END MODULE phys_state_var_mod
Note: See TracBrowser for help on using the repository browser.