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,
#!/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
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 ..
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 ..
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 ..
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 <username> and <password> 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 <username> --password <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 ..
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