Ignore:
Timestamp:
Mar 6, 2002, 3:58:31 PM (23 years ago)
Author:
lmdz
Message:

Inclusion des modifs de D. Hauglustaine pour la version 1 de INCA
LF

Location:
LMDZ.3.3/trunk/libf/phylmd
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ.3.3/trunk/libf/phylmd/physiq.F

    r303 r344  
    11c $Header$
    22c
    3       SUBROUTINE physiq (nlon,nlev,nqmax  ,
    4      .            debut,lafin,rjourvrai,rjour_ecri,gmtime,pdtphys,
    5      .            paprs,pplay,pphi,pphis,paire,presnivs,clesphy0,
    6      .            u,v,t,qx,
    7      .            omega,
    8      .            d_u, d_v, d_t, d_qx, d_ps)
     3      SUBROUTINE physiq (nlon,
     4     .                   nlev,
     5     .                   nqmax,
     6     .                   debut,
     7     .                   lafin,
     8     .                   rjourvrai,
     9     .                   rjour_ecri,
     10     .                   gmtime,
     11     .                   pdtphys,
     12     .                   paprs,
     13     .                   pplay,
     14     .                   pphi,
     15     .                   pphis,
     16     .                   paire,
     17     .                   presnivs,
     18     .                   clesphy0,
     19     .                   u,
     20     .                   v,
     21     .                   t,
     22     .                   qx,
     23     .                   omega,
     24#ifdef INCA_CH4
     25     .                   flxmass_w,
     26#endif
     27     .                   d_u,
     28     .                   d_v,
     29     .                   d_t,
     30     .                   d_qx,
     31     .                   d_ps)
    932      USE ioipsl
     33#ifdef INCA
     34      USE chemshut
     35      USE obs_pos
     36#endif
    1037      IMPLICIT none
    1138c======================================================================
     
    7198      INTEGER npas, nexca, itimestep
    7299      logical rnpb
     100#ifdef INCA
     101      parameter(rnpb=.false.)
     102#else
    73103      parameter(rnpb=.true.)
     104#endif
    74105      PARAMETER (npas=1440)
    75106      PARAMETER (nexca=48)
     
    174205      REAL omega(klon,klev)
    175206
     207      REAL flxmass_w(klon,klev)
     208
    176209      REAL d_u(klon,klev)
    177210      REAL d_v(klon,klev)
     
    326359      REAL frac_impa(klon,klev) ! fractions d'aerosols lessivees (impaction)
    327360      REAL frac_nucl(klon,klev) ! idem (nucleation)
     361
     362#ifdef INCA
     363      REAL          :: calday
     364#endif
     365
    328366cAA
    329367      REAL rain_fall(klon) ! pluie
     
    403441c Variables locales
    404442c
     443      REAL rhcl(klon,klev)    ! humiditi relative ciel clair
    405444      REAL dialiq(klon,klev)  ! eau liquide nuageuse
    406445      REAL diafra(klon,klev)  ! fraction nuageuse
     
    14011440         ENDIF
    14021441c
     1442
     1443#ifdef INCA
     1444           calday = FLOAT(MOD(NINT(xjour),360)) + gmtime
     1445           print *, 'initial time ', xjour, calday
     1446#ifdef INCAINFO
     1447           PRINT *, 'Appel CHEMINI ...'
     1448#endif
     1449           CALL chemini( rpi,
     1450     $                   rg,
     1451     $                   ra,
     1452     $                   paire,
     1453     $                   rlat,
     1454     $                   rlon,
     1455     $                   calday,
     1456     $                   tracnam,
     1457     $                   natsnam,
     1458     $                   mxoutflds,
     1459     $                   outinst,
     1460     $                   outtimav,
     1461     $                   klon,
     1462     $                   nqmax)
     1463#ifdef INCAINFO
     1464           PRINT *, 'OK.'
     1465#endif
     1466#endif
     1467
    14031468      ENDIF
    14041469c
     
    18481913     .           pfrac_impa, pfrac_nucl, pfrac_1nucl,
    18491914     .           frac_impa, frac_nucl,
    1850      .           prfl, psfl)
     1915     .           prfl, psfl, rhcl)
    18511916      DO k = 1, klev
    18521917      DO i = 1, klon
     
    19291994      ENDDO
    19301995      ENDDO
     1996
     1997#ifdef INCA
     1998           calday = FLOAT(julien) + gmtime
     1999
     2000#ifdef INCA_AER
     2001      call AEROSOL_METEO_CALC(calday,pdtphys,pplay,paprs,t,pmflxr,pmflxs,
     2002     &   prfl,psfl,pctsrf,paire)
     2003#endif
     2004
     2005#ifdef INCAINFO
     2006           PRINT *, 'Appel CHEMHOOK_BEGIN ...'
     2007#endif
     2008           CALL chemhook_begin (calday,
     2009     $                          pctsrf(1,3),
     2010     $                          rlat,
     2011     $                          rlon,
     2012     $                          paire,
     2013     $                          paprs,
     2014     $                          pplay,
     2015     $                          ycoefh,
     2016     $                          pphi,
     2017     $                          t_seri,
     2018     $                          u,
     2019     $                          v,
     2020     $                          wo,
     2021     $                          q_seri,
     2022     $                          zxtsol,
     2023     $                          zxsnow,
     2024     $                          solsw,
     2025     $                          albsol,
     2026     $                          rain_fall,
     2027     $                          snow_fall,
     2028     $                          itop_con,
     2029     $                          ibas_con,
     2030     $                          cldfra,
     2031     $                          iim,
     2032     $                          jjm,
     2033     $                          tr_seri)
     2034#ifdef INCAINFO
     2035           PRINT *, 'OK.'
     2036#endif
     2037#endif
     2038
    19312039c
    19322040c Calculer les parametres optiques des nuages et quelques
     
    21242232C
    21252233      call phytrac (rnpb,
     2234     I                   itap, julien, gmtime,
    21262235     I                   debut,lafin,
    21272236     I                   nqmax-2,
    21282237     I                   nlon,nlev,dtime,
    2129      I                   t,paprs,pplay,
     2238     I                   u,v,t,paprs,pplay,
    21302239     I                   pmfu, pmfd, pen_u, pde_u, pen_d, pde_d,
    21312240     I                   ycoefh,yu1,yv1,ftsol,pctsrf,rlat,
    21322241     I                   frac_impa, frac_nucl,
    2133      I                   rlon,presnivs,paire,pphis,
     2242     I                   rlon,paire,pphis,pphi,
     2243     I                   albsol,
     2244     I                   qx(1,1,1), rhcl,
     2245     I                   cldfra, rneb, diafra, cldliq, itop_con,
     2246     I                   ibas_con,
     2247     I                   pmflxr,pmflxs,prfl,psfl,flxmass_w,
    21342248     O                   tr_seri)
    21352249      ENDIF
     
    28222936cc         CALL ecrirega(84,d_q_lsc)
    28232937      ENDIF
     2938
     2939#ifdef INCA
     2940#ifdef INCAINFO
     2941           PRINT *, 'Appel CHEMHOOK_END ...'
     2942#endif
     2943           CALL chemhook_end (calday,
     2944     $                        dtime,
     2945     $                        pplay,
     2946     $                        t_seri,
     2947     $                        tr_seri,
     2948     $                        nbtr,
     2949     $                        paprs,
     2950     $                        anne_ini,
     2951     $                        day_ini,
     2952     $                        xjour)
     2953#ifdef INCAINFO
     2954           PRINT *, 'OK.'
     2955#endif
     2956#endif
     2957
    28242958c
    28252959c Convertir les incrementations en tendances
  • LMDZ.3.3/trunk/libf/phylmd/phytrac.F

    r209 r344  
    33c
    44      SUBROUTINE phytrac (rnpb,
    5      I                   debutphy,lafin,
    6      I                   nqmax,
    7      I                   nlon,nlev,pdtphys,
    8      I                   t_seri,paprs,pplay,
    9      I                   pmfu, pmfd, pen_u, pde_u, pen_d, pde_d,
    10      I                   coefh,yu1,yv1,ftsol,pctsrf,xlat,
    11      I                   frac_impa, frac_nucl,
    12      I                   xlon,presnivs,paire,pphis,
    13      O                   tr_seri)
     5     I                    nstep,
     6     I                    julien,
     7     I                    gmtime,
     8     I                    debutphy,
     9     I                    lafin,
     10     I                    nqmax,
     11     I                    nlon,
     12     I                    nlev,
     13     I                    pdtphys,
     14     I                    u,
     15     I                    v,
     16     I                    t_seri,
     17     I                    paprs,
     18     I                    pplay,
     19     I                    pmfu,
     20     I                    pmfd,
     21     I                    pen_u,
     22     I                    pde_u,
     23     I                    pen_d,
     24     I                    pde_d,
     25     I                    coefh,
     26     I                    yu1,
     27     I                    yv1,
     28     I                    ftsol,
     29     I                    pctsrf,
     30     I                    xlat,
     31     I                    frac_impa,
     32     I                    frac_nucl,
     33     I                    xlon,
     34     I                    paire,
     35     I                    pphis,
     36     I                    pphi,
     37     I                    albsol,
     38     I                    sh,
     39     I                    rh,
     40     I                    cldfra,
     41     I                    rneb,
     42     I                    diafra,
     43     I                    cldliq,
     44     I                    itop_con,
     45     I                    ibas_con,
     46     I                    pmflxr,
     47     I                    pmflxs,
     48     I                    prfl,
     49     I                    psfl,
     50     I                    flxmass_w,
     51     O                    tr_seri)
    1452      USE ioipsl
     53
     54#ifdef INCA
     55      USE sflx
     56      USE chem_tracnm
     57      USE species_names
     58      USE chem_mods
     59      USE pht_tables, ONLY : jrates
     60      USE transport_controls, ONLY : conv_flg, pbl_flg
     61      USE airplane_src, ONLY : ptrop
     62      USE lightning, ONLY : prod_light
     63#ifdef INCA_AER
     64      USE AEROSOL_DIAG
     65#endif
     66#endif
     67
    1568      IMPLICIT none
    1669c======================================================================
     
    2881#include "YOMCST.h"
    2982#include "dimensions.h"
     83#include "paramet.h"
    3084#include "dimphy.h"
    3185#include "indicesol.h"
     86#include "comvert.h"
    3287#include "temps.h"
    3388#include "control.h"
     
    4297c   -------
    4398c
    44       integer nlon  ! nombre de points horizontaux
    45       integer nlev  ! nombre de couches verticales
    46       integer nqmax ! nombre de traceurs auxquels on applique la physique
     99      integer nlon   ! nombre de points horizontaux
     100      integer nlev   ! nombre de couches verticales
     101      integer nqmax  ! nombre de traceurs auxquels on applique la physique
     102      integer nstep  ! appel physique
     103      integer julien !jour julien
     104      integer itop_con(nlon)
     105      integer ibas_con(nlon)
     106      real gmtime
    47107      real pdtphys  ! pas d'integration pour la physique (seconde)
    48108      real t_seri(nlon,nlev) ! temperature
     109      real u(klon,klev)
     110      real v(klon,klev)
     111      real sh(nlon,nlev)     ! humidite specifique
     112      real rh(nlon,nlev)     ! humidite relative
     113      real cldliq(nlon,nlev) ! eau liquide nuageuse
     114      real cldfra(nlon,nlev) ! fraction nuageuse (tous les nuages)
     115      real diafra(nlon,nlev) ! fraction nuageuse (convection ou stratus artificiels)
     116      real rneb(nlon,nlev)   ! fraction nuageuse (grande echelle)
     117      real albsol(nlon)      ! albedo surface
    49118      real tr_seri(nlon,nlev,nbtr) ! traceur 
    50119      real paprs(nlon,nlev+1)  ! pression pour chaque inter-couche (en Pa)
     120      real ps(nlon)  ! pression surface
    51121      real pplay(nlon,nlev)  ! pression pour le mileu de chaque couche (en Pa)
    52       real presnivs(klev) ! pressions approximat. des milieux couches ( en PA)
     122      real pphi(nlon,klev) ! geopotentiel
     123      real znivsig(klev) ! niveaux sigma
    53124      real paire(klon)
    54125      real pphis(klon)
     126      REAL pmflxr(klon,klev+1), pmflxs(klon,klev+1)   !--lessivage convection
     127      REAL prfl(klon,klev+1),   psfl(klon,klev+1)     !--lessivage large-scale
     128      REAL flxmass_w(klon,klev)
    55129      logical debutphy       ! le flag de l'initialisation de la physique
    56130      logical lafin          ! le flag de la fin de la physique
     
    131205      SAVE scavtr
    132206cAA
    133       CHARACTER*1 itn
     207      CHARACTER*2 itn
    134208C maf ioipsl
    135209      CHARACTER*2 str2
    136       INTEGER nhori, nvert
     210      INTEGER nhori, nvert, nverta, nvertb, nverts
    137211      REAL zsto, zout, zjulian
    138212      INTEGER nid_tra
     
    207281      data first,couchelimite,convection,lessivage,sorties
    208282     s     /.true.,.true.,.true.,.true.,.true./
     283
     284#ifdef INCA
     285      INTEGER           :: ncsec
     286      INTEGER           :: prt_flag_ts(nbtr)=(/1,1,1
     287#ifdef INCA_CH4
     288     .                                              ,0,0,1,1,1,1,1,
     289     .                                         0,1,0,0,0,0,0,1,0,0,
     290     .                                         0,1,1,1,1,0,1,1,1,0,
     291     .                                         1,1,1,1,1,1,1,1,1,1,
     292     .                                         1,0,0
     293#endif
     294#ifdef INCA_AER
     295     .                                              ,1,1,1,1,1,1
     296#endif
     297     .                                         /)
     298      REAL, PARAMETER   :: dry_mass = 28.966
     299      REAL, POINTER     :: hbuf(:)
     300      REAL, ALLOCATABLE :: obuf(:)
     301      REAL              :: calday
     302      REAL              :: pdel(klon,klev)
     303      REAL              :: dummy(klon,klev) = 0.
     304#endif
     305
    209306c
    210307c======================================================================
    211308c         ecrit_tra = NINT(86400./pdtphys *1.0)  ! tous les jours
    212309         modname='phytrac'
     310         ecrit_tra = NINT(86400./pdtphys *ecritphy)   
     311!DH      print*,'dans phytrac ',pdtphys,ecritphy,ecrit_tra
     312         ps(:) = paprs(:,1)
    213313
    214314c        print*,'DANS PHYTRAC debutphy=',debutphy
     
    228328
    229329         inirnpb=rnpb
    230          PRINT*, 'La frequence de sortie traceurs est  ', ecrit_tra
    231          itra=0
    232          itap=0
     330!DH      PRINT*, 'La frequence de sortie traceurs est  ', ecrit_tra
     331
    233332C         
    234333         CALL ymds2ju(anne_ini, 1, 1, 0.0, zjulian)
    235          zjulian = zjulian + day_ini
    236 c
     334         itra = NINT(FLOAT(day_ini)*86400./pdtphys)
     335         itap = NINT(FLOAT(day_ini)*86400./pdtphys)
     336!        itra=0
     337!        itap=0
     338!        zjulian = zjulian + day_ini
     339 
    237340         CALL gr_fi_ecrit(1,klon,iim,jjm+1,xlon,zx_lon)
    238341         DO i = 1, iim
     
    240343            zx_lon(i,jjm+1) = xlon(i+1)
    241344         ENDDO
    242 c         DO ll=1,klev
    243 c            znivsig(ll)=float(ll)
    244 c         ENDDO
     345         DO ll=1,klev
     346            znivsig(ll)=float(ll)
     347         ENDDO
    245348         CALL gr_fi_ecrit(1,klon,iim,jjm+1,xlat,zx_lat)
    246349         CALL histbeg("histrac", iim,zx_lon, jjm+1,zx_lat,
    247      .                 1,iim,1,jjm+1, 0, zjulian, pdtphys,
     350     .                 1,iim,1,jjm+1, itra, zjulian, pdtphys,
    248351     .                 nhori, nid_tra)
    249          CALL histvert(nid_tra, "presnivs", "Vertical levels", "mb",
     352
     353         call histvert(nid_tra, "presnivs", "presnivs", "mb",
    250354     .                 klev, presnivs, nvert)
     355#ifdef INCA
     356!        call histvert(nid_tra, "ap", "Hybrid A parameter", "-",
     357!    .                 klev+1, ap, nverta)
     358!        call histvert(nid_tra, "bp", "Hybrid B parameter", "-",
     359!    .                 klev+1, bp, nvertb)
     360#endif
     361
    251362         zsto = pdtphys
    252363         zout = pdtphys * FLOAT(ecrit_tra)
     
    260371     .                "once",  zsto,zout)
    261372
    262         goto 666
    263          CALL histdef(nid_tra, "pyu1", "Vent niv 1", "-",
    264      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
    265      .                "inst(X)",  zsto,zout)
    266 
    267          CALL histdef(nid_tra, "pyv1", "Vent niv 1", "-",
    268      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
    269      .                "inst(X)",  zsto,zout)
    270          CALL histdef(nid_tra, "psrf1", "nature sol", "-",
    271      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
    272      .                "inst(X)",  zsto,zout)
    273          CALL histdef(nid_tra, "psrf2", "nature sol", "-",
    274      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
    275      .                "inst(X)",  zsto,zout)
    276          CALL histdef(nid_tra, "psrf3", "nature sol", "-",
    277      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
    278      .                "inst(X)",  zsto,zout)
    279          CALL histdef(nid_tra, "psrf4", "nature sol", "-",
    280      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
    281      .                "inst(X)",  zsto,zout)
    282          CALL histdef(nid_tra, "ftsol1", "temper sol", "-",
    283      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
    284      .                "inst(X)",  zsto,zout)
    285          CALL histdef(nid_tra, "ftsol2", "temper sol", "-",
    286      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
    287      .                "inst(X)",  zsto,zout)
    288          CALL histdef(nid_tra, "ftsol3", "temper sol", "-",
    289      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
    290      .                "inst",  zsto,zout)
    291          CALL histdef(nid_tra, "ftsol4", "temper sol", "-",
    292      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
    293      .                "inst(X)",  zsto,zout)
    294          CALL histdef(nid_tra, "pplay", "flux u mont","-",
    295      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    296      .                "inst(X)", zsto,zout)
    297          CALL histdef(nid_tra, "t", "flux u mont","-",
    298      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    299      .                "inst(X)", zsto,zout)
    300          CALL histdef(nid_tra, "mfu", "flux u mont","-",
    301      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    302      .                "ave(X)", zsto,zout)
    303          CALL histdef(nid_tra, "mfd", "flux u decen","-",
    304      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    305      .                "ave(X)", zsto,zout)
    306          CALL histdef(nid_tra, "en_u", "flux u mont","-",
    307      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    308      .                "ave(X)", zsto,zout)
    309          CALL histdef(nid_tra, "en_d", "flux u mont","-",
    310      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    311      .                "ave(X)", zsto,zout)
    312          CALL histdef(nid_tra, "de_u", "flux u mont","-",
    313      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    314      .                "ave(X)", zsto,zout)
    315          CALL histdef(nid_tra, "de_d", "flux u mont","-",
    316      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    317      .                "ave(X)", zsto,zout)
    318          CALL histdef(nid_tra, "coefh", "turbulent coef","-",
    319      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    320      .                "ave(X)", zsto,zout)
    321 
    322 666     continue
    323 c
     373#ifdef INCA
     374         CALL histdef(nid_tra, "ps", "Surface pressure", "Pa",
     375     .                iim,jjm+1,nhori, 1,1,1,-99, 32,
     376     .                "ave(X)", zsto,zout)
     377
     378         CALL histdef(nid_tra, "ptrop", "Tropopause pressure", "Pa",
     379     .                iim,jjm+1,nhori, 1,1,1,-99, 32,
     380     .                "ave(X)", zsto,zout)
     381
     382         CALL histdef(nid_tra, "temp", "Air temperature", "K",
     383     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     384     .                "ave(X)", zsto,zout)
     385
     386         CALL histdef(nid_tra, "u", "zonal wind component", "m/s",
     387     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     388     .                "ave(X)", zsto,zout)
     389
     390         CALL histdef(nid_tra, "v", "zonal wind component", "m/s",
     391     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     392     .                "ave(X)", zsto,zout)
     393
     394         CALL histdef(nid_tra, "h2o", "Specific Humidity", "MMR",
     395     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     396     .                "ave(X)", zsto,zout)
     397
     398         CALL histdef(nid_tra, "pmid", "Pressure", "Pa",
     399     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     400     .                "ave(X)", zsto,zout)
     401
     402         CALL histdef(nid_tra, "pdel", "Delta Pressure", "Pa",
     403     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     404     .                "ave(X)", zsto,zout)
     405#ifdef INCA_CH4
     406#ifdef INCAINFO
     407         DO it=1, phtcnt
     408         WRITE(str2,'(i2.2)') it
     409         CALL histdef(nid_tra, "j"//str2,"j"//str2, "CM-3 S-1",
     410     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     411     .                "ave(X)", zsto,zout)
     412         ENDDO
     413         DO it=1, hetcnt
     414         WRITE(str2,'(i2.2)') it
     415         CALL histdef(nid_tra, "w"//str2,"w"//str2, "S-1",
     416     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     417     .                "ave(X)", zsto,zout)
     418         ENDDO
     419
     420         DO it=1, extcnt
     421         WRITE(str2,'(i2.2)') it
     422        CALL histdef(nid_tra, "ext"//str2,"ext"//str2, "CM-3 S-1",
     423     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     424     .                "ave(X)", zsto,zout)
     425         ENDDO
     426
     427         DO it=1, nfs
     428         WRITE(str2,'(i2.2)') it
     429         CALL histdef(nid_tra, "INV"//str2, "INV"//str2, "CM-3",
     430     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     431     .                "ave(X)", zsto,zout)
     432         ENDDO
     433
     434#else
     435         CALL histdef(nid_tra, "jO3","jO3", "CM-3 S-1",
     436     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     437     .                "ave(X)", zsto,zout)
     438         CALL histdef(nid_tra, "jNO2","jNO2", "CM-3 S-1",
     439     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     440     .                "ave(X)", zsto,zout)
     441         CALL histdef(nid_tra, "jH2O2","jH2O2", "CM-3 S-1",
     442     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     443     .                "ave(X)", zsto,zout)
     444         CALL histdef(nid_tra, "wHNO3","wHNO3", "S-1",
     445     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     446     .                "ave(X)", zsto,zout)
     447         CALL histdef(nid_tra, "kN2O5", "kN2O5","CM-3 S-1",
     448     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     449     .                "ave(X)", zsto,zout)
     450         CALL histdef(nid_tra, "LghtNO","LghtNO", "CM-3 S-1",
     451     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     452     .                "ave(X)", zsto,zout)
     453#endif
     454
     455         DO it=1, grpcnt
     456         CALL histdef(nid_tra, grpsym(it), grpsym(it), "VMR",
     457     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     458     .                "ave(X)", zsto,zout)
     459         ENDDO
     460#endif
     461#endif
     462
     463#ifdef INCA_AER
     464C   3d FIELDS
     465
     466        CALL histdef(nid_tra, "scavcoef_st","scavcoef_st", "S-1",
     467     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     468     .                "ave(X)", zsto,zout)
     469        CALL histdef(nid_tra, "scavcoef_cv","scavcoef_cv", "S-1",
     470     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     471     .                "ave(X)", zsto,zout)
     472#endif
     473 
    324474         DO it=1,nqmax
    325475         IF (it.LE.99) THEN
    326476         WRITE(str2,'(i2.2)') it
    327 C champ 3D
     477C champ 2D
     478
     479#ifdef INCA
     480         IF ( prt_flag_ts(it) == 0 ) CYCLE
     481
     482         CALL histdef(nid_tra, "Emi_"//solsym(it), "Emi_"//solsym(it),
     483     .           "kg/m2/s", iim,jjm+1,nhori, 1,1,1, -99, 32,
     484     .           "ave(X)", zsto,zout)
     485         CALL histdef(nid_tra, "Dep_"//solsym(it), "Dep_"//solsym(it),
     486     .           "cm/s", iim,jjm+1,nhori, 1,1,1, -99, 32,
     487     .           "ave(X)", zsto,zout)
     488#ifdef INCA_AER
     489        IF (solsym(it) .eq. 'CIDUSTM'.or.solsym(it) .eq. 'CIN'
     490     .  .or.solsym(it) .eq. 'CSSSM'  .or.solsym(it) .eq. 'CSN'
     491     .  .or.solsym(it) .eq. 'ASSSM'  .or.solsym(it) .eq. 'ASN' ) THEN
     492         CALL histdef(nid_tra, "Sed_"//solsym(it), "Sed_"//solsym(it),
     493     .           "kg/m2", iim,jjm+1,nhori, 1,1,1, -99, 32,
     494     .           "ave(X)", zsto,zout)
     495        endif
     496        IF (solsym(it) .eq. 'CIDUSTM') THEN
     497         CALL histdef(nid_tra, "OD_"//solsym(it), "OD_"//solsym(it),
     498     .           "opt. depth", iim,jjm+1,nhori, 1,1,1, -99, 32,
     499     .           "ave(X)", zsto,zout)
     500        endif
     501
     502#endif
     503         CALL histdef(nid_tra, solsym(it), solsym(it), "VMR",
     504     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     505     .                "ave(X)", zsto,zout)
     506#else
    328507         CALL histdef(nid_tra, "tr"//str2, "Tracer No."//str2, "U/kga",
    329508     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     
    334513     .                "ave(X)", zsto,zout)
    335514         ENDIF
     515#endif
    336516         ELSE
    337517         PRINT*, "Trop de traceurs"
     
    339519         ENDIF
    340520         ENDDO
     521
     522#ifdef INCA_CH4
     523         CALL histdef(nid_tra, "O3_column", "O3_column",
     524     .           "DU", iim,jjm+1,nhori, 1,1,1, -99, 32,
     525     .           "ave(X)", zsto,zout)
     526         CALL histdef(nid_tra, "CO_column", "CO_column",
     527     .           "10^18 CM-2", iim,jjm+1,nhori, 1,1,1, -99, 32,
     528     .           "ave(X)", zsto,zout)
     529         CALL histdef(nid_tra, "CH4_column", "CH4_column",
     530     .           "10^18 CM-2", iim,jjm+1,nhori, 1,1,1, -99, 32,
     531     .           "ave(X)", zsto,zout)
     532         CALL histdef(nid_tra, "NO2_column", "NO2_column",
     533     .           "10^15 CM-2", iim,jjm+1,nhori, 1,1,1, -99, 32,
     534     .           "ave(X)", zsto,zout)
     535         CALL histdef(nid_tra, "O3_ste", "O3_ste",
     536     .           "CM-2 S-1", iim,jjm+1,nhori, 1,1,1, -99, 32,
     537     .           "ave(X)", zsto,zout)
     538         CALL histdef(nid_tra, "O3_prod", "O3_prod", "CM-3 S-1",
     539     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     540     .                "ave(X)", zsto,zout)
     541         CALL histdef(nid_tra, "O3_loss", "O3_loss", "CM-3 S-1",
     542     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     543     .                "ave(X)", zsto,zout)
     544
     545!        Special variables for daytime averaging
     546!        CALL histdef(nid_tra, "day_cnt", "day_cnt", "-",
     547!    .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     548!    .                "t_sum(X)", zsto,zout)
     549!        CALL histdef(nid_tra, "NO_day", "NO_day", "VMR",
     550!    .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     551!    .                "t_sum(X)", zsto,zout)
     552
     553#endif
     554
    341555         CALL histend(nid_tra)
    342556         ndex(1) = 0
     
    367581         read(99,*) (trs(i,1),i=1,klon)
    368582999      close(99)
    369          print*, 'apres starttrac'
     583!DH      print*, 'apres starttrac'
    370584
    371585c Initialisation de la fraction d'aerosols lessivee
     
    402616         inirnpb=.false.
    403617      endif
    404       if(nqmax.gt.2) aerosol(3)=.true.
    405 
    406 
    407 c  abder
    408         goto 777
    409             do i=1,nlon
    410                pftsol1(i) = ftsol(i,1)
    411                pftsol2(i) = ftsol(i,2)
    412                pftsol3(i) = ftsol(i,3)
    413                pftsol4(i) = ftsol(i,4)
    414 
    415                ppsrf1(i) = pctsrf(i,1)
    416                ppsrf2(i) = pctsrf(i,2)
    417                ppsrf3(i) = pctsrf(i,3)
    418                ppsrf4(i) = pctsrf(i,4)
    419 
    420             enddo
    421          ndex(1)=0
    422          itap=itap+1
    423          CALL gr_fi_ecrit(1,klon,iim,jjm+1,yu1,zx_tmp_2d)
    424          CALL histwrite(nid_tra,"pyu1",itap,zx_tmp_2d,
    425      s                                  iim*(jjm+1),ndex)
    426          
    427          CALL gr_fi_ecrit(1,klon,iim,jjm+1,yv1,zx_tmp_2d)
    428          CALL histwrite(nid_tra,"pyv1",itap,zx_tmp_2d,
    429      s                                  iim*(jjm+1),ndex)
    430 
    431          CALL gr_fi_ecrit(1,klon,iim,jjm+1,pftsol1,zx_tmp_2d)
    432          CALL histwrite(nid_tra,"ftsol1",itap,zx_tmp_2d,
    433      s                                       iim*(jjm+1),ndex)
    434 
    435          CALL gr_fi_ecrit(1,klon,iim,jjm+1,pftsol2,zx_tmp_2d)
    436          CALL histwrite(nid_tra,"ftsol2",itap,zx_tmp_2d,
    437      s                                       iim*(jjm+1),ndex)
    438 
    439          CALL gr_fi_ecrit(1,klon,iim,jjm+1,pftsol3,zx_tmp_2d)
    440          CALL histwrite(nid_tra,"ftsol3",itap,zx_tmp_2d,
    441      s                                      iim*(jjm+1),ndex)
    442 
    443          CALL gr_fi_ecrit(1,klon,iim,jjm+1,pftsol4,zx_tmp_2d)
    444          CALL histwrite(nid_tra,"ftsol4",itap,zx_tmp_2d,
    445      s                                      iim*(jjm+1),ndex)
    446 
    447          CALL gr_fi_ecrit(1,klon,iim,jjm+1,ppsrf1,zx_tmp_2d)
    448          CALL histwrite(nid_tra,"psrf1",itap,zx_tmp_2d,
    449      s                                     iim*(jjm+1),ndex)
    450 
    451          CALL gr_fi_ecrit(1,klon,iim,jjm+1,ppsrf2,zx_tmp_2d)
    452          CALL histwrite(nid_tra,"psrf2",itap,zx_tmp_2d,
    453      s                                     iim*(jjm+1),ndex)
    454 
    455          CALL gr_fi_ecrit(1,klon,iim,jjm+1,ppsrf3,zx_tmp_2d)
    456          CALL histwrite(nid_tra,"psrf3",itap,zx_tmp_2d,
    457      s                                     iim*(jjm+1),ndex)
    458 
    459          CALL gr_fi_ecrit(1,klon,iim,jjm+1,ppsrf4,zx_tmp_2d)
    460          CALL histwrite(nid_tra,"psrf4",itap,zx_tmp_2d,
    461      s                                     iim*(jjm+1),ndex)
    462 777     continue
     618
     619#ifdef INCA
     620!======================================================================
     621!     Chimie
     622!======================================================================
     623
     624        calday = FLOAT(julien) + gmtime
     625        ncsec  = NINT (86400.*gmtime)
     626
     627        DO k = 1, nlev
     628        pdel(:,k) = paprs(:,k) - paprs (:,k+1)
     629        END DO
     630
     631#ifdef INCAINFO
     632        PRINT *, 'CHEMMAIN @ ', calday, ' ... '
     633        DO it = 1, nbtr
     634        PRINT *, solsym(it), MINVAL(tr_seri(:,:,it)),
     635     $                       MAXVAL(tr_seri(:,:,it))
     636      END DO
     637#endif
     638
     639
     640#ifdef INCA_AER
     641        CALL aerosolmain (tr_seri,
     642     $                 pdtphys,
     643     $                 pplay,
     644     $                 prfl,
     645     $                 pmflxr,
     646     $                 psfl,
     647     $                 pmflxs,
     648     $                 pmfu,
     649     $                 itop_con,
     650     $                 ibas_con,
     651     $                 pphi,
     652     $                 paire,
     653     $                 nstep)
     654#endif
     655
     656        CALL chemmain (tr_seri,
     657     $                 nas,
     658     $                 nstep,
     659     $                 calday,
     660     $                 julien,
     661     $                 ncsec,
     662     $                 1,
     663     $                 pdtphys,
     664     $                 paprs(1,1),
     665     $                 pplay,
     666     $                 pdel,
     667     $                 pctsrf(1,3),
     668     $                 ftsol,
     669     $                 albsol,
     670     $                 pphi,
     671     $                 pphis,
     672     $                 cldfra,
     673     $                 rneb,
     674     $                 diafra,
     675     $                 itop_con,
     676     $                 cldliq,
     677     $                 prfl,
     678     $                 pmflxr,
     679     $                 psfl,
     680     $                 pmflxs,
     681     $                 pmfu,
     682     $                 flxmass_w,
     683     $                 t_seri,
     684     $                 sh,
     685     $                 rh,
     686     $                 .false.,
     687     $                 hbuf,
     688     $                 obuf,
     689     $                 iip1,
     690     $                 jjp1)
     691#ifdef INCAINFO
     692      PRINT *, 'OK.'
     693      DO it = 1, nbtr
     694      PRINT *, solsym(it), MINVAL(tr_seri(:,:,it)),
     695     $                     MAXVAL(tr_seri(:,:,it))
     696      END DO
     697#endif
     698#endif
     699C
     700
    463701c======================================================================
    464702c   Calcul de l'effet de la convection
    465703c======================================================================
    466         print*,'Avant convection'
     704!DH   print*,'Avant convection'
    467705      do it=1,nqmax
    468706         WRITE(itn,'(i1)') it
     
    472710      if (convection) then
    473711
    474       print*,'Pas de temps dans phytrac : ',pdtphys
     712!DH   print*,'Pas de temps dans phytrac : ',pdtphys
    475713      DO it=1, nqmax
     714#ifdef INCA
     715      IF ( conv_flg(it) == 0 ) CYCLE
     716#endif
    476717      CALL nflxtr(pdtphys, pmfu, pmfd, pen_u, pde_u, pen_d, pde_d,
    477718     .            pplay, paprs, tr_seri(1,1,it), d_tr_cv)
     
    481722      ENDDO
    482723      ENDDO
    483 c      WRITE(itn,'(i1)') it
    484 c      CALL minmaxqfi(tr_seri(1,1,it),0.,1.e33,'convection it='//itn)
    485       ENDDO
    486 c      print*,'apres nflxtr'
    487 
     724c     WRITE(itn,'(i2)') it
     725#ifdef INCA
     726      CALL minmaxqfi(tr_seri(1,1,it),0.,1.e33,'convection it = '//solsym(it))
     727#else
     728      CALL minmaxqfi(tr_seri(1,1,it),0.,1.e33,'convection it = '//itn)
     729#endif
     730      ENDDO
     731c     print*,'apres nflxtr'
    488732
    489733      endif ! convection
     
    513757C maf modif pour tenir compte du cas rnpb + traceur
    514758      DO it=1, nqmax
    515 c     print *,'it',it,clsol(it)
     759#ifdef INCA
     760      IF ( pbl_flg(it) == 0 ) CYCLE
     761#endif
     762C     print *,'it',it,clsol(it)
    516763      if (clsol(it)) then  ! couche limite avec quantite dans le sol calculee
    517764          CALL cltracrn(it, pdtphys, yu1, yv1,
     
    539786C         CALL minmaxqfi(tr_seri(1,1,it),0.,1.e33,'cltracrn it='//itn)
    540787      else ! couche limite avec flux prescrit
     788
     789#ifdef INCA
     790        DO k =  1, klon
     791          source(k) = eflux(k,it)-dflux(k,it)
     792        END DO
     793#else
    541794Cmaf provisoire source / traceur a creer
    542795        DO i=1, klon
    543796          source(i) = 0.0 ! pas de source, pour l'instant
    544797        ENDDO
    545 C
     798#endif
    546799          CALL cltrac(pdtphys, coefh,t_seri,
    547800     s               tr_seri(1,1,it), source,
     
    574827c si radio=true mais pour l'instant radiornpb propre au cas rnpb
    575828      if(rnpb) then
     829        print *, 'decroissance radiactive activee'
    576830        call radiornpb (tr_seri,pdtphys,tautr,d_tr_dec)
    577831C
     
    589843c
    590844      endif ! rnpb decroissance  radioactive
    591 C
     845
    592846c======================================================================
    593847c   Calcul de l'effet de la precipitation
    594848c======================================================================
    595849
    596       print*,'LESSIVAGE =',lessivage
     850!DH   print*,'LESSIVAGE =',lessivage
    597851      IF (lessivage) THEN
    598852
     
    675929         ENDDO
    676930      ENDDO
     931
     932
     933
    677934      itra=itra+1
    678935      ndex(1) = 0
     936
     937      i = NINT(zout/zsto)
     938      CALL gr_fi_ecrit(1, klon,iim,jjm+1, paire,zx_tmp_2d)
     939      CALL histwrite(nid_tra,"aire",itra,zx_tmp_2d,
     940     .     iim*(jjm+1),ndex)
     941
     942#ifdef INCA
     943      CALL gr_fi_ecrit(1, klon,iim,jjm+1, ps,zx_tmp_2d)
     944      CALL histwrite(nid_tra,"ps",itra,zx_tmp_2d,
     945     .     iim*(jjm+1),ndex)
     946
     947      CALL gr_fi_ecrit(1, klon,iim,jjm+1, ptrop,zx_tmp_2d)
     948      CALL histwrite(nid_tra,"ptrop",itra,zx_tmp_2d,
     949     .     iim*(jjm+1),ndex)
     950
     951      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,t_seri, zx_tmp_3d)
     952      CALL histwrite(nid_tra,"temp",itra,zx_tmp_3d,
     953     .                                   iim*(jjm+1)*klev,ndex)
     954
     955      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,u, zx_tmp_3d)
     956      CALL histwrite(nid_tra,"u",itra,zx_tmp_3d,
     957     .                                   iim*(jjm+1)*klev,ndex)
     958
     959      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,v, zx_tmp_3d)
     960      CALL histwrite(nid_tra,"v",itra,zx_tmp_3d,
     961     .                                   iim*(jjm+1)*klev,ndex)
     962
     963      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,sh, zx_tmp_3d)
     964      CALL histwrite(nid_tra,"h2o",itra,zx_tmp_3d,
     965     .                                   iim*(jjm+1)*klev,ndex)
     966
     967      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pdel, zx_tmp_3d)
     968      CALL histwrite(nid_tra,"pdel",itra,zx_tmp_3d,
     969     .                                   iim*(jjm+1)*klev,ndex)
     970
     971      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pplay, zx_tmp_3d)
     972      CALL histwrite(nid_tra,"pmid",itra,zx_tmp_3d,
     973     .                                   iim*(jjm+1)*klev,ndex)
     974
     975#ifdef INCA_CH4
     976#ifdef INCAINFO
     977      DO it=1, phtcnt
     978      WRITE(str2,'(i2.2)') it
     979      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,jrates(1,1,it),
     980     .     zx_tmp_3d)
     981      CALL histwrite(nid_tra,"j"//str2,itra,zx_tmp_3d,
     982     .                                   iim*(jjm+1)*klev,ndex)
     983      ENDDO
     984
     985      DO it=1, hetcnt
     986      WRITE(str2,'(i2.2)') it
     987      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,hrates(1,1,it),
     988     .     zx_tmp_3d)
     989      CALL histwrite(nid_tra,"w"//str2,itra,zx_tmp_3d,
     990     .                                   iim*(jjm+1)*klev,ndex)
     991      ENDDO
     992
     993 
     994      DO it=1, extcnt
     995      WRITE(str2,'(i2.2)') it
     996
     997
     998      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,extflx(1,1,it),
     999     .     zx_tmp_3d)
     1000      CALL histwrite(nid_tra,"ext"//str2,itra,zx_tmp_3d,
     1001     .                                   iim*(jjm+1)*klev,ndex)
     1002      ENDDO
     1003
     1004      DO it=1, nfs
     1005      WRITE(str2,'(i2.2)') it
     1006      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,invariants(1,1,it),
     1007     .     zx_tmp_3d)
     1008      CALL histwrite(nid_tra,"INV"//str2,itra,zx_tmp_3d,
     1009     .                                   iim*(jjm+1)*klev,ndex)
     1010      ENDDO
     1011
     1012
     1013#else
     1014      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,jrates(1,1,2),
     1015     .     zx_tmp_3d)
     1016      CALL histwrite(nid_tra,"jO3",itra,zx_tmp_3d,
     1017     .                                   iim*(jjm+1)*klev,ndex)
     1018
     1019      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,jrates(1,1,4),
     1020     .     zx_tmp_3d)
     1021      CALL histwrite(nid_tra,"jNO2",itra,zx_tmp_3d,
     1022     .                                   iim*(jjm+1)*klev,ndex)
     1023
     1024      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,jrates(1,1,13),
     1025     .     zx_tmp_3d)
     1026      CALL histwrite(nid_tra,"jH2O2",itra,zx_tmp_3d,
     1027     .                                   iim*(jjm+1)*klev,ndex)
     1028
     1029      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,hrates(1,1,1),
     1030     .     zx_tmp_3d)
     1031      CALL histwrite(nid_tra,"wHNO3",itra,zx_tmp_3d,
     1032     .                                   iim*(jjm+1)*klev,ndex)
     1033
     1034      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,krates(1,1,1),
     1035     .     zx_tmp_3d)
     1036      CALL histwrite(nid_tra,"kN2O5",itra,zx_tmp_3d,
     1037     .                                   iim*(jjm+1)*klev,ndex)
     1038
     1039      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,extflx(1,1,1),
     1040     .     zx_tmp_3d)
     1041      CALL histwrite(nid_tra,"LghtNO",itra,zx_tmp_3d,
     1042     .                                   iim*(jjm+1)*klev,ndex)
     1043#endif
     1044      DO it=1, grpcnt
     1045      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,nas(1,1,it),zx_tmp_3d)
     1046      zx_tmp_3d = zx_tmp_3d * dry_mass / nadv_mass(it)
     1047      CALL histwrite(nid_tra,grpsym(it),itra,zx_tmp_3d,
     1048     .                                   iim*(jjm+1)*klev,ndex)
     1049      ENDDO
     1050#endif
     1051
     1052#endif
     1053#ifdef INCA_AER
     1054C   3d FIELDS
     1055
     1056      it = id_CIDUSTM
     1057       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,scavcoef_st(1,1,it),
     1058     .                  zx_tmp_3d)
     1059       CALL histwrite(nid_tra,"scavcoef_st",itra,zx_tmp_3d,
     1060     .                  iim*(jjm+1)*klev,ndex)
     1061
     1062       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,scavcoef_cv(1,1,it),
     1063     .                  zx_tmp_3d)
     1064       CALL histwrite(nid_tra,"scavcoef_cv",itra,zx_tmp_3d,
     1065     .                  iim*(jjm+1)*klev,ndex)
     1066
     1067#endif
     1068
    6791069      DO it=1,nqmax
    6801070      IF (it.LE.99) THEN
    6811071       WRITE(str2,'(i2.2)') it
     1072
     1073#ifdef INCA
     1074      IF ( prt_flag_ts(it) == 0 ) CYCLE
     1075C champs 2D
     1076      CALL gr_fi_ecrit(1, klon,iim,jjm+1, eflux(1,it),zx_tmp_2d)
     1077      CALL histwrite(nid_tra,"Emi_"//solsym(it),itra,zx_tmp_2d,
     1078     .     iim*(jjm+1),ndex)
     1079
     1080      CALL gr_fi_ecrit(1, klon,iim,jjm+1, dvel(1,it),zx_tmp_2d)
     1081      CALL histwrite(nid_tra,"Dep_"//solsym(it),itra,zx_tmp_2d,
     1082     .     iim*(jjm+1),ndex)
     1083#ifdef INCA_AER
     1084        IF (solsym(it) .eq. 'CIDUSTM'.or.solsym(it) .eq. 'CIN'
     1085     .  .or.solsym(it) .eq. 'CSSSM'  .or.solsym(it) .eq. 'CSN'
     1086     .  .or.solsym(it) .eq. 'ASSSM'  .or.solsym(it) .eq. 'ASN' ) THEN
     1087      CALL gr_fi_ecrit(1, klon,iim,jjm+1,sflux(1,it),zx_tmp_2d)
     1088      CALL histwrite(nid_tra,"Sed_"//solsym(it),itra,zx_tmp_2d,
     1089     .     iim*(jjm+1),ndex)
     1090        endif
     1091        IF (solsym(it) .eq. 'CIDUSTM') THEN
     1092      CALL gr_fi_ecrit(1, klon,iim,jjm+1,tausum(1),zx_tmp_2d)
     1093      CALL histwrite(nid_tra,"OD_"//solsym(it),itra,zx_tmp_2d,
     1094     .     iim*(jjm+1),ndex)
     1095        endif
     1096
     1097#endif
     1098C champs 3D
     1099       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,tr_seri(1,1,it),zx_tmp_3d)
     1100
     1101       !Prefer vmr to mmr for transported species
     1102       if( adv_mass(it) /= 0. ) then
     1103       zx_tmp_3d = zx_tmp_3d * dry_mass / adv_mass(it)
     1104       else
     1105#ifdef INCA_CH4
     1106       if ( solsym(it) == 'OX' ) then
     1107       zx_tmp_3d = zx_tmp_3d * dry_mass / nadv_mass(id_o3)
     1108       end if
     1109#endif
     1110       end if
     1111
     1112       CALL histwrite(nid_tra,solsym(it),itra,zx_tmp_3d,
     1113     .                                   iim*(jjm+1)*klev,ndex)
     1114#else
     1115
    6821116C champs 3D
    6831117       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,tr_seri(1,1,it),zx_tmp_3d)
    6841118       CALL histwrite(nid_tra,"tr"//str2,itra,zx_tmp_3d,
    6851119     .                                   iim*(jjm+1)*klev,ndex)
    686 c      IF (lessivage) THEN
    687 c      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,flestottr(1,1,it),zx_tmp_3d)
    688 c      CALL histwrite(nid_tra,"fl"//str2,itra,zx_tmp_3d,
    689 c    .                                   iim*(jjm+1)*klev,ndex)
    690 c     ENDIF
     1120       IF (lessivage) THEN
     1121       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,flestottr(1,1,it),zx_tmp_3d)
     1122       CALL histwrite(nid_tra,"fl"//str2,itra,zx_tmp_3d,
     1123     .                                   iim*(jjm+1)*klev,ndex)
     1124       ENDIF
     1125#endif
    6911126      ELSE
    6921127         PRINT*, "Trop de traceurs"
     
    6951130      ENDDO
    6961131
    697         goto 888
    698         CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pplay,zx_tmp_3d)
    699         CALL histwrite(nid_tra,"pplay",itra,zx_tmp_3d,
    700      .                  iim*(jjm+1)*klev,ndex)
    701 
    702         CALL gr_fi_ecrit(klev,klon,iim,jjm+1,t_seri,zx_tmp_3d)
    703         CALL histwrite(nid_tra,"t",itra,zx_tmp_3d,
    704      .                  iim*(jjm+1)*klev,ndex)
    705         CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pmfu,zx_tmp_3d)
    706         CALL histwrite(nid_tra,"mfu",itra,zx_tmp_3d,
    707      .                  iim*(jjm+1)*klev,ndex)
    708         CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pmfd,zx_tmp_3d)
    709         CALL histwrite(nid_tra,"mfd",itra,zx_tmp_3d,
    710      .                  iim*(jjm+1)*klev,ndex)
    711         CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pen_u,zx_tmp_3d)
    712         CALL histwrite(nid_tra,"en_u",itra,zx_tmp_3d,
    713      .                  iim*(jjm+1)*klev,ndex)
    714         CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pen_d,zx_tmp_3d)
    715         CALL histwrite(nid_tra,"en_d",itra,zx_tmp_3d,
    716      .                  iim*(jjm+1)*klev,ndex)
    717         CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pde_d,zx_tmp_3d)
    718         CALL histwrite(nid_tra,"de_d",itra,zx_tmp_3d,
    719      .                  iim*(jjm+1)*klev,ndex)
    720         CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pde_u,zx_tmp_3d)
    721         CALL histwrite(nid_tra,"de_u",itra,zx_tmp_3d,
    722      .                  iim*(jjm+1)*klev,ndex)
    723         CALL gr_fi_ecrit(klev,klon,iim,jjm+1,coefh,zx_tmp_3d)
    724         CALL histwrite(nid_tra,"coefh",itra,zx_tmp_3d,
    725      .                  iim*(jjm+1)*klev,ndex)
    726 
    727 888     continue
    728 
    729 c       print*,'Sortie phytrac'
    730 c      do it=1,nqmax
    731 c         WRITE(itn,'(i1)') it
    732 c        call diagtracphy(tr_seri(:,:,it),paprs,'Fin Phys  '//itn)
    733 c      enddo
     1132#ifdef INCA_CH4
     1133      CALL gr_fi_ecrit(1, klon,iim,jjm+1, o3_tr_col(1), zx_tmp_2d)
     1134      CALL histwrite(nid_tra,"O3_column",itra,zx_tmp_2d,
     1135     .     iim*(jjm+1),ndex)
     1136
     1137      CALL gr_fi_ecrit(1, klon,iim,jjm+1, co_tr_col(1), zx_tmp_2d)
     1138      CALL histwrite(nid_tra,"CO_column",itra,zx_tmp_2d,
     1139     .     iim*(jjm+1),ndex)
     1140
     1141      CALL gr_fi_ecrit(1, klon,iim,jjm+1, ch4_tr_col(1), zx_tmp_2d)
     1142      CALL histwrite(nid_tra,"CH4_column",itra,zx_tmp_2d,
     1143     .     iim*(jjm+1),ndex)
     1144
     1145      CALL gr_fi_ecrit(1, klon,iim,jjm+1, no2_tr_col(1), zx_tmp_2d)
     1146      CALL histwrite(nid_tra,"NO2_column",itra,zx_tmp_2d,
     1147     .     iim*(jjm+1),ndex)
     1148
     1149      CALL gr_fi_ecrit(1, klon,iim,jjm+1, o3_st_flx(1), zx_tmp_2d)
     1150      CALL histwrite(nid_tra,"O3_ste",itra,zx_tmp_2d,
     1151     .     iim*(jjm+1),ndex)
     1152
     1153      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,o3_prod(1,1),
     1154     .     zx_tmp_3d)
     1155      CALL histwrite(nid_tra,"O3_prod",itra,zx_tmp_3d,
     1156     .                                   iim*(jjm+1)*klev,ndex)
     1157
     1158      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,o3_loss(1,1),
     1159     .     zx_tmp_3d)
     1160      CALL histwrite(nid_tra,"O3_loss",itra,zx_tmp_3d,
     1161     .                                   iim*(jjm+1)*klev,ndex)
     1162
     1163!     ... Special section for daytime averaging
     1164!       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,day_cnt(1,1),
     1165!    .       zx_tmp_3d)
     1166!       CALL histwrite(nid_tra,"day_cnt",itra,zx_tmp_3d,
     1167!    .                                  iim*(jjm+1)*klev,ndex)
     1168!       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,no_daytime(1,1),
     1169!    .       zx_tmp_3d)
     1170!       CALL histwrite(nid_tra,"NO_day",itra,zx_tmp_3d,
     1171!    .                                  iim*(jjm+1)*klev,ndex)
     1172
     1173#endif
     1174
     1175      if (ok_sync) call histsync(nid_tra)
    7341176
    7351177      if (lafin) then
    736          print*, 'c est la fin de la physique'
     1178!DH      print*, 'c est la fin de la physique'
    7371179         open (99,file='restarttrac',  form='formatted')
    7381180         do i=1,klon
     
    7421184         close(99)
    7431185      else
    744          print*, 'physique pas fini'
     1186!DH      print*, 'physique pas fini'
    7451187      endif
    7461188
Note: See TracChangeset for help on using the changeset viewer.