RunningDYNAMICO

De LMDZPedia
Aller à : navigation, rechercher

Running DYNAMICO

DYNAMICO can produce a rather large amount of output. It is therefore recommended to prepare a separate directory for each numerical experiment on a filesystem of adequate capacity. In this directory, copy the executable icosa_gcm.exe. You will find it in DYNAMICO/bin/, where DYNAMICO is the main directory containing the source code.

You will also need configuration files that define resolution, initial condition, etc. Sample files can be found in subdirectories of [source:codes/icosagcm/trunk/param_sets DYNAMICO/param_sets]. Copy the *.def files from the desired sub-directory. There is typically run.def and earth_const.def . run.def is the main configuration file and includes earth_const.def

Currently DYNAMICO generates its own grid. It can run idealized test cases which define their own initial conditions. In that case no other input files are needed beyond *.def and, if using XIOS, *.xml files controlling XIOS behavior. It may also restart from a previous run, reading from a restart file.


IMPORTANT

Make sure you set

ulimit -s unlimited

before running DYNAMICO in order to avoid stack overflows (segmentation faults) due to large automatic arrays. With OpenMP:

export OMP_STACK_SIZE=100M

or a larger value if necessary.

Running DYNAMICO as a primitive equation solver

By default DYNAMICO solves the traditional, shallow-atmosphere, hydrostatic equations. An example is provided in param_sets/dcmip2012/run41.def. This example runs a dry baroclinic instability test case (Jablonowski & Williamson, 2006). Sample configuration files for the climate-like Held and Suarez (1994) benchmark can be found in param_sets/climate/Held_Suarez

Horizontal resolution

Horizontal resolution is controlled by the parameter nbp defined in run.def. The total number of hexagonal cells is about 10 x nbp x nbp, corresponding to subdividing each main triangle of the icosahedron in nbp x nbp sub-triangles (there are about twice as many triangles as there are hexagons). Notice that, everything else being equal, the time step (dt) should be inversely proportional to nbp for numerical stability.

Parallel computing with DYNAMICO

DYNAMICO can run in parallel by dividing the icosahedral mesh into tiles. There are at least 10 tiles corresponding to the 20 faces of the icosahedron joined in pairs to form rhombi. These 10 rhombi are further subdivided in nsplit_i x nsplit_j tiles. nsplit_i and nsplit_j are defined in run.def . nsplit_X needs not divide nbp exactly.

To run DYNAMICO on a parallel machine, you must first compile it with OpenMPI and/or MPI. Then use mpirun or the equivalent command to run it. There must be less MPIxOpenMP processes than the 10 x nsplit_i x nsplit_j tiles. There can be more tiles than processes, in which case each process will take care of several tiles.