Ignore:
Timestamp:
Jun 10, 2016, 4:52:39 PM (8 years ago)
Author:
acozic
Message:

Now h2o tracer will be read in traceur.def even for inca configuration

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/dyn3d_common/infotrac.F90

    r2391 r2566  
    8686    INTEGER, ALLOCATABLE, DIMENSION(:) :: hadv  ! index of horizontal trasport schema
    8787    INTEGER, ALLOCATABLE, DIMENSION(:) :: vadv  ! index of vertical trasport schema
     88
     89#ifdef INCA
     90    INTEGER, ALLOCATABLE, DIMENSION(:) :: hadv_inca  ! index of horizontal trasport schema
     91    INTEGER, ALLOCATABLE, DIMENSION(:) :: vadv_inca  ! index of vertical trasport schema
     92#endif
    8893
    8994    CHARACTER(len=15), ALLOCATABLE, DIMENSION(:) :: tnom_0  ! tracer short name
     
    226231!
    227232    ALLOCATE(tnom_0(nqtrue), hadv(nqtrue), vadv(nqtrue),tnom_transp(nqtrue))
     233
     234#ifdef INCA
     235    ALLOCATE(hadv_inca(nbtr), vadv_inca(nbtr))
     236#endif
    228237!
    229238!jyg<
     
    375384!>jyg
    376385! le module de chimie fournit les noms des traceurs
    377 ! et les schemas d'advection associes.
    378      
     386! et les schemas d'advection associes. excepte pour ceux lus
     387! dans traceur.def
     388       IF (ierr .eq. 0) then
     389          DO iq=1,nqo
     390
     391             write(*,*) 'infotrac 237: iq=',iq
     392             ! CRisi: ajout du nom du fluide transporteur
     393             ! mais rester retro compatible
     394             READ(90,'(I2,X,I2,X,A)',IOSTAT=IOstatus) hadv(iq),vadv(iq),tchaine
     395             write(lunout,*) 'iq,hadv(iq),vadv(iq)=',iq,hadv(iq),vadv(iq)
     396             write(lunout,*) 'tchaine=',trim(tchaine)
     397             write(*,*) 'infotrac 238: IOstatus=',IOstatus
     398             if (IOstatus.ne.0) then
     399                CALL abort_gcm('infotrac_init','Pb dans la lecture de traceur.def',1)
     400             endif
     401             ! Y-a-t-il 1 ou 2 noms de traceurs? -> On regarde s'il y a un
     402             ! espace ou pas au milieu de la chaine.
     403             continu=.true.
     404             nouveau_traceurdef=.false.
     405             iiq=1
     406             do while (continu)
     407                if (tchaine(iiq:iiq).eq.' ') then
     408                  nouveau_traceurdef=.true.
     409                  continu=.false.
     410                else if (iiq.lt.LEN_TRIM(tchaine)) then
     411                  iiq=iiq+1
     412                else
     413                  continu=.false.
     414                endif
     415             enddo
     416             write(*,*) 'iiq,nouveau_traceurdef=',iiq,nouveau_traceurdef
     417             if (nouveau_traceurdef) then
     418                write(lunout,*) 'C''est la nouvelle version de traceur.def'
     419                tnom_0(iq)=tchaine(1:iiq-1)
     420                tnom_transp(iq)=tchaine(iiq+1:15)
     421             else
     422                write(lunout,*) 'C''est l''ancienne version de traceur.def'
     423                write(lunout,*) 'On suppose que les traceurs sont tous d''air'
     424                tnom_0(iq)=tchaine
     425                tnom_transp(iq) = 'air'
     426             endif
     427             write(lunout,*) 'tnom_0(iq)=<',trim(tnom_0(iq)),'>'
     428             write(lunout,*) 'tnom_transp(iq)=<',trim(tnom_transp(iq)),'>'
     429
     430          END DO !DO iq=1,nqtrue
     431          CLOSE(90) 
     432       ELSE  !! if traceur.def doesn't exist
     433          tnom_0(1)='H2Ov'
     434          tnom_transp(1) = 'air'
     435          tnom_0(2)='H2Ol'
     436          tnom_transp(2) = 'air'
     437          hadv(1) = 10
     438          hadv(2) = 10
     439          vadv(1) = 10
     440          vadv(2) = 10
     441       ENDIF
     442 
    379443#ifdef INCA
    380444       CALL init_transport( &
    381             hadv, &
    382             vadv, &
     445            hadv_inca, &
     446            vadv_inca, &
    383447            conv_flg, &
    384448            pbl_flg,  &
    385449            solsym)
    386450#endif
    387        tnom_0(1)='H2Ov'
    388        tnom_transp(1) = 'air'
    389        tnom_0(2)='H2Ol'
    390        tnom_transp(2) = 'air'
    391        IF (nqo == 3) then
    392           tnom_0(3)='H2Oi'     !! jyg
    393           tnom_transp(3) = 'air'
    394        endif
     451
    395452
    396453!jyg<
    397454       DO iq = nqo+1, nqtrue
     455          hadv(iq) = hadv_inca(iq-nqo)
     456          vadv(iq) = vadv_inca(iq-nqo)
    398457          tnom_0(iq)=solsym(iq-nqo)
    399458          tnom_transp(iq) = 'air'
    400459       END DO
    401 !!       DO iq =3,nqtrue
    402 !!          tnom_0(iq)=solsym(iq-2)
    403 !!       END DO
    404 !!       nqo = 2
    405 !>jyg
    406460
    407461    END IF ! (type_trac == 'inca')
Note: See TracChangeset for help on using the changeset viewer.