Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

remove 32bit FMS libraries, allows mixed precision compilation, add C6 environment #46

Merged
merged 3 commits into from
Oct 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions Build/mk_scripts/mk_make
Original file line number Diff line number Diff line change
Expand Up @@ -89,19 +89,23 @@ done
module list

$FC --version

if [ ${CONFIG} = 'shield' ] || [ ${CONFIG} = 'shieldfull' ] ; then
if [ ${CONFIG} = 'shield' ] ; then
NCEPLIBS="./libfv3.a"
NCEPLIBS+=" ${NCEP_DIR}/libFMS/${COMPILER}/${bit}/libFMS.a"
NCEPLIBS+=" ./libgfs.a"
NCEPLIBS+=" -L${NCEP_DIR}/nceplibs/${COMPILER}/ -lbacio -lsp_d -lw3emc_d -lw3nco_d"
elif [ ${CONFIG} = 'shieldfull' ] ; then
NCEPLIBS="./libfv3.a"
NCEPLIBS+=" ${NCEP_DIR}/libFMS/${COMPILER}/64bit/libFMS.a"
NCEPLIBS+=" ./libgfs.a"
NCEPLIBS+=" -L${NCEP_DIR}/nceplibs/${COMPILER}/ -lbacio -lsp_d -lw3emc_d -lw3nco_d"
elif [ ${CONFIG} = 'solo' ] ; then
NCEPLIBS=${NCEP_DIR}/libFMS/${COMPILER}/${bit}/libFMS.a
elif [ ${CONFIG} = 'shiemom' ] ; then
NCEPLIBS="./libfv3.a"
NCEPLIBS+=" ${NCEP_DIR}/sis2/libsis2.a"
NCEPLIBS+=" ${NCEP_DIR}/mom6/libmom6.a"
NCEPLIBS+=" ${NCEP_DIR}/libFMS/${COMPILER}/${bit}/libFMS.a"
NCEPLIBS+=" ${NCEP_DIR}/libFMS/${COMPILER}/64bit/libFMS.a"
NCEPLIBS+=" ./libgfs.a"
NCEPLIBS+=" -L${NCEP_DIR}/nceplibs/${COMPILER}/ -lbacio -lsp_d -lw3emc_d -lw3nco_d"
fi
Expand All @@ -112,7 +116,9 @@ fi

(cd exec/${CONFIG}_${HYDRO}.${comp}.${bit}.${COMPILER} ; make -j 8 OPENMP=Y NETCDF=3 ${COMP} AVX=${AVX} ${BIT} PIC=${PIC} NCEPLIBS="${NCEPLIBS}" -f Makefile_fv3)

if [ ${CONFIG} = 'shield' ] || [ ${CONFIG} = 'shieldfull' ] || [ ${CONFIG} = 'shiemom' ] ; then
if [ ${CONFIG} = 'shieldfull' ] || [ ${CONFIG} = 'shiemom' ] ; then
(cd exec/${CONFIG}_${HYDRO}.${comp}.${bit}.${COMPILER} ; make -j 8 OPENMP=Y NETCDF=3 ${COMP} AVX=${AVX} PIC=${PIC} NCEPLIBS="${NCEPLIBS}" -f Makefile_driver)
elif [ ${CONFIG} = 'shield' ] ; then
(cd exec/${CONFIG}_${HYDRO}.${comp}.${bit}.${COMPILER} ; make -j 8 OPENMP=Y NETCDF=3 ${COMP} AVX=${AVX} ${BIT} PIC=${PIC} NCEPLIBS="${NCEPLIBS}" -f Makefile_driver)
fi
exit 0
26 changes: 17 additions & 9 deletions Build/mk_scripts/mk_makefile
Original file line number Diff line number Diff line change
Expand Up @@ -93,25 +93,33 @@ if [ ${CONFIG} = 'shield' ] || [ ${CONFIG} = 'shieldfull' ] ; then
mkmf -m Makefile_gfs -a ${SHiELD_SRC} -t "${BUILD_ROOT}/${TEMPLATE}" -o "-cpp" -c "${GFS_cppDefs}" \
-p libgfs.a ${BUILD_ROOT}/Build/exec/${CONFIG}_${HYDRO}.${COMP}.${BIT}.${COMPILER}/pathnames_gfs

mkmf -m Makefile_fv3 -a ${SHiELD_SRC} -t "${BUILD_ROOT}/${TEMPLATE}" \
-o "-I${SHiELD_SRC}/FMS/include -I${NCEP_DIR}/libFMS/${COMPILER}/${BIT}" -c "${FV3_cppDefs}" \
-p libfv3.a ${BUILD_ROOT}/Build/exec/${CONFIG}_${HYDRO}.${COMP}.${BIT}.${COMPILER}/pathnames_fv3

mkmf -m Makefile_driver -a ${SHiELD_SRC} -t "${BUILD_ROOT}/${TEMPLATE}" -c "${FV3_cppDefs}" \
-p test.x -o "-I${SHiELD_SRC}/FMS/include -I${NCEP_DIR}/libFMS/${COMPILER}/${BIT}" \
${BUILD_ROOT}/Build/exec/${CONFIG}_${HYDRO}.${COMP}.${BIT}.${COMPILER}/pathnames_driver
if [ ${CONFIG} = 'shield' ] ; then
mkmf -m Makefile_fv3 -a ${SHiELD_SRC} -t "${BUILD_ROOT}/${TEMPLATE}" \
-o "-I${SHiELD_SRC}/FMS/include -I${NCEP_DIR}/libFMS/${COMPILER}/${BIT}" -c "${FV3_cppDefs}" \
-p libfv3.a ${BUILD_ROOT}/Build/exec/${CONFIG}_${HYDRO}.${COMP}.${BIT}.${COMPILER}/pathnames_fv3
mkmf -m Makefile_driver -a ${SHiELD_SRC} -t "${BUILD_ROOT}/${TEMPLATE}" -c "${FV3_cppDefs}" \
-p test.x -o "-I${SHiELD_SRC}/FMS/include -I${NCEP_DIR}/libFMS/${COMPILER}/${BIT}" \
${BUILD_ROOT}/Build/exec/${CONFIG}_${HYDRO}.${COMP}.${BIT}.${COMPILER}/pathnames_driver
elif [ ${CONFIG} = 'shieldfull' ] ; then
mkmf -m Makefile_fv3 -a ${SHiELD_SRC} -t "${BUILD_ROOT}/${TEMPLATE}" \
-o "-I${SHiELD_SRC}/FMS/include -I${SHiELD_SRC}/GFDL_atmos_cubed_sphere/driver/SHiELDFULL/include -I${NCEP_DIR}/libFMS/${COMPILER}/64bit" -c "${FV3_cppDefs}" \
-p libfv3.a ${BUILD_ROOT}/Build/exec/${CONFIG}_${HYDRO}.${COMP}.${BIT}.${COMPILER}/pathnames_fv3
mkmf -m Makefile_driver -a ${SHiELD_SRC} -t "${BUILD_ROOT}/${TEMPLATE}" -c "${FV3_cppDefs}" \
-p test.x -o "-I${SHiELD_SRC}/FMS/include -I${NCEP_DIR}/libFMS/${COMPILER}/64bit" \
${BUILD_ROOT}/Build/exec/${CONFIG}_${HYDRO}.${COMP}.${BIT}.${COMPILER}/pathnames_driver
fi


elif [ ${CONFIG} = 'shiemom' ] ; then
mkmf -m Makefile_gfs -a ${SHiELD_SRC} -t "${BUILD_ROOT}/${TEMPLATE}" -o "-cpp" -c "${GFS_cppDefs}" \
-p libgfs.a ${BUILD_ROOT}/Build/exec/${CONFIG}_${HYDRO}.${COMP}.${BIT}.${COMPILER}/pathnames_gfs

mkmf -m Makefile_fv3 -a ${SHiELD_SRC} -t "${BUILD_ROOT}/${TEMPLATE}" \
-o "-I${SHiELD_SRC}/FMS/include -I${NCEP_DIR}/libFMS/${COMPILER}/${BIT}" -c "${FV3_cppDefs}" \
-o "-I${SHiELD_SRC}/FMS/include -I${SHiELD_SRC}/GFDL_atmos_cubed_sphere/driver/SHiELDFULL/include -I${NCEP_DIR}/libFMS/${COMPILER}/64bit" -c "${FV3_cppDefs}" \
-p libfv3.a ${BUILD_ROOT}/Build/exec/${CONFIG}_${HYDRO}.${COMP}.${BIT}.${COMPILER}/pathnames_fv3

mkmf -m Makefile_driver -a ${SHiELD_SRC} -t "${BUILD_ROOT}/${TEMPLATE}" -c "${FV3_cppDefs}" \
-p test.x -o "-I${SHiELD_SRC}/FMS/include -I${NCEP_DIR}/libFMS/${COMPILER}/${BIT} -I${NCEP_DIR}/mom6 -I${NCEP_DIR}/sis2" \
-p test.x -o "-I${SHiELD_SRC}/FMS/include -I${NCEP_DIR}/libFMS/${COMPILER}/64bit -I${NCEP_DIR}/mom6 -I${NCEP_DIR}/sis2" \
${BUILD_ROOT}/Build/exec/${CONFIG}_${HYDRO}.${COMP}.${BIT}.${COMPILER}/pathnames_driver

elif [ ${CONFIG} = 'solo' ] ; then
Expand Down
19 changes: 10 additions & 9 deletions Build/mk_scripts/mk_paths
Original file line number Diff line number Diff line change
Expand Up @@ -102,16 +102,16 @@ elif [ ${CONFIG} = 'shieldfull' ] ; then
SHiELD_physics/FV3GFS/ \
GFDL_atmos_cubed_sphere/tools/ \
GFDL_atmos_cubed_sphere/model/ \
GFDL_atmos_cubed_sphere/GFDL_tools/fv_diag_column.F90 \
SHiELD_physics/atmos_shared/ \
GFDL_atmos_cubed_sphere/driver/SHiELDFULL/atmosphere.F90 \
GFDL_atmos_cubed_sphere/GFDL_tools/fv_diag_column.F90

list_paths -o ${BUILD_ROOT}/Build/exec/${CONFIG}_${HYDRO}.${COMP}.${BIT}.${COMPILER}/pathnames_driver \
ocean_null/ \
ice_null/ \
ice_param/ \
land_null/

list_paths -o ${BUILD_ROOT}/Build/exec/${CONFIG}_${HYDRO}.${COMP}.${BIT}.${COMPILER}/pathnames_driver \
land_null/ \
atmos_drivers/SHiELDFULL/ \
SHiELD_physics/atmos_shared/ \
GFDL_atmos_cubed_sphere/driver/SHiELDFULL/atmosphere.F90 \
FMSCoupler/full/ \
FMSCoupler/shared/

Expand All @@ -128,12 +128,13 @@ elif [ ${CONFIG} = 'shiemom' ] ; then
SHiELD_physics/FV3GFS/ \
GFDL_atmos_cubed_sphere/tools/ \
GFDL_atmos_cubed_sphere/model/ \
GFDL_atmos_cubed_sphere/GFDL_tools/fv_diag_column.F90 \
land_null/
SHiELD_physics/atmos_shared/ \
GFDL_atmos_cubed_sphere/driver/SHiELDFULL/atmosphere.F90 \
GFDL_atmos_cubed_sphere/GFDL_tools/fv_diag_column.F90

list_paths -o ${BUILD_ROOT}/Build/exec/${CONFIG}_${HYDRO}.${COMP}.${BIT}.${COMPILER}/pathnames_driver \
land_null/
atmos_drivers/SHiELDFULL/ \
SHiELD_physics/atmos_shared/ \
GFDL_atmos_cubed_sphere/driver/SHiELDFULL/atmosphere.F90 \
FMSCoupler/full/ \
FMSCoupler/shared/
Expand Down
34 changes: 34 additions & 0 deletions site/environment.intel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,40 @@
hostname=`hostname`

case $hostname in
gaea6? | c6n* )
echo " gaea C6 environment "

. ${MODULESHOME}/init/sh
module unload PrgEnv-pgi PrgEnv-intel PrgEnv-gnu
module load PrgEnv-intel
module rm intel-classic
module rm intel-oneapi
module rm intel
module rm gcc
module load intel-classic/2023.2.0
module unload cray-libsci
module load cray-hdf5
module load cray-netcdf
module load craype-hugepages4M
#module load cmake/3.23.1
#module load libyaml/0.2.5

# Add -DHAVE_GETTID to the FMS cppDefs
export FMS_CPPDEFS=-DHAVE_GETTID

# make your compiler selections here
export FC=ftn
export CC=cc
export CXX=CC
export LD=ftn
export TEMPLATE=site/intel.mk
export LAUNCHER=srun

# highest level of AVX support
export AVX_LEVEL=-march=core-avx2
echo -e ' '
module list
;;
gaea5? | c5n* )
echo " gaea C5 environment "

Expand Down