Changeset 952 for LMDZ4/trunk


Ignore:
Timestamp:
Apr 18, 2008, 6:20:30 PM (17 years ago)
Author:
lmdzadmin
Message:

On deplace variables SAVE de physiq dans phys_state_var_mod
IM

Location:
LMDZ4/trunk/libf/phylmd
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk/libf/phylmd/phys_state_var_mod.F90

    r942 r952  
    77! Declaration des variables
    88      USE dimphy
     9      INTEGER, PARAMETER :: nlevSTD=17
     10      INTEGER, PARAMETER :: nout=3
     11      INTEGER, PARAMETER :: napisccp=1
    912      REAL, SAVE :: dtime, co2_ppm_etat0, solaire_etat0
    1013      REAL, ALLOCATABLE, SAVE :: rlat(:), rlon(:), pctsrf(:,:)
     
    3235      REAL, ALLOCATABLE, SAVE :: ema_work1(:,:), ema_work2(:,:)
    3336      REAL, ALLOCATABLE, SAVE :: entr_therm(:,:), fm_therm(:,:)
     37      REAL, ALLOCATABLE, SAVE :: detr_therm(:,:)
     38!IM 150408
     39!     pour phsystoke avec thermiques
     40      REAL,ALLOCATABLE,SAVE :: clwcon0th(:,:),rnebcon0th(:,:)
     41! radiation outputs
     42      REAL,ALLOCATABLE,SAVE :: swdn0(:,:), swdn(:,:)
     43      REAL,ALLOCATABLE,SAVE :: swup0(:,:), swup(:,:)
     44      REAL,ALLOCATABLE,SAVE :: SWdn200clr(:), SWdn200(:)
     45      REAL,ALLOCATABLE,SAVE :: SWup200clr(:), SWup200(:)
     46      REAL,ALLOCATABLE,SAVE :: lwdn0(:,:), lwdn(:,:)
     47      REAL,ALLOCATABLE,SAVE :: lwup0(:,:), lwup(:,:)
     48      REAL,ALLOCATABLE,SAVE :: LWdn200clr(:), LWdn200(:)
     49      REAL,ALLOCATABLE,SAVE :: LWup200clr(:), LWup200(:)
     50      REAL,ALLOCATABLE,SAVE :: LWdnTOA(:), LWdnTOAclr(:)
     51! pressure level
     52      REAL,ALLOCATABLE,SAVE :: tsumSTD(:,:,:)
     53      REAL,ALLOCATABLE,SAVE :: usumSTD(:,:,:), vsumSTD(:,:,:)
     54      REAL,ALLOCATABLE,SAVE :: wsumSTD(:,:,:), phisumSTD(:,:,:)
     55      REAL,ALLOCATABLE,SAVE :: qsumSTD(:,:,:), rhsumSTD(:,:,:)
     56      REAL,ALLOCATABLE,SAVE :: tnondef(:,:,:)
     57      REAL,ALLOCATABLE,SAVE :: uvsumSTD(:,:,:)
     58      REAL,ALLOCATABLE,SAVE :: vqsumSTD(:,:,:)
     59      REAL,ALLOCATABLE,SAVE :: vTsumSTD(:,:,:)
     60      REAL,ALLOCATABLE,SAVE :: wqsumSTD(:,:,:)
     61      REAL,ALLOCATABLE,SAVE :: vphisumSTD(:,:,:)
     62      REAL,ALLOCATABLE,SAVE :: wTsumSTD(:,:,:)
     63      REAL,ALLOCATABLE,SAVE :: u2sumSTD(:,:,:)
     64      REAL,ALLOCATABLE,SAVE :: v2sumSTD(:,:,:)
     65      REAL,ALLOCATABLE,SAVE :: T2sumSTD(:,:,:)
     66      INTEGER,ALLOCATABLE,SAVE :: seed_old(:,:)
     67      REAL,ALLOCATABLE,SAVE :: zuthe(:),zvthe(:)
     68      REAL,ALLOCATABLE,SAVE :: alb_neig(:)
     69!cloud base mass flux
     70      REAL,ALLOCATABLE,SAVE :: ema_workcbmf(:), ema_cbmf(:)
     71!cloud base pressure & cloud top pressure
     72      REAL,ALLOCATABLE,SAVE :: ema_pcb(:), ema_pct(:)
     73      REAL,ALLOCATABLE,SAVE :: Ma(:,:)        ! undilute upward mass flux
     74      REAL,ALLOCATABLE,SAVE :: qcondc(:,:)    ! in-cld water content from convect
     75      REAL,ALLOCATABLE,SAVE :: wd(:) ! sb
     76      REAL,ALLOCATABLE,SAVE :: sigd(:)
     77!
     78      REAL,ALLOCATABLE,SAVE :: cin(:)
     79! ftd : differential heating between wake and environment
     80      REAL,ALLOCATABLE,SAVE :: ftd(:,:)
     81! fqd : differential moistening between wake and environment
     82      REAL,ALLOCATABLE,SAVE :: fqd(:,:)     
     83!34EK
     84! -- Variables de controle de ALE et ALP
     85!ALE : Energie disponible pour soulevement : utilisee par la
     86!      convection d'Emanuel pour le declenchement et la regulation
     87      REAL,ALLOCATABLE,SAVE :: ALE(:)
     88!ALP : Puissance  disponible pour soulevement
     89      REAL,ALLOCATABLE,SAVE :: ALP(:)
     90!
     91! nouvelles variables pour le couplage convection-couche limite
     92      REAL,ALLOCATABLE,SAVE :: Ale_bl(:)
     93      REAL,ALLOCATABLE,SAVE :: Alp_bl(:)
     94      INTEGER,ALLOCATABLE,SAVE :: lalim_conv(:)
     95      REAL,ALLOCATABLE,SAVE :: wght_th(:,:)
     96!
     97! variables de la wake
     98! wake_deltat : ecart de temperature avec la zone non perturbee
     99! wake_deltaq : ecart d'humidite avec la zone non perturbee
     100! wake_Cstar  : vitesse d'etalement de la poche
     101! wake_s      : fraction surfacique occupee par la poche froide
     102! wake_fip    : Gust Front Impinging power - ALP
     103! dt_wake, dq_wake: LS tendencies due to wake
     104      REAL,ALLOCATABLE,SAVE :: wake_deltat(:,:)
     105      REAL,ALLOCATABLE,SAVE :: wake_deltaq(:,:)
     106      REAL,ALLOCATABLE,SAVE :: wake_Cstar(:)
     107      REAL,ALLOCATABLE,SAVE :: wake_s(:)
     108      REAL,ALLOCATABLE,SAVE :: wake_fip(:)
     109      REAL,ALLOCATABLE,SAVE :: dt_wake(:,:)
     110      REAL,ALLOCATABLE,SAVE :: dq_wake(:,:)
     111!
     112! pfrac_impa : Produits des coefs lessivage impaction
     113! pfrac_nucl : Produits des coefs lessivage nucleation
     114! pfrac_1nucl: Produits des coefs lessi nucl (alpha = 1)
     115      REAL,ALLOCATABLE,SAVE :: pfrac_impa(:,:), pfrac_nucl(:,:)
     116      REAL,ALLOCATABLE,SAVE :: pfrac_1nucl(:,:)
     117!
     118      REAL,ALLOCATABLE,SAVE :: total_rain(:), nday_rain(:) 
     119      REAL,ALLOCATABLE,SAVE :: paire_ter(:)
     120! albsol1: albedo du sol total pour SW visible
     121! albsol2: albedo du sol total pour SW proche IR
     122      REAL,ALLOCATABLE,SAVE :: albsol1(:), albsol2(:)
     123      REAL,ALLOCATABLE,SAVE :: wo(:,:)
     124!
     125! heat : chauffage solaire
     126! heat0: chauffage solaire ciel clair
     127! cool : refroidissement infrarouge
     128! cool0 : refroidissement infrarouge ciel clair
     129! sollwdown : downward LW flux at surface
     130! sollwdownclr : downward CS LW flux at surface
     131! toplwdown : downward CS LW flux at TOA
     132! toplwdownclr : downward CS LW flux at TOA
     133      REAL,ALLOCATABLE,SAVE :: clwcon0(:,:),rnebcon0(:,:)
     134      REAL,ALLOCATABLE,SAVE :: heat(:,:)   
     135      REAL,ALLOCATABLE,SAVE :: heat0(:,:)
     136      REAL,ALLOCATABLE,SAVE :: cool(:,:)
     137      REAL,ALLOCATABLE,SAVE :: cool0(:,:)
     138      REAL,ALLOCATABLE,SAVE :: topsw(:), toplw(:)
     139      REAL,ALLOCATABLE,SAVE :: sollwdown(:)
     140      REAL,ALLOCATABLE,SAVE :: sollwdownclr(:)
     141      REAL,ALLOCATABLE,SAVE :: toplwdown(:)
     142      REAL,ALLOCATABLE,SAVE :: toplwdownclr(:)
     143      REAL,ALLOCATABLE,SAVE :: topsw0(:),toplw0(:),solsw0(:),sollw0(:)
     144      REAL,ALLOCATABLE,SAVE :: albpla(:)
     145! pbase : cloud base pressure
     146! bbase : cloud base buoyancy
     147      REAL,ALLOCATABLE,SAVE :: cape(:)
     148      REAL,ALLOCATABLE,SAVE :: pbase(:)
     149      REAL,ALLOCATABLE,SAVE :: bbase(:)
     150!
     151      REAL,SAVE,ALLOCATABLE :: zqasc(:,:)
     152      INTEGER,ALLOCATABLE,SAVE :: ibas_con(:), itop_con(:)
     153      REAL,SAVE,ALLOCATABLE :: rain_con(:)
     154      REAL,SAVE,ALLOCATABLE :: snow_con(:)
     155!
     156! sulfate_pi : SO4 aerosol concentration [ug/m3] (pre-industrial value)
     157
     158      REAL,SAVE,ALLOCATABLE :: sulfate_pi(:, :)
     159      REAL,SAVE,ALLOCATABLE :: rlonPOS(:)
     160      REAL,SAVE,ALLOCATABLE :: newsst(:)
     161      REAL,SAVE,ALLOCATABLE :: u10m(:,:), v10m(:,:)
     162!
     163! ok_ade=T -ADE=topswad-topsw
     164! ok_aie=T ->
     165!       ok_ade=T -AIE=topswai-topswad
     166!        ok_ade=F -AIE=topswai-topsw
     167!
     168!topswad, solswad : Aerosol direct effect
     169      REAL,SAVE,ALLOCATABLE :: topswad(:), solswad(:)
     170!topswai, solswai : Aerosol indirect effect
     171      REAL,SAVE,ALLOCATABLE :: topswai(:), solswai(:)
     172#ifdef INCA_AER
     173#ifdef CPP_COUPLE
     174! topswad_inca, solswad_inca : Aerosol direct effect
     175      REAL,SAVE,ALLOCATABLE :: topswad_inca(:), solswad_inca(:)
     176! topswad0_inca, solswad0_inca : Aerosol direct effect
     177      REAL,SAVE,ALLOCATABLE :: topswad0_inca(:), solswad0_inca(:)
     178!topswai_inca, solswai_inca : Aerosol indirect effect
     179      REAL,SAVE,ALLOCATABLE :: topswai_inca(:), solswai_inca(:)
     180      REAL,SAVE,ALLOCATABLE :: topsw_inca(:,:), solsw_inca(:,:)
     181      REAL,SAVE,ALLOCATABLE :: topsw0_inca(:,:), solsw0_inca(:,:)
     182      REAL,SAVE,ALLOCATABLE :: tau_inca(:,:,:,:)
     183      REAL,SAVE,ALLOCATABLE :: piz_inca(:,:,:,:)
     184      REAL,SAVE,ALLOCATABLE :: cg_inca(:,:,:,:)
     185      REAL,SAVE,ALLOCATABLE :: ccm(:,:,:)
     186#endif
     187#endif
     188      REAL,SAVE,ALLOCATABLE :: tau_ae(:,:,:), piz_ae(:,:,:)
     189      REAL,SAVE,ALLOCATABLE :: cg_ae(:,:,:)
     190
    34191CONTAINS
    35192
     
    40197#include "indicesol.h"
    41198
    42       ALLOCATE( rlat(klon))
    43       ALLOCATE( rlon(klon))
    44       ALLOCATE( pctsrf(klon,nbsrf))
    45       ALLOCATE( ftsol(klon,nbsrf))
    46       ALLOCATE( falb1(klon,nbsrf))
    47       ALLOCATE( falb2(klon,nbsrf))
    48       ALLOCATE( rain_fall(klon) )
    49       ALLOCATE( snow_fall(klon) )
     199      ALLOCATE(rlat(klon), rlon(klon))
     200      ALLOCATE(pctsrf(klon,nbsrf))
     201      ALLOCATE(ftsol(klon,nbsrf))
     202      ALLOCATE(falb1(klon,nbsrf))
     203      ALLOCATE(falb2(klon,nbsrf))
     204      ALLOCATE(rain_fall(klon))
     205      ALLOCATE(snow_fall(klon))
    50206      ALLOCATE(solsw(klon), sollw(klon))
    51       ALLOCATE( radsol(klon))
    52       ALLOCATE( zmea(klon), zstd(klon), zsig(klon), zgam(klon) )
    53       ALLOCATE( zthe(klon), zpic(klon), zval(klon) )
    54 
    55       ALLOCATE( rugoro(klon))
    56       ALLOCATE( t_ancien(klon,klev), q_ancien(klon,klev))
    57       ALLOCATE( clwcon(klon,klev),rnebcon(klon,klev))
    58       ALLOCATE( ratqs(klon,klev))
     207      ALLOCATE(radsol(klon))
     208      ALLOCATE(zmea(klon), zstd(klon), zsig(klon), zgam(klon))
     209      ALLOCATE(zthe(klon), zpic(klon), zval(klon))
     210
     211      ALLOCATE(rugoro(klon))
     212      ALLOCATE(t_ancien(klon,klev), q_ancien(klon,klev))
     213      ALLOCATE(clwcon(klon,klev),rnebcon(klon,klev))
     214      ALLOCATE(ratqs(klon,klev))
    59215      ALLOCATE(pbl_tke(klon,klev+1,nbsrf))
    60216      ALLOCATE(zmax0(klon), f0(klon))
    61217      ALLOCATE(ema_work1(klon,klev), ema_work2(klon,klev))
    62218      ALLOCATE(entr_therm(klon,klev), fm_therm(klon,klev+1))
     219      ALLOCATE(detr_therm(klon,klev))
     220!     pour phsystoke avec thermiques
     221      ALLOCATE(clwcon0th(klon,klev),rnebcon0th(klon,klev))
     222! radiation outputs
     223      ALLOCATE(swdn0(klon,klevp1), swdn(klon,klevp1))
     224      ALLOCATE(swup0(klon,klevp1), swup(klon,klevp1))
     225      ALLOCATE(lwdn0(klon,klevp1), lwdn(klon,klevp1))
     226      ALLOCATE(lwup0(klon,klevp1), lwup(klon,klevp1))
     227      ALLOCATE(SWdn200clr(klon), SWdn200(klon))
     228      ALLOCATE(SWup200clr(klon), SWup200(klon))
     229      ALLOCATE(LWdn200clr(klon), LWdn200(klon))
     230      ALLOCATE(LWup200clr(klon), LWup200(klon))
     231      ALLOCATE(LWdnTOA(klon), LWdnTOAclr(klon))
     232! pressure level
     233      ALLOCATE(tsumSTD(klon,nlevSTD,nout))
     234      ALLOCATE(usumSTD(klon,nlevSTD,nout), vsumSTD(klon,nlevSTD,nout))
     235      ALLOCATE(wsumSTD(klon,nlevSTD,nout), phisumSTD(klon,nlevSTD,nout))
     236      ALLOCATE(qsumSTD(klon,nlevSTD,nout), rhsumSTD(klon,nlevSTD,nout))
     237      ALLOCATE(tnondef(klon,nlevSTD,nout))
     238      ALLOCATE(uvsumSTD(klon,nlevSTD,nout))
     239      ALLOCATE(vqsumSTD(klon,nlevSTD,nout))
     240      ALLOCATE(vTsumSTD(klon,nlevSTD,nout))
     241      ALLOCATE(wqsumSTD(klon,nlevSTD,nout))
     242      ALLOCATE(vphisumSTD(klon,nlevSTD,nout))
     243      ALLOCATE(wTsumSTD(klon,nlevSTD,nout))
     244      ALLOCATE(u2sumSTD(klon,nlevSTD,nout))
     245      ALLOCATE(v2sumSTD(klon,nlevSTD,nout))
     246      ALLOCATE(T2sumSTD(klon,nlevSTD,nout))
     247      ALLOCATE(seed_old(klon,napisccp))
     248      ALLOCATE(zuthe(klon),zvthe(klon))
     249      ALLOCATE(alb_neig(klon))
     250!cloud base mass flux
     251      ALLOCATE(ema_workcbmf(klon), ema_cbmf(klon))
     252!cloud base pressure & cloud top pressure
     253      ALLOCATE(ema_pcb(klon), ema_pct(klon))
     254!
     255      ALLOCATE(Ma(klon,klev))
     256      ALLOCATE(qcondc(klon,klev))
     257      ALLOCATE(wd(klon))
     258      ALLOCATE(sigd(klon))
     259      ALLOCATE(cin(klon), ALE(klon), ALP(klon))
     260      ALLOCATE(ftd(klon,klev), fqd(klon,klev))
     261      ALLOCATE(Ale_bl(klon))
     262      ALLOCATE(Alp_bl(klon))
     263      ALLOCATE(lalim_conv(klon))
     264      ALLOCATE(wght_th(klon,klev))
     265      ALLOCATE(wake_deltat(klon,klev), wake_deltaq(klon,klev))
     266      ALLOCATE(wake_Cstar(klon), wake_s(klon), wake_fip(klon))
     267      ALLOCATE(dt_wake(klon,klev), dq_wake(klon,klev))
     268      ALLOCATE(pfrac_impa(klon,klev), pfrac_nucl(klon,klev))
     269      ALLOCATE(pfrac_1nucl(klon,klev))
     270      ALLOCATE(total_rain(klon), nday_rain(klon))
     271      ALLOCATE(paire_ter(klon))
     272      ALLOCATE(albsol1(klon), albsol2(klon))
     273      ALLOCATE(wo(klon,klev))
     274      ALLOCATE(clwcon0(klon,klev),rnebcon0(klon,klev))
     275      ALLOCATE(heat(klon,klev), heat0(klon,klev))
     276      ALLOCATE(cool(klon,klev), cool0(klon,klev))
     277      ALLOCATE(topsw(klon), toplw(klon))
     278      ALLOCATE(sollwdown(klon), sollwdownclr(klon))
     279      ALLOCATE(toplwdown(klon), toplwdownclr(klon))
     280      ALLOCATE(topsw0(klon),toplw0(klon),solsw0(klon),sollw0(klon))
     281      ALLOCATE(albpla(klon))
     282      ALLOCATE(cape(klon))
     283      ALLOCATE(pbase(klon),bbase(klon))
     284      ALLOCATE(zqasc(klon,klev))
     285      ALLOCATE(ibas_con(klon), itop_con(klon))
     286      ALLOCATE(rain_con(klon), snow_con(klon))
     287!
     288      ALLOCATE(sulfate_pi(klon, klev))
     289      ALLOCATE(rlonPOS(klon))
     290      ALLOCATE(newsst(klon))
     291      ALLOCATE(u10m(klon,nbsrf), v10m(klon,nbsrf))
     292      ALLOCATE(topswad(klon), solswad(klon))
     293      ALLOCATE(topswai(klon), solswai(klon))
     294#ifdef INCA_AER
     295#ifdef CPP_COUPLE
     296      ALLOCATE(topswad_inca(klon), solswad_inca(klon))
     297      ALLOCATE(topswad0_inca(klon), solswad0_inca(klon))
     298      ALLOCATE(topswai_inca(klon), solswai_inca(klon))
     299      ALLOCATE(topsw_inca(klon,9), solsw_inca(klon,9))
     300      ALLOCATE(topsw0_inca(klon,9), solsw0_inca(klon,9))
     301      ALLOCATE(tau_inca(klon,klev,9,2))
     302      ALLOCATE(piz_inca(klon,klev,9,2))
     303      ALLOCATE(cg_inca(klon,klev,9,2))
     304      ALLOCATE(ccm(klon,klev,2))
     305#endif
     306#endif
     307      ALLOCATE(tau_ae(klon,klev,2), piz_ae(klon,klev,2))
     308      ALLOCATE(cg_ae(klon,klev,2))
    63309
    64310END SUBROUTINE phys_state_var_init
     
    69315IMPLICIT NONE
    70316#include "indicesol.h"
    71 !     deallocate(t_seri,q_seri,ql_seri,qs_seri)
    72 
    73       deallocate( rlat, rlon, pctsrf, ftsol, falb1, falb2 )
    74       deallocate( rain_fall, snow_fall, solsw, sollw, radsol )
    75       deallocate( zmea, zstd, zsig, zgam )
    76       deallocate( zthe, zpic, zval )
    77       deallocate( rugoro, t_ancien, q_ancien, clwcon, rnebcon )
    78       deallocate( ratqs, pbl_tke )
    79       deallocate( zmax0, f0 )
    80       deallocate( ema_work1, ema_work2 )
    81       deallocate( entr_therm, fm_therm )
    82 
     317
     318      deallocate(rlat, rlon, pctsrf, ftsol, falb1, falb2)
     319      deallocate(rain_fall, snow_fall, solsw, sollw, radsol)
     320      deallocate(zmea, zstd, zsig, zgam)
     321      deallocate(zthe, zpic, zval)
     322      deallocate(rugoro, t_ancien, q_ancien, clwcon, rnebcon)
     323      deallocate(ratqs, pbl_tke)
     324      deallocate(zmax0, f0)
     325      deallocate(ema_work1, ema_work2)
     326      deallocate(entr_therm, fm_therm)
     327      deallocate(detr_therm)
     328      deallocate(clwcon0th, rnebcon0th)
     329! radiation outputs
     330      deallocate(swdn0, swdn)
     331      deallocate(swup0, swup)
     332      deallocate(lwdn0, lwdn)
     333      deallocate(lwup0, lwup)
     334      deallocate(SWdn200clr, SWdn200)
     335      deallocate(SWup200clr, SWup200)
     336      deallocate(LWdn200clr, LWdn200)
     337      deallocate(LWup200clr, LWup200)
     338      deallocate(LWdnTOA, LWdnTOAclr)
     339! pressure level
     340      deallocate(tsumSTD)
     341      deallocate(usumSTD, vsumSTD)
     342      deallocate(wsumSTD, phisumSTD)
     343      deallocate(tnondef)
     344      deallocate(uvsumSTD)
     345      deallocate(vqsumSTD)
     346      deallocate(vTsumSTD)
     347      deallocate(wqsumSTD)
     348      deallocate(vphisumSTD)
     349      deallocate(wTsumSTD)
     350      deallocate(u2sumSTD)
     351      deallocate(v2sumSTD)
     352      deallocate(T2sumSTD)
     353      deallocate(seed_old)
     354      deallocate(zuthe, zvthe)
     355      deallocate(alb_neig)
     356      deallocate(ema_workcbmf, ema_cbmf)
     357      deallocate(ema_pcb, ema_pct)
     358      deallocate(Ma, qcondc)
     359      deallocate(wd, sigd)
     360      deallocate(cin, ALE, ALP)
     361      deallocate(ftd, fqd)
     362      deallocate(Ale_bl, Alp_bl)
     363      deallocate(lalim_conv, wght_th)
     364      deallocate(wake_deltat, wake_deltaq)
     365      deallocate(wake_Cstar, wake_s, wake_fip)
     366      deallocate(dt_wake, dq_wake)
     367      deallocate(pfrac_impa, pfrac_nucl)
     368      deallocate(pfrac_1nucl)
     369      deallocate(total_rain, nday_rain)
     370      deallocate(paire_ter)
     371      deallocate(albsol1, albsol2)
     372      deallocate(wo)
     373      deallocate(clwcon0,rnebcon0)
     374      deallocate(heat, heat0)
     375      deallocate(cool, cool0)
     376      deallocate(topsw, toplw)
     377      deallocate(sollwdown, sollwdownclr)
     378      deallocate(toplwdown, toplwdownclr)
     379      deallocate(topsw0,toplw0,solsw0,sollw0)
     380      deallocate(albpla)
     381      deallocate(cape)
     382      deallocate(pbase,bbase)
     383      deallocate(zqasc)
     384      deallocate(ibas_con, itop_con)
     385      deallocate(rain_con, snow_con)
     386!
     387      deallocate(sulfate_pi)
     388      deallocate(rlonPOS)
     389      deallocate(newsst)
     390      deallocate(u10m, v10m)
     391      deallocate(topswad, solswad)
     392      deallocate(topswai, solswai)
     393#ifdef INCA_AER
     394#ifdef CPP_COUPLE
     395      deallocate(topswad_inca, solswad_inca)
     396      deallocate(topswad0_inca, solswad0_inca)
     397      deallocate(topswai_inca, solswai_inca)
     398      deallocate(topsw_inca, solsw_inca)
     399      deallocate(topsw0_inca, solsw0_inca)
     400      deallocate(tau_inca)
     401      deallocate(piz_inca)
     402      deallocate(cg_inca)
     403      deallocate(ccm)
     404#endif
     405#endif
     406      deallocate(tau_ae, piz_ae)
     407      deallocate(cg_ae)
     408 
    83409END SUBROUTINE phys_state_var_end
    84410
  • LMDZ4/trunk/libf/phylmd/physiq.F

    r950 r952  
    171171      PARAMETER (ok_region=.FALSE.)
    172172c======================================================================
    173 c     pour phsystoke avec thermiques
    174       real,allocatable,save :: clwcon0th(:,:),rnebcon0th(:,:)
    175 c$OMP THREADPRIVATE(clwcon0th,rnebcon0th)
    176 
    177173      real weak_inversion(klon),dthmin(klon)
    178174      real seuil_inversion
     
    254250cym#include "raddim.h"
    255251c
    256 
    257       REAL,allocatable,save :: swdn0(:,:), swdn(:,:)
    258       REAL,allocatable,save :: swup0(:,:), swup(:,:)
    259 c$OMP THREADPRIVATE(swdn0 , swdn, swup0, swup)
    260 c
    261       REAL,allocatable,save :: SWdn200clr(:), SWdn200(:)
    262       REAL,allocatable,save :: SWup200clr(:), SWup200(:)
    263 c$OMP THREADPRIVATE(SWdn200clr, SWdn200, SWup200clr, SWup200)
    264 c
    265       REAL,allocatable,save :: lwdn0(:,:), lwdn(:,:)
    266       REAL,allocatable,save :: lwup0(:,:), lwup(:,:)
    267 c$OMP THREADPRIVATE(lwdn0 , lwdn, lwup0, lwup)
    268 c
    269       REAL,allocatable,save :: LWdn200clr(:), LWdn200(:)
    270       REAL,allocatable,save :: LWup200clr(:), LWup200(:)
    271 c$OMP THREADPRIVATE(LWdn200clr, LWdn200, LWup200clr, LWup200)
    272 c
    273       REAL,allocatable,save :: LWdnTOA(:), LWdnTOAclr(:)
    274 c$OMP THREADPRIVATE(LWdnTOA, LWdnTOAclr)
    275252c
    276253cIM Amip2
    277254c variables a une pression donnee
    278255c
    279       integer nlevSTD
    280       PARAMETER(nlevSTD=17)
    281256      real rlevSTD(nlevSTD)
    282257      DATA rlevSTD/100000., 92500., 85000., 70000.,
     
    284259     .15000., 10000., 7000., 5000., 3000., 2000., 1000./
    285260      SAVE rlevstd
    286 c$OMP THREADPRIVATE(rlevSTD)
    287261      CHARACTER*4 clevSTD(nlevSTD)
    288262      DATA clevSTD/'1000','925 ','850 ','700 ','600 ',
     
    290264     .'70  ','50  ','30  ','20  ','10  '/
    291265      SAVE clevSTD
    292 c$OMP THREADPRIVATE(clevSTD)
    293266c
    294267      CHARACTER*4 bb2
     
    301274c
    302275c nout : niveau de output des variables a une pression donnee
    303       INTEGER nout
    304       PARAMETER(nout=3) !nout=1 : day; =2 : mth; =3 : NMC
    305 c
    306       REAL,SAVE,ALLOCATABLE :: tsumSTD(:,:,:)
    307       REAL,SAVE,ALLOCATABLE :: usumSTD(:,:,:), vsumSTD(:,:,:)
    308       REAL,SAVE,ALLOCATABLE :: wsumSTD(:,:,:), phisumSTD(:,:,:)
    309       REAL,SAVE,ALLOCATABLE :: qsumSTD(:,:,:), rhsumSTD(:,:,:)
    310 c$OMP THREADPRIVATE(tsumSTD, usumSTD, vsumSTD, wsumSTD, phisumSTD)
    311 c$OMP THREADPRIVATE(qsumSTD, rhsumSTD)
    312 c
    313276      logical oknondef(klon,nlevSTD,nout)
    314       real,SAVE,ALLOCATABLE :: tnondef(:,:,:)
    315 c$OMP THREADPRIVATE(tnondef)
    316277c
    317278c les produits uvSTD, vqSTD, .., T2STD sont calcules
     
    323284      real vTSTD(klon,nlevSTD)
    324285      real wqSTD(klon,nlevSTD)
    325 c
    326       real,save,allocatable :: uvsumSTD(:,:,:)
    327       real,save,allocatable :: vqsumSTD(:,:,:)
    328       real,save,allocatable :: vTsumSTD(:,:,:)
    329       real,save,allocatable :: wqsumSTD(:,:,:)
    330286c
    331287      real vphiSTD(klon,nlevSTD)
     
    334290      real v2STD(klon,nlevSTD)
    335291      real T2STD(klon,nlevSTD)
    336 c
    337       real,save,allocatable :: vphisumSTD(:,:,:)
    338       real,save,allocatable :: wTsumSTD(:,:,:)
    339       real,save,allocatable :: u2sumSTD(:,:,:)
    340       real,save,allocatable :: v2sumSTD(:,:,:)
    341       real,save,allocatable :: T2sumSTD(:,:,:)
    342 c
    343 c$OMP THREADPRIVATE(uvsumSTD, vqsumSTD, vTsumSTD, wqsumSTD)
    344 c$OMP THREADPRIVATE(vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, T2sumSTD)
    345 
    346 cMI Amip2
    347292c
    348293#include "radepsi.h"
     
    393338!     PARAMETER(isccppas=6) !appel du simulateurs tous les 6pas de temps de la physique
    394339!                           !i.e. toutes les 3 heures
    395       INTEGER n, napisccp
    396 c     PARAMETER(napisccp=3)
    397       PARAMETER(napisccp=1)
     340      INTEGER n
    398341      INTEGER ifreq_isccp(napisccp), freqin_pdt(napisccp)
    399342      DATA ifreq_isccp/3/
     
    414357      REAL t1, aa
    415358      REAL seed_re(klon,napisccp)
    416       INTEGER,ALLOCATABLE,SAVE :: seed_old(:,:)
    417 c$OMP THREADPRIVATE(seed_old)
    418359cym !!!! A voir plus tard
    419360cym      INTEGER iphy(iim,jjmp1)
     
    488429      REAL o500(klon)
    489430c
    490 cIM: nbregdyn = nbre regions pour calculs statistiques sur output du ISCCP
    491 cIM: dynamiques 
    492       INTEGER nreg, nbregdyn
    493       PARAMETER(nbregdyn=5)
    494 
    495       INTEGER,ALLOCATABLE,SAVE :: pct_ocean(:,:)
    496 c$OMP THREADPRIVATE(pct_ocean)
    497 cym      SAVE pct_ocean
    498  
     431
    499432c sorties ISCCP
    500433
     
    516449c$OMP THREADPRIVATE(cldtopres,cldtopres3)
    517450cIM 051005 BEG
    518       REAL tmp_his1_3d(iwmax,kmaxm1,lmaxm1,nbregdyn,napisccp)
    519       REAL tmp_his2_3d(iwmax,kmaxm1,lmaxm1,nbregdyn,napisccp)
    520       REAL tmp_his3_3d(iwmax,kmaxm1,lmaxm1,nbregdyn,napisccp)
    521451      INTEGER komega, nhoriRD
    522452
     
    622552c$OMP THREADPRIVATE(radpas)
    623553c
    624       REAL,SAVE,ALLOCATABLE :: rlonPOS(:)
    625 c$OMP THREADPRIVATE(rlonPOS)   
    626 cym      SAVE rlonPOS                ! longitudes > 0. pour chaque point
    627 c
    628554cc      INTEGER iflag_con
    629555cc      SAVE iflag_con              ! indicateur de la convection
     
    634560c
    635561      real slp(klon) ! sea level pressure
    636 
    637 cIM
    638       REAL,SAVE,ALLOCATABLE :: newsst(:) !temperature de l'ocean
    639 c$OMP THREADPRIVATE(newsst)
    640 cym     SAVE newsst
    641562c
    642563      REAL fevap(klon,nbsrf)
    643564      REAL fluxlat(klon,nbsrf)
    644565c
    645       REAL,allocatable,save :: deltat(:)
    646 c$OMP THREADPRIVATE(deltat)
    647 cym      SAVE deltat                 ! ecart avec la SST de reference
    648 c
    649566      REAL qsol(klon)
    650567      REAL,save ::  solarlong0
     
    655572      REAL zulow(klon),zvlow(klon)
    656573c
    657       REAL,allocatable,save :: zuthe(:),zvthe(:)
    658 c$OMP THREADPRIVATE(zuthe,zvthe)
    659 cym      SAVE zuthe
    660 cym      SAVE zvthe
    661574      INTEGER igwd,idx(klon),itest(klon)
    662575c
    663576      REAL agesno(klon,nbsrf)
    664 c
    665       REAL,allocatable,save :: alb_neig(:)
    666 c$OMP THREADPRIVATE(alb_neig)
    667 cym      SAVE alb_neig               ! albedo de la neige
    668577c
    669578c      REAL,allocatable,save :: run_off_lic_0(:)
     
    673582c Variables liees a la convection de K. Emanuel (sb):
    674583c
    675       REAL,allocatable,save :: ema_workcbmf(:)   ! cloud base mass flux
    676 c$OMP THREADPRIVATE(ema_workcbmf)
    677 cym      SAVE ema_workcbmf
    678 
    679       REAL,allocatable,save :: ema_cbmf(:)       ! cloud base mass flux
    680 c$OMP THREADPRIVATE(ema_cbmf)
    681 cym      SAVE ema_cbmf
    682 
    683       REAL,allocatable,save :: ema_pcb(:)        ! cloud base pressure
    684 c$OMP THREADPRIVATE(ema_pcb)
    685 cym      SAVE ema_pcb
    686 
    687       REAL,allocatable,save :: ema_pct(:)        ! cloud top pressure
    688 c$OMP THREADPRIVATE(ema_pct)
    689 cym      SAVE ema_pct
    690 
    691584      REAL bas, top             ! cloud base and top levels
    692585      SAVE bas
     
    694587c$OMP THREADPRIVATE(bas, top)
    695588
    696       REAL,allocatable,save :: Ma(:,:)        ! undilute upward mass flux
    697 c$OMP THREADPRIVATE(Ma)
    698 cym      SAVE Ma
    699       REAL,allocatable,save :: qcondc(:,:)    ! in-cld water content from convect
    700 c$OMP THREADPRIVATE(qcondc)
    701 cym      SAVE qcondc
    702589      REAL wdn(klon), tdn(klon), qdn(klon)
    703 
    704       REAL,allocatable,save :: wd(:) ! sb
    705 c$OMP THREADPRIVATE(wd)
    706 cym      SAVE wd       ! sb
    707 
    708       REAL,allocatable,save :: sigd(:)
    709590c
    710591c=================================================================================================
     
    714595      REAL mip(klon,klev)  ! mass flux shed by the adiab ascent at each level
    715596      REAL Vprecip(klon,klev)   ! precipitation vertical profile
    716       REAL,allocatable,save :: cin(:)            ! CIN
    717       REAL,allocatable,save :: ftd(:,:)       ! differential heating between wake and environment
    718       REAL,allocatable,save :: fqd(:,:)       ! differential moistening between wake and environment
    719 c34EK
    720 c -- Variables de controle de ALE et ALP
    721       REAL,allocatable,save :: ALE(:)     ! Energie disponible pour soulevement : utilisee par la         
    722 c convection d'Emanuel pour le declenchement et la regulation
    723       REAL,allocatable,save :: ALP(:)     ! Puissance  disponible pour soulevement           !
    724597c
    725598      REAL wape_prescr, fip_prescr
     
    731604      REAL ment(klon,klev,klev),sij(klon,klev,klev)
    732605      REAL dd_t(klon,klev),dd_q(klon,klev)
    733 cnouvelles variables pour le couplage convection-couche limite
    734       real,allocatable,save :: Ale_bl(:)
    735       real,allocatable,save :: Alp_bl(:)
    736       integer,allocatable,save :: lalim_conv(:)
    737       real,allocatable,save :: wght_th(:,:)
    738606      real alp_bl_prescr
    739607      save alp_bl_prescr
     
    748616      REAL t_wake(klon,klev),q_wake(klon,klev) ! wake pour la convection
    749617
    750       REAL,allocatable,save :: wake_deltat(:,:)     ! Wake : ecart de temperature avec la
    751 c                                              zone non perturbee
    752       REAL,allocatable,save :: wake_deltaq(:,:)     ! Wake : ecart d'humidite avec la
    753 c                                              zone non perturbee
    754618      REAL wake_dth(klon,klev)        ! wake : temp pot difference
    755619
     
    765629      REAL wake_dp_deltomg(klon,klev) ! Wake : gradient vertical de wake_omg
    766630      REAL wake_spread(klon,klev)     ! spreading term in wake_delt
    767       REAL,allocatable,save :: wake_Cstar(:)           ! vitesse d'etalement de la poche
     631c
    768632cpourquoi y'a pas de save??
    769633      REAL wake_h(klon)               ! Wake : hauteur de la poche froide
    770       REAL,allocatable,save :: wake_s(:)               ! Wake : fraction surfacique occupee par
    771 c                                              la poche froide
     634c
    772635      INTEGER wake_k(klon)            ! Wake sommet
    773636c
     
    776639c
    777640      REAL wake_pe(klon)              ! Wake potential energy - WAPE
    778       REAL,allocatable,save :: wake_fip(:)             ! Gust Front Impinging power - ALP
    779641
    780642      REAL wake_gfl(klon)             ! Gust Front Length
    781643      REAL wake_dens(klon)
    782644c
    783       REAL,allocatable,save :: dt_wake(:,:)
    784       REAL,allocatable,save :: dq_wake(:,:) ! LS tendencies due to wake
    785645c
    786646      REAL dt_dwn(klon,klev)
     
    820680c@$$      PARAMETER (offline=.false.)
    821681c@$$      INTEGER physid
    822       REAL,allocatable,save :: pfrac_impa(:,:)! Produits des coefs lessivage impaction
    823 c$OMP THREADPRIVATE(pfrac_impa)
    824 cym      save pfrac_impa
    825       REAL,allocatable,save :: pfrac_nucl(:,:)! Produits des coefs lessivage nucleation
    826 c$OMP THREADPRIVATE(pfrac_nucl)
    827 cym      save pfrac_nucl
    828       REAL,allocatable,save :: pfrac_1nucl(:,:)! Produits des coefs lessi nucl (alpha = 1)
    829 c$OMP THREADPRIVATE(pfrac_1nucl)
    830 cym      save pfrac_1nucl
    831682      REAL frac_impa(klon,klev) ! fractions d'aerosols lessivees (impaction)
    832683      REAL frac_nucl(klon,klev) ! idem (nucleation)
     
    839690      REAL rain_tiedtke(klon),snow_tiedtke(klon)
    840691c
    841 
    842       REAL,allocatable,save :: total_rain(:), nday_rain(:)
    843 c$OMP THREADPRIVATE(total_rain,nday_rain)
    844 cym      save total_rain, nday_rain
    845692cIM 050204 END
    846693      REAL evap(klon), devap(klon) ! evaporation et sa derivee
     
    871718      REAL pctsrf_new(klon,nbsrf) !pourcentage surfaces issus d'ORCHIDEE
    872719
    873 cym      REAL paire_ter(klon)        !surfaces terre
    874       REAL,allocatable,save ::  paire_ter(:)        !surfaces terre
    875 c$OMP THREADPRIVATE(paire_ter)
    876    
    877 cIM
    878720cym      SAVE pctsrf                 ! sous-fraction du sol
    879 
    880       REAL,allocatable,save :: albsol1(:) ! albedo du sol total pour SW visible
    881 c$OMP THREADPRIVATE(albsol1)
    882       REAL,allocatable,save :: albsol2(:) ! albedo du sol total pour SW proche IR
    883 c$OMP THREADPRIVATE(albsol2)     
    884 
    885       REAL,allocatable,save :: wo(:,:)
    886 c$OMP THREADPRIVATE(wo)
    887 cym     SAVE wo                     ! ozone
    888721
    889722cIM sorties
     
    932765c Variables locales
    933766c
    934       real,allocatable,save :: clwcon0(:,:),rnebcon0(:,:)
    935 cym      save rnebcon, clwcon
    936 c$OMP THREADPRIVATE(clwcon0,rnebcon0)
    937767      REAL rhcl(klon,klev)    ! humiditi relative ciel clair
    938768      REAL dialiq(klon,klev)  ! eau liquide nuageuse
     
    954784      REAL zxfluxv(klon, klev)
    955785CXXX
    956       REAL,allocatable,save :: heat(:,:)    ! chauffage solaire
    957 c$OMP THREADPRIVATE(heat)
    958       REAL,allocatable,save :: heat0(:,:)   ! chauffage solaire ciel clair
    959 c$OMP THREADPRIVATE(heat0)
    960       REAL,allocatable,save :: cool(:,:)    ! refroidissement infrarouge
    961 c$OMP THREADPRIVATE(cool)
    962       REAL,allocatable,save :: cool0(:,:)   ! refroidissement infrarouge ciel clair
    963 c$OMP THREADPRIVATE(cool0)
    964       REAL,allocatable,save :: topsw(:), toplw(:)
    965 c$OMP THREADPRIVATE(topsw,toplw)
    966       real,allocatable,save :: sollwdown(:)    ! downward LW flux at surface
    967 c$OMP THREADPRIVATE(sollwdown)
    968 cIM BEG
    969       real,allocatable,save :: sollwdownclr(:)    ! downward CS LW flux at surface
    970 c$OMP THREADPRIVATE(sollwdownclr)
    971       real,allocatable,save :: toplwdown(:)       ! downward CS LW flux at TOA
    972 c$OMP THREADPRIVATE(toplwdown)
    973       real,allocatable,save :: toplwdownclr(:)    ! downward CS LW flux at TOA
    974 c$OMP THREADPRIVATE(toplwdownclr)
    975 cIM END
    976       REAL,allocatable,save :: topsw0(:),toplw0(:),solsw0(:),sollw0(:)
    977 c$OMP THREADPRIVATE( topsw0,toplw0,solsw0,sollw0)
    978       REAL,allocatable,save :: albpla(:)
    979 c$OMP THREADPRIVATE(albpla)
     786c
    980787      REAL fsollw(klon, nbsrf)   ! bilan flux IR pour chaque sous surface
    981788      REAL fsolsw(klon, nbsrf)   ! flux solaire absorb. pour chaque sous surface
     
    1033840      REAL dnwd0(klon,klev)     ! unsaturated downdraft mass flux
    1034841      REAL tvp(klon,klev)       ! virtual temp of lifted parcel
    1035       REAL,allocatable,save :: cape(:)           ! CAPE
    1036 c$OMP THREADPRIVATE(cape)
    1037 cym      SAVE cape
    1038842      CHARACTER*40 capemaxcels  !max(CAPE)
    1039843
    1040       REAL,allocatable,save :: pbase(:)          ! cloud base pressure
    1041 c$OMP THREADPRIVATE(pbase)
    1042 cym      SAVE pbase
    1043       REAL,allocatable,save :: bbase(:)          ! cloud base buoyancy
    1044 c$OMP THREADPRIVATE(bbase)
    1045 cym      SAVE bbase
    1046844      REAL rflag(klon)          ! flag fonctionnement de convect
    1047845      INTEGER iflagctrl(klon)          ! flag fonctionnement de convect
     
    1073871*********************************************************
    1074872*     declarations
    1075       real,save,allocatable :: zqasc(:,:)
    1076 c$OMP THREADPRIVATE(zqasc)
    1077 cym      save zqasc
    1078873     
    1079874*********************************************************
     
    1087882      REAL prfl(klon,klev+1), psfl(klon,klev+1)
    1088883c
    1089       INTEGER,allocatable,save :: ibas_con(:), itop_con(:)
    1090 c$OMP THREADPRIVATE(ibas_con,itop_con)
    1091 cym
    1092 cym      SAVE ibas_con,itop_con
    1093 cym
    1094       REAL,SAVE,ALLOCATABLE :: rain_con(:)
    1095 c$OMP THREADPRIVATE(rain_con)
    1096884      REAL rain_lsc(klon)
    1097       REAL,SAVE,ALLOCATABLE :: snow_con(:)
    1098 c$OMP THREADPRIVATE(snow_con)
    1099885      REAL snow_lsc(klon)
    1100886c
    1101887      REAL ratqss(klon,klev),ratqsc(klon,klev)
    1102888      real ratqsbas,ratqshaut
    1103 cym      save ratqsbas,ratqshaut, ratqs
    1104889      save ratqsbas,ratqshaut
    1105 c$OMP THREADPRIVATE(ratqsbas,ratqshaut)
    1106890      real zpt_conv(klon,klev)
    1107891
     
    12751059
    12761060cIM: t2m, q2m, u10m, v10m et t2mincels, t2maxcels
    1277       REAL,SAVE,ALLOCATABLE :: u10m(:,:), v10m(:,:) !vents a 10m
    1278 c$OMP THREADPRIVATE(u10m,v10m)
    12791061      REAL zt2m(klon), zq2m(klon)             !temp., hum. 2m moyenne s/ 1 maille
    12801062      REAL zu10m(klon), zv10m(klon)           !vents a 10m moyennes s/1 maille
     
    12831065cjq   Aerosol effects (Johannes Quaas, 27/11/2003)
    12841066      REAL sulfate(klon, klev) ! SO4 aerosol concentration [ug/m3]
    1285       REAL,allocatable,save :: sulfate_pi(:,:) ! SO4 aerosol concentration [ug/m3] (pre-industrial value)
    1286 c$OMP THREADPRIVATE(sulfate_pi)
    1287 cym      SAVE sulfate_pi
    12881067
    12891068      REAL cldtaupi(klon,klev)  ! Cloud optical thickness for pre-industrial (pi) aerosols
     
    12951074
    12961075      ! Aerosol optical properties
    1297       REAL,SAVE,ALLOCATABLE :: tau_ae(:,:,:), piz_ae(:,:,:)
    1298 c$OMP THREADPRIVATE(tau_ae,piz_ae)
    1299       REAL,SAVE,ALLOCATABLE :: cg_ae(:,:,:)
    1300 c$OMP THREADPRIVATE(cg_ae)
    1301 
    13021076#ifdef INCA_AER
    13031077#ifdef CPP_COUPLE
    13041078! Aerosol optical properties by INCA model
    1305       REAL, SAVE, ALLOCATABLE  ::    tau_inca(:,:,:,:)
    1306       REAL, SAVE, ALLOCATABLE  ::    piz_inca(:,:,:,:)
    1307       REAL, SAVE, ALLOCATABLE  ::    cg_inca(:,:,:,:)
    1308       REAL, SAVE, ALLOCATABLE  ::    ccm(:,:,:)
    13091079      CHARACTER*4              ::    rfname(9)
    13101080
    1311       REAL,SAVE,ALLOCATABLE :: topswad_inca(:), solswad_inca(:) ! Aerosol direct effect.
    1312       REAL,SAVE,ALLOCATABLE :: topswad0_inca(:), solswad0_inca(:) ! Aerosol direct effect.
    1313       REAL,SAVE,ALLOCATABLE :: topswai_inca(:), solswai_inca(:) ! Aerosol indirect effect.
    1314       REAL,SAVE,ALLOCATABLE :: topsw_inca(:,:), solsw_inca(:,:)
    1315       REAL,SAVE,ALLOCATABLE :: topsw0_inca(:,:), solsw0_inca(:,:)
    13161081#endif
    13171082#endif
    1318       REAL,SAVE,ALLOCATABLE :: topswad(:), solswad(:) ! Aerosol direct effect.
    1319 c$OMP THREADPRIVATE(topswad,solswad)
    1320       ! ok_ade=T -ADE=topswad-topsw
    1321 
    1322       REAL,SAVE,ALLOCATABLE :: topswai(:), solswai(:) ! Aerosol indirect effect.
    1323 c$OMP THREADPRIVATE(topswai,solswai)
    1324       ! ok_aie=T ->
    1325       !        ok_ade=T -AIE=topswai-topswad
    1326       !        ok_ade=F -AIE=topswai-topsw
    1327 
    13281083      REAL aerindex(klon)       ! POLDER aerosol index
    13291084     
     
    13881143      if (first) then
    13891144     
    1390       allocate( swdn0(klon,klevp1), swdn(klon,klevp1))
    1391       allocate( swup0(klon,klevp1), swup(klon,klevp1))
    1392       allocate( SWdn200clr(klon), SWdn200(klon))
    1393       allocate( SWup200clr(klon), SWup200(klon))
    1394       allocate( lwdn0(klon,klevp1), lwdn(klon,klevp1))
    1395       allocate( lwup0(klon,klevp1), lwup(klon,klevp1))
    1396       allocate( LWdn200clr(klon), LWdn200(klon))
    1397       allocate( LWup200clr(klon), LWup200(klon))
    1398       allocate( LWdnTOA(klon), LWdnTOAclr(klon))
    1399       allocate( deltat(klon))
    1400       allocate( zuthe(klon),zvthe(klon))
    1401       allocate( alb_neig(klon))
    1402       allocate( ema_workcbmf(klon))
    14031145cCR:nvelles variables convection/poches froides
    1404       allocate( sigd(klon))
    1405       allocate( cin(klon))
    1406       allocate( ftd(klon,klev))
    1407       allocate( fqd(klon,klev))
    1408       allocate( ALE(klon))
    1409       allocate( ALP(klon))
    1410       allocate( Ale_bl(klon))
    1411       allocate( Alp_bl(klon))
    1412       allocate( lalim_conv(klon))
    1413       allocate( wght_th(klon,klev))
    1414       allocate( wake_deltat(klon,klev))
    1415       allocate( wake_deltaq(klon,klev))
    1416       allocate( wake_Cstar(klon))
    1417       allocate( wake_s(klon))
    1418       allocate( wake_fip(klon))
    1419       allocate( dt_wake(klon,klev))
    1420       allocate( dq_wake(klon,klev))
    1421 cfinCR
    1422       allocate( ema_cbmf(klon))
    1423       allocate( ema_pcb(klon))
    1424       allocate( ema_pct(klon)) 
    1425       allocate( Ma(klon,klev) )
    1426       allocate( qcondc(klon,klev)) 
    1427       allocate( wd(klon) )
    1428       allocate( pfrac_impa(klon,klev))
    1429       allocate( pfrac_nucl(klon,klev))
    1430       allocate( pfrac_1nucl(klon,klev))
    1431       allocate( total_rain(klon), nday_rain(klon))
    1432       allocate( albsol1(klon))
    1433       allocate( albsol2(klon))
    1434       allocate( wo(klon,klev))
    1435       allocate( heat(klon,klev)    )
    1436       allocate( heat0(klon,klev)  )
    1437       allocate( cool(klon,klev)    )
    1438       allocate( cool0(klon,klev)   )
    1439       allocate( topsw(klon), toplw(klon))
    1440       allocate( sollwdown(klon)    )
    1441       allocate( sollwdownclr(klon)  )
    1442       allocate( toplwdown(klon)      )
    1443       allocate( toplwdownclr(klon)   )
    1444       allocate( topsw0(klon), toplw0(klon), solsw0(klon), sollw0(klon))
    1445       allocate( albpla(klon))
    1446       allocate( cape(klon)   )       
    1447       allocate( pbase(klon)   )     
    1448       allocate( bbase(klon)    )     
    1449       allocate( ibas_con(klon), itop_con(klon))
    1450       allocate( sulfate_pi(klon, klev))
    1451       allocate( paire_ter(klon))
    1452       allocate(tsumSTD(klon,nlevSTD,nout))
    1453       allocate(usumSTD(klon,nlevSTD,nout))
    1454       allocate(vsumSTD(klon,nlevSTD,nout))
    1455       allocate(wsumSTD(klon,nlevSTD,nout))
    1456       allocate(phisumSTD(klon,nlevSTD,nout))
    1457       allocate(qsumSTD(klon,nlevSTD,nout))
    1458       allocate(rhsumSTD(klon,nlevSTD,nout))
    1459       allocate(uvsumSTD(klon,nlevSTD,nout))
    1460       allocate(vqsumSTD(klon,nlevSTD,nout))
    1461       allocate(vTsumSTD(klon,nlevSTD,nout))
    1462       allocate(wqsumSTD(klon,nlevSTD,nout))
    1463       allocate( vphisumSTD(klon,nlevSTD,nout))
    1464       allocate( wTsumSTD(klon,nlevSTD,nout))
    1465       allocate( u2sumSTD(klon,nlevSTD,nout))
    1466       allocate( v2sumSTD(klon,nlevSTD,nout))
    1467       allocate( T2sumSTD(klon,nlevSTD,nout))
    1468       allocate( seed_old(klon,napisccp))
    1469       allocate( pct_ocean(klon,nbregdyn))
    1470       allocate( rlonPOS(klon))
    1471       allocate( newsst(klon))
    1472       allocate( zqasc(klon,klev))
    1473       allocate( rain_con(klon))
    1474       allocate( u10m(klon,nbsrf), v10m(klon,nbsrf))
    1475       allocate( topswad(klon), solswad(klon))
    1476       allocate( topswai(klon), solswai(klon) )
    1477 #ifdef INCA_AER
    1478 #ifdef CPP_COUPLE
    1479       allocate( topswad_inca(klon), solswad_inca(klon))
    1480       allocate( topswad0_inca(klon), solswad0_inca(klon))
    1481       allocate( topswai_inca(klon), solswai_inca(klon))
    1482       allocate( topsw_inca(klon,9), solsw_inca(klon,9))
    1483       allocate( topsw0_inca(klon,9), solsw0_inca(klon,9))
    1484       allocate( tau_inca(klon,klev,9,2))
    1485       allocate( piz_inca(klon,klev,9,2))
    1486       allocate( cg_inca(klon,klev,9,2))
    1487       allocate( ccm(klon,klev,2) )
    1488 #endif
    1489 #endif
    1490       allocate( clwcon0(klon,klev),rnebcon0(klon,klev))
    1491       allocate( clwcon0th(klon,klev),rnebcon0th(klon,klev))
    1492       allocate( tau_ae(klon,klev,2), piz_ae(klon,klev,2))
    1493       allocate( cg_ae(klon,klev,2))
    1494       allocate( snow_con(klon))
    1495       allocate( tnondef(klon,nlevSTD,nout))
    14961146     
    14971147      print*, '================================================='
     
    15831233         rnebcon(:,:) = 0.0
    15841234         clwcon(:,:) = 0.0
    1585          paire_ter(:) = 0.0
    1586 c        nhistoW(:,:,:,:) = 0.0
    1587 c        histoW(:,:,:,:) = 0.0
    15881235! fin anne
    15891236
     
    16211268             PRINT*, "Using method MELLOR&YAMADA"
    16221269         endif
    1623           pbl_tke(:,:,:) = 1.e-8
    1624 
    16251270
    16261271         CALL phyetat0 ("startphy.nc",dtime,co2_ppm_etat0,solaire_etat0,
Note: See TracChangeset for help on using the changeset viewer.