wiki:CompilingDynamico

Getting and compiling DYNAMICO

Getting DYNAMICO

DYNAMICO is licensed under the CeCILL open source license and should be considered beta-stage code. Selected releases are available for download :

Please let us know if you use DYNAMICO (dubos at lmd dot polytechnique dot fr).

The latest version is accessible through svn :

svn co http://forge.ipsl.jussieu.fr/dynamico/svn/codes/icosagcm/trunk

Registered IPSL forge users belonging to the DYNAMICO group can do :

svn co svn+ssh://mylogin@forge.ipsl.jussieu.fr/ipsl/forge/projets/dynamico/svn/codes/icosagcm/trunk DYNAMICO

'mylogin' should be your forge login. svn will create the DYNAMICO directory and download the source code there.

Compiling DYNAMICO

DYNAMICO is written in Fortran 90 with some legacy code in Fortran 77. The build process is based on FCM. DYNAMICO requires the NetCDF library, including the F90 modules. MPI is required for parallel execution but DYNAMICO can compile and run without MPI.

DYNAMICO depends on the NetCDF and BLAS libraries.

The compiling process is automated but some information is needed to guide it. This information is contained in text files in source:codes/icosagcm/trunk/arch . Sample files corresponding to a few machines (Ada at IDRIS, Curie at TGCC) are present. Assuming you compile on Ada :

cd DYNAMICO
./make_icosa -arch X64_ADA -parallel mpi -prod -job 8

will compile DYNAMICO. The make_icosa script accepts keyword-value pairs which drive its behaviour. The most important option is arch=ARCH (here ARCH=X64_ADA). It directs make_icosa to use the information contained in :

  • arch/arch-ARCH.env
  • arch/arch-ARCH.fcm
  • arch/arch-ARCH.path

The *.env file is a shell script that is executed by make_icosa. It sets up the environment for use by *.path. *.path defines paths to libraries and modules needed for compilation. *.fcm defines the commands used to compile, link, etc. as well as options to be passed to the compiler/linker .

The option "-job 8" is similar to "make -j 8" and compiles in parallel for speed. After a successful build the main executable is found in the bin/ directory.

Compiling with XIOS output

DYNAMICO can direct its output through XIOS, a parallel I/O library and server. See https://forge.ipsl.jussieu.fr/ioserver . To enable XIOS output :

  • get and compile XIOS in a separate directory
  • set the variables XIOS_INCDIR , XIOS_LIBDIR and XIOS_LIB to appropriate values in your arch.path
  • use the option "-with_xios" in your "make_icosa" command

Why use XIOS :

  • without XIOS, each output field is written to a separate NetCDF file. Post-processing is required to group several fields together.
  • with XIOS, several fields can be written to a few output files. This behavior is controlled by the input file xios.xml (required). See https://forge.ipsl.jussieu.fr/ioserver for the syntax of this XML file.
  • without XIOS, data to be written is communicated to the main MPI process, which writes to the NetCDF files while other MPI processes stay idle. This is not expected to scale to a large number of MPI processes.
  • XIOS provides asynchronous, parallel I/O in order to scale to large MPI process counts.
Last modified 7 years ago Last modified on 09/26/17 10:25:55

Attachments (2)