Compiling MOM6

Revision as of 22:32, 2 July 2018 by Aidanheerdegen (talk | contribs) (Imported from Wikispaces)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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
[[code format="bash"]]
==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 ../../../

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