Fortran 编译器

Fortran 拥有十多个开源和商业编译器。

编译器#

开源编译器

GNU Fortran 编译器

GNU Fortran 编译器 (gfortran) 是一个成熟的免费开源编译器,是 GNU 编译器集合的一部分。

OpenCoarrays 是一个库和编译器包装器,围绕 gfortran,它使用 gfortran 启用了 Fortran 2018 的并行编程功能。

LLVM Flang

Flang 是一个新的 Fortran 2018 前端,最近已添加到 LLVM 中。它使用现代 C++ 实现,并使用面向 Fortran 的 MLIR 方言降低到 LLVM IR。该项目正在积极开发中。

当前 Flang

Flang 是一个基于 NVIDIA/PGI 商业编译器的开源编译器。

LFortran

LFortran 是一款现代化、交互式的基于 LLVM 的 Fortran 编译器。也可以通过 dev.lfortran.org 在线访问,使用静态服务、基于 WASM 的 LFortran 编译器在 Web 浏览器中运行代码。

商业编译器

Intel oneAPI

Intel oneAPI 是英特尔针对 Fortran、C、C++ 和 Python 的编译器、工具和库套件。Intel oneAPI HPC 工具包提供了 两个 Fortran 编译器

  • Intel Fortran 编译器 (ifx),一个新的基于 LLVM 的编译器,具有完整的 Fortran 2018 支持。它还支持 大部分 OpenMP 5.0/5.1,包括卸载到英特尔 GPU。ifx 还可以将 do concurrent 卸载到英特尔 GPU。

  • Intel Fortran 编译器经典版 (ifort),一个成熟的编译器,具有完整的 Fortran 2018 支持,仅适用于 CPU。

当前版本的 Intel oneAPI 可免费获得,并且可以购买支持。目前,ifx 编译器支持 Linux 和 Windows 平台的 x86-64 架构。ifort 支持 Linux、Windows 和 macOS。免费版本可在 英特尔开发者论坛 获取社区支持。或者,您可以购买 优先支持,其中包含其他优势,包括访问 ifort 和 ifx 的先前版本。

NAG

最新的 NAG Fortran 编译器 版本 (7.0) 对传统和现代 Fortran 功能(包括使用共数组进行并行编程)提供了广泛的支持,以及对使用 OpenMP 进行编程的额外支持。

该编译器还为 Fortran 2018(原子操作、事件和任务以及其他较小的功能)提供了大量支持,几乎涵盖了所有 Fortran 2008 功能,完整涵盖了 Fortran 2003 功能,以及所有 OpenMP 3.1 功能。所有平台都包含支持软件开发的工具:源文件润色器、模块和包含文件的依赖项生成器、调用图生成器、接口构建器和精度统一器。

NVIDIA

The NVIDIA HPC SDK C、C++ 和 Fortran 编译器(以前的 PGI 编译器)支持使用标准 C++ 和 Fortran、OpenACC® 指令以及 CUDA® 对 HPC 建模和仿真应用程序进行 GPU 加速。GPU 加速的数学库最大限度地提高了常用 HPC 算法的性能,并且优化的通信库支持基于标准的多 GPU 和可扩展系统编程。

NVHPC 编译器可免费获得。目前,该编译器支持 Linux 平台和 x86_64、ppc64le 和 aarch64 架构。可以在 HPC 编译器论坛 获取社区支持。

HPE / Cray

The Cray 编译环境 (CCE) 是 Cray 自适应计算范式的基石创新。CCE 建立在一个完善且复杂的 Cray 技术基础之上,该技术可以识别计算区域,这些区域要么是顺序标量、向量并行,要么是高度多线程的。它包括优化编译器,这些编译器自动利用 Cray 系统的标量、向量和多线程硬件功能。CCE 支持 Fortran、C 和 C++。

IBM

IBM® XL Fortran for Linux 是一种基于行业标准的编程工具,用于开发用 Fortran 编程语言编写的庞大而复杂的应用程序。它生成的代码可以利用最新 POWER9 架构的功能,并最大限度地提高硬件利用率。IBM XL Fortran for Linux 在 IBM Power Systems™ 上优化您的基础设施,以支持广泛的数值、科学和高性能计算。

IBM XL 编译器的社区版本可免费获得。这些编译器支持 Linux 和 AIX 平台以及 ppc64le 架构。

AMD

The AMD Optimizing C/C++ Compiler (AOCC) 编译器系统是一种高性能、生产质量代码生成工具。AOCC 环境在构建和优化针对 32 位和 64 位 Linux® 平台的 C、C++ 和 Fortran 应用程序时为开发人员提供了各种选项。AOCC 编译器系统提供了高级优化、多线程和处理器支持的高级水平,包括全局优化、向量化、过程间分析、循环转换和代码生成。AMD 还提供了高度优化的库,在使用时可以从每个 x86 处理器内核中提取最佳性能。AOCC 编译器套件简化并加速了 x86 应用程序的开发和调整。

AOCC 编译器可免费获得,并支持具有 x86_64 架构的 Linux 平台。

ARM

Linux 用户空间 Fortran 编译器。专为 HPC 和科学代码而设计,支持流行的 Fortran 和 OpenMP 标准,并针对领先的服务器级 Arm 基于平台进行了优化。构建于开源 Flang 前端和基于 LLVM 的优化和代码生成后端之上。作为 Arm Compiler for Linux 软件包的一部分提供。

Oracle / Sun

Oracle C、C++、Fortran 编译器 针对 Oracle 系统(本地和云端)进行了高度优化

  • 针对最新的 Oracle SPARC 和基于 x86 的系统的先进代码生成技术

  • 支持最新的行业标准,包括 C++14、C++11、C11 和 OpenMP 4.0 以及广泛的 GCC 兼容性功能

  • 在编译期间进行自动代码分析,并在应用程序运行时进行自动堆栈溢出保护

Silverfrost FTN95

Silverfrost FTN95 是一个完全符合 Fortran 95 标准的编译器,能够为 Win32 和 Microsoft .NET 生成快速的可执行文件。FTN95 附带全球最佳的运行时检查和大量支持软件。所有标准和许多供应商特定的传统语言功能都受支持,因此 Fortran 项目可以是 Fortran 77、Fortran 90 和 Fortran 95 的任意组合。Fortran 2003 和 2008 的一些功能已 添加。Silverfrost Fortran 在 Windows / x86_64 上运行。有一个免费的个人版。

NEC

Fortran 编译器 符合 Fortran-2003 标准 (ISO/IEC 1539-1:2004),并支持 Fortran-2008 (ISO/IEC 1539-1:2010) 的许多功能。

LCC

MCST C、C++、Fortran 编译器 完全支持 Fortran-95 (ISO/IEC 1539:1997) 并部分支持 Fortran-2003 (ISO/IEC 1539:2004)、Fortran-2008 (ISO/IEC 1539:2010) 和 Fortran-2018 (ISO/IEC 1539:2018)。用于俄罗斯处理器架构 Elbrus (e2k) 和 SPARC (MCST-R),还提供用于 x86_64 架构的交叉编译器。

已停止维护

以下是似乎已停止维护的 Fortran 编译器列表,因此我们未在上面列出它们

  • Absoft

  • Apogee

  • 爱丁堡便携式编译器

  • 惠普

  • Lahey

  • Watcom

  • PathScale

  • G95

  • Open64

  • Unisys

注意

如果您发现有任何未列出的编译器,或者我们在“已停止维护”部分列出了某个编译器,但实际上它仍在积极维护,请告知我们。