Pautas del Empaquetado de 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

Los programas Fortran en Fedora DEBEN compilarse, si es posible, utilizando el compilador Fortran predeterminado de Fedora, ‘gfortran’ Como es habitual, DEBEN usarse los indicadores de optimización estándar de Fedora %{optflags} en la compilación.

Fortran incluye archivos DEBEN ser colocados dentro del directorio include estándar: o bien directamente en %{_includedir}, o bien si las cabeceras tienen nombres genéricos o en desarrollo lo recomienda tener un propio directorio , p.e. en %{_includedir}/%{name}.

Dado que los módulos Fortran son específicos de la arquitectura y la versión de GCC, DEBEN ubicarse en %{_fmoddir} (o en su subcarpeta específica del paquete si los módulos tienen nombres genéricos), cuyo propietario es gcc-gfortran. Para que los paquetes que contengan módulos Fortran sean propietarios del directorio, DEBEN usar Requires: gcc-gfortran%{_isa}.

Para utilizar los módulos en el directorio del módulo Fortran, uno necesita añadir -I%{_fmoddir} para los indicadores del compilador (esto ya está incluido en FFLAGS utilizado por %configure).