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

Trouble with make

Philip Massie, modified 4 Years ago.

Trouble with make

Youngling Posts: 2 Join Date: 7/5/15 Recent Posts
Hello all

I'm having some problems compiling Delft3D under ubuntu 14.04 64bit and was hoping someone might be able to assist.

I'm not very familiar with compiling from source and apologise if I'm doing something incredibly idiotic.
I'd really appreciate some input here though.

I believe I have met all the prerequisites, compiling mpich and the netcdf fortran libraries.

My compile process is basically, as root:

CFLAGS='-O2' CXXFLAGS='-O2' FFLAGS='-O2' FCFLAGS='-O2' ./configure --prefix=`pwd`

both work fine. ./config does throw some errors but they are, I think, more or less the same as mentioned in this post ( I attached the config.log file in case.

make ds-install

throws an error mentioned in this thread:


s = sign ( 1.0 , e2 )
Error: 'b' argument of 'sign' intrinsic at (1) must be the same type and kind as 'a'

I have attached the make log (make-1.log) in case it helps.

I changed the line to read
s = sign ( 1.0_8 , e2 )

as suggested but this lead to other errors which i cant find reference to anywhere (make-2.log):


pmsa(ip + inc * (iseg - 1)) = SNGL(-1)
Error: 'a' argument of 'sngl' intrinsic at (1) must be REAL

pmsa(ip + inc * (iseg - 1)) = SNGL(iseg)
Error: 'a' argument of 'sngl' intrinsic at (1) must be REAL

pmsa(ip + inc * (ifrom - 1)) = SNGL(ibotseg)
Error: 'a' argument of 'sngl' intrinsic at (1) must be REAL

pmsa(ip + inc * (ito - 1)) = SNGL(ibotseg)
Error: 'a' argument of 'sngl' intrinsic at (1) must be REAL

I hope this is legible.
If anyone has some ideas of how I might proceed I would be very grateful.

Thanks very much for your time and patience
Michel Jeuken, modified 4 Years ago.

RE: Trouble with make (Answer)

Jedi Knight Posts: 156 Join Date: 1/21/13 Recent Posts
Hi Philip,

Thank you for your observation. The first issue with the sign function was already addressed in the trunk (revision 5485). I think the next problem is the result of the fortran conformity setting of your compiler. Indeed the SNGL function can only be used to convert a double into a real. Instead it is better to use the real function, that should accept integers too.

The lines you metioned in vbstat should be changed to these respectively:

pmsa(ip + inc * (iseg - 1)) = real(-1,4)

pmsa(ip + inc * (iseg - 1)) = real(iseg,4)

pmsa(ip + inc * (ifrom - 1)) = real(ibotseg,4)

pmsa(ip + inc * (ito - 1)) = real(ibotseg,4)

It has been changed in the trunk with revision 5516.

The reason that these integers are cast into reals is that segment numbers (integers) are passed through a combined an flexible parameter real array to pass this on to other water quality process routines where they are converted to integers again. This real array is the main communication line between the processes.

Philip Massie, modified 4 Years ago.

RE: Trouble with make

Youngling Posts: 2 Join Date: 7/5/15 Recent Posts
Hi Michel
Thank you so much for getting back to me, and also for taking the time to explain the output! I really appreciate it.

I'll download the trunk, make the changes you suggest and report back.
Would it be better for me to try and change the fortran compiler settings/recompile it?

Thanks again