Compilation ########### LMDZ-SACS is always compiled with a fixed grid (type and dimensions). To use different grids type/resolution LMDZ-SACS need to compiled once per grid type/resolution. How to compile ============== LMDZ-SACS can be compiled by running the *makfile* in its sources directory ``model_sources/dispersion/``. Here are some example commands to compile LMDZ-SACS for use on **GPU** with NVIDIA's compiler ``nvfortran``. * Regular lat-lon grid: .. code-block:: shell make -j FC=nvfortran TARGET=gpu GRID=regular NLON=96 NLAT=96 NLEV=39 clean make -j FC=nvfortran TARGET=gpu GRID=regular NLON=96 NLAT=96 NLEV=39 * Icosahedral grid dimensions: .. code-block:: shell make -j FC=nvfortran TARGET=gpu GRID=dynamico NBP=80 NLEV=79 clean make -j FC=nvfortran TARGET=gpu GRID=dynamico NBP=80 NLEV=79 Two identical executable files are produced by the *makefile*: * ``dispersion.e``: a file with simple name to use **immediatly** or **never**. * ``dispersion_[FC]_[TARGET]_[DIMS].e``: a file with complete name to use whenever. .. note:: While LMDZ-SACS can be compiled manually, it is recommended to les CIF compile it for you. By doing that you will be sure the LMDZ-SACS executable used by CIF is compiled with appropriate grid, dimensions and more importantly with appropriate **platform specific options**. All the arguments for ``make`` command ====================================== Compiler options ---------------- * ``FC`` fortran compiler, "gfortran" or "nvfortran". By default "nvfortran". * ``MODE`` compilation mode, "PROD" (production) or "DEBUG" (debugging). By default "PROD". * ``TARGET`` OpenACC target device, "gpu" or "multicore". By default "multicore". * ``CC`` Device compute capability option for ``nvfortran`` compiler. By default "cc70,cc80". * ``NETCDF_LIB`` directory containing the NetCDF library. * ``NETCDF_INC`` directory containing the NetCDF include. Grid options ------------ * ``GRID`` grid type, "regular" (Regular lat-lon) or "dynamico" (icosahedral). By default "regular". * ``NLEV`` vertical dimension. By default 79. * Regular lat-lon grid dimensions: - ``NLON`` longitude dimension. By default 144. - ``NLAT`` longitude dimension. By default 143. * Icosahedral grid dimensions: - ``NBP`` nbp number. By default 80.