access_build_oasis3 - ACCESS-NRI/accessdev-Trac-archive GitHub Wiki
Usage
To compile components load the module and add to LDLIBS
-lpsmile.MPI1 -lmpp_io
See the Oasis documentation for how to run.
Install
Source repository at svn://memphis.cerfacs.fr/home/oasis/PRISMSVN/trunk/oasis3
Install path ~saw562/apps/oasis3
Install instructions:
#!/bin/bash
DEST=~saw562/apps/oasis3
# Depends on netcdf and mpi versions
module load openmpi/1.6.3
module load netcdf/3.6.3
svn checkout svn://memphis.cerfacs.fr/home/oasis/PRISMSVN/trunk/oasis3
cd oasis3
REV=$(svn info | sed -n 's/Revision: //p')
# Add local definitions for the makefiles
cat > util/make_dir/make.inc << EOF
ARCHDIR=\$(COUPLE)/build
CHAN=MPI1
FFLAGS=-g -O3 -xHost -8e3262e565652ac69b4b02b09b064c4f88b8c8e2 -i4 -fpp \$(CPPDEF)
F90FLAGS=\$(FFLAGS)
f90FLAGS=\$(FFLAGS)
fFLAGS=\$(FFLAGS)
CCFLAGS=-g -O3 -xHost \$(CPPDEF)
FLIBS=-lnetcdff -lnetcdf
F90=mpif90
F=\$(F90)
f90=\$(F90)
f=\$(F90)
CC=mpicc
LD=\$(F90)
CPPDEF=-Duse_libMPI -Duse_netCDF -Duse_comm_\$(CHAN) -DDEBUG -D__VERBOSE -DTREAT_OVERLAY
# BINDIR : directory for executables
BINDIR = \${ARCHDIR}/bin
# LIBBUILD : contains a directory for each library
LIBBUILD = \${ARCHDIR}/build/lib
# INCPSMILE : includes all *o and *mod for each library
INCPSMILE = -I\${LIBBUILD}/psmile.${CHAN} -I\${LIBBUILD}/pio -I\${LIBBUILD}/mct
EOF
make -C util/make_dir -f TopMakefileOasis3 oasis3_psmile COUPLE=$PWD
# This creates the following files to be put in the install path:
# build/bin/oasis3.MPI1.x: Oasis coupler
# build/lib/libpsmile.MPI1.a,libmpp_io.a: Interface library to be linked with components
# build/build/lib/psmile.MPI1/*.mod: Module files for compiling components
# Copy to version folder
mkdir $DEST/$REV/{bin,lib,include}
cp build/bin/oasis3.MPI1.x $DEST/$REV/bin
cp build/lib/{libpsmile.MPI1.a,libmpp_io.a} $DEST/$REV/lib
cp build/build/lib/psmile.MPI1/*.mod $DEST/$REV/include
The module file then needs to be updated, it should check to make sure MPI and NetCDF are the correct versions. Update the .version file if neccessary
#%Module
set help "Oasis3 coupler for climate models"
set prefix "~saw562/apps/oasis3/3548"
conflict "oasis3"
# May add different dependancy versions in the future
prereq openmpi/1.4.3
setenv OASIS3_MPI "openmpi-1.4.3"
prereq netcdf/3.6.3
setenv OASIS3_NETCDF "netcdf-3.6.3"
source "~saw562/modules/common"