#acl ClamsUserGroup:read,write,delete,revert All:read
= CLaMS Compilation =
* Requirements are a Fortran compiler and a NetCDF library with a Fortran interface and optionally an MPI library.
* The Intel compiler and the MPICH library are used by default in the ICE4 cluster.
* On JUWELS, the Intel compiler is used with the ParaStationMPI library.
* The use of gfortran is also possible, both on ICE4 cluster machines and on Juwels.
* For other computer systems or other compilers, adjustments may need to be made in the makefiles under '''''mkincl'''''.
For compilation of all CLaMS programs, go to the target directory and simply type:
{{{
make all
}}}
If you already have a pre-installed version, you must clean it up before the compilation:
{{{
make distclean
}}}
For compilation of a specific program ''progname'' in package ''package-name'':
{{{
cd target-directory
make libs
cd package-name
make progname
}}}
The source code is compiled with MPI by default.
The created executables can be run serially or in parallel.
Please make sure, that '''''mpif90''''' can be used or switch it off (see below).
On '''ICE-4 workstations''' with '''Ubuntu 24.04''' the Intel compiler '''ifx''' must be made available and the bin subdirectory of the installation directory of '''MPICH''' library must be added to your path:
{{{
source /opt/intel/oneapi/setvars.sh
PATH=/usr/nfs/software/icg1/local/mpich-4.3.1-ifx-2024.2.0/bin:$PATH
export PATH
}}}
If the '''gfortran''' compiler is used on '''ICE-4 workstations''' and '''MPI''' support is required the PATH must be set to:
{{{
PATH=/usr/nfs/software/icg1/local/mpich-4.3.1-gfortran-13.3.0/bin:$PATH
export PATH
}}}
Under '''Ubuntu 20.04 (icg1220)''' the Intel compiler ifort is automatically available, but the corresponding '''MPICH''' directory must be added to your path:
{{{
PATH=/usr/nfs/software/icg1/local/mpich-3.3.2-ifort-19.0.8/bin:$PATH
export PATH
}}}
For compilation and execution on the supercomputers '''JURECA/JUWELS''' see:
https://clams.icg.kfa-juelich.de/CLaMS/Jureca/CompileExecute
It is possible to compile without MPI, switch to gfortran compiler or use debug options with:
{{{
make [noMPI=true] [useComp=gfortran] [isDebug=true] [useSHM=true] all|libs|package-name
}}}
|| '''Option''' || '''Default''' || ||
|| '''''noMPI''''' ||''false'' || switch to ''true'' to compile without MPI ||
|| '''''useComp''''' || ''ifc'' (intel fortran compiler) || switch to ''gfortran'' to compile with gfortran compiler ||
|| '''''isDebug''''' || ''false'' || switch to ''true'' to use debug options for compiling ||
|| '''''useSHM''''' || ''false'' || switch to ''true'' to use MPI3 Shared Memory and Parallel IO <
> (only implemented for intel compiler on JUWELS) <
> (only used for meteorological data in '''traj''') ||