ICOSA LMDZ directory layout and contents

From Planets
Revision as of 21:10, 2 August 2024 by Emillour (talk | contribs)

Jump to: navigation, search

This page describes the directory structure of the ICOSA_LMDZ directory which contains the interface between the DYNAMICO dynamical core and the LMDZ.* physics packages

The ICOSA_LMDZ directory

Once downloaded from the svn server, the ICOSA_LMDZ directory contents should be:

arch     build  compile_ada      make_icosa_lmdz  xml
bld.cfg  clean  compile_occigen  src

Where the noteworthy elements are:

  • The make_icosa_lmdz script, which is the master script to use to compile all components (DYNAMICO, physics package, the interface between the two and the IOIPSL and XIOS libraries).
  • Example scripts compile_ada and compile_occigen which are wrappers to the make_icosa_lmdz script with a set of given options. The general idea here is that a user would likewise write his own wrapper script.
  • The arch directory which contains architecture files used by the make_icosa_lmdz script
  • The src directory which contains the source code for the interface
  • The xml directory which contains an example of the iodef.xml file to use, along with related instructions to combining it with other xml file gathered from DYNAMICO and physics packages

The src subdirectory

This directory contains the source code for the interface, along with subdirectories related to each of the physics packages (currently Generic, Mars and Venus). More general code, i.e. which apply to all the physics packages, such as plugins for the vertical discretization or dissipation factors are located at this level. In practice that directory currently contains:

distrib_icosa_lmdz.f90  phymars   vert_prof_dissip_icosa_lmdz.f90
disvert_icosa_lmdz.f90  phystd    wrapper.f90
icosa_lmdz.f90          phyvenus

where

  • icosa_lmdz.f90 is the main program
  • distrib_icosa_lmdz.f90 and wrapper.f90 are quite technical routines handling the parallelism and correspondances between physics and dynamics grids
  • disvert_icosa_lmdz.f90 is the plugin (inherited from LMDZ.COMMON and follows the vertical coordinate and associated discretization choices made there)
  • vert_prof_dissip_icosa_lmdz.f90 is the plugin (inherited from LMDZ.COMMON) to set the multiplicative coefficient along the vertical for dissipation