Ignore:
Timestamp:
May 13, 2020, 5:14:02 PM (5 years ago)
Author:
mvals
Message:

Mars GCM:
Extent of the transport of the isotopic ratio implemented in the dynamics to all the Van Leer transport schemes used in the physics (for now it only
concerns the tracer HDO).

  • libf/dynphy_lonlat/phymars/: iniphysiq_mod.F90: transmission of the content of variables describing the isotopes defined in the dynamics (precisely by dyn3d_common/infotrac.F90,

which reads traceur.def) to the physics

  • libf/phymars/: phys_state_var_init_mod.F90, tracer_mod.F : initialisation of the variables describing the isotopes in the physics callsedim_mod.F: implementation of the transport of the isotopic ratio in the Van Leer scheme used for sedimentation (applies to hdo ice) co2condens_mod.F: implementation of the transport of the isotopic ratio in the Van Leer scheme used for condensation of CO2 (applies to hdo ice and

vapour)
MV

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/phymars/tracer_mod.F90

    r2321 r2322  
    9595      ! other tracers
    9696      integer,save :: igcm_ar_n2 ! for simulations using co2 +neutral gas
    97 
     97      ! MVals: isotopes
     98      integer, save                 :: nqperes ! numbers of tracers defined as "peres"
     99      integer, allocatable, save    :: nqfils(:) ! numbers of sons ("fils") of the considered tracer
     100      integer, allocatable, save    :: iqfils(:,:) ! indice of a son, ex: iqfils(nqfils(ipere),ipere)
     101      real, parameter               :: qperemin=1.e-16 ! threschold for the "pere" mixing ratio qpere to calculate Ratio=qfils/qpere
     102      real, parameter               :: masseqmin=1.e-16 ! threschold for the "pere" transporting masse
     103      !integer, allocatable, save    :: nqdesc(:) ! number of sons + all gran-sons over all generations: not useful for now in the martian case as there are no gran-sons
    98104
    99105!-----------------------------------------------------------------------
     
    101107  contains
    102108 
    103     subroutine ini_tracer_mod(nq,tname)
     109    subroutine ini_tracer_mod(nq,tname,dyn_nqdesc,dyn_iqfils,dyn_nqperes,dyn_nqfils)! MVals: variables isotopes
    104110      implicit none
    105111     
    106112      integer,intent(in) :: nq ! number of tracers
    107113      character(len=*),intent(in) :: tname(nq) ! tracer names
     114      !MVals: variables isotopes
     115      integer,intent(in) :: dyn_nqperes
     116      integer,intent(in) :: dyn_nqfils(nq)
     117      integer,intent(in) :: dyn_nqdesc(nq)
     118      integer,intent(in) :: dyn_iqfils(nq,nq)
    108119     
    109120      integer :: iq, count
     
    117128        write(*,*) "tracer_mod names : ", trim(noms(iq))
    118129      enddo
     130
     131      !MVals: isotopes variables initialisation
     132      do iq=1,nq
     133        if (dyn_nqfils(iq).ne.dyn_nqdesc(iq)) then
     134          write(*,*) ' for now all descendants must be sons: check the', &
     135                     '  relations between tracers in traceur.def !'
     136          call abort_physic("ini_tracer_mod","relatives pattern between tracers not accepted",1)
     137        endif
     138      enddo
     139      allocate(nqfils(nq))!,nqdesc(nq))   
     140      allocate(iqfils(nq,nq))
     141      nqperes=dyn_nqperes   
     142      nqfils(:)=dyn_nqfils(:)
     143      iqfils(:,:)=dyn_iqfils(:,:)
    119144     
    120145#ifndef MESOSCALE
Note: See TracChangeset for help on using the changeset viewer.