Ignore:
Timestamp:
Apr 24, 2020, 6:55:59 PM (5 years ago)
Author:
mvals
Message:

Mars GCM:
dyn3dpar: Implementation in the parallel version of the dynamics of the dynamical transport of the isotopes using the same scheme as the one
implemented by Camille Risi in the Earth GCM (see LMDZ6/libf/dyn3dmem, and Risi et al. 2009: genealogy of the tracers+transport of the isotopic
ratio). This is added to prepare the future implementation of the HDO cycle in the GCM. These changes had been already added in the sequential part.
dyn3d: corrections to prevent from dividing by zero in the case of the use of the isotopes scheme.
traceur.def.isotopes: example of how to write the traceur.def if you want to use the new dynamics with the genealogy of the isotopes: air is the
father of all, H2O is the father of HDO.
MV

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.COMMON/libf/dyn3d_common/infotrac.F90

    r1971 r2296  
    109109 
    110110    INTEGER :: nqtrue  ! number of tracers read from tracer.def, without higer order of moment
    111     INTEGER :: iq, new_iq, iiq, jq, ierr, ierr2, ierr3
     111    INTEGER :: iq, new_iq, iiq, jq, ierr, ierr1, ierr2, ierr3, ierr4 !MVals: add ierr1 et ierr4 for the isotope case
    112112    INTEGER :: ifils,ipere,generation ! CRisi
    113113    LOGICAL :: continu,nouveau_traceurdef
     
    533533            ! try to be smart when reading traceur.def
    534534            read(90,'(80a)') line ! store the line from traceur.def
     535            ! if format is hadv, vadv, tnom_0, tnom_transp
     536            read(line,*,iostat=ierr1) hadv(iq),vadv(iq),tnom_0(iq),tnom_transp(iq)
     537            if (ierr1.ne.0) then
    535538            ! assume format is hadv,vadv,tnom_0
    536             read(line,*,iostat=ierr2) hadv(iq),vadv(iq),tnom_0(iq)
    537             if (ierr2.ne.0) then
     539             read(line,*,iostat=ierr2) hadv(iq),vadv(iq),tnom_0(iq)
     540             if (ierr2.ne.0) then
    538541              ! maybe format is tnom0,hadv,vadv
    539542              read(line,*,iostat=ierr3) tnom_0(iq),hadv(iq),vadv(iq)
    540               if (ierr3.ne.0) then
    541                 ! assume only tnom0 is provided (havd and vad default to 10)
    542                 read(line,*) tnom_0(iq)
     543               if (ierr3.ne.0) then
     544                !assuming values of hadv et vadv
    543545                hadv(iq)=10
    544546                vadv(iq)=10
     547                read(line,*, iostat=ierr4) tnom_0(iq), tnom_transp(iq)
     548                if (ierr4.ne.0) then
     549                ! assume only tnom0 is provided (havd and vad default to 10)
     550                  read(line,*) tnom_0(iq)
     551                  tnom_transp(iq)='air'
     552                endif
    545553              endif
     554             endif
     555            !tnom_transp(iq)='air' ! no isotopes... for now... !LRossi: we now add the possibility to use isotopes (HDO cycle)
    546556            endif ! of if(ierr2.ne.0)
    547             tnom_transp(iq)='air' ! no isotopes... for now...
    548557          END DO ! of DO iq=1,nqtrue
    549558          CLOSE(90) 
Note: See TracChangeset for help on using the changeset viewer.