Skip to content
Snippets Groups Projects
Commit d1c3ada0 authored by Guillaume Samson's avatar Guillaume Samson :snowman2:
Browse files

Merge branch '87-activate-abl-with-orca2_ice_pisces-config-in-sette' into 'main'

Resolve "activate ABL with ORCA2_ICE_PISCES config in SETTE"

Closes #87

See merge request nemo/nemo!135
parents 8e6d4868 f856e667
No related branches found
No related tags found
No related merge requests found
# compiler options for BELENOS/TARANIS (using INTEL compiler + Intel MPI)
#
# --------------------------------
# INTEL_IMPI (NEMO 4.0 + XIOS-2.5)
# --------------------------------
# module use /home/ext/mr/smer/samsong/modules
# module load intel/2018.5.274 intelmpi/2018.5.274 phdf5/1.8.18 netcdf_par/4.7.1_V2 xios/2.5/rev1903
#
# ----------------------------------
# INTEL_IMPI (NEMO 4.2 + XIOS-TRUNK)
# ----------------------------------
# module use /home/ext/mr/smer/samsong/modules
# module load gcc/9.2.0 intel/2018.5.274 intelmpi/2018.5.274 phdf5/1.8.18 netcdf_par/4.7.1_V2 xios/trunk/rev2134
#
#
# 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 -I${NETCDF_INC}
%NCDF_LIB -L${NETCDF_LIB} -lnetcdff -lnetcdf -L${PHDF5_LIB_DIR} -lhdf5_hl -lhdf5
%XIOS_INC -I${XIOS_INC}
%XIOS_LIB -L${XIOS_LIB} -lxios -lstdc++
%OASIS_INC -I${OASIS_DIR}/include
%OASIS_LIB -L${OASIS_DIR}/lib -lpsmile.MPI1 -lmct -lmpeu -lscrip
%CPP cpp
%FC mpiifort -c -cpp
%FCFLAGS -march=core-avx2 -i4 -r8 -g -O0 -debug all -traceback -fp-model strict -ftrapuv -check all,noarg_temp_created -fpe-all0 -ftz -init=arrays,snan,huge
%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
arch-X64_BELENOS_INTEL_IMPI_DEBUG.fcm
\ No newline at end of file
......@@ -12,11 +12,11 @@
#SBATCH --time=01:00:00
##SBATCH --time=00:15:00
#SBATCH -A smer
##SBATCH -A cmems
##SBATCH -A smer
#SBATCH -A cmems
#SBATCH --qos=normal
##SBATCH --qos=coper
##SBATCH --qos=normal
#SBATCH --qos=coper
# Test specific settings. Do not hand edit these lines; the fcm_job.sh script will set these
......@@ -42,8 +42,7 @@
# modules to load
module purge
module use /home/ext/mr/smer/samsong/modules
module load gcc/9.2.0 intel/2018.5.274 intelmpi/2018.5.274 phdf5/1.8.18 netcdf_par/4.7.1_V2 xios/trunk/rev2320-impi
#module load xios-2.5_rev1903
module load gcc/9.2.0 intel/2018.5.274 intelmpi/2018.5.274 phdf5/1.8.18 netcdf_par/4.7.1_V2 xios/3.0/r2399_intel-impi
export XIO_HOME=${XIOS_DIR}
# Don't remove neither change the following line
......@@ -76,61 +75,6 @@ export XIO_HOME=${XIOS_DIR}
echo Running on host `hostname`
echo Time is `date`
echo Directory is `pwd`
#
# Run the parallel MPI executable
#
# Comm/Fabric
# -----------
export DAPL_ACK_RETRY=7
export DAPL_ACK_TIMER=20
export DAPL_IB_SL=0
export DAPL_UCM_CQ_SIZE=8192
export DAPL_UCM_DREQ_RETRY=4
export DAPL_UCM_QP_SIZE=8192
export DAPL_UCM_REP_TIME=8000
export DAPL_UCM_RTU_TIME=8000
export DAPL_UCM_WAIT_TIME=10000
export I_MPI_CHECK_DAPL_PROVIDER_COMPATIBILITY=0
export I_MPI_CHECK_DAPL_PROVIDER_MISMATCH=none
export I_MPI_DAPL_RDMA_MIXED=enable
export I_MPI_DAPL_SCALABLE_PROGRESS=1
export I_MPI_DAPL_TRANSLATION_CACHE=1
export I_MPI_DAPL_UD_DIRECT_COPY_THRESHOLD=65536
export I_MPI_DAPL_UD=on
export I_MPI_FABRICS=shm:dapl
export I_MPI_DAPL_PROVIDER=ofa-v2-mlx5_0-1u
export I_MPI_FALLBACK=disable
export I_MPI_FALLBACK_DEVICE=disable
export I_MPI_DYNAMIC_CONNECTION=1
export I_MPI_FAST_COLLECTIVES=1
export I_MPI_LARGE_SCALE_THRESHOLD=8192
# File system
# -----------
export I_MPI_EXTRA_FILESYSTEM_LIST=lustre
export I_MPI_EXTRA_FILESYSTEM=on
# Slurm
# -----
export I_MPI_HYDRA_BOOTSTRAP=slurm
export I_MPI_SLURM_EXT=0
# Force kill job
# --------------
export I_MPI_JOB_SIGNAL_PROPAGATION=on
export I_MPI_JOB_ABORT_SIGNAL=9
# Extra
# -----
export I_MPI_LIBRARY_KIND=release_mt
export EC_MPI_ATEXIT=0
export EC_PROFILE_HEAP=0
# Process placement (cyclic)
# --------------------------
export I_MPI_JOB_RESPECT_PROCESS_PLACEMENT=off
export I_MPI_PERHOST=1
# Process pinning
# ---------------
export I_MPI_PIN=enable
export I_MPI_PIN_PROCESSOR_LIST="allcores:map=scatter" # map=spread
if [ $XCORES -gt 0 ]; then
#
# Run MPMD case
......
ORCA2_ICE_v4.2.0.tar.gz ORCA2_ICE_v4.2.0
ORCA2_ABL_v4.2.0.tar.gz ORCA2_ABL_v4.2.0
......@@ -86,6 +86,7 @@ echo "requested by the command : "$cmd $cmdargs >> ./sette_con
echo "on branch : "$SETTE_THIS_BRANCH >> ./sette_config
printf "%-33s : %s\n" USING_TIMING $USING_TIMING >> ./sette_config
printf "%-33s : %s\n" USING_ICEBERGS $USING_ICEBERGS >> ./sette_config
printf "%-33s : %s\n" USING_ABL $USING_ABL >> ./sette_config
printf "%-33s : %s\n" USING_EXTRA_HALO $USING_EXTRA_HALO >> ./sette_config
printf "%-33s : %s\n" USING_TILING $USING_TILING >> ./sette_config
printf "%-33s : %s\n" USING_COLLECTIVES $USING_COLLECTIVES >> ./sette_config
......
......@@ -12,6 +12,7 @@ NO_REPORT=0
#
export USING_TIMING='yes' # Default: yes => set ln_timing=.true. ; use -T to disable
export USING_ICEBERGS='yes' # Default: yes => set ln_icebergs=.true. ; use -i to disable
export USING_ABL='no' # Default: no => set ln_abl=.false. ; use -a to set ln_abl=.true.
export USING_EXTRA_HALO='yes' # Default: yes => set nn_hls=2 ; use -e to set nn_hls=1
export USING_COLLECTIVES='yes' # Default: yes => set nn_comm=2 ; use -C to set nn_comm=1
export USING_NOGATHER='yes' # Default: yes => set ln_nnogather=.true.; use -N to set ln_nnogather=.false.
......@@ -64,7 +65,7 @@ fi
# Parse command-line arguments
if [ $# -gt 0 ]; then
while getopts n:x:v:g:cdrshTqQteiACFNXu option; do
while getopts n:x:v:g:cdrshTqQteiACFNXua option; do
case $option in
c) export SETTE_CLEAN_CONFIGS='yes'
export SETTE_SYNC_CONFIGS='yes'
......@@ -112,6 +113,9 @@ if [ $# -gt 0 ]; then
i) export USING_ICEBERGS='no'
echo "-i: ln_icebergs will be set to false"
echo "";;
a) export USING_ABL='yes'
echo "-a: ln_abl will be set to true"
echo "";;
C) export USING_COLLECTIVES='no'
echo "-C: nn_comm will be set to 1"
echo "";;
......@@ -142,6 +146,7 @@ if [ $# -gt 0 ]; then
echo '-t set ln_tile false in all tests that support it (default: true)'
echo '-e set nn_hls=1 (default: nn_hls=2)'
echo '-i set ln_icebergs false (default: true)'
echo '-a set ln_abl true (default: false)'
echo '-C set nn_comm=1 (default: nn_comm=2 ==> use MPI3 collective comms)'
echo '-N set ln_nnogather false for ORCA2 configurations (default: true)'
echo '-q to remove the key_qco key (default: added)'
......@@ -262,6 +267,7 @@ echo "requested by the command : "$cmd $cmdargs
echo "on branch : "$SETTE_THIS_BRANCH
printf "%-33s : %s\n" USING_TIMING $USING_TIMING
printf "%-33s : %s\n" USING_ICEBERGS $USING_ICEBERGS
printf "%-33s : %s\n" USING_ABL $USING_ABL
printf "%-33s : %s\n" USING_EXTRA_HALO $USING_EXTRA_HALO
printf "%-33s : %s\n" USING_TILING $USING_TILING
printf "%-33s : %s\n" USING_COLLECTIVES $USING_COLLECTIVES
......
......@@ -321,6 +321,20 @@ if [ ${config} == "ORCA2_ICE_PISCES" ] && [ ${DO_RESTART} == "1" ] ; then
set_namelist namelist_cfg ln_cdgw .false.
set_namelist namelist_cfg ln_sdw .true.
set_namelist namelist_cfg ln_stcor .true.
if [ ${USING_ABL} == "yes" ]; then
set_namelist namelist_cfg nn_date0 20130101
set_namelist namelist_cfg ln_blk .false.
set_namelist namelist_cfg ln_abl .true.
set_namelist namelist_cfg ln_tair_pot .true.
sed -i "/sn_wndi/s/u_10.15JUNE2009_fill/uwnd_ERAI_L25Z10_ORCA2_ana1d/; /sn_wndi/s/ 6./24./; /sn_wndi/s/U_10_MOD/uwnd/; \
/sn_wndi/s/true/false/; /sn_wndi/s/yearly/monthly/; /sn_wndi/s/weights_core2_orca2_bicub//" namelist_cfg
sed -i "/sn_wndj/s/v_10.15JUNE2009_fill/vwnd_ERAI_L25Z10_ORCA2_ana1d/; /sn_wndj/s/ 6./24./; /sn_wndj/s/V_10_MOD/vwnd/; \
/sn_wndj/s/true/false/; /sn_wndj/s/yearly/monthly/; /sn_wndj/s/weights_core2_orca2_bicub//" namelist_cfg
sed -i "/sn_tair/s/t_10.15JUNE2009_fill/tair_ERAI_L25Z10_ORCA2_ana1d/; /sn_tair/s/ 6./24./; /sn_tair/s/T_10_MOD/tair/; \
/sn_tair/s/true/false/; /sn_tair/s/yearly/monthly/; /sn_tair/s/weights_core2_orca2_bilin//" namelist_cfg
sed -i "/sn_humi/s/q_10.15JUNE2009_fill/humi_ERAI_L25Z10_ORCA2_ana1d/; /sn_humi/s/ 6./24./; /sn_humi/s/Q_10_MOD/humi/; \
/sn_humi/s/true/false/; /sn_humi/s/yearly/monthly/; /sn_humi/s/weights_core2_orca2_bilin//" namelist_cfg
fi
#
set_namelist_opt namelist_cfg ln_icebergs ${USING_ICEBERGS} .true. .false.
set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
......@@ -356,6 +370,7 @@ if [ ${config} == "ORCA2_ICE_PISCES" ] && [ ${DO_RESTART} == "1" ] ; then
set_namelist namelist_cfg nn_itend ${ITEND}
set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
set_namelist namelist_cfg ln_rstart .true.
set_namelist namelist_cfg ln_rstart_abl .true.
set_namelist namelist_cfg nn_rstctl 2
set_namelist namelist_cfg jpni 4
set_namelist namelist_cfg jpnj 8
......@@ -366,6 +381,20 @@ if [ ${config} == "ORCA2_ICE_PISCES" ] && [ ${DO_RESTART} == "1" ] ; then
set_namelist namelist_cfg ln_cdgw .false.
set_namelist namelist_cfg ln_sdw .true.
set_namelist namelist_cfg ln_stcor .true.
if [ ${USING_ABL} == "yes" ]; then
set_namelist namelist_cfg nn_date0 20130101
set_namelist namelist_cfg ln_blk .false.
set_namelist namelist_cfg ln_abl .true.
set_namelist namelist_cfg ln_tair_pot .true.
sed -i "/sn_wndi/s/u_10.15JUNE2009_fill/uwnd_ERAI_L25Z10_ORCA2_ana1d/; /sn_wndi/s/ 6./24./; /sn_wndi/s/U_10_MOD/uwnd/; \
/sn_wndi/s/true/false/; /sn_wndi/s/yearly/monthly/; /sn_wndi/s/weights_core2_orca2_bicub//" namelist_cfg
sed -i "/sn_wndj/s/v_10.15JUNE2009_fill/vwnd_ERAI_L25Z10_ORCA2_ana1d/; /sn_wndj/s/ 6./24./; /sn_wndj/s/V_10_MOD/vwnd/; \
/sn_wndj/s/true/false/; /sn_wndj/s/yearly/monthly/; /sn_wndj/s/weights_core2_orca2_bicub//" namelist_cfg
sed -i "/sn_tair/s/t_10.15JUNE2009_fill/tair_ERAI_L25Z10_ORCA2_ana1d/; /sn_tair/s/ 6./24./; /sn_tair/s/T_10_MOD/tair/; \
/sn_tair/s/true/false/; /sn_tair/s/yearly/monthly/; /sn_tair/s/weights_core2_orca2_bilin//" namelist_cfg
sed -i "/sn_humi/s/q_10.15JUNE2009_fill/humi_ERAI_L25Z10_ORCA2_ana1d/; /sn_humi/s/ 6./24./; /sn_humi/s/Q_10_MOD/humi/; \
/sn_humi/s/true/false/; /sn_humi/s/yearly/monthly/; /sn_humi/s/weights_core2_orca2_bilin//" namelist_cfg
fi
#
set_namelist_opt namelist_cfg ln_icebergs ${USING_ICEBERGS} .true. .false.
set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
......@@ -381,6 +410,7 @@ if [ ${config} == "ORCA2_ICE_PISCES" ] && [ ${DO_RESTART} == "1" ] ; then
set_namelist namelist_cfg cn_icbrst_in \"O2L3P_LONG_${ITRST}_restart_icb\"
set_namelist namelist_top_cfg cn_trcrst_in \"O2L3P_LONG_${ITRST}_restart_trc\"
set_namelist namelist_ice_cfg cn_icerst_in \"O2L3P_LONG_${ITRST}_restart_ice\"
set_namelist namelist_cfg cn_ablrst_in \"O2L3P_LONG_${ITRST}_restart_abl\"
set_namelist namelist_top_cfg ln_trcbc .false.
# put ln_ironsed, ln_hydrofe to false
# if not you need input files, and for tests is not necessary
......@@ -396,6 +426,9 @@ if [ ${config} == "ORCA2_ICE_PISCES" ] && [ ${DO_RESTART} == "1" ] ; then
ln -sf ../LONG/O2L3P_LONG_${ITRST}_restart_${L_NPROC}.nc .
ln -sf ../LONG/O2L3P_LONG_${ITRST}_restart_trc_${L_NPROC}.nc .
ln -sf ../LONG/O2L3P_LONG_${ITRST}_restart_ice_${L_NPROC}.nc .
if [ ${USING_ABL} == "yes" ]; then
ln -sf ../LONG/O2L3P_LONG_${ITRST}_restart_abl_${L_NPROC}.nc .
fi
if [ ${USING_ICEBERGS} == "yes" ]
then
ln -sf ../LONG/O2L3P_LONG_${ITRST}_restart_icb_${L_NPROC}.nc O2L3P_LONG_${ITRST}_restart_icb_${L_NPROC}.nc
......@@ -433,7 +466,20 @@ if [ ${config} == "ORCA2_ICE_PISCES" ] && [ ${DO_REPRO} == "1" ] ; then
set_namelist namelist_cfg ln_cdgw .false.
set_namelist namelist_cfg ln_sdw .true.
set_namelist namelist_cfg ln_stcor .true.
if [ ${USING_ABL} == "yes" ]; then
set_namelist namelist_cfg nn_date0 20130101
set_namelist namelist_cfg ln_blk .false.
set_namelist namelist_cfg ln_abl .true.
set_namelist namelist_cfg ln_tair_pot .true.
sed -i "/sn_wndi/s/u_10.15JUNE2009_fill/uwnd_ERAI_L25Z10_ORCA2_ana1d/; /sn_wndi/s/ 6./24./; /sn_wndi/s/U_10_MOD/uwnd/; \
/sn_wndi/s/true/false/; /sn_wndi/s/yearly/monthly/; /sn_wndi/s/weights_core2_orca2_bicub//" namelist_cfg
sed -i "/sn_wndj/s/v_10.15JUNE2009_fill/vwnd_ERAI_L25Z10_ORCA2_ana1d/; /sn_wndj/s/ 6./24./; /sn_wndj/s/V_10_MOD/vwnd/; \
/sn_wndj/s/true/false/; /sn_wndj/s/yearly/monthly/; /sn_wndj/s/weights_core2_orca2_bicub//" namelist_cfg
sed -i "/sn_tair/s/t_10.15JUNE2009_fill/tair_ERAI_L25Z10_ORCA2_ana1d/; /sn_tair/s/ 6./24./; /sn_tair/s/T_10_MOD/tair/; \
/sn_tair/s/true/false/; /sn_tair/s/yearly/monthly/; /sn_tair/s/weights_core2_orca2_bilin//" namelist_cfg
sed -i "/sn_humi/s/q_10.15JUNE2009_fill/humi_ERAI_L25Z10_ORCA2_ana1d/; /sn_humi/s/ 6./24./; /sn_humi/s/Q_10_MOD/humi/; \
/sn_humi/s/true/false/; /sn_humi/s/yearly/monthly/; /sn_humi/s/weights_core2_orca2_bilin//" namelist_cfg
fi
set_namelist_opt namelist_cfg ln_icebergs ${USING_ICEBERGS} .true. .false.
set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
......@@ -478,6 +524,20 @@ if [ ${config} == "ORCA2_ICE_PISCES" ] && [ ${DO_REPRO} == "1" ] ; then
set_namelist namelist_cfg ln_cdgw .false.
set_namelist namelist_cfg ln_sdw .true.
set_namelist namelist_cfg ln_stcor .true.
if [ ${USING_ABL} == "yes" ]; then
set_namelist namelist_cfg nn_date0 20130101
set_namelist namelist_cfg ln_blk .false.
set_namelist namelist_cfg ln_abl .true.
set_namelist namelist_cfg ln_tair_pot .true.
sed -i "/sn_wndi/s/u_10.15JUNE2009_fill/uwnd_ERAI_L25Z10_ORCA2_ana1d/; /sn_wndi/s/ 6./24./; /sn_wndi/s/U_10_MOD/uwnd/; \
/sn_wndi/s/true/false/; /sn_wndi/s/yearly/monthly/; /sn_wndi/s/weights_core2_orca2_bicub//" namelist_cfg
sed -i "/sn_wndj/s/v_10.15JUNE2009_fill/vwnd_ERAI_L25Z10_ORCA2_ana1d/; /sn_wndj/s/ 6./24./; /sn_wndj/s/V_10_MOD/vwnd/; \
/sn_wndj/s/true/false/; /sn_wndj/s/yearly/monthly/; /sn_wndj/s/weights_core2_orca2_bicub//" namelist_cfg
sed -i "/sn_tair/s/t_10.15JUNE2009_fill/tair_ERAI_L25Z10_ORCA2_ana1d/; /sn_tair/s/ 6./24./; /sn_tair/s/T_10_MOD/tair/; \
/sn_tair/s/true/false/; /sn_tair/s/yearly/monthly/; /sn_tair/s/weights_core2_orca2_bilin//" namelist_cfg
sed -i "/sn_humi/s/q_10.15JUNE2009_fill/humi_ERAI_L25Z10_ORCA2_ana1d/; /sn_humi/s/ 6./24./; /sn_humi/s/Q_10_MOD/humi/; \
/sn_humi/s/true/false/; /sn_humi/s/yearly/monthly/; /sn_humi/s/weights_core2_orca2_bilin//" namelist_cfg
fi
set_namelist_opt namelist_cfg ln_icebergs ${USING_ICEBERGS} .true. .false.
set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment