From 539f390bf59365ba5e3abbe19162ca2dfa0cc30e Mon Sep 17 00:00:00 2001 From: Guillaume S <gsamson@mercator-ocean.fr> Date: Wed, 15 Jun 2022 15:30:11 +0200 Subject: [PATCH] add Mercator arch fcm files for ECMWF AA HPC --- arch/MERCATOR/arch-X64_AA_GCC_OMPI.fcm | 63 ++++++++++++++++++++++++ arch/MERCATOR/arch-X64_AA_INTEL_IMPI.fcm | 61 +++++++++++++++++++++++ arch/MERCATOR/arch-X64_AA_INTEL_XMPI.fcm | 61 +++++++++++++++++++++++ 3 files changed, 185 insertions(+) create mode 100644 arch/MERCATOR/arch-X64_AA_GCC_OMPI.fcm create mode 100644 arch/MERCATOR/arch-X64_AA_INTEL_IMPI.fcm create mode 100644 arch/MERCATOR/arch-X64_AA_INTEL_XMPI.fcm diff --git a/arch/MERCATOR/arch-X64_AA_GCC_OMPI.fcm b/arch/MERCATOR/arch-X64_AA_GCC_OMPI.fcm new file mode 100644 index 000000000..02eebfa64 --- /dev/null +++ b/arch/MERCATOR/arch-X64_AA_GCC_OMPI.fcm @@ -0,0 +1,63 @@ +# compiler options for AA (using GCC compiler & OpenMPI) +# +# module use /home/ar0s/modules +# prgenv/gnu gcc/11.2.0 openmpi/4.1.1.1 hdf5-parallel/1.10.6 netcdf4-parallel/4.7.4 xios/trunk/rev2320-impi +# +# +# NCDF_INC netcdf4 include file +# NCDF_LIB netcdf4 library +# XIOS_INC xios include file (taken into accound only if key_xios is activated) +# XIOS_LIB xios library (taken into accound only if key_xios is activated) +# OASIS_INC oasis include file (taken into accound only if key_oasis3 is activated) +# OASIS_LIB oasis library (taken into accound only if key_oasis3 is activated) +# +# FC Fortran compiler command +# FCFLAGS Fortran compiler flags +# FFLAGS Fortran 77 compiler flags +# LD linker +# LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries +# FPPFLAGS pre-processing flags +# AR assembler +# ARFLAGS assembler flags +# MK make +# USER_INC complete list of include files +# USER_LIB complete list of libraries to pass to the linker +# CC C compiler used to compile conv for AGRIF +# CFLAGS compiler flags used with CC +# +# Note that: +# - unix variables "$..." are accpeted and will be evaluated before calling fcm. +# - fcm variables are starting with a % (and not a $) +# +#--------------------------------------------------------------------------------------------- +#--------------------------------------------------------------------------------------------- +# All NETCDF and HDF paths are empty as they are automatically defined through environment +# variables by the load of modules +#--------------------------------------------------------------------------------------------- +#--------------------------------------------------------------------------------------------- +# +# +%NCDF_INC ${NETCDF4_INCLUDE} +#%NCDF_LIB ${NETCDF4_LIB} ${HDF5_LIB} +%NCDF_LIB ${NETCDF4_LIB} -L/usr/local/apps/hdf5-parallel/1.10.6/GNU/8.4/OMPI/4.1/lib -Wl,-rpath,/usr/local/apps/hdf5-parallel/1.10.6/GNU/8.4/OMPI/4.1/lib -lhdf5hl_fortran -lhdf5_hl_cpp -lhdf5_hl -lhdf5_fortran -lhdf5_cpp -lhdf5 -lm -lhdf5_hl -lhdf5 +%XIOS_INC -I${XIOS_INC} +%XIOS_LIB -L${XIOS_LIB} -lxios +%OASIS_INC -I${OASIS_DIR}/build/lib/mct -I${OASIS_DIR}/build/lib/psmile.MPI1 +%OASIS_LIB -L${OASIS_DIR}/lib -lpsmile.MPI1 -lmct -lmpeu -lscrip + +%CPP cpp -Dkey_nosignedzero +%FC mpif90 -c -cpp +#%FCFLAGS -fdefault-real-8 -O2 -ftree-vectorize -funroll-all-loops -ffree-line-length-none -Wno-missing-include-dirs +%FCFLAGS -fdefault-real-8 -O3 -ffree-line-length-none -Wno-missing-include-dirs -fallow-argument-mismatch +%FFLAGS %FCFLAGS +%LD mpif90 +%LDFLAGS -lstdc++ +%FPPFLAGS -P -traditional +%AR ar +%ARFLAGS rs +%MK gmake +%USER_INC %XIOS_INC %OASIS_INC %NCDF_INC +%USER_LIB %XIOS_LIB %OASIS_LIB %NCDF_LIB + +%CC mpicc +%CFLAGS -O0 diff --git a/arch/MERCATOR/arch-X64_AA_INTEL_IMPI.fcm b/arch/MERCATOR/arch-X64_AA_INTEL_IMPI.fcm new file mode 100644 index 000000000..40a7450e4 --- /dev/null +++ b/arch/MERCATOR/arch-X64_AA_INTEL_IMPI.fcm @@ -0,0 +1,61 @@ +# compiler options for AA (using INTEL compiler & INTEL MPI) +# +# module use /home/ar0s/modules +# module load prgenv/intel intel/2021.4.0 intel-mpi/2021.4.0 hdf5-parallel/1.10.6 netcdf4-parallel/4.7.4 xios/trunk/rev2320-impi +# +# +# NCDF_INC netcdf4 include file +# NCDF_LIB netcdf4 library +# XIOS_INC xios include file (taken into accound only if key_xios is activated) +# XIOS_LIB xios library (taken into accound only if key_xios is activated) +# OASIS_INC oasis include file (taken into accound only if key_oasis3 is activated) +# OASIS_LIB oasis library (taken into accound only if key_oasis3 is activated) +# +# FC Fortran compiler command +# FCFLAGS Fortran compiler flags +# FFLAGS Fortran 77 compiler flags +# LD linker +# LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries +# FPPFLAGS pre-processing flags +# AR assembler +# ARFLAGS assembler flags +# MK make +# USER_INC complete list of include files +# USER_LIB complete list of libraries to pass to the linker +# CC C compiler used to compile conv for AGRIF +# CFLAGS compiler flags used with CC +# +# Note that: +# - unix variables "$..." are accpeted and will be evaluated before calling fcm. +# - fcm variables are starting with a % (and not a $) +# +#--------------------------------------------------------------------------------------------- +#--------------------------------------------------------------------------------------------- +# All NETCDF and HDF paths are empty as they are automatically defined through environment +# variables by the load of modules +#--------------------------------------------------------------------------------------------- +#--------------------------------------------------------------------------------------------- +# +# +%NCDF_INC ${NETCDF4_INCLUDE} +%NCDF_LIB ${NETCDF4_LIB} ${HDF5_LIB} +%XIOS_INC -I${XIOS_INC} +%XIOS_LIB -L${XIOS_LIB} -lxios -lstdc++ +%OASIS_INC -I${OASIS_DIR}/build/lib/mct -I${OASIS_DIR}/build/lib/psmile.MPI1 +%OASIS_LIB -L${OASIS_DIR}/lib -lpsmile.MPI1 -lmct -lmpeu -lscrip + +%CPP cpp +%FC mpiifort -c -cpp +%FCFLAGS -march=core-avx2 -i4 -r8 -O3 -fp-model strict -fno-alias -align array64byte +%FFLAGS %FCFLAGS +%LD mpiifort +%LDFLAGS +%FPPFLAGS -P -traditional +%AR ar +%ARFLAGS rs +%MK gmake +%USER_INC %XIOS_INC %OASIS_INC %NCDF_INC +%USER_LIB %XIOS_LIB %OASIS_LIB %NCDF_LIB + +%CC mpiicc +%CFLAGS -O0 diff --git a/arch/MERCATOR/arch-X64_AA_INTEL_XMPI.fcm b/arch/MERCATOR/arch-X64_AA_INTEL_XMPI.fcm new file mode 100644 index 000000000..b83a27136 --- /dev/null +++ b/arch/MERCATOR/arch-X64_AA_INTEL_XMPI.fcm @@ -0,0 +1,61 @@ +# compiler options for AA (using INTEL compiler & HPCX OpenMPI) +# +# module use /home/ar0s/modules +# module load prgenv/intel intel/2021.4.0 hpcx-openmpi/2.9.0 hdf5-parallel/1.10.6 netcdf4-parallel/4.7.4 xios/trunk/rev2320-xmpi +# +# +# NCDF_INC netcdf4 include file +# NCDF_LIB netcdf4 library +# XIOS_INC xios include file (taken into accound only if key_xios is activated) +# XIOS_LIB xios library (taken into accound only if key_xios is activated) +# OASIS_INC oasis include file (taken into accound only if key_oasis3 is activated) +# OASIS_LIB oasis library (taken into accound only if key_oasis3 is activated) +# +# FC Fortran compiler command +# FCFLAGS Fortran compiler flags +# FFLAGS Fortran 77 compiler flags +# LD linker +# LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries +# FPPFLAGS pre-processing flags +# AR assembler +# ARFLAGS assembler flags +# MK make +# USER_INC complete list of include files +# USER_LIB complete list of libraries to pass to the linker +# CC C compiler used to compile conv for AGRIF +# CFLAGS compiler flags used with CC +# +# Note that: +# - unix variables "$..." are accpeted and will be evaluated before calling fcm. +# - fcm variables are starting with a % (and not a $) +# +#--------------------------------------------------------------------------------------------- +#--------------------------------------------------------------------------------------------- +# All NETCDF and HDF paths are empty as they are automatically defined through environment +# variables by the load of modules +#--------------------------------------------------------------------------------------------- +#--------------------------------------------------------------------------------------------- +# +# +%NCDF_INC ${NETCDF4_INCLUDE} +%NCDF_LIB ${NETCDF4_LIB} ${HDF5_LIB} +%XIOS_INC -I${XIOS_INC} +%XIOS_LIB -L${XIOS_LIB} -lxios -lstdc++ +%OASIS_INC -I${OASIS_DIR}/build/lib/mct -I${OASIS_DIR}/build/lib/psmile.MPI1 +%OASIS_LIB -L${OASIS_DIR}/lib -lpsmile.MPI1 -lmct -lmpeu -lscrip + +%CPP cpp +%FC mpifort -c -cpp +%FCFLAGS -march=core-avx2 -i4 -r8 -O3 -fp-model strict -fno-alias -align array64byte +%FFLAGS %FCFLAGS +%LD mpifort +%LDFLAGS +%FPPFLAGS -P -traditional +%AR ar +%ARFLAGS rs +%MK gmake +%USER_INC %XIOS_INC %OASIS_INC %NCDF_INC +%USER_LIB %XIOS_LIB %OASIS_LIB %NCDF_LIB + +%CC mpicc +%CFLAGS -O0 -- GitLab