Changeset 959


Ignore:
Timestamp:
May 27, 2008, 6:42:49 PM (17 years ago)
Author:
lsce
Message:
  • Ajoute du parametre config_inca dans conf_gcm.F config_inca='none'(sans INCA, par defaut) config_inca='chem'(avec INCA config chemie) config_inca='aero'(avec INCA config aerosol)
  • Menage parmis les cles CPP INCA
  • Enleve le calcul d'omega dans calfis.F et active le calcul correspondant dans advtrac.F(avant uniquement pour INCA).
Location:
LMDZ4/trunk/libf/phylmd
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk/libf/phylmd/ini_histrac.h

    r956 r959  
    22! $Header$
    33!
    4 #ifndef INCA
     4      IF (config_inca == 'none') THEN
    55c$OMP MASTER
    66         CALL ymds2ju(annee_ref, 1, day_ref, 0.0, zjulian)
     
    127127         ndex = 0
    128128c$OMP END MASTER
    129 #endif
     129      END IF
  • LMDZ4/trunk/libf/phylmd/phys_state_var_mod.F90

    r955 r959  
    170170!topswai, solswai : Aerosol indirect effect
    171171      REAL,SAVE,ALLOCATABLE :: topswai(:), solswai(:)
    172 #ifdef INCA
     172      REAL,SAVE,ALLOCATABLE :: tau_ae(:,:,:), piz_ae(:,:,:)
     173      REAL,SAVE,ALLOCATABLE :: cg_ae(:,:,:)
     174
     175! Les variables suivants uniquement pour un configuration avec INCA
    173176! topswad_inca, solswad_inca : Aerosol direct effect
    174177      REAL,SAVE,ALLOCATABLE :: topswad_inca(:), solswad_inca(:)
    175178! topswad0_inca, solswad0_inca : Aerosol direct effect
    176179      REAL,SAVE,ALLOCATABLE :: topswad0_inca(:), solswad0_inca(:)
    177 !topswai_inca, solswai_inca : Aerosol indirect effect
     180! topswai_inca, solswai_inca : Aerosol indirect effect
    178181      REAL,SAVE,ALLOCATABLE :: topswai_inca(:), solswai_inca(:)
    179182      REAL,SAVE,ALLOCATABLE :: topsw_inca(:,:), solsw_inca(:,:)
     
    183186      REAL,SAVE,ALLOCATABLE :: cg_inca(:,:,:,:)
    184187      REAL,SAVE,ALLOCATABLE :: ccm(:,:,:)
    185 #endif
    186       REAL,SAVE,ALLOCATABLE :: tau_ae(:,:,:), piz_ae(:,:,:)
    187       REAL,SAVE,ALLOCATABLE :: cg_ae(:,:,:)
    188188
    189189CONTAINS
     
    194194IMPLICIT NONE
    195195#include "indicesol.h"
    196 
     196#include "control.h"
    197197      ALLOCATE(rlat(klon), rlon(klon))
    198198      ALLOCATE(pctsrf(klon,nbsrf))
     
    290290      ALLOCATE(topswad(klon), solswad(klon))
    291291      ALLOCATE(topswai(klon), solswai(klon))
    292 #ifdef INCA
    293       ALLOCATE(topswad_inca(klon), solswad_inca(klon))
    294       ALLOCATE(topswad0_inca(klon), solswad0_inca(klon))
    295       ALLOCATE(topswai_inca(klon), solswai_inca(klon))
    296       ALLOCATE(topsw_inca(klon,9), solsw_inca(klon,9))
    297       ALLOCATE(topsw0_inca(klon,9), solsw0_inca(klon,9))
     292      ALLOCATE(tau_ae(klon,klev,2), piz_ae(klon,klev,2))
     293      ALLOCATE(cg_ae(klon,klev,2))
     294
     295      IF (config_inca /= 'none') THEN
     296         ALLOCATE(topswad_inca(klon), solswad_inca(klon))
     297         ALLOCATE(topswad0_inca(klon), solswad0_inca(klon))
     298         ALLOCATE(topswai_inca(klon), solswai_inca(klon))
     299         ALLOCATE(topsw_inca(klon,9), solsw_inca(klon,9))
     300         ALLOCATE(topsw0_inca(klon,9), solsw0_inca(klon,9))
     301      END IF
     302      ! Following 4 variables are needed only by INCA but must be
     303      ! allocated as they exist in the phytrac argument list
    298304      ALLOCATE(tau_inca(klon,klev,9,2))
    299305      ALLOCATE(piz_inca(klon,klev,9,2))
    300306      ALLOCATE(cg_inca(klon,klev,9,2))
    301307      ALLOCATE(ccm(klon,klev,2))
    302 #endif
    303       ALLOCATE(tau_ae(klon,klev,2), piz_ae(klon,klev,2))
    304       ALLOCATE(cg_ae(klon,klev,2))
    305308
    306309END SUBROUTINE phys_state_var_init
     
    311314IMPLICIT NONE
    312315#include "indicesol.h"
     316#include "control.h"
    313317
    314318      deallocate(rlat, rlon, pctsrf, ftsol, falb1, falb2)
     
    387391      deallocate(topswad, solswad)
    388392      deallocate(topswai, solswai)
    389 #ifdef INCA
    390       deallocate(topswad_inca, solswad_inca)
    391       deallocate(topswad0_inca, solswad0_inca)
    392       deallocate(topswai_inca, solswai_inca)
    393       deallocate(topsw_inca, solsw_inca)
    394       deallocate(topsw0_inca, solsw0_inca)
     393
     394      deallocate(tau_ae, piz_ae)
     395      deallocate(cg_ae)
     396
     397      IF (config_inca /= 'none') THEN
     398         deallocate(topswad_inca, solswad_inca)
     399         deallocate(topswad0_inca, solswad0_inca)
     400         deallocate(topswai_inca, solswai_inca)
     401         deallocate(topsw_inca, solsw_inca)
     402         deallocate(topsw0_inca, solsw0_inca)
     403      END IF
    395404      deallocate(tau_inca)
    396405      deallocate(piz_inca)
    397406      deallocate(cg_inca)
    398407      deallocate(ccm)
    399 #endif
    400       deallocate(tau_ae, piz_ae)
    401       deallocate(cg_ae)
    402  
     408       
    403409END SUBROUTINE phys_state_var_end
    404410
  • LMDZ4/trunk/libf/phylmd/physiq.F

    r956 r959  
    99     .            paprs,pplay,pphi,pphis,presnivs,clesphy0,
    1010     .            u,v,t,qx,
    11      .            omega,
    12 #ifdef INCA
    1311     .            flxmass_w,
    14 #endif
    1512     .            d_u, d_v, d_t, d_qx, d_ps
    1613     .            , dudyn
     
    8077c d_t_dyn-input-R-tendance dynamique pour "t" (K/s)
    8178c d_q_dyn-input-R-tendance dynamique pour "q" (kg/kg/s)
    82 c omega---input-R-vitesse verticale en Pa/s
     79c flxmass_w -input-R- flux de masse verticale
    8380c d_u-----output-R-tendance physique de "u" (m/s/s)
    8481c d_v-----output-R-tendance physique de "v" (m/s/s)
     
    119116      PARAMETER (ok_stratus=.FALSE.)
    120117c======================================================================
    121       logical rnpb
    122 #ifdef INCA
    123       parameter(rnpb=.false.)
    124 #else
    125       parameter(rnpb=.true.)
    126 #endif
    127 
     118      LOGICAL :: rnpb=.TRUE.
    128119cIM "slab" ocean
    129120      REAL tslab(klon)    !Temperature du slab-ocean
     
    215206      REAL t(klon,klev),theta(klon,klev)
    216207      REAL qx(klon,klev,nqmax)
    217 
    218       REAL omega(klon,klev)
    219 
    220 #ifdef INCA
    221208      REAL flxmass_w(klon,klev)
    222 #endif
     209      REAL omega(klon,klev) ! vitesse verticale en Pa/s
    223210      REAL d_u(klon,klev)
    224211      REAL d_v(klon,klev)
     
    682669      REAL frac_impa(klon,klev) ! fractions d'aerosols lessivees (impaction)
    683670      REAL frac_nucl(klon,klev) ! idem (nucleation)
    684 #ifdef INCA
    685671      INTEGER       :: iii
    686672      REAL          :: calday
    687 #endif
    688673
    689674cIM cf FH pour Tiedtke 080604
     
    10741059
    10751060      ! Aerosol optical properties
    1076 #ifdef INCA
    1077 ! Aerosol optical properties by INCA model
     1061
     1062      ! Aerosol optical properties by INCA model
    10781063      CHARACTER*4              ::    rfname(9)
    1079 #endif
    10801064      REAL aerindex(klon)       ! POLDER aerosol index
    10811065     
     
    10831067      LOGICAL ok_ade, ok_aie    ! Apply aerosol (in)direct effects or not
    10841068      REAL bl95_b0, bl95_b1   ! Parameter in Boucher and Lohmann (1995)
    1085 cym
    10861069      SAVE ok_ade, ok_aie, bl95_b0, bl95_b1
    10871070c$OMP THREADPRIVATE(ok_ade, ok_aie, bl95_b0, bl95_b1)
     
    12091192         solswai(:)=0.
    12101193         solswad(:)=0.
    1211 #ifdef INCA
    1212          tau_inca(:,:,:,:) = 0.
    1213          piz_inca(:,:,:,:) = 0.
    1214          cg_inca(:,:,:,:) = 0.
    1215          ccm(:,:,:)        = 0.
    1216          topswai_inca(:)   = 0.
    1217          topswad_inca(:)   = 0.
    1218          topswad0_inca(:)  = 0.
    1219          topsw_inca(:,:)   = 0.
    1220          topsw0_inca(:,:)  = 0.
    1221          solswai_inca(:)   = 0.
    1222          solswad_inca(:)   = 0.
    1223          solswad0_inca(:)  = 0.
    1224          solsw_inca(:,:)   = 0.
    1225          solsw0_inca(:,:)  = 0.
    1226 #endif
    1227 !rv
    1228 !ACo
     1194
     1195         IF (config_inca /= 'none') THEN
     1196            tau_inca(:,:,:,:) = 0.
     1197            piz_inca(:,:,:,:) = 0.
     1198            cg_inca(:,:,:,:)  = 0.
     1199            ccm(:,:,:)        = 0.
     1200            topswai_inca(:)   = 0.
     1201            topswad_inca(:)   = 0.
     1202            topswad0_inca(:)  = 0.
     1203            topsw_inca(:,:)   = 0.
     1204            topsw0_inca(:,:)  = 0.
     1205            solswai_inca(:)   = 0.
     1206            solswad_inca(:)   = 0.
     1207            solswad0_inca(:)  = 0.
     1208            solsw_inca(:,:)   = 0.
     1209            solsw0_inca(:,:)  = 0.
     1210         END IF
     1211
    12291212         rnebcon0(:,:) = 0.0
    12301213         clwcon0(:,:) = 0.0
    12311214         rnebcon(:,:) = 0.0
    12321215         clwcon(:,:) = 0.0
    1233 ! fin anne
    12341216
    12351217cIM     
     
    15591541cc         ENDDO
    15601542c
     1543      IF (config_inca /= 'none') THEN
    15611544#ifdef INCA
    1562            call VTe(VTphysiq)
    1563            call VTb(VTinca)
    1564            iii = MOD(NINT(xjour),360)
    1565            calday = FLOAT(iii) + gmtime
    1566            WRITE(lunout,*) 'initial time ', xjour, calday
    1567 #ifdef INCAINFO
    1568            WRITE(lunout,*) 'Appel CHEMINI ...'
    1569 #endif
    1570            CALL chemini(
     1545         CALL VTe(VTphysiq)
     1546         CALL VTb(VTinca)
     1547         iii = MOD(NINT(xjour),360)
     1548         calday = FLOAT(iii) + gmtime
     1549         WRITE(lunout,*) 'initial time ', xjour, calday
     1550
     1551         CALL chemini(
    15711552     $                   rg,
    15721553     $                   ra,
     
    15811562     $                   annee_ref,
    15821563     $                   day_ini)
    1583 #ifdef INCAINFO
    1584            WRITE(lunout,*) 'OK.'
     1564
     1565         CALL VTe(VTinca)
     1566         CALL VTb(VTphysiq)
    15851567#endif
    1586       call VTe(VTinca)
    1587       call VTb(VTphysiq)
    1588 #endif
     1568      END IF
    15891569c
    15901570      ENDIF
     
    19391919         ENDDO
    19401920      ENDIF
     1921
     1922c Calcule de vitesse verticale a partir de flux de masse verticale
     1923      DO k = 1, klev
     1924         DO i = 1, klon
     1925            omega(i,k) = RG*flxmass_w(i,k) / airephy(i)
     1926         END DO
     1927      END DO
     1928
    19411929      IF (iflag_con.EQ.1) THEN
    19421930          stop'reactiver le call conlmd dans physiq.F'
     
    25892577cjq - Johannes Quaas, 27/11/2003 (quaas@lmd.jussieu.fr)
    25902578      IF (ok_ade.OR.ok_aie) THEN
    2591          IF ( .NOT. aerosol_couple ) THEN
    2592             ! Get sulfate aerosol distribution
    2593             CALL readsulfate(rjourvrai, debut, sulfate)
    2594             CALL readsulfate_preind(rjourvrai, debut, sulfate_pi)
    2595 
    2596             ! Calculate aerosol optical properties (Olivier Boucher)
    2597             CALL aeropt(pplay, paprs, t_seri, sulfate, rhcl,
    2598      .           tau_ae, piz_ae, cg_ae, aerindex)
    2599          ENDIF
     2579       IF ( .NOT. aerosol_couple ) THEN
     2580         ! Get sulfate aerosol distribution
     2581         CALL readsulfate(rjourvrai, debut, sulfate)
     2582         CALL readsulfate_preind(rjourvrai, debut, sulfate_pi)
     2583
     2584         ! Calculate aerosol optical properties (Olivier Boucher)
     2585         CALL aeropt(pplay, paprs, t_seri, sulfate, rhcl,
     2586     .        tau_ae, piz_ae, cg_ae, aerindex)
     2587       ENDIF
    26002588      ELSE
    26012589        tau_ae(:,:,:)=0.0
    26022590        piz_ae(:,:,:)=0.0
    2603         cg_ae(:,:,:)=0.0
     2591        cg_ae(:,:,:)=0.0 
    26042592      ENDIF
    26052593
     
    26962684      ENDDO
    26972685
    2698 
     2686      IF (config_inca /= 'none') THEN
    26992687#ifdef INCA
    2700       call VTe(VTphysiq)
    2701       call VTb(VTinca)
    2702            calday = FLOAT(julien) + gmtime
    2703 
    2704 #ifdef INCA_AER
    2705       call AEROSOL_METEO_CALC(calday,pdtphys,pplay,paprs,t,pmflxr,pmflxs
    2706      &   ,prfl,psfl,pctsrf,airephy,xjour,rlat,rlon,u10m,v10m)
    2707 #endif
    2708 
    2709 #ifdef INCAINFO
    2710            WRITE(lunout,*)'Appel CHEMHOOK_BEGIN ...'
    2711 #endif
    2712 
    2713            zxsnow_dummy(:) = 0.0
    2714 
    2715            CALL chemhook_begin (calday,
    2716 #if defined(INCA) && !defined(INCA_CH4) && !defined(INCA_NMHC) && !defined(INCA_AER)
     2688         CALL VTe(VTphysiq)
     2689         CALL VTb(VTinca)
     2690         calday = FLOAT(julien) + gmtime
     2691
     2692         IF (config_inca == 'aero') THEN
     2693            CALL AEROSOL_METEO_CALC(calday,pdtphys,pplay,paprs,t,pmflxr,pmflxs
     2694     &           ,prfl,psfl,pctsrf,airephy,xjour,rlat,rlon,u10m,v10m)
     2695         END IF
     2696
     2697         zxsnow_dummy(:) = 0.0
     2698
     2699         CALL chemhook_begin (calday,
    27172700     $                          julien,
    27182701     $                          gmtime,
    2719 #endif
    27202702     $                          pctsrf(1,1),
    27212703     $                          rlat,
     
    27422724     $                          iim,
    27432725     $                          jjm,
    2744 #ifdef INCA_AER
    27452726     $                          tr_seri,
    27462727     $                          ftsol,
     
    27512732     $                          pdtphys,
    27522733     $                          itap)
    2753 #else
    2754      $                          tr_seri)     
    2755 #endif       
    2756 
    2757 
    2758 #ifdef INCAINFO
    2759            WRITE(lunout,*)'OK.'
    2760 #endif
    2761       call VTe(VTinca)
    2762       call VTb(VTphysiq)
    2763 #endif
     2734
     2735         CALL VTe(VTinca)
     2736         CALL VTb(VTphysiq)
     2737#endif
     2738      END IF !config_inca /= 'none'
    27642739c     
    27652740c Calculer les parametres optiques des nuages et quelques
    27662741c parametres pour diagnostiques:
    27672742c
    2768       IF (aerosol_couple ) THEN
    2769 #ifdef INCA
     2743
     2744      IF (aerosol_couple) THEN
    27702745         sulfate(:,:) = ccm(:,:,1)
    27712746         sulfate_pi(:,:) = ccm(:,:,2)
    2772 #endif
    27732747      ENDIF
    27742748
     
    28162790     
    28172791      IF (aerosol_couple) THEN
    2818 #ifdef INCA_AER
    2819          CALL radlwsw_inca 
     2792#ifdef INCA
     2793      CALL radlwsw_inca
    28202794     e            (kdlon,kflev,dist, rmu0, fract, solaire,
    28212795     e             paprs, pplay,zxtsol,albsol, albsollw, t_seri,q_seri,
     
    28382812#endif
    28392813      ELSE
    2840          CALL radlwsw ! nouveau rayonnement (compatible Arpege-IFS)
     2814      CALL radlwsw ! nouveau rayonnement (compatible Arpege-IFS)
    28412815     e            (dist, rmu0, fract,
    28422816     e             paprs, pplay,zxtsol,albsol1, albsol2, t_seri,q_seri,
     
    28552829     s             topswai, solswai) ! ="=
    28562830      ENDIF
    2857 
    28582831      itaprad = 0
    28592832      ENDIF
     
    30383011c====================================================================
    30393012C
     3013      IF (config_inca /= 'none') rnpb=.FALSE.
     3014
    30403015      call phytrac (     rnpb,
    30413016     I                   itap,
     
    30923067     I                   dnwd,
    30933068     I                   aerosol_couple,
    3094 #ifdef INCA
    30953069     I                   flxmass_w,
    30963070     I                   tau_inca,
     
    30993073     I                   ccm,
    31003074     I                   rfname,
    3101 #endif
    31023075     O                   tr_seri)
    31033076
     
    31903163#include "calcul_divers.h"
    31913164c
     3165      IF (config_inca /= 'none') THEN
    31923166#ifdef INCA
    3193       call VTe(VTphysiq)
    3194       call VTb(VTinca)
    3195 #ifdef INCAINFO
    3196            WRITE(lunout,*)'Appel CHEMHOOK_END ...'
    3197 #endif
    3198            CALL chemhook_end (calday,
     3167         CALL VTe(VTphysiq)
     3168         CALL VTb(VTinca)
     3169
     3170         CALL chemhook_end (calday,
    31993171     $                        dtime,
    32003172     $                        pplay,
     
    32073179     $                        day_ini,
    32083180     $                        airephy,
    3209 #ifdef INCA_AER
    32103181     $                        xjour,
    32113182     $                        pphi,
    32123183     $                        pphis,
    32133184     $                        zx_rh)
    3214 #else
    32153185     $                        xjour)
     3186
     3187         CALL VTe(VTinca)
     3188         CALL VTb(VTphysiq)
    32163189#endif
    3217 #ifdef INCAINFO
    3218            WRITE(lunout,*)'OK.'
    3219 #endif
    3220       call VTe(VTinca)
    3221       call VTb(VTphysiq)
    3222 #endif
     3190      END IF
    32233191
    32243192c=============================================================
  • LMDZ4/trunk/libf/phylmd/phytrac.F

    r956 r959  
    5858     I                    dnwd,
    5959     I                    aerosol_couple,
    60 #ifdef INCA
    6160     I                    flxmass_w,
    62      I                   tau_inca,
    63      I                   piz_inca,
    64      I                   cg_inca,
    65      I                   ccm,
    66      I                   rfname,
    67 #endif
     61     I                    tau_inca,
     62     I                    piz_inca,
     63     I                    cg_inca,
     64     I                    ccm,
     65     I                    rfname,
    6866     O                    tr_seri)
    6967
     
    9189#include "YOMCST.h"
    9290#include "dimensions.h"
    93 cym#include "dimphy.h"
    9491#include "indicesol.h"
    9592#include "clesphys.h"
     
    9794#include "paramet.h"
    9895#include "control.h"
    99 cym#include "comgeomphy.h"
    10096#include "advtrac.h"
    10197#include "thermcell.h"
     
    143139      REAL prfl(klon,klev+1),   psfl(klon,klev+1)     !--lessivage large-scale
    144140      LOGICAL aerosol_couple
    145 #ifdef INCA
     141
    146142      REAL flxmass_w(klon,klev)
    147143      CHARACTER(len=8) :: solsym(nqmax)
     
    152148      character*4       ::    rfname(9)
    153149      REAL              ::    ccm(klon,klev,2)
    154 #endif
    155 c      integer iflag_con
    156 
    157 cAA Rem : nbtr : nombre de vrais traceurs est defini dans dimphy.h
    158150c
    159151c   convection:
     
    253245      INTEGER nhori, nvert
    254246      REAL zsto, zout, zjulian
    255       INTEGER nid_tra
    256       SAVE nid_tra
     247      INTEGER, SAVE :: nid_tra
    257248c$OMP THREADPRIVATE(nid_tra)
    258 #ifdef INCA_AER
    259       INTEGER nid_tra2,nid_tra3
    260       SAVE nid_tra2,nid_tra3
     249      INTEGER, SAVE :: nid_tra2,nid_tra3
    261250c$OMP THREADPRIVATE(nid_tra2,nid_tra3)
    262 #endif
    263 c     REAL x(klon,klev,nbtr+2) ! traceurs
    264251      INTEGER ndex(1)
    265252      INTEGER ndex2d(iim*(jjm+1)),ndex3d(iim*(jjm+1)*klev)
     
    271258      integer itau_w   ! pas de temps ecriture = nstep + itau_phy
    272259c
    273 
    274 C
    275260      logical ok_sync
    276261      parameter (ok_sync = .true.)
     
    342327     s     /.true.,.true.,.true.,.true.,.true./
    343328
    344 
    345 #ifdef INCA
     329! Variables needed for configuration with INCA
    346330      INTEGER           :: lastgas
    347331      INTEGER           :: ncsec
    348       INTEGER           :: prt_flag_ts(nbtr) 
    349332
    350333      REAL, PARAMETER   :: dry_mass = 28.966
     
    353336      REAL              :: calday
    354337      REAL              :: pdel(klon,klev)
    355       REAL              :: dummy(klon,klev)
    356 #endif
    357 c
    358 c======================================================================
    359 
    360 #ifdef INCA
    361       prt_flag_ts(:)=(/
    362 #ifdef INCA_CH4
    363      .             1,1,1,0,0,1,1,1,1,1,
    364      .             0,1,0,0,0,0,0,1,0,0,
    365      .             0,1,1,1,1,0,1,1,1,0,
    366      .             1,1,1,1,1,1,1,1,1,1,
    367      .             1,0,0
    368 #ifdef INCA_AER
    369      .             ,1,1,1,1,0,1,1,1,1,0,
    370      .             1,1,1,1,1,1,0,1,0,1,
    371      .             1,1,1,1,0,1,0,1,1,1
    372 #endif
    373 #endif
    374 #ifdef INCA_NMHC
    375      .             1,1,1,1,1,1,1,1,1,1,
    376      .             1,1,1,1,1,1,1,1,1,1,
    377      .             1,1,1,1,1,1,1,1,1,1,
    378      .             1,1,1,1,1,1,1,1,1,1,
    379      .             1,1,1,1,1,1,1,1,1,1,
    380      .             1,1,1,1,1,1,1,1,1,1,
    381      .             1,1,1,1,1,1,1,1,1,1,
    382      .             1,1,1,1,1,1,1,1,1,1,
    383      .             1,1,1,1,1,1,1
    384 #ifdef INCA_AER
    385      .             ,1,1,1,1,0,1,1,1,1,0,
    386      .             1,1,1,1,1,1,0,1,0,1,
    387      .             1,1,1,1,0,1,0,1,1,1
    388 #endif
    389 #endif
    390 #if defined(INCA_AER) && !defined(INCA_CH4) && !defined(INCA_NMHC)
    391      .             1,1,1,1,1,1,1,1,1,1,
    392      .             1,1,1,1,1,1,1,1,1,1,
    393      .             1,1,1,1,1,1,1,1,1
    394 #endif
    395 #if defined(INCA) && !defined(INCA_CH4) && !defined(INCA_NMHC) && !defined(INCA_AER)
    396      .             1,1,1,1,1,1,1,1,1,1,
    397      .             1                                         
    398 #endif
    399 
    400      .             /)
    401       dummy(:,:) = 0.
    402 
    403 #endif
     338c
     339c======================================================================
     340
    404341         modname='phytrac'
    405342
     
    419356
    420357
    421 c jg: c'est ca qu'on veut?????           
    422358! FH 2008/05/09 correction de la frequence d'ecriture des traceurs
    423359!         ecrit_tra = FLOAT(NINT(86400./pdtphys *ecritphy))
     
    490426         inirnpb=.false.
    491427      endif
     428
     429
     430      IF (config_inca == 'none') THEN
     431       DO i=1,nlon
     432          pftsol1(i) = ftsol(i,1)
     433          pftsol2(i) = ftsol(i,2)
     434          pftsol3(i) = ftsol(i,3)
     435          pftsol4(i) = ftsol(i,4)
     436
     437          ppsrf1(i) = pctsrf(i,1)
     438          ppsrf2(i) = pctsrf(i,2)
     439          ppsrf3(i) = pctsrf(i,3)
     440          ppsrf4(i) = pctsrf(i,4)
     441
     442       ENDDO
     443
     444      ELSE ! config_inca /=none
    492445#ifdef INCA
    493446      call VTe(VTphysiq)
    494447      call VTb(VTinca)
     448
    495449!======================================================================
    496450!     Chimie
     
    504458        END DO
    505459
    506 #ifdef INCAINFO
    507         PRINT *, 'CHEMMAIN @ ', calday, ' ... '
    508         DO it = 1, nbtr
    509         PRINT *, solsym(it), MINVAL(tr_seri(:,:,it)),
    510      $                       MAXVAL(tr_seri(:,:,it))
    511       END DO
    512 #endif
    513 
    514 
    515 #ifdef INCA_AER
    516         CALL aerosolmain (aerosol_couple,
     460        IF (config_inca == 'aero') THEN
     461           CALL aerosolmain (aerosol_couple,
    517462     $                 tr_seri,
    518463     $                 pdtphys,
     
    538483     $                 ccm,
    539484     $                 lafin)
    540 #endif
     485        END IF
    541486
    542487        CALL chemmain (tr_seri,    !mmr
     
    578523     $                 source,
    579524     $                 solsym)
    580 #ifdef INCAINFO
    581 #ifdef INCA_AER
    582 
    583 c Budget calculation for aerosol species
    584 CALL tbudget(airephy,pdtphys,nstep,tr_seri,.false.)
    585 
    586 c-- summary info----------------------------------------------------------------
    587 
    588 if (MOD(nstep,nint(86400./pdtphys)) .eq. 0) then
    589 print *, "global aerosol optical thickness "
    590 
    591 write (form,'(A,I2,A)') "(A,",trnx-trmx+1,"A10)"
    592 print form,"lamba [nm] ", (solsym(it),it=trmx,trnx)
    593 
    594 write (form,'(A,I2,A)') "(I11,",trnx-trmx+1,"F10.4)"
    595 do i=1,las
    596 print form,int(lambda(i)),(sum(tausum(:,i,it)*airephy)/sum(airephy),it=trmx,trnx)
    597 enddo
    598 
    599 print *,"global mean angstroem component ", sum(angst*airephy)/sum(airephy)
    600 endif
    601 #endif
    602 #endif
    603 
    604 #ifdef INCAINFO
    605       PRINT *, 'OK.'
    606       DO it = 1, nbtr
    607       PRINT *, solsym(it), MINVAL(tr_seri(:,:,it)),
    608      $                     MAXVAL(tr_seri(:,:,it))
    609       END DO
    610 #endif
     525
     526
    611527      call VTe(VTinca)
    612528      call VTb(VTphysiq)
    613 #else
    614 
    615 c Abder
    616 ctestmaf      if(nqmax.gt.2) aerosol(3)=.true.
    617 
    618        do i=1,nlon
    619           pftsol1(i) = ftsol(i,1)
    620           pftsol2(i) = ftsol(i,2)
    621           pftsol3(i) = ftsol(i,3)
    622           pftsol4(i) = ftsol(i,4)
    623 
    624           ppsrf1(i) = pctsrf(i,1)
    625           ppsrf2(i) = pctsrf(i,2)
    626           ppsrf3(i) = pctsrf(i,3)
    627           ppsrf4(i) = pctsrf(i,4)
    628 
    629       enddo
    630 c Abder
    631529#endif
     530      END IF ! config_inca
    632531c======================================================================
    633532c   Calcul de l'effet de la convection
     
    643542c      print*,'Pas de temps dans phytrac : ',pdtphys
    644543      DO it=1, nqmax
    645 #ifdef INCA
    646       IF ( conv_flg(it) == 0 ) CYCLE
    647 #endif
     544
     545      IF ( config_inca/='none' .AND. conv_flg(it) == 0 ) CYCLE
     546
    648547      if (iflag_con.lt.2) then
    649548       d_tr_cv=0.
     
    663562       ENDDO
    664563       ENDDO
    665 #ifdef INCA
    666       CALL minmaxqfi(tr_seri(1,1,it),0.,1.e33,'convection it = '
    667      .                              //solsym(it))
    668 #else
    669       CALL minmaxqfi(tr_seri(1,1,it),0.,1.e33,'convection it = '//itn)
    670 #endif
     564
     565       IF (config_inca == 'none') THEN
     566        CALL minmaxqfi(tr_seri(1,1,it),0.,1.e33,'convection it = '//itn)
     567       ELSE
     568        CALL minmaxqfi(tr_seri(1,1,it),0.,1.e33,'convection it = '
     569     .         //solsym(it))
     570       END IF   
     571     
    671572      ENDDO
    672 c      print*,'apres nflxtr'
    673573
    674574      endif ! convection
     
    757657C maf modif pour tenir compte du cas rnpb + traceur
    758658      DO it=1, nqmax
    759 #ifdef INCA
    760       IF ( pbl_flg(it) == 0 ) CYCLE
    761 #endif
     659
     660      IF ( config_inca/='none' .AND. pbl_flg(it) == 0 ) CYCLE
     661
    762662c     print *,'it',it,clsol(it)
    763663      if (clsol(it)) then  ! couche limite avec quantite dans le sol calculee
  • LMDZ4/trunk/libf/phylmd/write_histrac.h

    r776 r959  
    22! $Header$
    33!
    4 #ifndef INCA
     4
     5      IF (config_inca == 'none') THEN
    56      ndex = 0
    67      ndex2d = 0
     
    101102       endif
    102103
    103 #endif
     104       END IF
    104105
    105106
Note: See TracChangeset for help on using the changeset viewer.