Directrices de Empaquetamiento Fortran
Módulos e incluir archivos
Los archivos de módulos Fortran, con extensión .mod, describen la API y la ABI de un módulo Fortran 90 (y versiones posteriores). A diferencia de los archivos de cabecera de C que describen una API, estos archivos dependen del compilador y de la arquitectura, y no son fácilmente legibles para una persona. Sin embargo, gfortran los busca en los directorios de inclusión (en los directorios especificados con -I).
Debido a la especificidad de la ABI, el directorio del módulo utilizado debe ser específico de la arquitectura. Además, cada versión de gfortran (p. ej., de la 4.4 a la 4.5) puede provocar un cambio incompatible en los archivos .mod; por lo tanto, se deben realizar recompilaciones masivas de los paquetes Fortran al actualizar gfortran.
Fortran también puede utilizar archivos de inclusión, similares a los encabezados de C. Los sufijos de nombre de archivo más comunes son ‘.inc’ y ‘.h’, aunque ‘.fh’ se ha utilizado para archivos que están diseñados para funcionar como encabezados públicos.
Empaquetado de programas Fortran
Fortran programs in Fedora MUST be compiled, if possible, using the default Fortran compiler in Fedora, 'gfortran'. As usual, standard Fedora optimization flags %{optflags} MUST be used in the compilation.
Fortran include files MUST be placed in the standard include directory: either directly in %{_includedir}, or if headers have general names or upstream recommends having an own directory, in e.g. %{_includedir}/%{name}.
As Fortran modules are architecture and GCC version specific, they MUST be placed into %{_fmoddir} (or its package-specific subfolder in case the modules have generic names), which is owned by 'gcc-gfortran'. For directory ownership any packages containing Fortran modules MUST Requires: gcc-gfortran%{_isa}.
To use the modules in the Fortran module directory, one needs to add -I%{_fmoddir} to the compiler flags (this is already included in FFLAGS used by %configure).
Want to help? Learn how to contribute to Fedora Docs ›