Hello All:
I am in the progress of preparing our machines for pivoting from WRF to include
now MPAS with the new PIO, PNetCDF and NetCDF libraries using the Intel OneAPI
libraries (2025.3.2) on Ubuntu 24.04.4 LTS.
This for me is also one of the first times that I have had to build netcdf with
parallel capacity and pnetcdf at all, let alone this “new PIO” library.
I made it up through getting HDF (1.14.6) and PNetCDF (1.14.1) in and made
through the “configure” phase of NetCDF-C (4.10). The configuration summary is
below.
=======================================
# NetCDF C Configuration Summary
==============================
# General
-------
NetCDF Version: 4.10.0
Dispatch Version: 5
Configured On: Wed Mar 25 21:45:36 UTC 2026
Host System: x86_64-pc-linux-gnu
Build Directory: /root/GitHub/netcdf-c-4.10.0
Install Prefix: /usr/local
# Compiling Options
-----------------
C Compiler: /opt/intel/oneapi/mpi/2021.17/bin/mpiicx
CFLAGS: -O2 -fPIC -I/usr/local/include -I/usr/include/libxml2
-fno-strict-aliasing
CPPFLAGS: -O2 -fPIC -I/usr/local/include -I/usr/include/libxml2
LDFLAGS:
AM_CFLAGS:
AM_CPPFLAGS:
AM_LDFLAGS:
Shared Library: yes
Static Library: yes
Extra libraries: -lpnetcdf -lhdf5_hl -lhdf5 -lm -lz -lzip -lsz -lbz2 -lzstd
-lxml2 -lcurl
XML Parser: libxml2
Legacy Macros: yes
# Features
--------
Benchmarks: no
NetCDF-2 API: yes
HDF4 Support: no
HDF5 Support: yes
CDF5 Support: yes
NC-4 Parallel Support: yes
PnetCDF Support: yes
DAP2 Support: yes
DAP4 Support: yes
Byte-Range Support: yes
S3 Support: no
S3 SDK: none
NCZarr Support: yes
NCZarr Zip Support: yes
Diskless Support: yes
MMap Support: no
ERANGE Fill Support: yes
Relaxed Boundary Check: yes
Plugins Enabled: yes
Plugin Install Dir: /usr/local/hdf5/lib/plugin
Plugin Search Path: /usr/local/hdf5/lib/plugin:/usr/local/hdf5/lib/plugin
UDF Self-Load: yes
Quantization: yes
Logging: no
SZIP Write Support: yes
Standard Filters: bz2 deflate szip zstd
ZSTD Support: yes
Parallel Filters: yes
=======================================
This isn’t all that different than my previous successful builds up to this
point. When I began the “make” process, I got the following error,
=======================================
libtool: compile: mpiicx -DHAVE_CONFIG_H -I. -I.. -I../include -I../include
-I.. -I.. -I../oc2 -I../libnczarr
-I/localdisk/conan/.conan/data/libxml/2.12.10.9/staging/CD-3/package/80f7d555ab6867780ca174690c1abac96d6cef96/include/libxml2
-O2 -fPIC -I/usr/local/include -I/usr/include/libxml2 -O2 -fPIC
-I/usr/local/include -I/usr/include/libxml2 -fno-strict-aliasing -MT
ncxml_xml2.lo -MD -MP -MF .deps/ncxml_xml2.Tpo -c ncxml_xml2.c -fPIC -DPIC -o
.libs/ncxml_xml2.o
libtool: compile: mpiicx -DHAVE_CONFIG_H -I. -I.. -I../include -I../include
-I.. -I.. -I../oc2 -I../libnczarr
-I/localdisk/conan/.conan/data/libxml/2.12.10.9/staging/CD-3/package/80f7d555ab6867780ca174690c1abac96d6cef96/include/libxml2
-O2 -fPIC -I/usr/local/include -I/usr/include/libxml2 -O2 -fPIC
-I/usr/local/include -I/usr/include/libxml2 -fno-strict-aliasing -MT
ncxml_xml2.lo -MD -MP -MF .deps/ncxml_xml2.Tpo -c ncxml_xml2.c -o ncxml_xml2.o
>/dev/null 2>&1
/bin/bash ../libtool --tag=CXX --mode=link mpiicx -O2 -fPIC
-I/usr/local/include -I/usr/include/libxml2 -o libncxml.la ncxml_xml2.lo
-lpnetcdf -lhdf5_hl -lhdf5 -lm -lz -lzip -lsz -lbz2 -lzstd -lxml2 -lcurl
libtool: error: cannot find the library '/usr/local/lib/libnetcdf.la' or
unhandled argument '/usr/local/lib/libnetcdf.la'
make[2]: *** [Makefile:557: libncxml.la] Error 1
make[2]: Leaving directory '/root/GitHub/netcdf-c-4.10.0/libncxml'
make[1]: *** [Makefile:821: all-recursive] Error 1
make[1]: Leaving directory '/root/GitHub/netcdf-c-4.10.0'
make: *** [Makefile:663: all] Error 2
=======================================
This implying that I need /usr/local/lib/libnetcdf.la which… I’m supposed to be
making here for the first time. (Also that “/localdisk/conan” is also new and
I am not sure as to its origins (we have no such directory on our file
systems). I’ve built netCDF from source scores of times, and this is the first
time I have encountered this particular error.
Has anyone encountered this must-have-it-to-make-it error? Or better still, is
there a gentle “best-practice” pathway as we used to see with the Portland
Group compilers on how to assemble the necessary parts develop a complete
HDF/PnetCDF/NetCDF suite ready for PIO with Intel OneAPI without having too
many locally bespoke customized netcdf/hdf builds for "this application" and
another for “that application.” My Mac using conga-forge has "one build to
rule them all” regarding PIO, NetCDF, PNetCDF etc and can build WRF and MPAS so
in theory it ought to be doable.
Much obliged and thanks for your patience,
Bill Capehart
South Dakota Mines.