Changeset 3724 for trunk/LMDZ.GENERIC


Ignore:
Timestamp:
Apr 14, 2025, 4:42:01 PM (2 months ago)
Author:
mmaurice
Message:

Generic PCM

Add radioactive tracers in order to compare tracers mixing between 3D and 1D.

MM

Location:
trunk/LMDZ.GENERIC
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/libf/phystd/initracer.F90

    r3653 r3724  
    129129       IF (.NOT. allocated(constants_metallicity_coeff)) allocate(constants_metallicity_coeff(nq))
    130130       IF (.NOT. allocated(constants_RCPV_generic)) allocate(constants_RCPV_generic(nq))
     131       IF (.NOT.ALLOCATED(half_life))         ALLOCATE(half_life(nqtot))
     132       IF (.NOT.ALLOCATED(top_prod))         ALLOCATE(top_prod(nqtot))
     133       IF (.NOT.ALLOCATED(bot_prod))         ALLOCATE(bot_prod(nqtot))
    131134
    132135       !! initialization
     
    141144       is_recomb_qset(:) = 0
    142145       is_recomb_qotf(:) = 0
     146       half_life(:)      = 0.
     147       top_prod(:)       = 0.
     148       bot_prod(:)       = 0.
    143149       
    144150       ! Added by JVO 2017 : these arrays are handled later
     
    716722            write(*,*)'Parameter value (default) : '// &
    717723              'is_rgcs = ',is_rgcs(iq)
    718           endif
     724          end if
     725             ! option top_prod
     726              if (index(tracline,'top_prod=') .ne. 0) then
     727                  read(tracline(index(tracline,'top_prod=') &
     728                  +len('top_prod='):),*) top_prod(iq)
     729                  write(*,*) ' Parameter value (traceur.def) : top_prod=', &
     730                  top_prod(iq)
     731              else
     732                  write(*,*) ' Parameter value (default)     : top_prod=',  &
     733                  top_prod(iq)
     734              end if
     735              ! option bot_prod
     736              if (index(tracline,'bot_prod=') .ne. 0) then
     737                  read(tracline(index(tracline,'bot_prod=') &
     738                  +len('bot_prod='):),*) bot_prod(iq)
     739                  write(*,*) ' Parameter value (traceur.def) : bot_prod=', &
     740                  bot_prod(iq)
     741              else
     742                  write(*,*) ' Parameter value (default)     : bot_prod=',  &
     743                  bot_prod(iq)
     744              end if
    719745      end subroutine get_tracdat
    720746
  • trunk/LMDZ.GENERIC/libf/phystd/physiq_mod.F90

    r3717 r3724  
    3737                          igcm_h2o_ice, igcm_h2o_vap, igcm_dustbin, &
    3838                          igcm_co2_ice, nesp, is_chim, is_condensable,constants_epsi_generic
     39                        !  igcm_co2_ice, nesp, is_chim, is_condensable,constants_epsi_generic, &
     40                        !  half_life, top_prod, bot_prod
    3941      use time_phylmdz_mod, only: ecritphy, iphysiq, nday
    4042      use phyetat0_mod, only: phyetat0,tab_cntrl_mod
     
    364366      REAL,allocatable,save :: zdqchim(:,:,:) ! Calchim_asis routine
    365367      REAL,allocatable,save :: zdqschim(:,:)  ! Calchim_asis routine
     368      REAL zdqradio(ngrid,nlayer,nq)   ! Radioactive decay
    366369!$OMP THREADPRIVATE(zdqchim,zdqschim)
    367370      real zdqvolc(ngrid,nlayer,nq) ! injection by volcanoes (kg/kg_of_air/s)
     
    20722075         qsurf_hist(:,:) = qsurf(:,:)
    20732076
     2077  ! -----------------------------
     2078  !   VI.7. Radioactive Tracers
     2079  ! -----------------------------
     2080         
     2081         call radioactive_tracers(ngrid,nlayer,nq,ptimestep,pq,zdqradio)
     2082         pdq(1:ngrid,1:nlayer,1:nq) = pdq(1:ngrid,1:nlayer,1:nq) + zdqradio(1:ngrid,1:nlayer,1:nq)
     2083
    20742084      endif! end of if 'tracer'
    20752085
  • trunk/LMDZ.GENERIC/libf/phystd/tracer_h.F90

    r3299 r3724  
    5555!$OMP THREADPRIVATE(constants_Pref,constants_epsi_generic)
    5656!$OMP THREADPRIVATE(constants_RLVTT_generic,constants_metallicity_coeff,constants_RCPV_generic)
     57
     58       real, save, allocatable :: half_life(:) ! half-life (s) for radioactive tracers. If 0, tracer is not decaying.
     59       real, save, allocatable :: top_prod(:)  ! top production rate (1/s) for radioactive tracers. Non-dim, so use 1.
     60       real, save, allocatable :: bot_prod(:)  ! bottom production rate (1/s) for radioactive tracers. Non-dim, so use 1.
     61!$OMP THREADPRIVATE(half_life,top_prod,bot_prod)
     62
    5763
    5864!$OMP THREADPRIVATE(is_condensable,is_rgcs)   !also added by LT
Note: See TracChangeset for help on using the changeset viewer.