New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Developers/Validation/trunk_perfs – NEMO
wiki:Developers/Validation/trunk_perfs

Version 3 (modified by smasson, 4 years ago) (diff)

--

Get the code

# my login
me=smasson
# svn path to NEMO trunk
svnpath=svn+ssh://${me}@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/trunk
# get the revision number of the HEAD
rev=$( svn info $svnpath | grep "Last Changed Rev" | sed -e "s/.*: *//" )
# directory name given to the local trunk
dirnemo=trunk_test_perf_${rev}
# checkout the trunk into $dirnemo
svn co $svnpath
svn+ssh://smasson@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/trunk $dirnemo
#
cd $dirnemo
#

Change namelist_*ref

# change cfgs/SHARED/namelist_ref (no IO without XIOS, remove run.stat, meshmask, add timing)
sed -e "s/nn_stock *=.*/nn_stock = -1 /" \
    -e "s/nn_write *=.*/nn_write = -1 /" \
    -e "s/runstat *=.*/runstat = .false. /" \
    -e "s/ln_meshmask *=.*/ln_meshmask = .false. /" \
    -e "s/ln_timing *=.*/ln_timing = .true. /" \
    cfgs/SHARED/namelist_ref > tmp$$
mv tmp$$ cfgs/SHARED/namelist_ref

# change cfgs/SHARED/namelist_ice_ref (add an init file)
sed -e "s/nn_iceini_file *=.*/nn_iceini_file = 1 /" \
    cfgs/SHARED/namelist_ice_ref > tmp$$
mv tmp$$ cfgs/SHARED/namelist_ice_ref

# change cfgs/SHARED/namelist_pisces_ref (as in sette)
sed -e "s/ln_varpar *=.*/ln_varpar = .false. /" \
    -e "s/ln_pisdmp *=.*/ln_pisdmp = .false. /" \
    cfgs/SHARED/namelist_pisces_ref > tmp$$
mv tmp$$ cfgs/SHARED/namelist_pisces_ref

Change ORCA2_ICE_PISCES namelist_*cfg and file_def_nemo-*.xml

# change namelist_cfg (suppress icebergs!!)
ff=cfgs/ORCA2_ICE_PISCES/EXPREF/namelist_cfg
sed -e "s/ln_icebergs *=.*/ln_icebergs = .false. /" $ff > tmp$$
mv tmp$$ $ff

# change namelist_top_cfg (as in sette)
ff=cfgs/ORCA2_ICE_PISCES/EXPREF/namelist_top_cfg
sed -e "s/ln_trcdta *=.*/ln_trcdta = .false. /" $ff > tmp$$
mv tmp$$ $ff

# change namelist_pisces_cfg (as in sette)
ff=cfgs/ORCA2_ICE_PISCES/EXPREF/namelist_pisces_cfg
sed -e "s/ln_ironsed *=.*/ln_ironsed = .false. /" \
    -e "s/ln_ironice *=.*/ln_ironice = .false. /" \
    -e "s/ln_hydrofe *=.*/ln_hydrofe = .false. /" \
    $ff > tmp$$
mv tmp$$ $ff

# change file_def_nemo-oce.xml (suppress diag)
ff=cfgs/ORCA2_ICE_PISCES/EXPREF/file_def_nemo-oce.xml
sed -e '/file_group id="1m"/,/<\/file_group>/d' $ff > tmp$$
mv tmp$$ $ff

# change file_def_nemo-ice.xml (suppress diag)
ff=cfgs/ORCA2_ICE_PISCES/EXPREF/file_def_nemo-ice.xml
sed -e '/name_suffix="_SBC_scalar"/,/<\/file>/d' $ff > tmp$$
mv tmp$$ $ff

# change file_def_nemo-pisces.xml (suppress diag)
ff=cfgs/ORCA2_ICE_PISCES/EXPREF/file_def_nemo-pisces.xml
sed -e '/file_group id="1y"/,/<\/file_group>/d' $ff > tmp$$
mv tmp$$ $ff

Compile the configurations code

I propose to start with ORCA2, ORCA2_ICE, ORCA2_ICE_PISCES.
In each case, we do one run with XIOS attached (XIOSAT) an one run without XIOS (NOXIOS)

machine=... # for example X64_IRENE, X64_JEANZAY
# ORCA2_ICE_PISCES
./makenemo -m $machine -n ORCA2_ICE_PISCES_XIOSAT -r ORCA2_ICE_PISCES -j 8
./makenemo -m $machine -n ORCA2_ICE_PISCES_NOXIOS -r ORCA2_ICE_PISCES -j 8 del_key "key_iomput"
# ORCA2_ICE
./makenemo -m $machine -n ORCA2_ICE_XIOSAT -r ORCA2_ICE_PISCES -j 8 del_key "key_top"
./makenemo -m $machine -n ORCA2_ICE_NOXIOS -r ORCA2_ICE_PISCES -j 8 del_key "key_top key_iomput"
# ORCA2
./makenemo -m $machine -n ORCA2_XIOSAT -r ORCA2_ICE_PISCES -j 8 del_key "key_top key_si3"
./makenemo -m $machine -n ORCA2_NOXIOS -r ORCA2_ICE_PISCES -j 8 del_key "key_top key_si3 key_iomput"

Cleaning of 2 context_nemo.xml files

ff=cfgs/ORCA2_ICE_XIOSAT/EXP00/context_nemo.xml
sed -e '/pisces/d' $ff > tmp$$
mv tmp$$ $ff

ff=cfgs/ORCA2_XIOSAT/EXP00/context_nemo.xml
sed -e '/_pisces/d' -e '/_ice/d' $ff > tmp$$
mv tmp$$ $ff

link the input files files

# define path to ORCA2_ICE_v4.x directory. For example:
#dirdata=/ccc/scratch/cont005/ra0542/massons/input_nemo_v4.0/ORCA2_ICE_v4.x
#dirdata=/gpfsscratch/rech/fqx/reee217/input_nemo_v4.0/ORCA2_ICE_v4.x
dirdata=...

# add the new Ice_initialization file to this directory
mv Ice_initialization.nc $dirdata

# link the input files
for dd in cfgs/ORCA2_*/EXP00
do
    cd $dd
    ln -sf $dirdata/* .
    cd -
done

Run!

for dd in cfgs/ORCA2_*/EXP00
do
    cp jobaps.sh $dd/.   # get jobaps.sh from the attached files
    cd $dd
    qs jobaps.sh  # define as alias is not already done...
    cd -
done

Check the runs did 5840 time steps

for ff in cfgs/ORCA2_*/EXP00/time.step
do
    echo "$ff: $( cat $ff)"
done

Create aps reports

for dd in cfgs/ORCA2_*/EXP00
do
    cd $dd
    aps-report aps_result_$( date +%Y%m%d )
    cd -
done