Compiling MOM6
Revision as of 23: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:
Contents
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 .
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