source: trunk/LMDZ.VENUS/libf/phyvenus/infotrac_phy.F90 @ 1661

Last change on this file since 1661 was 1621, checked in by emillour, 8 years ago

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 size: 1.1 KB
Line 
1
2! $Id: $
3
4MODULE infotrac_phy
5
6! Infotrac for physics; contains the same information as infotrac for
7! the dynamics
8  IMPLICIT NONE
9
10! iflag_trac: ==1 if running with tracers
11  INTEGER,SAVE :: iflag_trac
12!$OMP THREADPRIVATE(iflag_trac)
13
14! nqtot : total number of tracers
15  INTEGER,SAVE :: nqtot
16!$OMP THREADPRIVATE(nqtot)
17
18! tracer names
19  CHARACTER(len=20),ALLOCATABLE,DIMENSION(:),SAVE :: tname
20  CHARACTER(len=23),ALLOCATABLE,DIMENSION(:),SAVE :: ttext ! tracer long name for diagnostics
21!$OMP THREADPRIVATE(tname,ttext)
22
23CONTAINS
24
25  SUBROUTINE init_infotrac_phy(iflag_trac_,nqtot_,tname_,ttext_)
26  ! Initialize module variables
27  IMPLICIT NONE
28 
29  INTEGER,INTENT(IN) :: iflag_trac_ ! ==1 if running with tracers
30  INTEGER,INTENT(IN) :: nqtot_ ! total number of tracers
31  CHARACTER(LEN=*),INTENT(IN) :: tname_(nqtot_)
32  CHARACTER(LEN=*),INTENT(IN) :: ttext_(nqtot_)
33 
34  INTEGER :: iq
35 
36  iflag_trac=iflag_trac_
37  nqtot=nqtot_
38 
39  ALLOCATE(tname(nqtot))
40  ALLOCATE(ttext(nqtot))
41  DO iq=1,nqtot
42    tname(iq)=tname_(iq)
43    ttext(iq)=ttext_(iq)
44  ENDDO
45 
46  END SUBROUTINE init_infotrac_phy
47
48END MODULE infotrac_phy
Note: See TracBrowser for help on using the repository browser.