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: 
/web/delft3dfm/forum

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

=======================================================

** PLEASE TAG YOUR POST! **

 

 

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

 


Message Boards

compiling delft3d error, /usr/bin/ld: cannot find -lnetcdff

DO
Dave Ortiz-Suslow, modified 4 Years ago.

compiling delft3d error, /usr/bin/ld: cannot find -lnetcdff

Youngling Posts: 7 Join Date: 1/6/14 Recent Posts
Hello,

I am trying to compile delft3d (latest tag) on a linux system (CentOS 6.5). My gcc version is 4.4.7

I am following the webinar on compiling for linux, I get passed the configure step (I've attached the config.log), but when I got to make I get this error:

$ make
....

Makefile:794: warning: overriding commands for target `clean-local'
Makefile:789: warning: ignoring old commands for target `clean-local'
/bin/sh ../../../../../libtool --tag=FC --mode=link gfortran -DWITH_DELFTONLINE -I/nethome/dortiz-suslow/.local/include -g -O2 -ffree-line-length-none -cpp -o version_number.exe version_number.o -lrt -lexpat -lstdc++ -L/nethome/dortiz-suslow/.local/lib -lnetcdf -lnetcdff
libtool: link: gfortran -DWITH_DELFTONLINE -I/nethome/dortiz-suslow/.local/include -g -O2 -ffree-line-length-none -cpp -o version_number.exe version_number.o -lexpat -lstdc++ -L/nethome/dortiz-suslow/.local/lib /nethome/dortiz-suslow/.local/lib/libnetcdf.so /nethome/dortiz-suslow/.local/lib/libhdf5_hl.so /nethome/dortiz-suslow/.local/lib/libhdf5.so -lz -lrt -ldl -lm -lcurl -lnetcdff -Wl,-rpath -Wl,/nethome/dortiz-suslow/.local/lib -Wl,-rpath -Wl,/nethome/dortiz-suslow/.local/lib
/usr/bin/ld: cannot find -lnetcdff
collect2: ld returned 1 exit status
make[6]: *** [version_number.exe] Error 1
make[6]: Leaving directory `/nethome/dortiz-suslow/delft3_5159/src/third_party_open/version_number/packages/version_number/src'
make[5]: *** [all-recursive] Error 1
make[5]: Leaving directory `/nethome/dortiz-suslow/delft3_5159/src/third_party_open/version_number/packages/version_number'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/nethome/dortiz-suslow/delft3_5159/src/third_party_open/version_number/packages'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/nethome/dortiz-suslow/delft3_5159/src/third_party_open/version_number'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/nethome/dortiz-suslow/delft3_5159/src/third_party_open'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/nethome/dortiz-suslow/delft3_5159/src'
make: *** [all] Error 2

I cant seem to sort out what -lnetcdff is and I haven't found any old posts that talk about this. Any help that can be given would be greatly appreciated, along with your patience as I am new to compiling on Linux systems.

best,
Dave
Qinghua Ye, modified 4 Years ago.

RE: compiling delft3d error, /usr/bin/ld: cannot find -lnetcdff

Jedi Council Member Posts: 612 Join Date: 3/2/11 Recent Posts
Hi Dave,

It seems like the netcdf library is missed in the system.

The netcdf library is a third party library and you may download from the original host website, either you download the source code and compile it using the same compiler which you use to compile Delft3D code, or you may directly download the precompiled netcdf library and then use it.

See if this can help a little bit,

Qinghua
DO
Dave Ortiz-Suslow, modified 4 Years ago.

RE: compiling delft3d error, /usr/bin/ld: cannot find -lnetcdff

Youngling Posts: 7 Join Date: 1/6/14 Recent Posts
Hey Qinghua,

Thanks for the response. So, I did realize that the netcdf library was missing and I have compiled it, but for some reason "make" doesn't know where it is. How do you fix this? I am compiling on a linux cluster, without root privilege, and I had to compile the netcdf library in a home directory allocated to me. These are the commands I ran before running into this error...

$cd /nethome/dortiz-suslow/delft3_*
$./autogen.sh
$NETCDF_CFLAGS=-I${NCDIR}/include ./configure --with-mpi #NCDIR=/nethome/dortiz-suslow/.local (i.e., where I put the library when I compiled netcdf)
#NETCDF_CFLAGS=-I${NCDIR}/include NETCDF_LIBS=-L${NCDIR}/lib ./configure --with-mpi (I also tried running this, but had the same result)
$make
#error

So, obviously this is working to tell the build where to look. Also, I am using the default compiler (I assume) for the netcdf build as well as the delft3d build. How to specify the compiler when I build both just to be sure?

Sorry, I am very new to this and am kind of learning by trial and error, I appreciate all the help and your patience.

-Dave
DO
Dave Ortiz-Suslow, modified 4 Years ago.

RE: compiling delft3d error, /usr/bin/ld: cannot find -lnetcdff

Youngling Posts: 7 Join Date: 1/6/14 Recent Posts
Ok......so I think I sorted out the netcdf problem at least for now. The cluster I am using has netcdf already compiled, but I wasn't loading it properly. Now, ./configure and make know where to look. I've hit another road block however,

$make
Making install in third_party_open
make[1]: Entering directory `/nethome/dortiz-suslow/delft3_5159/src/third_party_open'
Making install in version_number

....

version_number.o: In function `printusage_':
/nethome/dortiz-suslow/delft3_5159/src/third_party_open/ ... /src/version_number.f90:177: undefined reference to `_gfortran_st_write'
/nethome/dortiz-suslow/delft3_5159/src/third_party_open/ ... src/version_number.f90:177: undefined reference to `_gfortran_transfer_character'

....

version_number.o: In function `sed_':
/nethome/dortiz-suslow/delft3_5159/src/third_party_open/ ... /src/version_number.f90:167: undefined reference to `_gfortran_string_len_trim'
/nethome/dortiz-suslow/delft3_5159/src/third_party_open/ ... /src/version_number.f90:168: undefined reference to `_gfortran_string_trim'

....

version_number.o: In function `MAIN__':

....


So basically this happens when run make. What am I missing this time? I dont get any configure errors, but I've attached the config.log here. This what I get when I check gfortran

$gfortran --version
GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)

As always, appreciate the help.

cheers,
Dave
Qinghua Ye, modified 4 Years ago.

RE: compiling delft3d error, /usr/bin/ld: cannot find -lnetcdff

Jedi Council Member Posts: 612 Join Date: 3/2/11 Recent Posts
Hi Dave,

As to the version_number project, most likely there were some unnecessary temporary files from the last compilation. Maybe just to clean those, you might get through it.

See if this help a bit,

Qinghua
DO
Dave Ortiz-Suslow, modified 4 Years ago.

RE: compiling delft3d error, /usr/bin/ld: cannot find -lnetcdff

Youngling Posts: 7 Join Date: 1/6/14 Recent Posts
Hey,

I have a broader question, is there support/instructions for compiling delft3d on centos 6.5, specifically without root privileges?

I found this post:

http://oss.deltares.nl/web/delft3d/delwaq/-/message_boards/view_message/47205

But I cant execute all the steps, one because I am limited to centos 6.5 and because I am not an admin on the system. I found another post talking about centos 6.2, but their problem never got resolved.

thanks,
Dave
Adri Mourits, modified 4 Years ago.

RE: compiling delft3d error, /usr/bin/ld: cannot find -lnetcdff (Answer)

Yoda Posts: 1224 Join Date: 1/3/11 Recent Posts
Hi Dave,

One of our systems is based on CentOS 6.5. Have a look at (for example) https://svn.oss.deltares.nl/repos/delft3d/tags/4440/src/build_h5.sh
In there, references are used to tools (mpi, automake etc.) that are not installed on their default location.

Regards,

Adri