Ignore:
Timestamp:
Oct 25, 2016, 9:23:21 AM (9 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/dyn1d/testphys1d.F

    r1576 r1621  
    2121     &                            ecritphy, iphysiq
    2222      use dimradmars_mod, only: tauscaling,tauvis
    23       USE comvert_mod, ONLY: ap,bp,aps,bps,pa,preff,sig
     23      USE comvert_mod, ONLY: ap,bp,aps,bps,pa,preff,sig,
     24     &                       presnivs,pseudoalt,scaleheight
     25      USE vertical_layers_mod, ONLY: init_vertical_layers
    2426      USE logic_mod, ONLY: hybrid
    2527      use physics_distribution_mod, only: init_physics_distribution
     
    4951c=======================================================================
    5052
    51 #include "dimensions.h"
     53      include "dimensions.h"
    5254      integer, parameter :: ngrid = 1 !(2+(jjm-1)*iim - 1/jjm)
    5355      integer, parameter :: nlayer = llm
     
    5860!#include "comsoil.h"
    5961!#include "comdiurn.h"
    60 #include "callkeys.h"
     62      include "callkeys.h"
    6163!#include "comsaison.h"
    6264!#include "control.h"
    63 #include "netcdf.inc"
    64 #include "comg1d.h"
     65      include "netcdf.inc"
     66      include "comg1d.h"
    6567!#include "advtrac.h"
    6668
     
    494496     &                   (/0.,0.,0.,0./),(/0.,0.,0.,0./),
    495497     &                   cell_area)
     498! Ehouarn: init_vertial_layers called later (because disvert not called yet)
     499!      call init_vertical_layers(nlayer,preff,scaleheight,
     500!     &                      ap,bp,aps,bps,presnivs,pseudoalt)
    496501      call init_dimphy(1,nlayer) ! Initialize dimphy module
    497       call phys_state_var_init(1,llm,nq,
     502      call phys_state_var_init(1,llm,nq,tname,
    498503     .          day0,time,daysec,dtphys,rad,g,r,cpp)
    499504      call ini_fillgeom(1,latitude,longitude,(/1.0/))
     
    611616
    612617      CALL  disvert
     618      ! now that disvert has been called, initialize module vertical_layers_mod
     619      call init_vertical_layers(nlayer,preff,scaleheight,
     620     &                      ap,bp,aps,bps,presnivs,pseudoalt)
    613621
    614622      DO ilevel=1,nlevel
Note: See TracChangeset for help on using the changeset viewer.