Opensuse options for mixing openmpi hdf5 netcdf hdf5-fortran netcdf-c++

I use gfortran, hdf5 and netcdf for testing models before using the code on a larger mainframe. I use c, cpp, fortran,hdf5 and netcdf for analysis, including 3-D graphics output. However although I appreciate that now I no longer need to compile hdf5 and netcdf from source I find the many related packages and package options overly confusing and this is made worse in that I can only see if a package contains what I want after installing it - (and Yast has added the other 30 packages it requires).

So has anyone produced a web page which explains all the openmpi/hdf5/netcdf/fortran/c/c++ options and how they are related - or if not is there any documentation anywhere (or a telephone number I can ring) which will help me to make sense of the present system?

I suspect that the answer will be no in which case I have some more specific questions:

  1. In a package name such as ‘hdf5_1_10_1-gnu-openmpi3-hpc’, what do gnu and hpc refer to? There is for example a ‘libhdf5_fortran100-openmpi’.

  2. It looks as if the packages have been set up to support the module mechanism for setting up environment variables. There is for example an ‘hdf5_1_10_1-gnu-openmpi3-hpc-module’ package but there appears to be no equivalent netcdf package. So is there a way I can get a list of the modules supported by opensuse and the associated packages - not just the ones I’ve installed by accident?

  3. For openmpi3, netcdf has both a c and fortran library and associated *.h and *.mod files. However netcdf-cxx is only available without openmpi3 and then requires a separate set of non-openmpi3, hdf5 and netcdf packages to be downloaded and installed in separate directories to satisfy the dependencies. Can this be simplified or can cxx (c++?) be added to the openmpi3 system?

Thanks for any help.

David Webb.

p.s. This query moved to Programming-Scripting at the suggestion of tsu2.

Warning -
I personally have done very, very little C coding and review…
Don’t know if any of my guesses or approach works but of course some features like support for parallelism are difference makers in some situations…

I don’t know that anyone has has written a comprehensive guide (or my Googling skills are just that bad)
But you can do a lot of reading on the individual compilers…

eg
The general purpose openmpi site contains references and descriptions
https://www.open-mpi.org/faq/?category=mpi-apps
https://gcc.gnu.org/wiki/GFortran

hdfs suggests extra parallelism support
https://support.hdfgroup.org/HDF5/hdf5-quest.html#PARALLEL

netcdf
https://en.wikipedia.org/wiki/NetCDF
https://stackoverflow.com/questions/1075074/opinions-on-netcdf-vs-hdf5-for-storing-scientific-data

TSU