Compiling MOM6

Revision as of 22:31, 1 April 2019 by A.heerdegen (talk | contribs) (Fixed error in formatting from relocating from old site.)

There will be an easier method for compiling MOM6 on raijin in the future, in the mean time here are the instructions for building the ocean-only version:

Load appropriate models

 

module load intel-fc/17.0.1.132
module load intel-cc/17.0.1.132
module load openmpi/1.10.7
module load netcdf/4.3.3.1

Download source code

 

git clone --recursive https://github.com/NOAA-GFDL/MOM6-examples.git MOM6-examples

Copy mkmf template

 

cd MOM6-examples
cp /short/public/aph502/mom6/mkmf.template.nci .

Shared Libraries

Make build directory

 

mkdir -p build/shared/opt
cd build/shared/opt

Create file paths

 

cat > make_paths<<EOF rm -f path_names path_names.html ../../../src/mkmf/bin/list_paths ../../../src/FMS/ EOF chmod a+x make_paths ./make_paths </syntaxhighlight>

Create Makefile

[[code format="bash"]]
cat > make_make<<EOF
../../../src/mkmf/bin/mkmf -t ../../../mkmf.template.nci -p libfms.a -c "-Duse_libMPI -Duse_netCDF -DSPMD" path_names
EOF
chmod a+x make_make
./make_make

Compile

 

cat > make_shared<<EOF
make NETCDF=4 OPT=1 libfms.a -j
EOF
chmod a+x make_shared
./make_shared

cd ../../../

You have no compiled the FMS library, continue to the next section to compile the MOM6 executable.

MOM ocean_only

Make build directory

 

mkdir -p build/ocean_only/opt
cd build/ocean_only/opt

Create file paths

 

cat > make_paths<<EOF
rm -f path_names path_names.html
../../../src/mkmf/bin/list_paths ../../../src/MOM6/{config_src/dynamic,config_src/solo_driver,src/{*,*/*}}/
EOF
chmod a+x make_paths
./make_paths

Create Makefile

 

cat > make_make<<EOF
../../../src/mkmf/bin/mkmf -t ../../../mkmf.template.nci -o '-I../../shared/opt' -p 'MOM6 -L../../shared/opt -lfms' -c "-Duse_libMPI -Duse_netCDF -DSPMD" path_names
EOF
chmod a+x make_make
./make_make

Compile

 

cat > make_mom<<EOF
make NETCDF=4 OPT=1 MOM6 -j

EOF
chmod a+x make_mom
./make_mom