fpm
fpm copied to clipboard
Compiler support and recognition
Came up in #220.
At some point we might have to determine which compiler is used with fpm, therefore I tried to collect some information on the various Fortran compilers around. I only have first hand access to a fraction of them, so most of these information are second hand from HPC documentations or build systems.
Feel free to correct or add information to this table. Alternatively, we could move this table to the wiki.
vendor | Fortran compiler | C compiler | Module output directory | Module include directory | OpenMP | Free for OSS |
---|---|---|---|---|---|---|
Gnu | gfortran |
gcc |
-J |
-I |
-fopenmp |
:heavy_check_mark: |
Intel | ifort |
icc |
-module |
-I |
-qopenmp |
:heavy_check_mark: |
Intel (Windows) | ifort |
icc |
/module:path |
/I |
/Qopenmp |
:heavy_check_mark: |
Intel oneAPI | ifx |
icx |
-module |
-I |
-qopenmp |
:heavy_check_mark: |
PGI | pgfortran |
pgcc |
-module |
-I |
-mp |
:heavy_check_mark: |
NVIDIA | nvfortran |
nvc |
-module |
-I |
-mp |
:heavy_check_mark: |
LLVM flang | flang |
clang |
-module |
-I |
-mp |
:heavy_check_mark: |
LFortran | lfortran |
--- | ? | ? | ? | :heavy_check_mark: |
Lahey/Futjitsu | lfc |
? | -M |
-I |
-openmp |
? |
NAG | nagfor |
? | -mdir |
-I |
-openmp |
:x: |
Cray | crayftn |
craycc |
-J |
-I |
-homp |
? |
IBM | xlf90 |
? | -qmoddir |
-I |
-qsmp |
:heavy_check_mark: |
Oracle/Sun | ? | ? | -moddir= |
-M |
-xopenmp |
? |
Silverfrost FTN95 | ftn95 |
? | ? | /MOD_PATH |
? | ? |
Elbrus | ? | lcc |
-J |
-I |
-fopenmp |
? |
Hewlett Packard | ? | ? | ? | ? | ? | discontinued |
Watcom | ? | ? | ? | ? | ? | discontinued |
PathScale | ? | ? | -module |
-I |
-mp |
discontinued |
G95 | ? | ? | -fmod= |
-I |
-fopenmp |
discontinued |
Open64 | ? | ? | -module |
-I |
-mp |
discontinued |
Unisys | ? | ? | ? | ? | ? | discontinued |
For now it might be sufficient to only support GCC, since we only guarantee that fpm works when compiled with GCC right now.
First class compiler support requires access to the compiler to allow testing in a CI environment, some of the commercial compilers have free versions for open source developers available.