Ignore:
Timestamp:
Aug 17, 2006, 5:41:51 PM (18 years ago)
Author:
Laurent Fairhead
Message:

Inclusion des modifs de Y. Meurdesoif pour la version V3
LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/V3_test/libf/phylmd/physiq.F

    r702 r704  
    33!
    44c
     5c#define IO_DEBUG
     6
    57      SUBROUTINE physiq (nlon,nlev,nqmax,
    68     .            debut,lafin,rjourvrai,gmtime,pdtphys,
     
    1719
    1820      USE ioipsl
    19       USE histcom
     21      USE comgeomphy
     22      USE write_field_phy
     23      USE dimphy
     24      USE iophy
     25      USE misc_mod, mydebug=>debug
     26      USE vampir
    2027#ifdef INCA
    21       USE chemshut
     28cym      USE chemshut
    2229      USE species_names
    2330#ifdef INCA_CH4
     
    8491      integer jjmp1
    8592      parameter (jjmp1=jjm+1-1/jjm)
    86 #include "dimphy.h"
     93      integer iip1
     94      parameter (iip1=iim+1)
     95cym#include "dimphy.h"
    8796#include "regdim.h"
    8897#include "indicesol.h"
     
    92101#include "logic.h"
    93102#include "temps.h"
    94 #include "comgeomphy.h"
     103cym#include "comgeomphy.h"
    95104#include "advtrac.h"
    96105#include "iniprint.h"
     
    110119#include "oasis.h"
    111120      INTEGER,SAVE :: npas, nexca
     121c$OMP THREADPRIVATE(npas, nexca)
    112122      logical rnpb
    113123#ifdef INCA
     
    119129      character*6 ocean
    120130      SAVE ocean
    121 
     131c$OMP THREADPRIVATE(ocean)
    122132c      parameter (ocean = 'force ')
    123133c     parameter (ocean = 'couple')
    124134      logical ok_ocean
    125135      SAVE ok_ocean
     136c$OMP THREADPRIVATE(ok_ocean)
    126137c
    127138cIM "slab" ocean
     
    144155      logical ok_veget
    145156      save ok_veget
     157c$OMP THREADPRIVATE(ok_veget)
    146158c     parameter (ok_veget = .true.)
    147159c      parameter (ok_veget = .false.)
     
    163175      LOGICAL ok_journe ! sortir le fichier journalier
    164176      save ok_journe
     177c$OMP THREADPRIVATE(ok_journe)
    165178c      PARAMETER (ok_journe=.true.)
    166179c
    167180      LOGICAL ok_mensuel ! sortir le fichier mensuel
    168181      save ok_mensuel
     182c$OMP THREADPRIVATE(ok_mensuel)
    169183c      PARAMETER (ok_mensuel=.true.)
    170184c
    171185      LOGICAL ok_instan ! sortir le fichier instantane
    172186      save ok_instan
     187c$OMP THREADPRIVATE(ok_instan)
    173188c      PARAMETER (ok_instan=.true.)
    174189c
     
    179194      REAL fm_therm(klon,klev+1)
    180195      REAL entr_therm(klon,klev)
    181       real q2(klon,klev+1,nbsrf)
    182       save q2
     196      real,allocatable,save :: q2(:,:,:)
     197c$OMP THREADPRIVATE(q2)
     198cym      save q2
    183199c======================================================================
    184200c
     
    215231      REAL qx(klon,klev,nqmax)
    216232
    217       REAL t_ancien(klon,klev), q_ancien(klon,klev)
    218       SAVE t_ancien, q_ancien
     233      REAL,allocatable,save :: t_ancien(:,:), q_ancien(:,:)
     234c$OMP THREADPRIVATE(t_ancien, q_ancien)
     235cym      SAVE t_ancien, q_ancien
    219236      LOGICAL ancien_ok
    220237      SAVE ancien_ok
    221 
     238c$OMP THREADPRIVATE(ancien_ok)
    222239      REAL d_t_dyn(klon,klev)
    223240      REAL d_q_dyn(klon,klev)
     
    241258      CHARACTER*3 ctetaSTD(nbteta)
    242259      DATA ctetaSTD/'350','380','405'/
     260c$OMP THREADPRIVATE(ctetaSTD)
    243261      REAL rtetaSTD(nbteta)
    244262      DATA rtetaSTD/350., 380., 405./
     263c$OMP THREADPRIVATE(rtetaSTD)     
    245264c
    246265      REAL PVteta(klon,nbteta)
     
    249268cMI Amip2 PV a theta constante
    250269
    251       INTEGER klevp1, klevm1
    252       PARAMETER(klevp1=klev+1,klevm1=klev-1)
    253 #include "raddim.h"
    254 c
    255       REAL swdn0(klon,klevp1), swdn(klon,klevp1)
    256       REAL swup0(klon,klevp1), swup(klon,klevp1)
    257       SAVE swdn0 , swdn, swup0, swup
    258 c
    259       REAL SWdn200clr(klon), SWdn200(klon)
    260       REAL SWup200clr(klon), SWup200(klon)
    261       SAVE SWdn200clr, SWdn200, SWup200clr, SWup200
    262 c
    263       REAL lwdn0(klon,klevp1), lwdn(klon,klevp1)
    264       REAL lwup0(klon,klevp1), lwup(klon,klevp1)
    265       SAVE lwdn0 , lwdn, lwup0, lwup
    266 c
    267       REAL LWdn200clr(klon), LWdn200(klon)
    268       REAL LWup200clr(klon), LWup200(klon)
    269       SAVE LWdn200clr, LWdn200, LWup200clr, LWup200
    270 c
    271       REAL LWdnTOA(klon), LWdnTOAclr(klon)
    272       SAVE LWdnTOA, LWdnTOAclr
     270cym      INTEGER klevp1, klevm1
     271cym      PARAMETER(klevp1=klev+1,klevm1=klev-1)
     272cym#include "raddim.h"
     273c
     274
     275      REAL,allocatable,save :: swdn0(:,:), swdn(:,:)
     276      REAL,allocatable,save :: swup0(:,:), swup(:,:)
     277c$OMP THREADPRIVATE(swdn0 , swdn, swup0, swup)
     278cym      SAVE swdn0 , swdn, swup0, swup
     279c
     280      REAL,allocatable,save :: SWdn200clr(:), SWdn200(:)
     281      REAL,allocatable,save :: SWup200clr(:), SWup200(:)
     282c$OMP THREADPRIVATE(SWdn200clr, SWdn200, SWup200clr, SWup200)
     283cym      SAVE SWdn200clr, SWdn200, SWup200clr, SWup200
     284c
     285      REAL,allocatable,save :: lwdn0(:,:), lwdn(:,:)
     286      REAL,allocatable,save :: lwup0(:,:), lwup(:,:)
     287c$OMP THREADPRIVATE(lwdn0 , lwdn, lwup0, lwup)
     288cym      SAVE lwdn0 , lwdn, lwup0, lwup
     289c
     290      REAL,allocatable,save :: LWdn200clr(:), LWdn200(:)
     291      REAL,allocatable,save :: LWup200clr(:), LWup200(:)
     292c$OMP THREADPRIVATE(LWdn200clr, LWdn200, LWup200clr, LWup200)
     293cym      SAVE LWdn200clr, LWdn200, LWup200clr, LWup200
     294c
     295      REAL,allocatable,save :: LWdnTOA(:), LWdnTOAclr(:)
     296c$OMP THREADPRIVATE(LWdnTOA, LWdnTOAclr)
     297cym      SAVE LWdnTOA, LWdnTOAclr
    273298c
    274299cIM Amip2
     
    281306     .60000., 50000., 40000., 30000., 25000., 20000.,
    282307     .15000., 10000., 7000., 5000., 3000., 2000., 1000./
     308c$OMP THREADPRIVATE(rlevSTD)
    283309      CHARACTER*4 clevSTD(nlevSTD)
    284310      DATA clevSTD/'1000','925 ','850 ','700 ','600 ',
    285311     .'500 ','400 ','300 ','250 ','200 ','150 ','100 ',
    286312     .'70  ','50  ','30  ','20  ','10  '/
     313c$OMP THREADPRIVATE(clevSTD)
    287314c
    288315      CHARACTER*3 bb2
     
    298325      PARAMETER(nout=3) !nout=1 : day; =2 : mth; =3 : NMC
    299326c
    300       REAL tsumSTD(klon,nlevSTD,nout)
    301       REAL usumSTD(klon,nlevSTD,nout), vsumSTD(klon,nlevSTD,nout)
    302       REAL wsumSTD(klon,nlevSTD,nout), phisumSTD(klon,nlevSTD,nout)
    303       REAL qsumSTD(klon,nlevSTD,nout), rhsumSTD(klon,nlevSTD,nout)
    304 c
    305       SAVE tsumSTD, usumSTD, vsumSTD, wsumSTD, phisumSTD,
    306      .     qsumSTD, rhsumSTD
     327      REAL,SAVE,ALLOCATABLE :: tsumSTD(:,:,:)
     328      REAL,SAVE,ALLOCATABLE :: usumSTD(:,:,:), vsumSTD(:,:,:)
     329      REAL,SAVE,ALLOCATABLE :: wsumSTD(:,:,:), phisumSTD(:,:,:)
     330      REAL,SAVE,ALLOCATABLE :: qsumSTD(:,:,:), rhsumSTD(:,:,:)
     331c
     332cym      SAVE tsumSTD, usumSTD, vsumSTD, wsumSTD, phisumSTD,
     333cym     .     qsumSTD, rhsumSTD
     334c$OMP THREADPRIVATE(tsumSTD, usumSTD, vsumSTD, wsumSTD, phisumSTD)
     335c$OMP THREADPRIVATE(qsumSTD, rhsumSTD)
    307336c
    308337      logical oknondef(klon,nlevSTD,nout)
    309       real tnondef(klon,nlevSTD,nout)
    310       save tnondef
     338      real,SAVE,ALLOCATABLE :: tnondef(:,:,:)
     339c$OMP THREADPRIVATE(tnondef)
     340cym      save tnondef
    311341c
    312342c les produits uvSTD, vqSTD, .., T2STD sont calcules
     
    319349      real wqSTD(klon,nlevSTD)
    320350c
    321       real uvsumSTD(klon,nlevSTD,nout)
    322       real vqsumSTD(klon,nlevSTD,nout)
    323       real vTsumSTD(klon,nlevSTD,nout)
    324       real wqsumSTD(klon,nlevSTD,nout)
     351      real,save,allocatable :: uvsumSTD(:,:,:)
     352      real,save,allocatable :: vqsumSTD(:,:,:)
     353      real,save,allocatable :: vTsumSTD(:,:,:)
     354      real,save,allocatable :: wqsumSTD(:,:,:)
    325355c
    326356      real vphiSTD(klon,nlevSTD)
     
    330360      real T2STD(klon,nlevSTD)
    331361c
    332       real vphisumSTD(klon,nlevSTD,nout)
    333       real wTsumSTD(klon,nlevSTD,nout)
    334       real u2sumSTD(klon,nlevSTD,nout)
    335       real v2sumSTD(klon,nlevSTD,nout)
    336       real T2sumSTD(klon,nlevSTD,nout)
    337 c
    338       SAVE uvsumSTD, vqsumSTD, vTsumSTD, wqsumSTD
    339       SAVE vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, T2sumSTD
     362      real,save,allocatable :: vphisumSTD(:,:,:)
     363      real,save,allocatable :: wTsumSTD(:,:,:)
     364      real,save,allocatable :: u2sumSTD(:,:,:)
     365      real,save,allocatable :: v2sumSTD(:,:,:)
     366      real,save,allocatable :: T2sumSTD(:,:,:)
     367c
     368cym      SAVE uvsumSTD, vqsumSTD, vTsumSTD, wqsumSTD
     369cym      SAVE vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, T2sumSTD
     370c$OMP THREADPRIVATE(uvsumSTD, vqsumSTD, vTsumSTD, wqsumSTD)
     371c$OMP THREADPRIVATE(vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, T2sumSTD)
     372
    340373cMI Amip2
    341374c
     
    355388      REAL cldt_s(klon),cldq_s(klon) !nuage total, eau liquide integree
    356389
    357       INTEGER kp1
     390      INTEGER linv, kp1
    358391c flwp, fiwp = Liquid Water Path & Ice Water Path (kg/m2)
    359392c flwc, fiwc = Liquid Water Content & Ice Water Content (kg/kg)
     
    369402cv3.4
    370403      INTEGER debug, debugcol
    371       INTEGER npoints
    372       PARAMETER(npoints=klon)
     404cym      INTEGER npoints
     405cym      PARAMETER(npoints=klon)
    373406c
    374407      INTEGER sunlit(klon) !sunlit=1 if day; sunlit=0 if night
     
    390423      DATA ifreq_isccp/3/
    391424      SAVE ifreq_isccp
     425c$OMP THREAPRIVATE(ifreq_isccp)
    392426      CHARACTER*5 typinout(napisccp)
    393427      DATA typinout/'i3od'/
     428c$OMP THREAPRIVATE(typinout)
    394429cIM verif boxptop BEG
    395430      CHARACTER*1 verticaxe(napisccp)
    396431      DATA verticaxe/'1'/
     432c$OMP THREAPRIVATE(verticaxe)
    397433cIM verif boxptop END
    398434      INTEGER nvlev(napisccp)
     
    400436      REAL t1, aa
    401437      REAL seed_re(klon,napisccp)
    402       INTEGER seed_old(klon,napisccp)
    403       SAVE seed_old
    404       INTEGER iphy(iim,jjmp1)
     438      INTEGER,ALLOCATABLE,SAVE :: seed_old(:,:)
     439cym      SAVE seed_old
     440c$OMP THREADPRIVATE(seed_old)
     441cym !!!! A voir plus tard
     442cym      INTEGER iphy(iim,jjmp1)
    405443cIM parametres ISCCP END
    406444c
     
    481519
    482520      INTEGER linv
    483       INTEGER pct_ocean(klon,nbregdyn)
    484       SAVE pct_ocean
     521      INTEGER,ALLOCATABLE,SAVE :: pct_ocean(:,:)
     522c$OMP THREADPRIVATE(pct_ocean)
     523cym      SAVE pct_ocean
    485524 
    486525c sorties ISCCP
     
    491530c     save ok_isccp, ecrit_isccp, nid_isccp       
    492531      save nid_isccp       
    493 
     532c$OMP THREADPRIVATE(ok_isccp, ecrit_isccp, nid_isccp,nid_isccp)
    494533#undef histISCCP
    495534#define histISCCP
     
    505544cIM bad 151205     DATA zx_pc/50., 180., 310., 440., 560., 680., 800./
    506545      DATA zx_pc/180., 310., 440., 560., 680., 800., 1000./
    507 
     546c$OMP THREADPRIVATE(zx_tau,zx_pc)
    508547c cldtopres pression au sommet des nuages
    509548      REAL cldtopres(lmaxm1), cldtopres3(lmax3)
     
    511550      DATA cldtopres/180., 310., 440., 560., 680., 800., 1000./
    512551      DATA cldtopres3/440., 680., 1000./
     552c$OMP THREADPRIVATE(cldtopres,cldtopres3)
    513553cIM 051005 BEG
    514554      REAL tmp_his1_3d(iwmax,kmaxm1,lmaxm1,nbregdyn,napisccp)
     
    525565      CHARACTER *3 pclev(lmaxm1)
    526566      DATA pclev/'pc1','pc2','pc3','pc4','pc5','pc6','pc7'/
     567c$OMP THREADPRIVATE(taulev,pclev)
    527568c
    528569c cnameisccp
     
    578619     .                'pc= 680-800hPa, tau> 60.',
    579620     .                'pc= 800-1000hPa, tau> 60.'/
     621c$OMP THREADPRIVATE(cnameisccp)
    580622c
    581623c     REAL zx_lonx7(iimx7), zx_latx7(jjmp1x7)
     
    591633      integer nid_hf, nid_hf3d
    592634      save ok_hf, nid_hf, nid_hf3d
    593 
     635c$OMP THREADPRIVATE(ok_hf, nid_hf, nid_hf3d)
    594636c  QUESTION : noms de variables ?
    595637
    596638#undef histhf
    597 #define histhf
     639c#define histhf
    598640#ifdef histhf
    599641cIM 130904   data ok_hf,ecrit_hf/.true.,0.25/
     
    602644      data ok_hf/.false./
    603645#endif
    604 
    605646      INTEGER        longcles
    606647      PARAMETER    ( longcles = 20 )
     
    611652      REAL xjour
    612653      SAVE xjour
     654c$OMP THREADPRIVATE(xjour)
    613655c
    614656c
     
    617659      REAL dtime
    618660      SAVE dtime                  ! pas temporel de la physique
     661c$OMP THREADPRIVATE(dtime)
    619662c
    620663      INTEGER radpas
    621664      SAVE radpas                 ! frequence d'appel rayonnement
    622 c
    623       REAL radsol(klon)
    624       SAVE radsol               ! bilan radiatif au sol calcule par code radiatif
    625 c
    626       REAL rlat(klon)
    627       SAVE rlat                   ! latitude pour chaque point
    628 c
    629       REAL rlon(klon)
    630       SAVE rlon                   ! longitude pour chaque point
    631 c
    632       REAL rlonPOS(klon)
    633       SAVE rlonPOS                ! longitudes > 0. pour chaque point
     665c$OMP THREADPRIVATE(radpas)
     666c
     667      REAL,allocatable,save :: radsol(:)
     668c$OMP THREADPRIVATE(radsol)
     669cym      SAVE radsol               ! bilan radiatif au sol calcule par code radiatif
     670c
     671      REAL,allocatable,save :: rlat(:)
     672c$OMP THREADPRIVATE(rlat)
     673cym      SAVE rlat                   ! latitude pour chaque point
     674c
     675      REAL,allocatable,save :: rlon(:)
     676c$OMP THREADPRIVATE(rlon)
     677cym      SAVE rlon                   ! longitude pour chaque point
     678
     679      REAL,SAVE,ALLOCATABLE :: rlonPOS(:)
     680c$OMP THREADPRIVATE(rlonPOS)   
     681cym      SAVE rlonPOS                ! longitudes > 0. pour chaque point
    634682c
    635683cc      INTEGER iflag_con
     
    638686      INTEGER itap
    639687      SAVE itap                   ! compteur pour la physique
     688c$OMP THREADPRIVATE(itap)
    640689c
    641690      REAL co2_ppm_etat0
     
    645694      real slp(klon) ! sea level pressure
    646695
    647       REAL ftsol(klon,nbsrf)
    648       SAVE ftsol                  ! temperature du sol
     696      REAL,allocatable,save :: ftsol(:,:)
     697c$OMP THREADPRIVATE(ftsol)
     698cym      SAVE ftsol                  ! temperature du sol
     699
    649700cIM
    650       REAL newsst(klon) !temperature de l'ocean
    651       SAVE newsst
    652 c
    653       REAL ftsoil(klon,nsoilmx,nbsrf)
    654       SAVE ftsoil                 ! temperature dans le sol
    655 c
    656       REAL fevap(klon,nbsrf)
    657       SAVE fevap                 ! evaporation
    658       REAL fluxlat(klon,nbsrf)
    659       SAVE fluxlat
    660 c
    661       REAL deltat(klon)
    662       SAVE deltat                 ! ecart avec la SST de reference
    663 c
    664       REAL fqsurf(klon,nbsrf)
    665       SAVE fqsurf                 ! humidite de l'air au contact de la surface
    666 c
    667       REAL qsol(klon)
    668       SAVE qsol                  ! hauteur d'eau dans le sol
    669 c
    670       REAL fsnow(klon,nbsrf)
    671       SAVE fsnow                  ! epaisseur neigeuse
    672 c
    673       REAL falbe(klon,nbsrf)
    674       SAVE falbe                  ! albedo par type de surface
    675       REAL falblw(klon,nbsrf)
    676       SAVE falblw                 ! albedo par type de surface
     701      REAL,SAVE,ALLOCATABLE :: newsst(:) !temperature de l'ocean
     702c$OMP THREADPRIVATE(newsst)
     703cym     SAVE newsst
     704c
     705      REAL,allocatable,save :: ftsoil(:,:,:)
     706c$OMP THREADPRIVATE(ftsoil)
     707cym      SAVE ftsoil                 ! temperature dans le sol
     708c
     709      REAL,allocatable,save :: fevap(:,:)
     710c$OMP THREADPRIVATE(fevap)
     711cym      SAVE fevap                 ! evaporation
     712      REAL,allocatable,save :: fluxlat(:,:)
     713c$OMP THREADPRIVATE(fluxlat)
     714cym      SAVE fluxlat
     715c
     716      REAL,allocatable,save :: deltat(:)
     717c$OMP THREADPRIVATE(deltat)
     718cym      SAVE deltat                 ! ecart avec la SST de reference
     719c
     720      REAL,allocatable,save :: fqsurf(:,:)
     721c$OMP THREADPRIVATE(fqsurf)
     722cym      SAVE fqsurf                 ! humidite de l'air au contact de la surface
     723c
     724      REAL,allocatable,save :: qsol(:)
     725c$OMP THREADPRIVATE(qsol)
     726cym      SAVE qsol                  ! hauteur d'eau dans le sol
     727c
     728      REAL,allocatable,save :: fsnow(:,:)
     729c$OMP THREADPRIVATE(fsnow)
     730cym      SAVE fsnow                  ! epaisseur neigeuse
     731c
     732      REAL,allocatable,save :: falbe(:,:)
     733c$OMP THREADPRIVATE(falbe)
     734cym      SAVE falbe                  ! albedo par type de surface
     735      REAL,allocatable,save :: falblw(:,:)
     736c$OMP THREADPRIVATE(falblw)     
     737cym      SAVE falblw                 ! albedo par type de surface
    677738
    678739c
     
    680741c  Parametres de l'Orographie a l'Echelle Sous-Maille (OESM):
    681742c
    682       REAL zmea(klon)
    683       SAVE zmea                   ! orographie moyenne
    684 c
    685       REAL zstd(klon)
    686       SAVE zstd                   ! deviation standard de l'OESM
    687 c
    688       REAL zsig(klon)
    689       SAVE zsig                   ! pente de l'OESM
    690 c
    691       REAL zgam(klon)
    692       save zgam                   ! anisotropie de l'OESM
    693 c
    694       REAL zthe(klon)
    695       SAVE zthe                   ! orientation de l'OESM
    696 c
    697       REAL zpic(klon)
    698       SAVE zpic                   ! Maximum de l'OESM
    699 c
    700       REAL zval(klon)
    701       SAVE zval                   ! Minimum de l'OESM
    702 c
    703       REAL rugoro(klon)
    704       SAVE rugoro                 ! longueur de rugosite de l'OESM
     743      REAL,allocatable,save :: zmea(:)
     744c$OMP THREADPRIVATE(zmea)
     745cym      SAVE zmea                   ! orographie moyenne
     746c
     747      REAL,allocatable,save :: zstd(:)
     748c$OMP THREADPRIVATE(zstd)
     749cym      SAVE zstd                   ! deviation standard de l'OESM
     750c
     751      REAL,allocatable,save :: zsig(:)
     752c$OMP THREADPRIVATE(zsig)
     753cym      SAVE zsig                   ! pente de l'OESM
     754c
     755      REAL,allocatable,save :: zgam(:)
     756c$OMP THREADPRIVATE(zgam)
     757cym      save zgam                   ! anisotropie de l'OESM
     758c
     759      REAL,allocatable,save :: zthe(:)
     760c$OMP THREADPRIVATE(zthe)     
     761cym      SAVE zthe                   ! orientation de l'OESM
     762c
     763      REAL,allocatable,save :: zpic(:)
     764c$OMP THREADPRIVATE(zpic)
     765cym      SAVE zpic                   ! Maximum de l'OESM
     766c
     767      REAL,allocatable,save :: zval(:)
     768c$OMP THREADPRIVATE(zval)
     769cym      SAVE zval                   ! Minimum de l'OESM
     770c
     771      REAL,allocatable,save :: rugoro(:)
     772c$OMP THREADPRIVATE(rugoro)
     773cym      SAVE rugoro                 ! longueur de rugosite de l'OESM
    705774c
    706775cIM 141004     REAL zulow(klon),zvlow(klon),zustr(klon), zvstr(klon)
    707776      REAL zulow(klon),zvlow(klon)
    708777c
    709       REAL zuthe(klon),zvthe(klon)
    710       SAVE zuthe
    711       SAVE zvthe
     778      REAL,allocatable,save :: zuthe(:),zvthe(:)
     779c$OMP THREADPRIVATE(zuthe,zvthe)
     780cym      SAVE zuthe
     781cym      SAVE zvthe
    712782      INTEGER igwd,idx(klon),itest(klon)
    713783c
    714       REAL agesno(klon,nbsrf)
    715       SAVE agesno                 ! age de la neige
    716 c
    717       REAL alb_neig(klon)
    718       SAVE alb_neig               ! albedo de la neige
    719 c
    720       REAL run_off_lic_0(klon)
    721       SAVE run_off_lic_0
     784      REAL,allocatable,save :: agesno(:,:)
     785c$OMP THREADPRIVATE(agesno)
     786cym      SAVE agesno                 ! age de la neige
     787c
     788      REAL,allocatable,save :: alb_neig(:)
     789c$OMP THREADPRIVATE(alb_neig)
     790cym      SAVE alb_neig               ! albedo de la neige
     791c
     792      REAL,allocatable,save :: run_off_lic_0(:)
     793c$OMP THREADPRIVATE(run_off_lic_0)
     794cym      SAVE run_off_lic_0
    722795cKE43
    723796c Variables liees a la convection de K. Emanuel (sb):
    724797c
    725       REAL ema_workcbmf(klon)   ! cloud base mass flux
    726       SAVE ema_workcbmf
    727 
    728       REAL ema_cbmf(klon)       ! cloud base mass flux
    729       SAVE ema_cbmf
    730 
    731       REAL ema_pcb(klon)        ! cloud base pressure
    732       SAVE ema_pcb
    733 
    734       REAL ema_pct(klon)        ! cloud top pressure
    735       SAVE ema_pct
     798      REAL,allocatable,save :: ema_workcbmf(:)   ! cloud base mass flux
     799c$OMP THREADPRIVATE(ema_workcbmf)
     800cym      SAVE ema_workcbmf
     801
     802      REAL,allocatable,save :: ema_cbmf(:)       ! cloud base mass flux
     803c$OMP THREADPRIVATE(ema_cbmf)
     804cym      SAVE ema_cbmf
     805
     806      REAL,allocatable,save :: ema_pcb(:)        ! cloud base pressure
     807c$OMP THREADPRIVATE(ema_pcb)
     808cym      SAVE ema_pcb
     809
     810      REAL,allocatable,save :: ema_pct(:)        ! cloud top pressure
     811c$OMP THREADPRIVATE(ema_pct)
     812cym      SAVE ema_pct
    736813
    737814      REAL bas, top             ! cloud base and top levels
    738815      SAVE bas
    739816      SAVE top
    740 
    741       REAL Ma(klon,klev)        ! undilute upward mass flux
    742       SAVE Ma
    743       REAL qcondc(klon,klev)    ! in-cld water content from convect
    744       SAVE qcondc
    745       REAL ema_work1(klon, klev), ema_work2(klon, klev)
    746       SAVE ema_work1, ema_work2
     817c$OMP THREADPRIVATE(bas, top)
     818
     819      REAL,allocatable,save :: Ma(:,:)        ! undilute upward mass flux
     820c$OMP THREADPRIVATE(Ma)
     821cym      SAVE Ma
     822      REAL,allocatable,save :: qcondc(:,:)    ! in-cld water content from convect
     823c$OMP THREADPRIVATE(qcondc)
     824cym      SAVE qcondc
     825      REAL,allocatable,save :: ema_work1(:, :), ema_work2(:, :)
     826c$OMP THREADPRIVATE(ema_work1,ema_work2)
     827cym      SAVE ema_work1, ema_work2
    747828      REAL wdn(klon), tdn(klon), qdn(klon)
    748829
    749       REAL wd(klon) ! sb
    750       SAVE wd       ! sb
     830      REAL,allocatable,save :: wd(:) ! sb
     831c$OMP THREADPRIVATE(wd)
     832cym      SAVE wd       ! sb
    751833
    752834c Variables locales pour la couche limite (al1):
     
    766848      REAL yu1(klon)            ! vents dans la premiere couche U
    767849      REAL yv1(klon)            ! vents dans la premiere couche V
    768       REAL ffonte(klon,nbsrf)    !Flux thermique utilise pour fondre la neige
    769       REAL fqcalving(klon,nbsrf) !Flux d'eau "perdue" par la surface
     850      REAL,SAVE,ALLOCATABLE :: ffonte(:,:)    !Flux thermique utilise pour fondre la neige
     851c$OMP THREAPRIVATE(ffonte)
     852      REAL,SAVE,ALLOCATABLE :: fqcalving(:,:) !Flux d'eau "perdu" par la surface
     853c$OMP THREAPRIVATE(fqcalving)
     854      REAL,SAVE,ALLOCATABLE :: fqfonte(:,:)  !Quantite d'eau de fonte des glaciers
     855c$OMP THREAPRIVATE(fqcalving)
    770856c                               !et necessaire pour limiter la
    771857c                               !hauteur de neige, en kg/m2/s
    772       REAL zxffonte(klon), zxfqcalving(klon)
    773 
    774 c$$$      LOGICAL offline           ! Controle du stockage ds "physique"
    775 c$$$      PARAMETER (offline=.false.)
    776 c$$$      INTEGER physid
    777       REAL pfrac_impa(klon,klev)! Produits des coefs lessivage impaction
    778       save pfrac_impa
    779       REAL pfrac_nucl(klon,klev)! Produits des coefs lessivage nucleation
    780       save pfrac_nucl
    781       REAL pfrac_1nucl(klon,klev)! Produits des coefs lessi nucl (alpha = 1)
    782       save pfrac_1nucl
     858      REAL zxffonte(klon), zxfqcalving(klon),zxfqfonte(klon)
     859
     860c@$$      LOGICAL offline           ! Controle du stockage ds "physique"
     861c@$$      PARAMETER (offline=.false.)
     862c@$$      INTEGER physid
     863      REAL,allocatable,save :: pfrac_impa(:,:)! Produits des coefs lessivage impaction
     864c$OMP THREADPRIVATE(pfrac_impa)
     865cym      save pfrac_impa
     866      REAL,allocatable,save :: pfrac_nucl(:,:)! Produits des coefs lessivage nucleation
     867c$OMP THREADPRIVATE(pfrac_nucl)
     868cym      save pfrac_nucl
     869      REAL,allocatable,save :: pfrac_1nucl(:,:)! Produits des coefs lessi nucl (alpha = 1)
     870c$OMP THREADPRIVATE(pfrac_1nucl)
     871cym      save pfrac_1nucl
    783872      REAL frac_impa(klon,klev) ! fractions d'aerosols lessivees (impaction)
    784873      REAL frac_nucl(klon,klev) ! idem (nucleation)
     
    789878
    790879cAA
    791       REAL rain_fall(klon) ! pluie
    792       REAL snow_fall(klon) ! neige
    793       save snow_fall, rain_fall
     880      REAL,allocatable,save :: rain_fall(:) ! pluie
     881c$OMP THREADPRIVATE(rain_fall)
     882      REAL,allocatable,save :: snow_fall(:) ! neige
     883c$OMP THREADPRIVATE(snow_fall)
     884cym      save snow_fall, rain_fall
     885
    794886cIM cf FH pour Tiedtke 080604
    795887      REAL rain_tiedtke(klon),snow_tiedtke(klon)
    796888c
    797       REAL total_rain(klon), nday_rain(klon)
    798       save nday_rain
    799 c
     889
     890      REAL,allocatable,save :: total_rain(:), nday_rain(:)
     891c$OMP THREADPRIVATE(total_rain,nday_rain)
     892cym      save total_rain, nday_rain
     893cIM 050204 END
    800894      REAL evap(klon), devap(klon) ! evaporation et sa derivee
    801895      REAL sens(klon), dsens(klon) ! chaleur sensible et sa derivee
    802       REAL dlw(klon)    ! derivee infra rouge
     896      REAL,allocatable,save :: dlw(:)    ! derivee infra rouge
     897c$OMP THREADPRIVATE(dlw)
    803898cym
    804       SAVE dlw
     899cym      SAVE dlw
    805900cym
    806901      REAL bils(klon) ! bilan de chaleur au sol
     
    809904      REAL wfbils(klon,nbsrf) ! bilan de chaleur au sol, pour chaque
    810905C                             ! type de sous-surface et pondere par la fraction
    811       REAL fder(klon) ! Derive de flux (sensible et latente)
    812       save fder
     906      REAL,allocatable,save :: fder(:) ! Derive de flux (sensible et latente)
     907c$OMP THREADPRIVATE(fder)
     908cym      save fder
    813909      REAL ve(klon) ! integr. verticale du transport meri. de l'energie
    814910      REAL vq(klon) ! integr. verticale du transport meri. de l'eau
     
    816912      REAL uq(klon) ! integr. verticale du transport zonal de l'eau
    817913c
    818       REAL frugs(klon,nbsrf) ! longueur de rugosite
    819       save frugs
     914      REAL,allocatable,save :: frugs(:,:) ! longueur de rugosite
     915c$OMP THREADPRIVATE(frugs)
     916cym      save frugs
    820917      REAL zxrugs(klon) ! longueur de rugosite
    821918c
     
    826923      INTEGER lmt_pas
    827924      SAVE lmt_pas                ! frequence de mise a jour
    828       REAL pctsrf(klon,nbsrf)
     925c$OMP THREADPRIVATE(lmt_pas)
     926      REAL,allocatable,save :: pctsrf(:,:)
     927c$OMP THREADPRIVATE(pctsrf)
    829928cIM
    830929      REAL pctsrf_new(klon,nbsrf) !pourcentage surfaces issus d'ORCHIDEE
    831       REAL paire_ter(klon)        !surfaces terre
    832 c
    833       SAVE pctsrf                 ! sous-fraction du sol
    834       REAL albsol(klon)
    835       SAVE albsol                 ! albedo du sol total
    836       REAL albsollw(klon)
    837       SAVE albsollw                 ! albedo du sol total
    838 
    839       REAL wo(klon,klev)
    840       SAVE wo                     ! ozone
     930
     931cym      REAL paire_ter(klon)        !surfaces terre
     932      REAL,allocatable,save ::  paire_ter(:)        !surfaces terre
     933c$OMP THREADPRIVATE(paire_ter)
     934   
     935cIM
     936cym      SAVE pctsrf                 ! sous-fraction du sol
     937      REAL,allocatable,save :: albsol(:)
     938c$OMP THREADPRIVATE(albsol)
     939cym      SAVE albsol                 ! albedo du sol total
     940      REAL,allocatable,save :: albsollw(:)
     941c$OMP THREADPRIVATE(albsollw)     
     942cym      SAVE albsollw                 ! albedo du sol total
     943
     944      REAL,allocatable,save :: wo(:,:)
     945c$OMP THREADPRIVATE(wo)
     946cym     SAVE wo                     ! ozone
     947
    841948cIM sorties
    842949      REAL un_jour
     
    885992c Variables locales
    886993c
    887       real clwcon(klon,klev),rnebcon(klon,klev)
    888       real clwcon0(klon,klev),rnebcon0(klon,klev)
    889 cIM cf. AM 081204 BEG
    890       real clwcon0th(klon,klev),rnebcon0th(klon,klev)
    891 cIM cf. AM 081204 END
    892       save rnebcon, clwcon
    893 
     994      real,allocatable,save :: clwcon(:,:),rnebcon(:,:)
     995c$OMP THREADPRIVATE(clwcon,rnebcon)
     996      real,allocatable,save :: clwcon0(:,:),rnebcon0(:,:)
     997cym      save rnebcon, clwcon
     998c$OMP THREADPRIVATE(clwcon0,rnebcon0)
    894999      REAL rhcl(klon,klev)    ! humiditi relative ciel clair
    8951000      REAL dialiq(klon,klev)  ! eau liquide nuageuse
     
    9111016      REAL zxfluxv(klon, klev)
    9121017CXXX
    913       REAL heat(klon,klev)    ! chauffage solaire
    914       REAL heat0(klon,klev)   ! chauffage solaire ciel clair
    915       REAL cool(klon,klev)    ! refroidissement infrarouge
    916       REAL cool0(klon,klev)   ! refroidissement infrarouge ciel clair
    917       REAL topsw(klon), toplw(klon), solsw(klon), sollw(klon)
    918       real sollwdown(klon)    ! downward LW flux at surface
     1018      REAL,allocatable,save :: heat(:,:)    ! chauffage solaire
     1019c$OMP THREADPRIVATE(heat)
     1020      REAL,allocatable,save :: heat0(:,:)   ! chauffage solaire ciel clair
     1021c$OMP THREADPRIVATE(heat0)
     1022      REAL,allocatable,save :: cool(:,:)    ! refroidissement infrarouge
     1023c$OMP THREADPRIVATE(cool)
     1024      REAL,allocatable,save :: cool0(:,:)   ! refroidissement infrarouge ciel clair
     1025c$OMP THREADPRIVATE(cool0)
     1026      REAL,allocatable,save :: topsw(:), toplw(:), solsw(:), sollw(:)
     1027c$OMP THREADPRIVATE(topsw,toplw,solsw,sollw)
     1028      real,allocatable,save :: sollwdown(:)    ! downward LW flux at surface
     1029c$OMP THREADPRIVATE(sollwdown)
    9191030cIM BEG
    920       real sollwdownclr(klon)    ! downward CS LW flux at surface
    921       real toplwdown(klon)       ! downward CS LW flux at TOA
    922       real toplwdownclr(klon)    ! downward CS LW flux at TOA
     1031      real,allocatable,save :: sollwdownclr(:)    ! downward CS LW flux at surface
     1032c$OMP THREADPRIVATE(sollwdownclr)
     1033      real,allocatable,save :: toplwdown(:)       ! downward CS LW flux at TOA
     1034c$OMP THREADPRIVATE(toplwdown)
     1035      real,allocatable,save :: toplwdownclr(:)    ! downward CS LW flux at TOA
     1036c$OMP THREADPRIVATE(toplwdownclr)
    9231037cIM END
    924       REAL topsw0(klon), toplw0(klon), solsw0(klon), sollw0(klon)
    925       REAL albpla(klon)
     1038      REAL,allocatable,save :: topsw0(:),toplw0(:),solsw0(:),sollw0(:)
     1039c$OMP THREADPRIVATE( topsw0,toplw0,solsw0,sollw0)
     1040      REAL,allocatable,save :: albpla(:)
     1041c$OMP THREADPRIVATE(albpla)
    9261042      REAL fsollw(klon, nbsrf)   ! bilan flux IR pour chaque sous surface
    9271043      REAL fsolsw(klon, nbsrf)   ! flux solaire absorb. pour chaque sous surface
    9281044c Le rayonnement n'est pas calcule tous les pas, il faut donc
    9291045c                      sauvegarder les sorties du rayonnement
    930       SAVE  heat,cool,albpla,topsw,toplw,solsw,sollw,sollwdown
    931       SAVE  sollwdownclr, toplwdown, toplwdownclr
    932       SAVE  topsw0,toplw0,solsw0,sollw0, heat0, cool0
     1046cym      SAVE  heat,cool,albpla,topsw,toplw,solsw,sollw,sollwdown
     1047cym      SAVE  sollwdownclr, toplwdown, toplwdownclr
     1048cym      SAVE  topsw0,toplw0,solsw0,sollw0, heat0, cool0
    9331049c
    9341050      INTEGER itaprad
    9351051      SAVE itaprad
     1052c$OMP THREADPRIVATE(itaprad)
    9361053c
    9371054      REAL conv_q(klon,klev) ! convergence de l'humidite (kg/kg/s)
     
    9611078c
    9621079      REAL zphi(klon,klev)
    963       REAL zx_relief(iim,jjmp1)
    964       REAL zx_aire(iim,jjmp1)
     1080cym A voir plus tard !!
     1081cym      REAL zx_relief(iim,jjmp1)
     1082cym      REAL zx_aire(iim,jjmp1)
    9651083c
    9661084cIM cf. AM Variables locales pour la CLA (hbtm2)
    9671085c
    968       REAL pblh(klon, nbsrf)           ! Hauteur de couche limite
    969       REAL plcl(klon, nbsrf)           ! Niveau de condensation de la CLA
    970       REAL capCL(klon, nbsrf)          ! CAPE de couche limite
    971       REAL oliqCL(klon, nbsrf)          ! eau_liqu integree de couche limite
    972       REAL cteiCL(klon, nbsrf)          ! cloud top instab. crit. couche limite
    973       REAL pblt(klon, nbsrf)          ! T a la Hauteur de couche limite
    974       REAL therm(klon, nbsrf)
    975       REAL trmb1(klon, nbsrf)          ! deep_cape
    976       REAL trmb2(klon, nbsrf)          ! inhibition
    977       REAL trmb3(klon, nbsrf)          ! Point Omega
     1086      REAL,SAVE,ALLOCATABLE :: pblh(:, :)           ! Hauteur de couche limite
     1087c$OMP THREAPRIVATE(pblh)
     1088      REAL,SAVE,ALLOCATABLE :: plcl(:, :)           ! Niveau de condensation de la CLA
     1089c$OMP THREAPRIVATE(plcl)
     1090      REAL,SAVE,ALLOCATABLE :: capCL(:, :)          ! CAPE de couche limite
     1091c$OMP THREAPRIVATE(capCL)
     1092      REAL,SAVE,ALLOCATABLE :: oliqCL(:, :)          ! eau_liqu integree de couche limite
     1093c$OMP THREAPRIVATE(oliqCL)
     1094      REAL,SAVE,ALLOCATABLE :: cteiCL(:, :)          ! cloud top instab. crit. couche limite
     1095c$OMP THREAPRIVATE(cteiCL)
     1096      REAL,SAVE,ALLOCATABLE :: pblt(:, :)          ! T a la Hauteur de couche limite
     1097c$OMP THREAPRIVATE(pblt)
     1098      REAL,SAVE,ALLOCATABLE :: therm(:, :)
     1099c$OMP TREADPRIVATE(therm)
     1100      REAL,SAVE,ALLOCATABLE :: trmb1(:, :)          ! deep_cape
     1101c$OMP TREADPRIVATE(trmb1)
     1102      REAL,SAVE,ALLOCATABLE :: trmb2(:, :)          ! inhibition
     1103c$OMP TREADPRIVATE(trmb2)
     1104      REAL,SAVE,ALLOCATABLE :: trmb3(:, :)          ! Point Omega
     1105c$OMP TREADPRIVATE(trmb3)
    9781106c Grdeurs de sorties
    9791107      REAL s_pblh(klon), s_lcl(klon), s_capCL(klon)
     
    9881116      REAL dnwd0(klon,klev)     ! unsaturated downdraft mass flux
    9891117      REAL tvp(klon,klev)       ! virtual temp of lifted parcel
    990       REAL cape(klon)           ! CAPE
    991       SAVE cape
     1118      REAL,allocatable,save :: cape(:)           ! CAPE
     1119c$OMP THREADPRIVATE(cape)
     1120cym      SAVE cape
    9921121      CHARACTER*40 capemaxcels  !max(CAPE)
    9931122
    994       REAL pbase(klon)          ! cloud base pressure
    995       SAVE pbase
    996       REAL bbase(klon)          ! cloud base buoyancy
    997       SAVE bbase
     1123      REAL,allocatable,save :: pbase(:)          ! cloud base pressure
     1124c$OMP THREADPRIVATE(pbase)
     1125cym      SAVE pbase
     1126      REAL,allocatable,save :: bbase(:)          ! cloud base buoyancy
     1127c$OMP THREADPRIVATE(bbase)
     1128cym      SAVE bbase
    9981129      REAL rflag(klon)          ! flag fonctionnement de convect
    9991130      INTEGER iflagctrl(klon)          ! flag fonctionnement de convect
     
    10181149c vdf: couche limite (Vertical DiFfusion)
    10191150      REAL d_t_con(klon,klev),d_q_con(klon,klev)
    1020       REAL d_u_con(klon,klev),d_v_con(klon,klev)
     1151      REAL,SAVE,ALLOCATABLE :: d_u_con(:,:),d_v_con(:,:)
     1152c$OMP THREADPRIVATE(d_u_con,d_v_con)
    10211153      REAL d_t_lsc(klon,klev),d_q_lsc(klon,klev),d_ql_lsc(klon,klev)
    10221154      REAL d_t_ajs(klon,klev), d_q_ajs(klon,klev)
     
    10281160*********************************************************
    10291161*     declarations
    1030       real zqasc(klon,klev)
    1031       save zqasc
     1162      real,save,allocatable :: zqasc(:,:)
     1163c$OMP THREADPRIVATE(zqasc)
     1164cym      save zqasc
    10321165     
    10331166*********************************************************
     
    10411174      REAL prfl(klon,klev+1), psfl(klon,klev+1)
    10421175c
    1043       INTEGER ibas_con(klon), itop_con(klon)
     1176      INTEGER,allocatable,save :: ibas_con(:), itop_con(:)
     1177c$OMP THREADPRIVATE(ibas_con,itop_con)
    10441178cym
    1045       SAVE ibas_con,itop_con
     1179cym      SAVE ibas_con,itop_con
    10461180cym
    1047       REAL rain_con(klon), rain_lsc(klon)
    1048       REAL snow_con(klon), snow_lsc(klon)
     1181      REAL,SAVE,ALLOCATABLE :: rain_con(:)
     1182c$OMP THREADPRIVATE(rain_con)
     1183      REAL rain_lsc(klon)
     1184      REAL,SAVE,ALLOCATABLE :: snow_con(:)
     1185c$OMP THREADPRIVATE(snow_con)
     1186      REAL snow_lsc(klon)
    10491187      REAL d_ts(klon,nbsrf)
    10501188c
     
    10581196      REAL d_u_oli(klon,klev), d_v_oli(klon,klev) !tendances dues a oro et lif
    10591197
    1060       REAL ratqs(klon,klev),ratqss(klon,klev),ratqsc(klon,klev)
     1198      REAL,allocatable,save :: ratqs(:,:)
     1199c$OMP THREADPRIVATE(ratqs)
     1200      REAL ratqss(klon,klev),ratqsc(klon,klev)
    10611201      real ratqsbas,ratqshaut
    1062       save ratqsbas,ratqshaut, ratqs
     1202cym      save ratqsbas,ratqshaut, ratqs
     1203      save ratqsbas,ratqshaut
     1204c$OMP THREADPRIVATE(ratqsbas,ratqshaut)
    10631205      real zpt_conv(klon,klev)
    10641206
     
    10681210      logical ok_newmicro
    10691211      save ok_newmicro
     1212c$OMP THREADPRIVATE(ok_newmicro)
    10701213      save fact_cldcon,facttemps
     1214c$OMP THREADPRIVATE(fact_cldcon,facttemps)
    10711215      real facteur
    10721216
    10731217      integer iflag_cldcon
    10741218      save iflag_cldcon
    1075 
     1219c$OMP THREADPRIVATE(iflag_cldcon)
    10761220      logical ptconv(klon,klev)
    10771221cIM cf. AM 081204 BEG
     
    10871231      integer imin_ins,imax_ins,jmin_ins,jmax_ins
    10881232      save imin_ins,imax_ins,jmin_ins,jmax_ins
     1233c$OMP THREADPRIVATE(imin_ins,imax_ins,jmin_ins,jmax_ins)
    10891234c      real lonmin_ins,lonmax_ins,latmin_ins
    10901235c     s  ,latmax_ins
     
    11231268      REAL tabcntr0( length       )
    11241269c
     1270
    11251271      INTEGER ndex2d(iim*jjmp1),ndex3d(iim*jjmp1*klev)
    11261272cIM
     
    11381284      INTEGER ij, imp1jmp1
    11391285      PARAMETER(imp1jmp1=(iim+1)*jjmp1)
     1286cym A voir plus tard
    11401287      REAL zx_tmp(imp1jmp1), airedyn(iim+1,jjmp1)
    11411288      REAL padyn(iim+1,jjmp1,klev+1)
     
    11471294cIM
    11481295      REAL airetot, pi
    1149       REAL zm_wo(jjmp1, klev)
     1296cym A voir plus tard
     1297cym      REAL zm_wo(jjmp1, klev)
    11501298cIM AMIP2 END
    11511299c
     
    11531301      REAL zx_tmp_fi3d(klon,klev) ! variable temporaire pour champs 3D
    11541302#ifdef histmthNMC
    1155       REAL zx_tmp_NC(iim,jjmp1,nlevSTD)
     1303cym   A voir plus tard !!!!
     1304cym      REAL zx_tmp_NC(iim,jjmp1,nlevSTD)
    11561305      REAL zx_tmp_fiNC(klon,nlevSTD)
    11571306#endif
     
    11641313      SAVE nid_day, nid_mth, nid_ins, nid_nmc, nid_day_seri
    11651314      SAVE nid_ctesGCM
     1315c$OMP THREADPRIVATE(nid_day, nid_mth, nid_ins, nid_nmc, nid_day_seri,nid_ctesGCM)
    11661316c
    11671317cIM 280405 BEG
    11681318      INTEGER nid_bilKPins, nid_bilKPave
    11691319      SAVE nid_bilKPins, nid_bilKPave
     1320c$OMP THREADPRIVATE(nid_bilKPins, nid_bilKPave)
    11701321c
    11711322      REAL ve_lay(klon,klev) ! transport meri. de l'energie a chaque niveau vert.
     
    11821333      REAL zout_isccp(napisccp)
    11831334      SAVE zcals, zcalh, zoutj, zout_isccp
     1335c$OMP THREADPRIVATE(zcals, zcalh, zoutj, zout_isccp)
    11841336
    11851337      real zjulian
    11861338      save zjulian
     1339c$OMP THREADPRIVATE(zjulian)
    11871340
    11881341      character*20 modname
     
    12081361      SAVE      h_vcol_tot, h_dair_tot, h_qw_tot, h_ql_tot
    12091362     $        , h_qs_tot, qw_tot, ql_tot, qs_tot , ec_tot
     1363c$OMP THREADPRIVATE(h_vcol_tot, h_dair_tot, h_qw_tot, h_ql_tot,
     1364c$OMP+              h_qs_tot, qw_tot, ql_tot, qs_tot , ec_tot)
    12101365      REAL      d_h_vcol, d_h_dair, d_qt, d_qw, d_ql, d_qs, d_ec
    12111366      REAL      d_h_vcol_phy
    12121367      REAL      fs_bound, fq_bound
    12131368      SAVE      d_h_vcol_phy
     1369c$OMP THREADPRIVATE(d_h_vcol_phy)
    12141370      REAL      zero_v(klon)
    12151371      CHARACTER*15 ztit
    1216 
     1372      INTEGER   ip_ebil  ! PRINT level for energy conserv. diag.
     1373      SAVE      ip_ebil
     1374      DATA      ip_ebil/0/
     1375c$OMP THREADPRIVATE(ip_ebil)
     1376      INTEGER   if_ebil ! level for energy conserv. dignostics
     1377      SAVE      if_ebil
     1378c$OMP THREADPRIVATE(if_ebil)
    12171379c+jld ec_conser
    12181380      REAL d_t_ec(klon,klev)    ! tendance du a la conersion Ec -> E thermique
     
    12201382c-jld ec_conser
    12211383cIM: t2m, q2m, u10m, v10m et t2mincels, t2maxcels
    1222       REAL t2m(klon,nbsrf), q2m(klon,nbsrf)   !temperature, humidite a 2m
    1223       REAL u10m(klon,nbsrf), v10m(klon,nbsrf) !vents a 10m
     1384      REAL,SAVE,ALLOCATABLE :: t2m(:,:), q2m(:,:)   !temperature, humidite a 2m
     1385c$OMP THREADPRIVATE(t2m,q2m)
     1386      REAL,SAVE,ALLOCATABLE :: u10m(:,:), v10m(:,:) !vents a 10m
     1387c$OMP THREADPRIVATE(u10m,v10m)
    12241388      REAL zt2m(klon), zq2m(klon)             !temp., hum. 2m moyenne s/ 1 maille
    12251389      REAL zu10m(klon), zv10m(klon)           !vents a 10m moyennes s/1 maille
     
    12281392cjq   Aerosol effects (Johannes Quaas, 27/11/2003)
    12291393      REAL sulfate(klon, klev) ! SO4 aerosol concentration [ug/m3]
    1230       REAL sulfate_pi(klon, klev) ! SO4 aerosol concentration [ug/m3] (pre-industrial value)
    1231       SAVE sulfate_pi
     1394      REAL,allocatable,save :: sulfate_pi(:,:) ! SO4 aerosol concentration [ug/m3] (pre-industrial value)
     1395c$OMP THREADPRIVATE(sulfate_pi)
     1396cym      SAVE sulfate_pi
    12321397
    12331398      REAL cldtaupi(klon,klev)  ! Cloud optical thickness for pre-industrial (pi) aerosols
     
    12391404
    12401405      ! Aerosol optical properties
    1241       REAL tau_ae(klon,klev,2), piz_ae(klon,klev,2)
    1242       REAL cg_ae(klon,klev,2)
    1243 
    1244       REAL topswad(klon), solswad(klon) ! Aerosol direct effect.
     1406      REAL,SAVE,ALLOCATABLE :: tau_ae(:,:,:), piz_ae(:,:,:)
     1407c$OMP THREADPRIVATE(tau_ae,piz_ae)
     1408      REAL,SAVE,ALLOCATABLE :: cg_ae(:,:,:)
     1409c$OMP THREADPRIVATE(cg_ae)
     1410
     1411      REAL,SAVE,ALLOCATABLE :: topswad(:), solswad(:) ! Aerosol direct effect.
     1412c$OMP THREADPRIVATE(topswad,solswad)
    12451413      ! ok_ade=T -ADE=topswad-topsw
    12461414
    1247       REAL topswai(klon), solswai(klon) ! Aerosol indirect effect.
     1415      REAL,SAVE,ALLOCATABLE :: topswai(:), solswai(:) ! Aerosol indirect effect.
     1416c$OMP THREADPRIVATE(topswai(,solswai)
    12481417      ! ok_aie=T ->
    12491418      !        ok_ade=T -AIE=topswai-topswad
     
    12571426cym
    12581427      SAVE ok_ade, ok_aie, bl95_b0, bl95_b1
    1259 cym
    1260 c Anne
    1261          SAVE u10m
    1262          SAVE v10m
    1263          SAVE t2m
    1264          SAVE q2m
    1265          SAVE ffonte
    1266          SAVE fqcalving
    1267          SAVE piz_ae
    1268          SAVE tau_ae
    1269          SAVE cg_ae
    1270          SAVE rain_con
    1271          SAVE snow_con
    1272          SAVE topswai
    1273          SAVE topswad
    1274          SAVE solswai
    1275          SAVE solswad
    1276          SAVE d_u_con
    1277          SAVE d_v_con
    1278          SAVE rnebcon0
    1279          SAVE clwcon0
    1280          SAVE paire_ter
    1281 c        SAVE nhistoW
    1282 c        SAVE histoW
    1283 c SAVE anne 20/09/2005
    1284          SAVE pblh
    1285          SAVE plcl
    1286          SAVE capCL
    1287          SAVE oliqCL
    1288          SAVE cteiCL
    1289          SAVE pblt
    1290          SAVE therm
    1291          SAVE trmb1
    1292          SAVE trmb2
    1293          SAVE trmb3
    1294 
    1295 c fin Anne
    1296 cjq-end
     1428c$OMP THREADPRIVATE(ok_ade, ok_aie, bl95_b0, bl95_b1)
     1429
    12971430c
    12981431c Declaration des constantes et des fonctions thermodynamiques
    12991432c
     1433      REAL Field_tmp(klon2,klevp1)
     1434      LOGICAL,SAVE :: first=.true.
     1435c$OMP THREADPRIVATE(first)
    13001436#include "YOMCST.h"
    13011437#include "YOETHF.h"
     
    13091445c
    13101446c======================================================================
    1311       modname = 'physiq'
     1447
     1448cym => necessaire pour iflag_con != 2   
     1449      pmfd(:,:) = 0.
     1450      pen_u(:,:) = 0.
     1451      pen_d(:,:) = 0.
     1452      pde_d(:,:) = 0.
     1453      pde_u(:,:) = 0.
     1454      aam=0.
     1455      torsfc=0.
     1456cym => pour le couple ocean => revoir dans clmain/intersurf
     1457      fluxg(:)=0.
     1458      fluxo(:)=0.     
     1459
     1460      if (first) then
     1461     
     1462      allocate( t_ancien(klon,klev), q_ancien(klon,klev))
     1463      allocate( q2(klon,klev+1,nbsrf))
     1464      allocate( swdn0(klon,klevp1), swdn(klon,klevp1))
     1465      allocate( swup0(klon,klevp1), swup(klon,klevp1))
     1466      allocate( SWdn200clr(klon), SWdn200(klon))
     1467      allocate( SWup200clr(klon), SWup200(klon))
     1468      allocate( lwdn0(klon,klevp1), lwdn(klon,klevp1))
     1469      allocate( lwup0(klon,klevp1), lwup(klon,klevp1))
     1470      allocate( LWdn200clr(klon), LWdn200(klon))
     1471      allocate( LWup200clr(klon), LWup200(klon))
     1472      allocate( LWdnTOA(klon), LWdnTOAclr(klon))
     1473      allocate( radsol(klon))
     1474      allocate( rlat(klon))
     1475      allocate( rlon(klon))
     1476      allocate( ftsol(klon,nbsrf))
     1477      allocate( ftsoil(klon,nsoilmx,nbsrf))
     1478      allocate( fevap(klon,nbsrf))
     1479      allocate( fluxlat(klon,nbsrf))
     1480      allocate( deltat(klon))
     1481      allocate( fqsurf(klon,nbsrf))
     1482      allocate( qsol(klon))
     1483      allocate( fsnow(klon,nbsrf))
     1484      allocate( falbe(klon,nbsrf))
     1485      allocate( falblw(klon,nbsrf))
     1486      allocate( zmea(klon))
     1487      allocate( zstd(klon))
     1488      allocate( zsig(klon))
     1489      allocate( zgam(klon))
     1490      allocate( zthe(klon))
     1491      allocate( zpic(klon))
     1492      allocate( zval(klon))
     1493      allocate( rugoro(klon))
     1494      allocate( zuthe(klon),zvthe(klon))
     1495      allocate( agesno(klon,nbsrf))
     1496      allocate( alb_neig(klon))
     1497      allocate( run_off_lic_0(klon))
     1498      allocate( ema_workcbmf(klon))   
     1499      allocate( ema_cbmf(klon))
     1500      allocate( ema_pcb(klon))
     1501      allocate( ema_pct(klon)) 
     1502      allocate( Ma(klon,klev) )
     1503      allocate( qcondc(klon,klev)) 
     1504      allocate( ema_work1(klon, klev), ema_work2(klon, klev))
     1505      allocate( wd(klon) )
     1506      allocate( pfrac_impa(klon,klev))
     1507      allocate( pfrac_nucl(klon,klev))
     1508      allocate( pfrac_1nucl(klon,klev))
     1509      allocate( rain_fall(klon) )
     1510      allocate( snow_fall(klon) )
     1511      allocate( total_rain(klon), nday_rain(klon))
     1512      allocate( dlw(klon)   )
     1513      allocate( fder(klon) )
     1514      allocate( frugs(klon,nbsrf) )
     1515      allocate( pctsrf(klon,nbsrf))
     1516      allocate( albsol(klon))
     1517      allocate( albsollw(klon))
     1518      allocate( wo(klon,klev))
     1519      allocate( clwcon(klon,klev),rnebcon(klon,klev))
     1520      allocate( heat(klon,klev)    )
     1521      allocate( heat0(klon,klev)  )
     1522      allocate( cool(klon,klev)    )
     1523      allocate( cool0(klon,klev)   )
     1524      allocate( topsw(klon), toplw(klon), solsw(klon), sollw(klon))
     1525      allocate( sollwdown(klon)    )
     1526      allocate( sollwdownclr(klon)  )
     1527      allocate( toplwdown(klon)      )
     1528      allocate( toplwdownclr(klon)   )
     1529      allocate( topsw0(klon), toplw0(klon), solsw0(klon), sollw0(klon))
     1530      allocate( albpla(klon))
     1531      allocate( cape(klon)   )       
     1532      allocate( pbase(klon)   )     
     1533      allocate( bbase(klon)    )     
     1534      allocate( ibas_con(klon), itop_con(klon))
     1535      allocate( ratqs(klon,klev))
     1536      allocate( sulfate_pi(klon, klev))
     1537      allocate( paire_ter(klon))
     1538      allocate(tsumSTD(klon,nlevSTD,nout))
     1539      allocate(usumSTD(klon,nlevSTD,nout))
     1540      allocate(vsumSTD(klon,nlevSTD,nout))
     1541      allocate(wsumSTD(klon,nlevSTD,nout))
     1542      allocate(phisumSTD(klon,nlevSTD,nout))
     1543      allocate(qsumSTD(klon,nlevSTD,nout))
     1544      allocate(rhsumSTD(klon,nlevSTD,nout))
     1545      allocate(uvsumSTD(klon,nlevSTD,nout))
     1546      allocate(vqsumSTD(klon,nlevSTD,nout))
     1547      allocate(vTsumSTD(klon,nlevSTD,nout))
     1548      allocate(wqsumSTD(klon,nlevSTD,nout))
     1549      allocate( vphisumSTD(klon,nlevSTD,nout))
     1550      allocate( wTsumSTD(klon,nlevSTD,nout))
     1551      allocate( u2sumSTD(klon,nlevSTD,nout))
     1552      allocate( v2sumSTD(klon,nlevSTD,nout))
     1553      allocate( T2sumSTD(klon,nlevSTD,nout))
     1554      allocate( seed_old(klon,napisccp))
     1555      allocate( pct_ocean(klon,nbregdyn))
     1556      allocate( rlonPOS(klon))
     1557      allocate( newsst(klon))
     1558      allocate( zqasc(klon,klev))
     1559      allocate( therm(klon, nbsrf))
     1560      allocate( rain_con(klon))
     1561      allocate( pblt(klon, nbsrf))
     1562      allocate( t2m(klon,nbsrf), q2m(klon,nbsrf) ) 
     1563      allocate( u10m(klon,nbsrf), v10m(klon,nbsrf))
     1564      allocate( topswad(klon), solswad(klon))
     1565      allocate( topswai(klon), solswai(klon) )
     1566      allocate( ffonte(klon,nbsrf))
     1567      allocate( fqcalving(klon,nbsrf))
     1568      allocate( fqfonte(klon,nbsrf))
     1569      allocate( pblh(klon, nbsrf))
     1570      allocate( plcl(klon, nbsrf)) 
     1571      allocate( capCL(klon, nbsrf))   
     1572      allocate( oliqCL(klon, nbsrf))       
     1573      allocate( cteiCL(klon, nbsrf))       
     1574      allocate( trmb1(klon, nbsrf))   
     1575      allocate( trmb2(klon, nbsrf))     
     1576      allocate( trmb3(klon, nbsrf))
     1577      allocate( clwcon0(klon,klev),rnebcon0(klon,klev))
     1578      allocate( tau_ae(klon,klev,2), piz_ae(klon,klev,2))
     1579      allocate( cg_ae(klon,klev,2))
     1580      allocate( snow_con(klon))
     1581      allocate( tnondef(klon,nlevSTD,nout))
     1582      allocate( d_u_con(klon,klev),d_v_con(klon,klev))           
     1583     
     1584     
     1585        paire_ter(:)=0.   
     1586        clwcon(:,:)=0.
     1587        rnebcon(:,:)=0.
     1588        ratqs(:,:)=0.
     1589        run_off_lic_0(:)=0.
     1590        sollw(:)=0.
     1591        ema_work1(:,:)=0.
     1592        ema_work2(:,:)=0.
     1593cym Attention pbase pas initialise dans concvl !!!!
     1594        pbase(:)=0
     1595       
     1596        first=.false.
     1597      endif
     1598
     1599                 
     1600       modname = 'physiq'
    13121601cIM
    13131602      IF (ip_ebil_phy.ge.1) THEN
     
    13411630         ffonte(:,:)=0.
    13421631         fqcalving(:,:)=0.
     1632         fqfonte(:,:)=0.
    13431633         piz_ae(:,:,:)=0.
    13441634         tau_ae(:,:,:)=0.
     
    14141704     .       run_off_lic_0)
    14151705
     1706       DO i=1,klon
     1707         IF ( abs( pctsrf(i, is_ter) + pctsrf(i, is_lic) +
     1708     $       pctsrf(i, is_oce) + pctsrf(i, is_sic)  - 1.) .GT. EPSFRA)
     1709     $       THEN
     1710             WRITE(*,*) 'physiq : pb sous surface au point ', i,
     1711     $           pctsrf(i, 1 : nbsrf)
     1712         ENDIF
     1713      ENDDO
     1714 
    14161715c   ATTENTION : il faudra a terme relire q2 dans l'etat initial
    14171716         q2(:,:,:)=1.e-8
     
    16441943c
    16451944#ifdef INCA
     1945           call VTe(VTphysiq)
     1946           call VTb(VTinca)
    16461947           iii = MOD(NINT(xjour),360)
    16471948           calday = FLOAT(iii) + gmtime
     
    16661967           WRITE(lunout,*) 'OK.'
    16671968#endif
     1969      call VTe(VTinca)
     1970      call VTb(VTphysiq)
    16681971#endif
    16691972c
     
    19032206       DO nsrf = 1, nbsrf
    19042207       DO i = 1, klon
    1905 c$$$        fsollw(i,nsrf) = sollwdown(i) - RSIGMA*ftsol(i,nsrf)**4
    1906 c$$$        fsollw(i,nsrf) = sollw(i)
     2208c@$$        fsollw(i,nsrf) = sollwdown(i) - RSIGMA*ftsol(i,nsrf)**4
     2209c@$$        fsollw(i,nsrf) = sollw(i)
    19072210         fsollw(i,nsrf) = sollw(i)
    19082211     $      + 4.0*RSIGMA*ztsol(i)**3 * (ztsol(i)-ftsol(i,nsrf))
     
    19102213       ENDDO
    19112214       ENDDO
    1912 
     2215     
     2216cYM   !!!!!!!!!!!!!!!!!!!!!!!!!!!!
     2217cYM         Attention verrue
     2218cYM    ---> A supprimer plus tard       
     2219cYM         pour etre integre dans
     2220cYM         ORCHIDEE       
     2221      DO i = 1, klon
     2222        sollwdown(i)=sollw(i)+RSIGMA*ztsol(i)**4
     2223      ENDDO
     2224cYM  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!     
     2225     
    19132226      fder = dlw
    19142227
     2228      if (mydebug) then
     2229        call writefield_phy('u_seri',u_seri,llm)
     2230        call writefield_phy('v_seri',v_seri,llm)
     2231        call writefield_phy('t_seri',t_seri,llm)
     2232        call writefield_phy('q_seri',q_seri,llm)
     2233      endif
     2234 
    19152235      IF (check) THEN
    19162236       amn=MIN(tslab(1),1000.)
     
    19442264     s            pblh,capCL,oliqCL,cteiCL,pblT,
    19452265     s            therm,trmb1,trmb2,trmb3,plcl,
    1946      s            fqcalving, ffonte, run_off_lic_0,
     2266     s            fqcalving, fqfonte,ffonte, run_off_lic_0,
    19472267cIM "slab" ocean
    19482268     s            fluxo, fluxg, tslab, seaice)
     
    19862306      ENDDO
    19872307      ENDDO
     2308
     2309      if (mydebug) then
     2310        call writefield_phy('u_seri',u_seri,llm)
     2311        call writefield_phy('v_seri',v_seri,llm)
     2312        call writefield_phy('t_seri',t_seri,llm)
     2313        call writefield_phy('q_seri',q_seri,llm)
     2314      endif
     2315
     2316
    19882317cIM
    19892318      IF (ip_ebil_phy.ge.2) THEN
     
    20132342         zxffonte(i) = 0.0
    20142343         zxfqcalving(i) = 0.0
     2344         zxfqfonte(i) = 0.0
    20152345cIM cf. AM 081204 BEG
    20162346c
     
    20542384            zxfqcalving(i) = zxfqcalving(i) +
    20552385     .                      fqcalving(i,nsrf)*pctsrf(i,nsrf)
     2386            zxfqfonte(i) = zxfqfonte(i) +
     2387     .                      fqfonte(i,nsrf)*pctsrf(i,nsrf)
    20562388cIM cf. AM 081204 BEG
    20572389            s_pblh(i) = s_pblh(i) + pblh(i,nsrf)*pctsrf(i,nsrf)
     
    20922424           ffonte(i,nsrf) = zxffonte(i)
    20932425           fqcalving(i,nsrf) = zxfqcalving(i)
     2426           fqfonte(i,nsrf) = zxfqfonte(i)
    20942427           pblh(i,nsrf)=s_pblh(i)
    20952428           plcl(i,nsrf)=s_lcl(i)
     
    22062539          ENDIF ! ok_cvl
    22072540
     2541c
     2542c Correction precip
     2543          rain_con = rain_con * cvl_corr
     2544          snow_con = snow_con * cvl_corr
     2545c
     2546
    22082547           IF (.NOT. ok_gust) THEN
    22092548           do i = 1, klon
     
    22672606        ENDDO
    22682607      ENDDO
     2608
     2609      if (mydebug) then
     2610        call writefield_phy('u_seri',u_seri,llm)
     2611        call writefield_phy('v_seri',v_seri,llm)
     2612        call writefield_phy('t_seri',t_seri,llm)
     2613        call writefield_phy('q_seri',q_seri,llm)
     2614      endif
     2615
    22692616cIM
    22702617      IF (ip_ebil_phy.ge.2) THEN
     
    24672814     s      , fs_bound, fq_bound )
    24682815      END IF
     2816
     2817      if (mydebug) then
     2818        call writefield_phy('u_seri',u_seri,llm)
     2819        call writefield_phy('v_seri',v_seri,llm)
     2820        call writefield_phy('t_seri',t_seri,llm)
     2821        call writefield_phy('q_seri',q_seri,llm)
     2822      endif
     2823
    24692824c
    24702825c-------------------------------------------------------------------
     
    25152870      ELSE IF (iflag_cldcon.eq.3) THEN
    25162871c  On prend pour les nuages convectifs le max du calcul de la
    2517 c  convection et du calcul du pas de temps précédent diminué d'un facteur
     2872c  convection et du calcul du pas de temps pr��ent diminu�d'un facteur
    25182873c  facttemps
    25192874c      facttemps=pdtphys/1.e4
     
    26653020
    26663021#ifdef INCA
     3022      call VTe(VTphysiq)
     3023      call VTb(VTinca)
    26673024           calday = FLOAT(julien) + gmtime
    26683025
     
    27223079           WRITE(lunout,*)'OK.'
    27233080#endif
     3081      call VTe(VTinca)
     3082      call VTb(VTphysiq)
    27243083#endif
    27253084c     
     
    27603119     .               + falblw(i,is_sic) * pctsrf(i,is_sic)
    27613120      ENDDO
     3121
     3122      if (mydebug) then
     3123        call writefield_phy('u_seri',u_seri,llm)
     3124        call writefield_phy('v_seri',v_seri,llm)
     3125        call writefield_phy('t_seri',t_seri,llm)
     3126        call writefield_phy('q_seri',q_seri,llm)
     3127      endif
     3128     
    27623129      CALL radlwsw ! nouveau rayonnement (compatible Arpege-IFS)
    27633130     e            (dist, rmu0, fract,
     
    27883155      ENDDO
    27893156      ENDDO
     3157c
     3158      if (mydebug) then
     3159        call writefield_phy('u_seri',u_seri,llm)
     3160        call writefield_phy('v_seri',v_seri,llm)
     3161        call writefield_phy('t_seri',t_seri,llm)
     3162        call writefield_phy('q_seri',q_seri,llm)
     3163      endif
     3164 
    27903165cIM
    27913166      IF (ip_ebil_phy.ge.2) THEN
     
    28753250      ENDIF ! fin de test sur ok_orodr
    28763251c
     3252      if (mydebug) then
     3253        call writefield_phy('u_seri',u_seri,llm)
     3254        call writefield_phy('v_seri',v_seri,llm)
     3255        call writefield_phy('t_seri',t_seri,llm)
     3256        call writefield_phy('q_seri',q_seri,llm)
     3257      endif
     3258     
    28773259      IF (ok_orolf) THEN
    28783260c
     
    29103292C STRESS NECESSAIRES: TOUTE LA PHYSIQUE
    29113293
     3294      if (mydebug) then
     3295        call writefield_phy('u_seri',u_seri,llm)
     3296        call writefield_phy('v_seri',v_seri,llm)
     3297        call writefield_phy('t_seri',t_seri,llm)
     3298        call writefield_phy('q_seri',q_seri,llm)
     3299      endif
     3300
    29123301      DO i = 1, klon
    29133302        zustrph(i)=0.
     
    29253314cIM calcul composantes axiales du moment angulaire et couple des montagnes
    29263315c
    2927       CALL aaam_bud (27,klon,klev,rjourvrai,gmtime,
    2928      C               ra,rg,romega,
    2929      C               rlat,rlon,pphis,
    2930      C               zustrdr,zustrli,zustrph,
    2931      C               zvstrdr,zvstrli,zvstrph,
    2932      C               paprs,u,v,
    2933      C               aam, torsfc)
     3316      IF (monocpu) THEN
     3317     
     3318        CALL aaam_bud (27,klon,klev,rjourvrai,gmtime,
     3319     C                 ra,rg,romega,
     3320     C                 rlat,rlon,pphis,
     3321     C                 zustrdr,zustrli,zustrph,
     3322     C                 zvstrdr,zvstrli,zvstrph,
     3323     C                 paprs,u,v,
     3324     C                 aam, torsfc)
     3325       ENDIF
    29343326cIM cf. FLott END
    29353327cIM
     
    30963488c
    30973489#ifdef INCA
     3490      call VTe(VTphysiq)
     3491      call VTb(VTinca)
    30983492#ifdef INCAINFO
    30993493           WRITE(lunout,*)'Appel CHEMHOOK_END ...'
     
    31063500     $                        nbtr,
    31073501     $                        paprs,
    3108 #ifdef INCA_CH4
    31093502     $                        q_seri,
    3110 #endif
    31113503     $                        annee_ref,
    31123504     $                        day_ini,
     
    31153507     $                        pphi,
    31163508     $                        pphis,
    3117      $                        zx_rh,
    3118      $                        qx(1,1,1))
     3509     $                        zx_rh)
    31193510#else
    31203511     $                        xjour)
     
    31233514           WRITE(lunout,*)'OK.'
    31243515#endif
     3516      call VTe(VTinca)
     3517      call VTb(VTphysiq)
    31253518#endif
    31263519
     
    31293522c Convertir les incrementations en tendances
    31303523c
     3524      if (mydebug) then
     3525        call writefield_phy('u_seri',u_seri,llm)
     3526        call writefield_phy('v_seri',v_seri,llm)
     3527        call writefield_phy('t_seri',t_seri,llm)
     3528        call writefield_phy('q_seri',q_seri,llm)
     3529      endif
     3530
    31313531      DO k = 1, klev
    31323532      DO i = 1, klon
Note: See TracChangeset for help on using the changeset viewer.