Package: libcgns-dev Version: 3.4.0-3 Severity: wishlist Hello and thanks for maintaining this useful library in Debian!
The CGNS library may be used from C/C++ programs/libraries and also from Fortran programs/libraries. In order to use the library from Fortran code, the use cgns statement is required, which requires access to the 'cgns.mod' module file, correctly shipped in package libcgns-dev as /usr/include/cgns.mod . This works like a charm, as long you compile your own Fortran program/library with the same Fortran compiler which was used to generate the 'cgns.mod' module file. But it may fail, when the two compilers are different, since, unfortunately!, Fortran module files are [not portable] across different compilers. [not portable]: <https://fortranwiki.org/fortran/show/Library+distribution> Obviously, the 'cgns.mod' module file shipped in package libcgns-dev as /usr/include/cgns.mod was compiled with gfortran. As a consequence, if you also compile your own Fortran program/library with gfortran, there's no issue at all in using libcgns-dev. But, if you want to support compilation of your own Fortran program/library with more than one compiler (for instance gfortran and the Intel 'ifort' Fortran compiler), you cannot use the official Debian package libcgns-dev. Well, I seem to have found a strategy to work around this issue. I downloaded the 'src/cgns_f.F90' source file (from the libcgns Debian source package, same exact version as the installed Debian binary package) and compiled it with the incompatible Fortran compiler (e.g.: the Intel 'ifort' Fortran compiler), thus obtaining a 'cgns.mod' module file compatible with the used Fortran compiler. Among the options passed to the compiler, there were the following: -I/usr/include -c Then I compiled my own Fortran program source files with the previously obtained 'cgns.mod' module file in the same directory. Again with: -I/usr/include -c among the compiler options. Finally, I linked my own Fortran program .o object files together, with the following: -lcgns among the passed options. The strategy works and produces an executable, which is dynamically linked (among other libraries) to the CGNS library: $ ldd my_own_fortran_program | grep cgns libcgns.so.3.4 => /lib/x86_64-linux-gnu/libcgns.so.3.4 (0x00007f3a4e9f3000) The executable works correctly. In conclusion, I would like to suggest to also ship the 'src/cgns_f.F90' source file in package libcgns-dev, so that the CGNS library in Debian becomes usable with Fortran compilers other than gfortran. This would be highly useful, as it would increase the cross-compiler compatibility of the CGNS library, as shipped in Debian! And this would just require to ship one more file (less than 200 kbyte) simply copied from the source Debian package to the libcgns-dev binary Debian package. Please consider accepting this proposal. Thanks for your time and your dedication! -- System Information: Debian Release: trixie/sid APT prefers testing APT policy: (800, 'testing'), (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 6.5.0-1-amd64 (SMP w/4 CPU threads; PREEMPT) Kernel taint flags: TAINT_FIRMWARE_WORKAROUND Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages libcgns-dev depends on: ii libcgns3.4 3.4.0-3 libcgns-dev recommends no packages. libcgns-dev suggests no packages. -- no debconf information