Ignore:
Timestamp:
Oct 25, 2016, 9:23:21 AM (8 years ago)
Author:
emillour
Message:

Further work on full dynamics/physics separation.

LMDZ.COMMON:

  • added phy_common/vertical_layers_mod.F90 to store information on vertical grid. This is where routines in the physics should get the information.
  • The contents of vertical_layers_mod intialized via dynphy_lonlat/inigeomphy_mod.F90.

LMDZ.MARS:

  • physics now completely decoupled from dynamics; the physics package may now be compiled as a library (-libphy option of makelmdz_fcm).
  • created an "ini_tracer_mod" routine in module "tracer_mod" for a cleaner initialization of the later.
  • removed some purely dynamics-related outputs (etot0, zoom parameters, etc.) from diagfi.nc and stats.nc outputs as these informations are not available in the physics.

LMDZ.GENERIC:

  • physics now completely decoupled from dynamics; the physics package may now be compiled as a library (-libphy option of makelmdz_fcm).
  • added nqtot to tracer_h.F90.
  • removed some purely dynamics-related outputs (etot0, zoom parameters, etc.) from diagfi.nc and stats.nc outputs as these informations are not available in the physics.

LMDZ.VENUS:

  • physics now completely decoupled from dynamics; the physics package may now be compiled as a library (-libphy option of makelmdz_fcm).
  • added infotrac_phy.F90 to store information on tracers in the physics. Initialized via iniphysiq.
  • added cpdet_phy_mod.F90 to store t2tpot etc. functions to be used in the physics. Initialized via iniphysiq. IMPORTANT: there are some hard-coded constants! These should match what is in cpdet_mod.F90 in the dynamics.
  • got rid of references to moyzon_mod module within the physics. The required variables (tmoy, plevmoy) are passed to the physics as arguments to physiq.

LMDZ.TITAN:

  • added infotrac_phy.F90 to store information on tracers in the physics. Initialized via iniphysiq.
  • added cpdet_phy_mod.F90 to store t2tpot etc. functions to be used in the physics.
  • Extra work required to completely decouple physics and dynamics: moyzon_mod should be cleaned up and information passed from dynamics to physics as as arguments. Likewise moyzon_ch and moyzon_mu should not be queried from logic_mod (which is in the dynamics).

EM

File:
1 edited

Legend:

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

    r1617 r1621  
    8888!-----------------------------------------------------------------------
    8989
     90  contains
     91 
     92    subroutine ini_tracer_mod(nq,tname)
     93      implicit none
     94     
     95      integer,intent(in) :: nq ! number of tracers
     96      character(len=*),intent(in) :: tname(nq) ! tracer names
     97     
     98      integer :: iq, count
     99      character(len=20) :: txt ! to store some text
     100     
     101      ! set dimension and tracer names
     102      nqmx=nq
     103#ifndef MESOSCALE
     104      allocate(noms(nq))
     105      do iq=1,nq
     106        noms(iq)=tname(iq)
     107        write(*,*) "tracer_mod names : ", trim(noms(iq))
     108      enddo
     109     
     110      ! check if tracers have 'old' names
     111      count=0
     112      do iq=1,nq
     113        txt=" "
     114        write(txt,'(a1,i2.2)') 'q',iq
     115        if (txt.eq.tname(iq)) then
     116          count=count+1
     117        endif
     118      enddo ! of do iq=1,nq
     119     
     120      if (count.eq.nq) then
     121        write(*,*) "ini_tracer_mod: tracers seem to follow old naming ", &
     122                   "convention (q01,q02,...)"
     123        write(*,*) "you should run newstart to rename them"
     124        stop
     125      endif
     126#endif
     127           
     128      ! allocate module arrays:
     129      allocate(mmol(nq))
     130      allocate(radius(nq))
     131      allocate(rho_q(nq))
     132      allocate(alpha_lift(nq))
     133      allocate(alpha_devil(nq))
     134      allocate(igcm_dustbin(nq))
     135      allocate(nqdust(nq))
     136     
     137    end subroutine ini_tracer_mod
     138
    90139end module tracer_mod
Note: See TracChangeset for help on using the changeset viewer.