intro story D-Flow FM


D-Flow Flexible Mesh

D-Flow Flexible Mesh (D-Flow FM) is the new software engine for hydrodynamical simulations on unstructured grids in 1D-2D-3D. Together with the familiar curvilinear meshes from Delft3D 4, the unstructured grid can consist of triangles, pentagons (etc.) and 1D channel networks, all in one single mesh. It combines proven technology from the hydrodynamic engines of Delft3D 4 and SOBEK 2 and adds flexible administration, resulting in:

  • Easier 1D-2D-3D model coupling, intuitive setup of boundary conditions and meteorological forcings (amongst others).
  • More flexible 2D gridding in delta regions, river junctions, harbours, intertidal flats and more.
  • High performance by smart use of multicore architectures, and grid computing clusters.
An overview of the current developments can be found here.
The D-Flow FM - team would be delighted if you would participate in discussions on the generation of meshes, the specification of boundary conditions, the running of computations, and all kinds of other relevant topics. Feel free to share your smart questions and/or brilliant solutions! 


We have launched a new website (still under construction so expect continuous improvements) and a new forum dedicated to Delft3D Flexible Mesh.

Please follow this link to the new forum: 

Post your questions, issues, suggestions, difficulties related to our Delft3D Flexible Mesh Suite on the new forum.





Sub groups
D-Flow Flexible Mesh
Cohesive sediments & muddy systems


Message Boards

Compiling problems: gfortran and the C_LOC function

Marcello Magaldi, modified 3 Months ago.

Compiling problems: gfortran and the C_LOC function

Youngling Posts: 7 Join Date: 6/5/13 Recent Posts
Hello everybody!
After many years I downloaded again d3d, specifically tag #59659, revision #65450. I know the process is painful as I had compiled previous versions in the past: all prerequisites are installed. 
I am now in an Ubuntu 16.04.6 LTS (xenial) 64bit machine which comes with GNU compilers (ver 5.4.0). I edited the script to point to the right directories of all prerequisistes and started building d3d with the -gnu and -64bit options. 
The logs/configure.log and logs/make.log files go thru without problems.
Unfortunately the bulding process stops for the logs/make_dflowfm.log file which terminates as below:

libtool: compile:  /opt/mpich/mpich_3_2_1_gcc5.4/bin/mpif90 -DHAVE_CONFIG_H -I. -I../../../../.. -I./../include -I./../../dflowfm_lib/include -I./../include -I../../../../../utils_lgpl/ec_module/packages/ec_module/src -I../../../../../utils_lgpl/io_netcdf/packages/io_netcdf/src -I../../../../../utils_lgpl/gridgeom/packages/gridgeom/src -I../../../../../utils_lgpl/deltares_common/packages/deltares_common/src -I../../../../../utils_lgpl/deltares_common/packages/deltares_common_mpi/src -I../../../../../utils_gpl/morphology/packages/morphology_data/src -I../../../../../utils_gpl/morphology/packages/morphology_io/src -I../../../../../utils_gpl/morphology/packages/morphology_kernel/src -I../../../../../utils_gpl/trachytopes/packages/trachytopes_io/src -I../../../../../utils_gpl/trachytopes/packages/trachytopes_kernel/src -I../../../../../utils_gpl/flow1d/packages/flow1d_core/src -I../../../../../utils_gpl/flow1d/packages/flow1d_io/src -I../../../../../third_party_open/kdtree2/src-f90 -I../../../../../third_party_open/libsigwatch -I../../../../../utils_lgpl/kdtree_wrapper/packages/kdtree_wrapper/src -DWITH_DELFTONLINE -DHAVE_DISPLAY=0 -I/opt/netcdf/netcdfC/netcdfC_4_6_1_gcc5.4/include -I/opt/netcdf/netcdfC/netcdfC_4_6_1_gcc5.4/include -I/opt/netcdf/netcdfF/netcdfF_4_4_4_gcc5.4/include -O2 -ffree-line-length-none -cpp -c ../../dflowfm_lib/src/unstruc_bmi.F90  -fPIC -o ../../dflowfm_lib/src/.libs/unstruc_bmi.o
../../dflowfm_lib/src/unstruc_bmi.F90:1567:19:          x = c_loc(valdambreak(1, item_index))
Error: Argument X at (1) to C_LOC shall have either the POINTER or the TARGET attribute
../../dflowfm_lib/src/unstruc_bmi.F90:1570:19:          x = c_loc(valdambreak(2, item_index))
Error: Argument X at (1) to C_LOC shall have either the POINTER or the TARGET attribute
Makefile:839: recipe for target '../../dflowfm_lib/src/unstruc_bmi.lo' failed
make[3]: *** [../../dflowfm_lib/src/unstruc_bmi.lo] Error 1
make[3]: Leaving directory '/home/magaldi/Delft3dOct19/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src'
Makefile:493: recipe for target 'install-recursive' failed
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory '/home/magaldi/Delft3dOct19/src/engines_gpl/dflowfm/packages/dflowfm_kernel'
Makefile:494: recipe for target 'install-recursive' failed
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory '/home/magaldi/Delft3dOct19/src/engines_gpl/dflowfm/packages'
Makefile:493: recipe for target 'install-recursive' failed
make: *** [install-recursive] Error 1
make: Leaving directory '/home/magaldi/Delft3dOct19/src/engines_gpl/dflowfm'

This looks to be a known issue: Intel compilers are more permissive while NAG and Gfortran compilers both generate errors when argument to the C_LOC function do not have a TARGET or POINTER attribute set (see ).
Did anyone else stumble on the same problem?
Any hints to solve and allow the building process to finish?
Thank you in advance,