====== Delft3D Installation and Simulation on LENGAU ======
Delft3D is Open Source Software and facilitates the hydrodynamic (Delft3D-FLOW module), morphodynamic (Delft3D-MOR module), waves (Delft3D-WAVE module), water quality (Delft3D-WAQ module including the DELWAQ kernel) and particle (Delft3D-PART module) modelling. The source code can be downloaded here: [[https://oss.deltares.nl/web/delft3d]].
2018 Intel MPI compilation on CentOS-7
Using Tmux inside an interactive session,
====set script====
#!/bin/bash
module purge
module load chpc/parallel_studio_xe/18.0.2/2018.2.046
source /apps/compilers/intel/parallel_studio_xe_2018_update2/compilers_and_libraries/linux/mpi/bin64/mpivars.sh
module load chpc/BIOMODULES
module add curl/7.50.0
export DelftDIR=/home/apps/chpc/earth/Delft3d
export DIR=$DelftDIR/LIBRARIES
export I_MPI_SHM="off"
export CC=icc
export CXX=icc
export FC=ifort
export FCFLAGS="-m64 -I$DIR/netcdf/include -I$DIR/grib2/include"
export F77=ifort
export FFLAGS=$FCFLAGS
export CFLAGS=$FCFLAGS
export MPICC=/apps/compilers/intel/parallel_studio_xe_2018_update2/compilers_and_libraries/linux/mpi/intel64/bin/mpiicc
export MPIF90=/apps/compilers/intel/parallel_studio_xe_2018_update2/compilers_and_libraries/linux/mpi/intel64/bin/mpiifort
export MPIF77=/apps/compilers/intel/parallel_studio_xe_2018_update2/compilers_and_libraries/linux/mpi/intel64/bin/mpiifort
export LDFLAGS="-L$DIR/hdf5-1.10.6/lib"
export CPPFLAGS="-I$DIR/hdf5-1.10.6/include"
export NCDIR="$DIR/netcdf-c-4.6.1"
export LD_LIBRARY_PATH=${NCDIR}/lib:${LD_LIBRARY_PATH}
export CPPFLAGS="-I${NCDIR}/include"
export LDFLAGS="-L${NCDIR}/lib"
export NETCDF_CFLAGS="-I${DIR}/netcdf-c-4.6.1/include -I${DIR}/netcdf-c-4.6.1/include"
export NETCDF_LIBS="-L${DIR}/netcdf-c-4.6.1/lib -lnetcdf"
CFLAGS='-O2 ' CXXFLAGS='-O2 ' AM_FFLAGS='-lifcoremt ' FFLAGS='-O1 ' AM_FCFLAGS='-lifcoremt ' FCFLAGS='-O1 ' AM_LDFLAGS='-lifcoremt '
ulimit -s unlimited
====LIBRARIES====
====hdf5====
wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.6/src/hdf5-1.10.6.tar.bz2
# tar -xf hdf5-1.10.6.tar.bz2
# cd hdf5-1.10.6
# ./configure --prefix=/home/apps/chpc/earth/Delft3d/LIBRARIES/hdf5-1.10.6 --enable-shared
# make
# make check
# make install
# cd ..
====netcdf-c====
wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.6.1.tar.gz -O netcdf-c-4.6.1.tar.gz
tar -xf netcdf-c-4.6.1.tar.gz
cd netcdf-c-4.6.1
./configure --prefix=/home/apps/chpc/earth/Delft3d/LIBRARIES/netcdf-c-4.6.1 --disable-dap-remote-tests
make
make check
make install
cd ..
====netcdf-fortran====
wget https://github.com/Unidata/netcdf-fortran/archive/refs/tags/v4.5.0.tar.gz -O netcdf-fortran-4.5.0.tar.gz
tar -xf netcdf-fortran-4.5.0.tar.gz
cd netcdf-fortran-4.5.0
./configure --prefix=/home/apps/chpc/earth/Delft3d/LIBRARIES/netcdf-fortran-4.5.0
make
make check
make install
cd ..
======Install Delft3D======
With all the necessary dependencies installed, we can now download, compile and install Delft3D. Note that you must have a Deltares SVN server account to download the source code. If you need to register, see the "Steps needed to use the Delft3D source code" section of the Delft3D compilation guide. In the compilation instructions below, replace and with the SVN login details that Deltares sent you. The commands below will install tag 68819, the recommended tag for Delft3D-FM. This time the binaries are placed /home/apps/chpc/earth/Delft3D/bin directory.
svn checkout --username --password https://svn.oss.deltares.nl/repos/delft3d/tags/delft3dfm/68819/ delft3dfm-68819
cp delft3dfm-68819/src/third_party_open/swan/src/*.[fF]* delft3dfm-68819/src/third_party_open/swan/swan_mpi
cp delft3dfm-68819/src/third_party_open/swan/src/*.[fF]* delft3dfm-68819/src/third_party_open/swan/swan_omp
cd delft3dfm-68819/src
./autogen.sh --verbose
./configure --prefix=/home/apps/chpc/earth/Delft3d/delft3d
# make ds-install
# make ds-install -C engines_gpl/dflowfm
# cd ..
======Test Delft3D======
To test a structured mesh example, edit the run.sh file appropriately and issue the following commands:
pushd examples/01_standard
./run.sh
popd
To test a flexible mesh example, issue the following:
pushd examples/12_dflowfm/test_data/e02_f14_c040_westerscheldt
./run.sh
popd