(c)表示商业产品
AD_DNSVM:David Lauvergnat撰写的标量,向量(V)和矩阵(M)的Fortran自动分化工具。它在自变量的数量方面没有限制(此数字在运行时定义),并且可以计算出高达第三个导数。
ADF95:修改Jingchang Shi与ADF95中描述的GFORTRAN合作:自动差异工具的工具,用于针对大量独立变量设计的Fortran代码,由Christian W. Straka,计算机物理通信,第168卷,第2卷,第2期,2005年6月1日,第123-139页,第123-139页,第123-139页,第123-139页,第123-139页
ADIFOR:给定Fortran 77源代码以及用户对因变量和独立变量的规范,Adifor将生成一个增强的导数代码,该代码除了原始结果外,还针对所有指定的独立变量计算所有指定的因变量的部分衍生物。
辅助:使用Fortran 95和操作员超载,生成稀疏的Jacobians的自动区分,Pauli Virtanen
Audito:Fortran的自动分化工具,米歇尔V. Heinz。数学运算符已被超载以与新定义的类型合作,其中不仅包括功能值,还包括梯度,Hessian和Laplacian。
AUTO_DERIV:由一组FORTRAN 95程序组成的模块,可用于计算任何连续函数的第一和第二部分衍生物(或混合),并由S. stamatiadis和Sc farantos(Computer Physics Communications Communications Program库中的一部分)进行许多独立变量。数学函数应表示为一个或多个Fortran 77/90/95程序。
Autodiff:Simon Geard最多可自动差异4衍生物
Auto-Diff:Zoziha的后退模式自动分化的现代福特实施。
双数自动分化(DNAD):Yu,W。和Blair的代码更新,M。:“ DNAD,一种使用双重数字自动区分Fortran代码的简单工具”,《计算机物理通信》,第1卷。 184,2013,第1446-1452页,OddleHod。相关项目:fortran_dnad。 Oyvindyr的叉子使用FYPP宏。这种方法的好处是,可以将数学功能的接口和实现“注入”到使用的模块中。
fazang:由Yi Zhang的Stan/Math Library启发的反向模式自动分化的库。 Zoziha已更新了该项目,以与Gfortran和Ifort合作。
OpenAD:数值计算机程序的自动差异(AD)工具
ta脚:在Inria开发的自动分化引擎。它可以在线运行,也可以在本地下载并作为一组Java类(JAR存档)进行下载和安装。
FORTRAN(TAF)中算法的转换:Fortran 77-95代码的源代码转换器,IE TAF接受Fortran 77-95代码作为输入,应用语义转换,并生成Fortran 77-95代码。 TAF支持几个语义转换。最重要的是自动分化(AD),即用于评估一阶导数(Jacobian矩阵)的代码生成。 (C)
doxygen:从一组已记录的源文件中生成一个在线文档浏览器(在HTML中)和/或一个离线参考手册(在乳胶中)。还支持在RTF(MS-WORD),PostScript,超链接PDF,压缩HTML,DOCBOOK和UNIX MAN页面中生成输出。
F90TOHTML:PERL脚本将Fortran源文件转换为超链接的网站
福特:自动从代码中的注释中生成fortran文档,从fortran-foss-programmer
HTMLINDEX:C ++代码,该代码为C,C ++,Fortran77或Fortran90源代码文件构建“骨架” HTML页面,记录文件中的每个例程...如果每个例程都标记了约翰·伯卡特(John Burkardt)。标记后的信息通常是一行说明例程的作用。
Protex:可以从标准的Fortran文档标头中剥离信息并将其保存到Arlindo da Silva等人的乳胶文件中的Perl脚本。
版本-F:Minh Dao的语义版本2.0.0的实现,旨在成为用于处理Fortran Projects中版本的用户友好工具
buildnis:分布式,平台独立的构建系统,可以处理C ++ 20和Fortran模块,并且足够灵活以构建其他任何内容并处理各种构建步骤
CMAKE跨平台开源构建系统发电机。 ChristenSencode的Fortran_with_cmake_examples提供了一些具体示例,并提供了尽可能多的解释,以使其对CMAKE经验相对较少经验的人清楚。
CMAKE UTILS:用于CMAKE的有用脚本和模块,特别是用于科学计算,HPC和Fortran,来自Scivision
CookieCutter-Fortran-Project:用于设置新的Fortran项目的模板,允许用户从各种构建系统(CMAKE,FPM和MESON)中进行选择,以及不同的并行化模型,例如Serial,MPI和CoArray。生成的项目包括库,单元测试(目前利用Fortuno单元测试框架),以及可选的独立应用程序和示例。
简单:通过fpm设置GitHub存储库的步骤,以及包括福特(1)文档和单位测试在内的GitHub动作,由UrbanJost
F90_MakeFile_Builder:Python程序通过Benjamin Pieczynski浏览每个模块以搜索每个模块以构建Fortran 90程序的制作程序。该算法确定依赖项的顺序,并以正确的顺序构建制造文件。
FAB:为FORTRAN和C项目构建系统。最初旨在构建大都会办公室的主要科学应用程序,即LFRIC和UM。
FCM:Metomi的现代Fortran Build System +包装器颠覆科学软件开发
ff08依赖性:用于获取Fortran 2008源文件的文件依赖信息的命令行工具,由ianh撰写的Fortran 2003
fobis.py,穷人的Fortran构建系统:用于使用依赖性层次结构的文件自动解析,并包括语句,以及Szaghi等人在根目录中发现的所有程序或仅在根目录中构建的所有程序。
fortdep:Python 3脚本,用于在fortran模块之间生成依赖性,由Dominik gronkiewicz撰写
FortDepdectect:Python脚本生成Fortran Projects的依赖性,Zedthree
Forte:短脚本可以从Linux Shell中更灵活地执行Fortran 90代码,by Ed Higgins
fortran-compiler-with-two-computers:Python代码,以促进一台计算机上编译Fortran源文件的工作流程,并在Jucelio Tavares Junior上运行另一个计算机输出(DLL)。它是通过单独的机器处理仿真和编译过程的分布式环境的理想选择。
fortrandep:python工具,以确定fortran项目的makefile依赖性,ryan orvedahl
fortran_makedeps:小型python脚本,以扫描fortran源并产生适合file的依赖,詹姆斯·比德尔(James Biddle)
fortranmakeutils:用于生成依赖树和makefiles的python脚本,由丹尼斯·埃拉斯(Denis Eiras)
Visual Studio的Fortran软件包管理器:使用Fortran软件包管理器(FPM)添加了用于构建,运行和测试您的FORTRAN项目的选项和菜单条目,
FORTRAN项目模板:带有预加压检查的项目模板,使用fpm build编译检查,使用fpm test自动测试,使用fprettify进行代码格式,以及使用Matthalex的现代Fortran Vscode延期覆盖
FPM:Fortran软件包管理器(FPM)是Fortran-Lang的软件包管理器和构建系统
fpm completions:Shinobu Amasaki的Fortran软件包管理器的命令行完成功能。 ZSH目前需要使用此软件包。
FPM-GUI:Fortran软件包管理器(FPM)的Straigtforward图形用户界面,由Arjen Markus
fpm registry:Fortran-Lang网站的FPM软件包中央注册表
FPM搜索:列出了命令行中的FPM注册中的可用软件包,Urbanjost和Sebastian Ehlert。这允许快速找到fpm(1)软件包,并生成相关的依赖线,以插入希望使用它们的FPM(1)软件包清单文件(fpm.toml)。
GFORTRAN-CONFIG:Windows批处理脚本将在mingw-w64 gfortran环境中自动构建和运行fortran代码,并通过Cloudy-sfu构建Ubuntu Linux的类似bash脚本
githubactions_intro:引入github动作,作为科学数据工作流的轻质自动化的工具,由奥斯卡·莫吉卡(Oscar Mojica)在python和fortran中进行了示例
Homebrew-Fortran:为Federico Perini等人兼容的Fortran周围的工具和库提供包装构建说明。此水龙头中的可用软件包是FPM:Fortran软件包管理器和LFORTRAN:现代Interactive LLVM基于Fortran编译器。
Intel®Oneapi数学库链接线顾问:请求有关计算机系统的信息以及有关如何使用Intel®OneapiMath内核库(动态或静态的链接,使用螺纹或顺序模式等)的信息,并自动为应用程序生成适当的链接线
JAMS_MAKEFILE:提供一种可移植的,多功能的方式来编译Fortran,C,C ++和混合项目,McUntz
makedepf90:生成fortran代码的依赖性,埃里克·埃德曼(Erik Edelman)
Makefile-Maker:Garl4nd的自动Fortran Makefile Maker。该程序首先扫描所有fortran文件以导入其他源文件,并创建有向依赖项图,每个顶点代表文件,从a到b的箭头根据B。
Makemake:Michael Wester首先开发的Perl脚本是为了为现代Fortran代码构建正确的Makefiles,并为较新的编译器修改,并由Katherine Holcomb为C ++工作。它的用法在这里讨论。
MakeMake90:Jan Berges生成的Python脚本,为模块化福特计划生成Makefiles。它递归地搜索了.f90文件的工作目录并确定其依赖性。
梅森:下一代构建系统。 Test-Meson是带有Fortran代码的示例Python项目。
Fortran软件包管理器的MINGW软件包:为Fortran软件包管理器(FPM)提供与MSYS2工具链兼容的软件包构建指令。该项目在发布页面上提供了预构建的MINGW软件包。
Mkhelper:Skosukhin由GNU AutoConf和GNU制造用于构建Fortran项目的公用事业的收集,由Skosukhin
MKMF:用perl5编写的工具,该工具将从NOAA-GFDL构建分布式源的makefile。单个可执行程序是典型的结果。
PYFPM:提供FORTRAN软件包管理器中使用的FPM软件包清单格式的Pydantic模型,Sebastian Ehlert
运行式 - 基于模块的定义和用法,lycantropos的fortran文件。
SPACK:超级计算机,Linux和MacOS的软件包管理器,使安装科学软件变得容易。它与特定语言无关 - 可以在Python或R中构建软件堆栈,链接到C,C ++或Fortran编写的库,并轻松交换编译器或目标特定的微体系结构。
冗长的goggles:生成戈达德·戈里昂(Goddard Guryon)的Fortran Project模板。 create_project.sh脚本以输入为项目名称(并选择一个项目目录名称),创建项目文件夹,构建和文档中的文件夹,并将模板文件保存在cmake和doxygen中。
Xmake:基于LUA的轻质跨平台构建实用程序。它使用xmake.lua维护项目构建。支持的两个Fortran编译器是Gfortran和Ifort。
CHATGPT:从英语或其他自然语言的问题描述中生成Fortran代码,并将代码从其他编程语言转换为Fortran,有时会出现错误。 Chrome chrome扩展程序允许使用GFORTRAN编译代码并在Chatgpt Web界面中运行。其他可以生成Fortran代码的LLM是困惑,Groq,Claude,Mistral,Mistral,Vertex ai与Google的Gemini,Meta AI上的Llama 3和Github Copilot。
IRPF90:Fortran编程环境,通过将隐式参考应用于参数方法(IRP)来帮助开发大型Fortran代码
枫:有一个Fortran命令,将枫码转换为Fortran 77(c)
MATHCODE F90:从Mathematica代码生成独立的fortran 90代码,可选地通过Mathink连接到Mathematica(C)
MATLAB:FORTRAN函数从符号表达式生成Fortran代码片段,或者生成包含代码片段(C)的文件
Maxima内置的fortran命令将表达式打印为fortran语句。 F77是一种增强。
参数fortran:Martin Erwig等人,可以产生Fortran程序生成器的生成器,该生成器可以生成Fortran的扩展,专门支持特定应用程序的编程。扩展是通过参数结构指定的,可以在Fortran程序中引用,以描述程序零件对这些参数的依赖性。
PSYCLONE:针对有限差/音量/元素接地系统模型的域特异性编译器和代码转换系统
sympy:可以生成fortran代码的符号数学的Python库,如Ivan Pribec所示
argv-fortran:更好的get_command_argument for fortran fortran返回可分配的字符串中的参数,jacob williams撰写
CMDFF:布拉德·理查森(Brad Richardson
command_args:由Arjen Markus自动处理传递给程序的命令行参数
f90getOpt:getopt() - 和getopt_long() - 喜欢功能(类似于c命令),用于fortran 90,hani andreas ibrahim,基于Mark Gates的代码
Fargparse:命令行论证解析Fortran,该戈达德福特兰生态系统的一部分
襟翼:库,旨在简化Stefano Zaghi的Fortran 2003中复杂CLI的(重复)构造。皮瓣受到Python模块Argparse的启发,并试图模仿它。
ftn_getopt:以类似于c中的getopt设施的方式,提供了一种处理命令参数的方法
M_CLI:在给出了名字符号和原型字符串时,会破裂命令行,看起来非常像Urbanjost和Laurence Kedward的程序的调用。使用NAMELIST组的好处是,不需要将字符串转换为所需类型或复制类型声明。
M_CLI2:在给出了Urbanjost等人的原型字符串时,会破裂命令行,该原型字符串看起来很像程序的调用。然后,对每个参数名称进行呼叫get_args(3F)或其一个变体之一,以适当设置程序中的变量。
M_KRACKEN95:FORTRAN 95版本的Kracken(3F)过程(及相关例程),用于命令行解析,由Urbanjost撰写
OptionsF90:Christopher N. Gilbreth的定义和解析命令行选项和输入参数的模块。它的设计灵感来自Python的OptParse模块。
paramcard:命令行参数输入简单,takahiro ueda
FORTRAN-COMPILER考试套件:包含一个框架和套件,用于测试Fortran编译器的框架,其主要目标是使Fortran社区易于添加测试并使Brad Richardson等人的广泛编译器易于使用该框架。
FORTRAN测试框架(FTFRAMEWORK):Python和Bash脚本的收集,可轻松使用Bash自动化测试系统蝙蝠对FORTRAN编译器进行轻松测试
AMD优化C/C ++/Fortran编译器(AOCC):高性能,生产质量代码生成工具。 AOCC环境为开发人员提供了各种选项,同时构建和优化C,C ++以及针对32位和64位Linux®平台的Fortran应用程序。
AOMP:基于开源的Clang/LLVM编译器,并增加了Radeon™GPU上的OpenMP®API的支持。安装F18的说明在这里。
ARM FORTRAN编译器:针对服务器,HPC和科学代码量身定制,并支持Fortran和OpenMP。该编译器建立在开源Flang前端,以及基于LLVM的优化和代码生成后端。 (C)
F18-LLVM项目:F18的LLVM/LLVM项目的叉子。与F18-MLIR和F18同步。
Flang:Flang(也称为“ Classic Flang”)是针对LLVM的未树外编译器。这是PGFORTRAN的开源版本,PGFORTRAN是PGI/NVIDIA的商业福特兰编译器
Flang-WASM:包含构建LLVM的Flang-New编译器修补版本的工具,可用于编译WebAssembly的Fortran源。还为WebAssembly构建了一个预先构建的fortran运行时库。
fortran-dev-image:图像包含HåkonStrandenes的最新版本的编译器,MPI和HDF5库以及基本的构建工具(Cmake,Ninja)。然后,这些图像可用于编译依赖MPI和HDF5的FORTRAN应用程序。
FORTRAN高级合成(Fortran-HLS-Main):通过在Vitis生态系统中的LLVM Flang整合在AMD Xilinx设备上启用Fortran,从而实现了所有特征的使用,例如模拟,分析和硬件BitsReams的生成。相关论文:Fortran高级合成:降低了Gabriel Rodriguez-Canal等人的FPGA上加速HPC代码的障碍。
fortran-ios:用flang构建iOS ARM64来源的Fortran编译器的脚本,由Emma Cold撰写
Fortran kernel for jupyter in Coarray支持:来自Sourceryinstitute
Fortran-setup:脚本设置一个系统,用于在基于Ubuntu的系统上使用Federico E. Benelli的系统。 It installs a Python package manager for some Python-based tools, gfortran, optionally Intel oneAPI HPC, BLAS and LAPACK, gdb, fuzzy-finder (fzf), Fortran Package Manager (fpm), findent, flinter, FORD, fortls, and fortran_project, a script to generate and open projects.
Fortran.rs:Fortran的口译员,用Rust撰写的Xavier2p,正在进行的开发
Full-Stack-Fortran:Christoph Honal等人的工具链将Fortran编译为WebAssembly,以及一些使用它的项目。
GFORTRAN:GNU FORTRAN项目,开发免费的Fortran 95/2003/2008编译器,用于GCC,GNU编译器集合。 GFORTRAN开发工作利用开放的开发环境来吸引大型开发人员团队,并确保Gfortran可以在多个架构和不同的环境上工作。 Fortran-Lang讨论了各种平台上的Gfortran安装。对于Windows,有Quickstart Fortran。
gfortran-for-macos:fxcoudert撰写的Macos Intel的Gfortran。
G95:稳定,生产Fortran 95编译器可用于多个CPU架构和操作系统。 F2003和F2008标准的一部分已实施
HPE Cray编程环境:与编译器,工具和库完全集成的软件套件,旨在提高程序员的生产力,应用程序可伸缩性和性能。除了支持多种编程语言,编程模型,编译器,I/O库和科学库外,该套件还为包括调试,绩效分析,工作量管理和环境设置在内的领域提供了各种支持的工具。 (C)
IBM fortran:forAix®的XL Fortran:在IBM AIX上构建优化和调整的FORTRAN应用程序。
用于Linux的XL Fortran:优化IBMPower®系统上Linux的HPC和认知FORTRAN应用程序,包括Power9™处理器。
vs fortran:使用IBM vs fortran为IBMZ®和Z/VM®开发有效的应用。 (C)
英特尔·福特兰(Intel Fortran):建立在生成优化代码的悠久历史上,该代码支持行业标准,同时利用Intel®Xeon®可伸缩处理器和Intel®Core™处理器的内置技术。编译器现在与英特尔不断发展且多样化的体系结构保持一致,现在支持GPU。
LFORTRAN:现代开源(BSD许可)互动式Fortran编译器建于LLVM之上。它可以交互式执行用户的代码,以允许探索性工作(就像Python,Matlab或Julia一样),并以二进制文件为目标,其目标是在Multi-Core CPU和GPU等现代体系结构上运行用户代码。
MacOS-Cross-Compiler:Compile C,C ++和Linux上的Fortran代码,该代码将由MacOS上的Jerred Shepherd执行。该项目的重点是支持MACOS的新版本。
Mercurium:C/C ++/Fortran Source-Source-Source汇编基础设施,针对巴塞罗那超级计算中心的编程模型组开发的快速原型。将Mercurium与Nanos ++运行时库一起使用,以实现OMPSS编程模型。这两个工具还提供了OpenMP 3.1的实现。
现代 - 武器 - 骗子:建造现代越野码头图像的Dockerfile。它基于Ubuntu 23.10,该23.10具有对Linux内核的多种增强功能,并支持GCC GFORTRAN v13.2.0。这款Dockerfile安装了Gfortran,OpenMPI和OpenCoArrays,还安装了现代Fortran项目的Git克隆。
NAG:强大且经过高度测试的FORTRAN编译器,以其检查功能和详细的错误报告而受到重视。在Linux,Microsoft Windows和Mac OS X上可用,包括Apple Silicon Mac。 (C)
NEC:Fortran编译器符合Fortran-2003标准(ISO/IEC 1539-1:2004),并支持Fortran-2008的许多功能(ISO/IEC 1539-1:2010)。 NEC在高端矢量机上拥有30多年的编译器技术经验,这些新开发的编译器将基于这种经验,并支持NEC编译器已知的所有优化策略。 (C)
NVIDIA HPC软件开发套件:NVIDIA HPC SDK C,C ++和FORTRAN编译器支持HPC建模和使用标准C ++和Fortran,OpenACC®指令和CUDA®的HPC建模和仿真应用程序的GPU加速。 GPU加速数学库可在常见的HPC算法上最大化性能,并且优化的通信库启用了基于标准的多GPU和可扩展系统编程。
OMPI:由学术,研究和行业合作伙伴共同开发和维护的开源消息传递界面(MPI)实施
开放式Fortran编译器(OFC):目标是提供一个fortran静态代码分析工具,这是一种fortran Modernizer,可以在可能的情况下将遗产fortran重印为F90,并为开放源代码编译器提供替代的Fortran前端。
Oracle Developer Studio Fortran编译器F95:提供以下功能和扩展:对多处理器系统,VAX/VMS fortran扩展,OpenMP并行化指令,全局,PEEPHOLE,以及潜在的并行性优化的优化自动和显式循环并行化。 (C)
操场:Ashirwad Mishra等人的浏览器中的Interactive Fortran Playground。它的主要目的是让新移民轻松地品尝到该语言并学习Fortran编程的基本信息。
玫瑰:大型C(C89和C98),C ++(C ++ 98和C ++ 11),UPC,Fortran(77/95/2003),OpenMP,Java,Python和PHP应用
设置 - Fortran:从Fortran-Lang上设置Ubuntu,MacOS和Windows上的Fortran编译器和工具链的GitHub操作。可用的编译器是GFORTRAN,IFX,IFORT,LFORTRAN和NVFORTRAN。
Silverfrost Fortran FTN95:完整的Fortran 95标准编译器,能够为Win32和Microsoft .NET生产快速的可执行文件。 FTN95船上拥有世界上最好的运行时检查和各种支持软件。有一个免费的个人版。 (C)
VSI Fortran for OpenVM:支持Fortran 66,Fortran 77,Fortran 90和Fortran 95标准
XCC项目:C/C ++/fortran编译器收集,用Java编写的Jianpingzeng
Fortran stacktrace:通过在C ++库向后提供一个fortran包装器来生成堆栈跟踪。它还与Fortran错误处理库集成,以生成包括StackTrace的错误。
GDB_FORTRAN_TOOLS:支持Fortran代码的更高级的GDB调试:对许多基本的Numpy数组操作员的通用访问:SUM,MIN,MIN,MAX,LOG10等;图形:情节,Imshow,散布;保存数据:Cickle,CSV,Ken Mankoff和X-Neon
串行箱:数据序列化库和C/C ++,Fortran和Python3的工具,用于从苏黎世ETH构建针对参考运行的验证框架
UPS:Mark Russell在X11下运行的源C,C ++和Fortran调试器。当前支持的系统是Intel X86上的FreeBSD和GNU/Linux,以及SPARC上的Solaris。
Align-F90:Jannisteunissen的Emacs的Fortran 90的对齐支持
DOOM EMACS FORTRAN模块:为Fortran提供一个完整的现代开发环境。它与FPM的集成,通过FORTLS的LSP支持,通过FPRETTIER进行自动形成以及对Gfortran和Intel Fortran的支持。
Emacs:可扩展,可自定义,免费文本编辑器。在这里下载。
F90format:与史蒂夫·珀塞尔(Steve Purcell)的emacs-reformatter相关的fprettify的包装,由特洛伊·布鲁姆利(Troy Brumley)撰写
F90-IFACE:Wence-和Monnier的Fortran 90仿制接口的基于EMACS的浏览器
F90-NAGELIST模式:扩展到Emacs F90模式以处理Fortran Namelists,由Zedthree
Fortpy:Rosenbrockc和Wsmorgan,Python Emacs Intellisense和对Fortran的单元测试支持
Fortpy-el:与Fortpy集成的EMAC的LISP软件包,为Fortran 2003提供了特定于上下文的自动完成和IntelliSense,包括面向对象的构造,由RosenBrockc提供
fortran-index-args:ffevotte在列表中的每个参数之前,数字subroutine参数并显示索引。此类索引仅显示在屏幕上,但不要修改基础缓冲区。
Fortran层:Fortran语言的基本码头配置层,Marco Scopesi
fortran标签:Raullaasner等人的焦点,重点是查找任何变量或过程的定义。它能够正确找到所有全球和本地变量,并有望与任何Fortran 2008符合代码合作,但如下所述。
fprettify.el:fprettify的界面,现代福特代码的自动格式,由osada-yum
CCX_FFF:Python脚本将旧的Fortran 77代码转换为带有colculix的免费形式的代码。移动评论和延续标记以获得更好的代码折叠。
EZUP:将Fortran固定源形式转换为自由源形式的工具,与Elf90兼容,到August Miller
F2F:perl脚本,它完成了将Fortran 77源代码转换为现代Fortran的许多繁琐的工作,由Colby Lemon
F2F90:迈克尔·梅特卡夫(Michael Metcalf),彼得·A·罗奇福德(Peter A. Rochford)和本·特雷特尔
F77TOF90:python脚本在fortran 77(.f或.f)固定的表单文件中读取,并将其转换为MattDturner的Fortran 90文件(.f90或.f90)的免费表单。它成功地用于将旧版代码库(超过400 .f/.f文件和数百万行代码)从fortran 77转换为fortran 90。
ffixed2free:将fortran固定格式源代码(Fortran 77样式)转换为自由格式源代码(Fortran 90样式),Pirmin Kaufmann和Martin Schraner。 ffixed2free不需要固定格式代码仅限于Fortran 77标准。
fortran77_to_fortran90:将旧固定源Fortran 77代码转换为fortran 90代码的免费形式,koushikphy
Fortran-Legacy-tools:处理Fortran代码的工具:固定到自由源形式转换器,上层转换器,较低的转换器,用于可变声明的格式化,Ylikx
fortran_tools:Python 2剧本James Goppert和Lenna Peterson
自由式:脚本将固定表格的Fortran文件(用Fortran 77编写)和标题文件免费形式,由BAST
GConvert:将固定形式的Fortran转换为GeorgetSikas固定或自由形式的代码的程序。
to_f90:艾伦·米勒(Alan Miller
EGGX/PROCALL:C,C ++和FORTRAN创建的X11图形库是为了实现简单性的。一个人可以使用基本风格的绘图功能在X Window系统上轻松创建2D图形。
FTK:提供了一种简单的手段,可以根据Arjen Markus在基于TCL/TK的Fortran中构建图形用户界面。在目前的状态下,它是概念证明,而不是成熟的库。
Fortran-Graphics:Ed Higgins用OpenGL编写的图形库
Gino:用于创建复杂的2D和3D图形和GUI应用的高端功能API。 Gino产品可用于Windows和Linux下的Fortran。 (C)
GTK-Fortran:Vincent Magnin等人的跨平台库(GUI)构建图形用户界面(GUI)。 GTK-Fortran是用Fortran编写的部分GTK / Fortran绑定,这要归功于C和Fortran之间的互操作性的ISO_C_BINDING模块。
小文件对话框:在C中提供许多模态和文件对话框,并提供ISO_C_BINDING接口 /模块,以从Fortran,Guillaume Vareille来调用这些功能
Winteracter:Fortran编程语言的GUI工具集。它由各种视觉开发工具和大量的子例程库组成。支持了几个Fortran编译器。 (C)
ajt-fortran.vim:Ajit J. Thakkar的VIM缩进脚本的港口
FF08Obfuscate:命令行工具,用于生成Fortran 2008程序源的表面混淆的变体,该程序由Ianh用Fortran 2003编写。它通过修改程序中的标识符并在没有任何源注释的情况下渲染代码来做到这一点。
发现:凹痕和美化,固定和自由格式,并将fortran固定格式转换为wvermin and Mftabriz的Fortran Food Format。 Gnikit的Findent-Pypi具有PYPI车轮。
花:将自由格式的fortran代码转换为Urbanjost的所有小写或所有大写。在每种情况下,评论和引用的文本都留为IS。
Fortranindent:缩进Fortran 90来源的工具,来自Kairzhan
fortranindenter_unesp_2007:fortran 77在C中开发的缩进器,由Rafael Delalibera Rodrigues和Paulo Henrique Arantes urgal
fprettify:现代福特代码的自动格式,该代码施加了严格的白期格式,用python编写的Pseewald
f90split: splits free source form Fortran code into multiple files, one module or procedure per file, by Michel Olagnon, adapted by urbanjost for use with the Fortran Package Manager. Contained procedures are stored within their parent procedure
IndentPatternFortran: general indentation patterns for Fortran, by JHenneberg
xpand: expands tabs in files. removes trailing white space, and optionally removes multiple blank lines, by urbanjost. It is primarily intended for use on systems without access to the Unix command expand(1).
ctypesForFortran: Python module to generate Python bindings to Fortran subroutines using ctypes, by Sébastien Riette and Alexandre Mary
Cython fortran-file: fast and easy reader for record-based binary format, as written by Fortran, by Corentin Cadiou
Cython_ISO_Fortran_binding: code for using ISO_Fortran_binding.h from Cython, by Yuichiro Sakamoto. By using ISO_Fortran_binding.pxd, it is possible to call Fortran from Cython in the same way as one calls Fortran from C.
extutils-f77: Perl module that tries to figure out how to link C programs with Fortran subroutines on a system, adding a list of Fortran runtime libraries, by mohawk2 et al.
f2py-with-derived-types: demonstrates how to use f2py with Fortran derived types with type-bound procedures, by Nick Wogan
F2x: versatile, template-based Fortran wrapper written in Python. Compared to the popular tool f2py it comes with two important differences: a full Fortran parser based on the work by the OpenFortranParser, and a very flexible code generation backend that uses Jinja2 templates.
f90nml: Python module and command line tool, by Marshall Ward et al., that provides a simple interface for the reading, writing, and modifying Fortran namelist files. A namelist file is parsed and converted into an Namelist object, which behaves like a standard Python dict
f90_port: tests Erlang ports to Fortran, by Pedro Schreiber, explained here
f90wrap: Fortran 90 to Python interface generator with derived type support, by jameskermode et al.
ffi-flang-zig: FFI between flang-new runtime and Zig by Matheus C. França, inspired by sourceryinstitute/ISO_Fortran_binding. LLVM/flang v18.1.7 files are included in this repository.
fffi: tool to transparently use shared libraries generated by Fortran in Python with NumPy arrays, from the pyccel project. It is based on CFFI and currently assumes the use of gfortran or Intel Fortran.
fgen: provides Python interfaces to Fortran code, specifically derived types, by Jared Lewis and Zebedee Nicholls. An example of fgen-wrapped Fortran code is at fgen-example.
fimport: Python import hook for importing Fortran module, by Pauli Virtanen
fmodpy: lightweight, efficient, highly automated, Fortran wrapper for Python, by Thomas Lux. The generated wrappers are self contained, written purely in Python, and are immediately sharable to any other POSIX platform with a Fortran compiler installed.
fortformat: Rust parser for Fortran format strings, by Joshua Laughner
Forthon: Python wrapper generator for Fortran, allowing access to functions and subroutines, by David Grote et al.
FortModGen: generate consistent Fortran and C/C++ data structures, and a consistent C/C++ API from a toml configuration file for global object interop, from neut-devel
fortran2cc2fortran: Fortran to C / C to Fortran (nested) index converter, by Hans Alemão
Fortran90Namelists.jl: Julia implementation of Python f90nml for working with Fortran namelists
FortranFile: read data using Swift from files using a Fortran format specification, by Nick Everitt
FortranFiles.jl: Julia package for reading/writing Fortran unformatted (ie binary) files, by Frank Otto et al.
Fortran filesystem: file system path manipulation utilities for standard Fortran, from scivision. Inspired by Python pathlib and C++17 filesystem.
FORTRAN format interpreter for Python (py-fortranformat): Generates text from a Python list of variables or will read a line of text into Python variables according to the FORTRAN format statement passed, by Brendan Arnold and michaelackermannaiub
fortran_magic: extension for IPython/Jupyter that helps to use Fortran in an interactive session, by Martín Gaitán
FortranNamelist: Java reading class for Fortran namelists, by Jonathan Schilling
Fortran Namelist Reader: Python and Matlab readers for Fortran namelist => dict / struct, from scivision
fortran-namelist: Ruby library to manipulate Fortran namelists, by Saji Hameed
fortran-unix: Fortran 2008 ISO C binding interfaces to selected POSIX and SysV types, functions, and routines on 64-bit Unix-like operating systems, by interkosmos
fpydemo: demonstration of packaging a command line tool written in Python and Fortran, by Saikat Banerjee
ftest: demonstrates how to call R functions from Fortran, by Balasubramanian Narasimhan. A fully worked example is provided in the form of a vignette.
fython: Fython is Fortran with a Python syntax, by Nicolas Essis-Breton. Fython code can be used in Python with a standard import statement.
GenericF2PY: demonstrates how to handle Fortran binaries in Python modules, by Charlie Taylor
gfort2py: library to allow calling Fortran code compiled with gfortran from Python 2.7 or Python 3, by Robert Farmer and Ondřej Čertík
h2m-Autofortran-Tool: allow easy calls to C routines from Fortran programs, by Garnet Liu and Michelle Anderson. Given a header file in standard C, h2m will produce a Fortran module providing function interfaces which maintain interoperability with C. Features for which there are no Fortran equivalents will not be translated and warnings will be written to standard error.
haskell-fortran: example of how to use Haskell's foreign function interface (FFI), and C's Fortran FFI, to connect ultimately Fortran code to Haskell, and to Haskell's HMatrix library, by Josh Freckleton
inline: provides functionality to dynamically define R functions (and corresponding S4 objects) from in-line C, C++ or Fortran code, by Dirk Eddelbuettel et al.
jansfortrankernel: Jupyter kernel implementation of Fortran, by Jan Arman Parpin
libfde: Fortran Development Extensions (library), by Zorkator
M_process: read and write lines to or from a process from Fortran via a C wrapper, by urbanjost
M_system: module that allows Fortran to call commonly available C routines that perform basic system operations like creating and deleting files and directories, changing and querying file permits, getting basic ID and process information, ... and other POSIX system requests, by urbanjost
multilingual-julia: minimally complete examples of Julia calling and being called by Fortran, C, and Python, by Alex Barnett
Mwrap: interface generation system in the spirit of SWIG or matwrap, by Zydrunas Gimbutas et al. From a set of augmented MATLAB script files, MWrap will generate a MEX gateway to desired C/C++/Fortran function calls and MATLAB function files to access that gateway. Mwrapdemo by Alex Barnett contains simple, minimally complete examples showing how to use MWrap to link to a C or Fortran library, pass in and out 1D and 2D arrays, handle complex, float, and Boolean types, and use OpenMP.
namelist_python: Fortran namelist parser in Python, by Leif Denby et al.
nml: R package for parsing Fortran namelist files, by Jem Stachelek et al.
nml: query/modify utility in Clojure for Fortran namelists, by Paul Madden and Jemma Stachelek
nml: serialize and deserialize Fortran namelist input in Rust using the serde framework, by manorom
node-fortran: bridge that allows Fortran code to be from Node.js, by Ionică Bizău
process_model: reads a TensorFlow SavedModel and outputs Fortran code to interface it to the fortran-tf-lib, by Simon Clifford et al.
pyifb: Python interface to Fortran's ISO_Fortran_binding.h, by Robert Farmer
RFortranRcpp: communication between Fortran, Rcpp and R, by Konrad1991. Passing R or Fortran user code to Fortran code from a package.
setup_mex: provides scripts that attempt to facilitate setting up the MATLAB MEX on macOS or Windows, by Zhang Zaikun. For Fortran, it will install (automatically) the Fortran compiler from Intel oneAPI
shroud: creates a Fortran or Python interface to a C or C++ library, from LANL. It can also create a C API for a C++ library.
Simplified Wrapper and Interface Generator (SWIG): creates Fortran wrapper code from C++ headers
SUtools: Tools for autogenerating Fortran registration code for R, by Balasubramanian Narasimhan
thenamelisttool: provide command line tools useful to work with namelists or pack of namelists (update them, compare them, ...), by Louis-François Meunier and Alexandre Mary
TorchFort: deep learning training and inference interface for HPC programs implemented using LibTorch, the C++ backend used by the PyTorch framework. This library can be invoked directly from Fortran or C/C++ programs.
vecLibFort: lightweight but flexible "shim" designed to rectify the incompatibilities between the Accelerate/vecLib BLAS and LAPACK libraries shipped with Mac OS X and FORTRAN code compiled with modern compilers such as GNU Fortran, by Michael C. Grant and Robert Huston
allgebra: docker images for developing C++ and Fortran HPC programs, by termoshtt and t-hishinuma
Codee: automatic code inspection platform specialized in performance for time-critical C/C++/Fortran applications (C). Training materials are here.
fortran-parser: Fortran preprocessor in Python, by Touko Puro, designed for multithreading and GPU offloading through OpenMP, featuring automatic privatization of modified global variables in multithreaded code, Fortran array operation unrolling to DO-loops with automatic declaratives to spread work either along CPU or GPU threads, automatic declarations for global variables needed in target regions, and function inlining which helps OpenMP offloading
gpufort: source-to-source translation tool for CUDA Fortran and Fortran+X in the spirit of hipify
hipfort: Fortran Interface For GPU Kernel Libraries
Hybrid-Fortran: directive-based extension for the Fortran language to support GPGPU. Its input is Fortran code with Hybrid Fortran extensions, and its output is CUDA Fortran or OpenMP Fortran code.
mpich: high-performance and widely portable implementation of the MPI-3.1 standard from the Argonne National Laboratory
occa: portable, and vendor neutral framework for parallel programming on heterogeneous platforms. The OCCA API provides unified models for heterogeneous programming concepts—such as a device, memory, or kernel—while the OCCA Kernel Language (OKL) enables the creation of portable device kernels using a directive-based extension to the C-language.
ohhelp-for-fpm: dynamic load balancing and scalability library that supports massively parallel particle-in-cell simulations using MPI. Each process handles the particle calculations within the partitioned area while taking on some of the particles handled by other processes so that the overall load is balanced.
Omni Compiler: compiler for code including XcalableMP, XcalableACC, and OpenACC directives. The base languages supported by Omni Compiler are C language (C99) and Fortran 2008 in XcalableMP, and C language (C99) in XcalableACC and OpenACC.
OMPify: generates OpenMP pragmas for C, C++ and Fortran code snippets using Transformers.
OpenCoarrays: supports Fortran 2018 compilers by providing a parallel application binary interface (ABI) that abstracts away the underlying parallel programming model, which can be the Message Passing Interface (MPI) or OpenSHMEM, from sourceryinstitute
SPEL_OpenACC: code associated with the paper SPEL: Software tool for Porting E3SM Land Model with OpenACC in a Function Unit Test Framework, by Peter Schwartz et al., 2022 Workshop on Accelerator Programming Using Directives (WACCPD). It provides a robust method to port the E3SM Land Model (ELM) onto GPUs.
stng: compiler for Fortran stencils using verified lifting, by Alvin Cheung et al. It takes input codes in Fortran and automatically rewrites them to Halide, a new high-performance domain-specific language that leverages GPUs for computation.
System FOR Automated Parallelization (SAPFOR): software development suite that is focused on cost reduction of manual program parallelization, by kaniandr and zoocide. It was primarily designed to perform a source-to-source transformation of a sequential program for execution on heterogeneous clusters.
accis: plotting and graphics library by Ian Hutchinson. Related project: PLOTTRACES
asgl: produces a PostScript or Encapsulated PostScript file that can contain scatter plots, line plots, histograms, 2D density plots, and/or bond-and-stick plots of molecules, by Andrej Šali
CHART_COUPE: Fortran plotting package based on NCL libraries, tuned for geophysical numerical model output, from meom-group
DISLIN: high-level plotting library for displaying data as curves, polar plots, bar graphs, pie charts, 3D-color plots, surfaces, contours and maps, available for several C, C++, Fortran 77 and Fortran 90/95 compilers on the operating systems Unix, Linux, FreeBSD, Windows, Mac OSX and MS-DOS. The DISLIN distributions can be used freely without any restrictions. Access to the source code and a preferred support is available via a contract.
Dislin_x_y_plot: generates plots from within a Fortran program nearly as easily as with the provided Dislin "quickplots", by Andi Zuend. However, unlike the quickplots, this module offers a lot more options for controlling the plot page, axis system and various curve properties. It also makes adding multiple x--y data sets (curves) to a single plot easy.
fplot: provides a convenient interface for plotting with gnuplot, by jchristopherson
fortplot: plot module for Fortran so that plotting can be done in real time (on the fly), by Anjishnu Sarkar
giza: 2D scientific plotting library built on cairo, by Daniel Price et al. Provides uniform output to pdf, ps, png and X-Windows. Written in C with no dependencies (other than cairo) as a direct replacement for PGPLOT.
gnufor2: Fortran 90 module by Alexey Kuznetsov with subroutines for plotting data, including 2D, 3D plots, surfaces, polar coordinates, and histograms. It is a modification of the GNUFOR interface written by John Burkardt.
gnuplotfortran: Fortran 95 gnuplot interface for some Unix-like OS'es, by Madhusudan Singh. This provides some routines that enables direct access of a child gnuplot session from a Fortran 95 program. fortranposix must be installed.
graffer: interactive tool for generating plots of data and/or functions, by James Tappin. The original graffer was an IDL program. This version provides most of the same functionality in a Fortran program using gtk-fortran and plplot for the GUI and plotting respectively. To display functions gdl (gnudatalanguage) or IDL is required.
M_calcomp: old graphics library used in conjunction with M_draw for work with old codes, by urbanjost. The CALCOMP library is a simple set of FORTRAN callable graphic routines that allows users to quickly construct plots.
M_slices: basic slice plot module based on M_draw(3f) and built using fpm, by urbanjost. This version requires X11 Windows.
MUESLI: numerical and graphical library, written mainly in Fortran 95, by Édouard Canot. Fortran Muesli Library contains all necessary materials to numerically work with a dynamic array (dynamic in size, type and structure), called mfArray. Fortran Graphics Library contains graphics routines which use the mfArray objects.
ogpf: Object-Based Interface to gnuplot from Fortran, by kookma
PG2PLplot: facilitate the transition from Fortran code linked against PGPlot to linking it against PLplot, which is open source and maintained. Currently, many PGPlot routines are included, but the code is by no means exhaustive.
PGPLOT PGPLOT Graphics Subroutine Library is a Fortran- or C-callable, device-independent graphics package for making simple scientific graphs, by Tim Pearson. It is intended for making graphical images of publication quality with minimum effort on the part of the user. For most applications, the program can be device-independent, and the output can be directed to the appropriate device at run time.
plotterf90: graphics subroutine library producing Postscript, by Masao Kodama
Plotutil: uses gnuplot to draw plots from data files, by Roninkoi. Has array handling utils and code for sorting and line fitting.
PLplot: can be used to create standard xy plots, semi-log plots, log-log plots, contour plots, 3D surface plots, mesh plots, bar charts and pie charts. Multiple graphs (of the same or different sizes) may be placed on a single page, and multiple pages are allowed for those device formats that support them. C library with bindings to Fortran 2003 and many other languages. archlinux-plplot-fortran has a plplot build for Fortran on archlinux, by Vikas Sharma.
PlPlotLib: wrapper for PlPlot inspired by the interface of matplotlib, by zoziha. It is intended to fill the need for rapid feedback while developing numerical simulations, and does not replace more sophisticated packages such as matplotlib or even direct use of PlPlot.
pltFor: Fortran-Python interface library by Damien Minenna to plot figures directly in Fortran, by calling Matplotlib
PSPLOT: library of Fortran-callable subroutines which can be combined in a calling program to produce PostScript plot files. Intended for users interested in generating technical drawings or graphics for technical journals in PostScript format.
PyFerret: Ferret is an interactive computer visualization and analysis environment designed to meet the needs of oceanographers and meteorologists analyzing large and complex gridded data sets, from NOAA/PMEL. It runs on recent Unix and Mac systems, using X windows for display. PyFerret, introduced in 2012, is a Python module wrapping Ferret.
pyplot-fortran: generate plots from Fortran using Python's matplotlib.pyplot, by Jacob Williams
SPLASH: visualisation tool for Smoothed Particle Hydrodynamics (SPH) simulations in one, two and three dimensions, developed mainly for astrophysics, by Daniel Price et al. It uses a command-line menu but data can be manipulated interactively in the plotting window. SPLASH can also be used as a standalone plotting tool for any kind of tabulated or image data from ascii, csv or .fits files.
efpp: preprocessor for eFortran, a dialect of modern Fortran presented in S. Hosoyamada and A. Kageyama, A Dialect of Modern Fortran for Simulations in Methods and Applications for Modeling and Simulation of Complex Systems, Communications in Computer and Information Science, vol 946, pages 439-448, 2018 (Proceedings of AsiaSim2018).
exceptions: experiment with exceptions in Fortran via a simple preprocessing step, by Arjen Markus
f90 do nest: Python script to generated deeply nested do loops in Fortran, by Thomas Hayward-Schneider. It will generate "classical" nested do/enddo in f90code.F90 and also a do concurrent version in f90code_conc.F90.
FMacro: template preprocessor for Fortran, by Harris Snyder. Aims to address Fortran's lack of support for generic programming with a simple preprocessor, modeled after some of the language committee's early ideas for a template language feature, to be included in a future Fortran standard.
fortiel: Fortran preprocessor and metaprogramming engine, by Jhuighuy
fypp: Python-powered preprocessor, by aradi. It can be used for any programming languages but its primary aim is to offer a Fortran preprocessor, which helps to extend Fortran with condititional compiling and template metaprogramming capabilities
prep: Fortran pre-processor written in Fortran, by urbanjost
Caliper: library to integrate performance profiling capabilities into applications, from LANL. To use Caliper, developers mark code regions of interest using Caliper's annotation API. Applications can then enable performance profiling at runtime with Caliper's configuration API.
HPCToolkit: integrated suite of tools for measurement and analysis of program performance on computers ranging from multicore desktop systems to the nation's largest supercomputers. By using statistical sampling of timers and hardware performance counters, HPCToolkit collects accurate measurements of a program's work, resource consumption, and inefficiency and attributes them to the full calling context in which they occur.
MALloc Tracker (malt): finds where and how memory is allocated in C/C++/Fortran applications
Reference-Counter: extensible, object-oriented reference-counting utility for Fortran, described in Rouson, Morris & Xia (2012) This Isn't Your Parents' Fortran: Managing C++ Objects with Modern Fortran. Computing in Science & Engineering 14(2), 46-54.
timemory: performance measurement and analyis package with modular and reusable components which can be used to adapt to any existing C/C++ performance measurement and analysis API and is arbitrarily extendable by users within their application, from NERSC
FLOPPY: checks FORTRAN 77 code it according to various "coding conventions", by Julian J. Bunn. It can "tidy" the source FORTRAN, producing a new file with indented, do-loops, block if-s, and so on. The FLOW program takes the binary summary file produced by FLOPPY and produces various reports on the structure of the original FORTRAN program.
FordADT: associated with paper An Automated Tool for Upgrading Fortran Codes, by Lesley Mak and Pooya Taheri, Software (2022), discussed here
Fortran Language Program Remodeling system (FLPR): C++17 library for manipulating Fortran source code, from LANL. This package contains a "best effort" Fortran 2018 input parser for fixed and free form inputs, data structures for manipulating source code at the program unit, statement, and physical line levels, and sample applications that illustrate usage and provide some ideas as to how you could use the library.
Glasgow Fortran Source-to-Source Compiler (RefactorF4Acc): automatic refactoring tool to make Fortran code acceleration-ready, by wimvanderbauwhede and rouson. RefactorF4Acc's main purpose is to make legacy FORTRAN 77 acceleration-ready. In the process it converts FORTRAN 77 code into Fortran 95. In addition, RefactorF4Acc has a backend to translate modules to C/OpenCL.
Fortran Kernel Generator: KGen: Python tool that extracts partial codes out of a large Fortran application and converts them into a standalone/verifiable/executable kernel, by Youngsung Kim and John Dennis
fortrantools: tools to enable the use old or proprietary Fortran code with gfortran. They are intended to be used together with the gcc extensions in CodethinkLab's gcc branch.
Refactoring Of QUEstionable FORTran (Roquefort): creates module to replace existing common blocks, removes unused variable imported from modules, transforms implicit variable declaration to explicit variable declaration, and moves variables to a new module, from NLESC-JCER
Tidy: renumbers and otherwise cleans up old and tired FORTRAN source programs. TIDY accepts ANSI Fortran 77 with a default of 19 continuation cards as well as some IBM and CDC dialect FORTRAN statements, originally by Harry Murphy
camfort: refactoring and verification tool for scientific Fortran programs. It currently supports Fortran 66, 77, and 90 with various legacy extensions.
Cleanscape FortranLint: static source code analysis tool that reduces your organizational exposure to risks from latent software problems by automatically identifying problems at their source -- in the Fortran code prior to compiling or executing programs. (C)
CompareFortranNamelists: Python class to compare Fortran namelists, by Kai Keller
Code Comprehension Assistance for Evidence-Based performance Tuning (CCA/EBT): extracts the syntactic/semantic structures from Fortran code and then provides outline views of the loop-nests and the call trees decorated with source code metrics.
FF08Diff: command line tool for obtaining the semantic difference (difference in meaning, rather than appearance) between two sets of Fortran 2008 source files, written in Fortran 2003 by IanH
flint: Little linter for Fortran, with static analysis and formatting, by JonasToth
flint: aspires to be a Fortran parser, delinter, and analyser, by marshallward. For now, it is a Fortran tokenizer, with tools for parsing and automated documentation.
flint: source-code static analyzer and quality checker with multiple programming languages support. For fortran, it intends to follow the coding conventions mentioned in OMS Documentation Wiki page.
Forcheck: oldest and most comprehensive Fortran analysis tool on the market. It performs a static analysis of a Fortran program or separate Fortran program units. (C)
fordoctest: assures consistent documentation of a Fortran code, by Federico E. Benelli, checking on the source files included in a FORD file and warning if there is more than one module per file or if there are undocumented isolated procedures, modules, module procedures, or procedure arguments.
fortitude: Fortran linter and formatter, written in Rust, from PlasmaFAIR
FortranAS: Antlr4-powered FORTRAN parsing and code clone detection tool. FortranAS leverages grammars-v4 to generate parsers and lexers and supports any FORTRAN version with available corresponding grammars.
FortranProcedureDictionary: parses Fortran source files and extract information about procedures such as main programs, modules, functions, and subroutines, by Akhil Akkapelli. It utilizes the ANTLR4 library through PyCall to parse Fortran syntax and generates a text file containing the extracted procedure details.
fortree: Python app that creates call trees of your Fortran code, by Esther Taillifet. Fortree makes call trees, definition trees and dependencies trees.
ForUML: reverse engineering tool that generates Unified Modeling Language (UML) class diagrams from object-oriented Fortran programs, by azizn and Damian Rouson. ForUML understands and diagrams Fortran class relationships, including inheritance and aggregation. ForUML also detects and depicts operator overloading, constructors, and parallel data structures (coarrays).
fortlint: Fortran static source code analysis for more secured and bug free applications
fortrancallgraph: static source code analysis for Fortran, tracking variables in a routine's callgraph, from fortesg
fortran-callgraph: Tool to create call graphs from JULES source code
FORTRAN_callgraph_browser: browsing tool that reads in a directory of Fortran code and displays it as an interactive graph, by Dan Ellis and Richard Rigby
Fortran code quality: simple Python script that parses Fortran files and gives feedback on a few metrics relating to code quality, by Eirik F. Kjønstad and Sander Roet
Fortran linter: simple fortran syntax checker, including automatic fixing of the code, from cphyc
fortran-linter: linter for Fortran 77 using Parsec-like parsing combinators in Python, by uchchwhash
fortran_python_tools: analyzes the variable usage of fixed source form Fortran 77 code, by jinyuntang
FortranTree: parses Fortran source code and creates a call tree graph with Python, by imaliyov. The code relies on pygraphviz and fparser.
fortran-vars: static analysis library for Fortran code. It is built on top of the open source project fortran-src which provides lexing, parsing and basic analyses of Fortran code. Fortran-vars focuses on supporting the Fortran 77 standard and extensions. It provides a Fortran memory model with a symbol table and storage table, constant expressions evaluation, constant propagation analysis.
fparser: parser in Python which supports Fortran 2003 and some Fortran 2008, maintained by Andrew Porter et al., originally by Pearu Peterson
fpt - Tools for Fortran Engineering - Error Checking, Measurement and Assessment, Structural Engineering, Software Migration, Run-time Testing, and more. (C)
fsource: Fortran static analysis tool written in pure Python, by mwallerb
ftnchek: static analyzer for Fortran 77 programs. It is designed to detect certain errors in a Fortran program that a compiler usually does not.
fxtran: parses Fortran source code and decorates it with XML tags. The result is an XML file which can be searched with XPath, and modified with the DOM API.
i-CodeCNES: static code analysis tool to help developers write code compliant with CNES coding rules for Fortran 77, Fortran 90 and Shell, from cnescatlab. Related project: sonar-icode-cnes-plugin
K-scope: source code analysis tool with graphical user interface that visualizes program structures for Fortran 90 and FORTRAN 77 source code. This tool simply visualizes call tree from AST based on compiler's static analysis.
p6-fortran: Fortran language parser in Raku, by Edward Higgins
plusFORT - multi-purpose suite of tools for analyzing and improving Fortran programs, free for personal, educational and academic users working on non-commercial projects. (C)
pyft: Python script that reads a Fortran code, parses it in xml, performs some manipulations, and reverts it to Fortran, from UMR-CNRM. It can add and remove variable declarations, find unused variables, convert code to lower or upper case, and do other things listed here.
Simple Lint GitHub Action (simple_lint): runs simple lint-like actions on files in a git repository, from NOAA-GFDL. The current list of lint actions are to check for trailing whitespace, check Fortran files for use of tab characters, and check Fortran files for lines longer then a specified length.
tree-sitter-fortran: Fortran grammar for tree-sitter, by Matthew Stadelman et al.
Understand: static analysis tool focused on source code comprehension, metrics, and standards testing, supporting standards through Fortran 2008 (C)
atom-build-fpm: plugin for running the Fortran Package Manager (fpm) from within Atom
Code::Blocks: free C/C++ and Fortran IDE built to meet the most demanding needs of its users. It is designed to be very extensible and fully configurable. SYLau has created a short tutorial on using Fortran with Code::Blocks.
linter-gfortran: linting Fortran code in Atom with gfortran
f90.kak: modern Fortran syntax for kakoune editor, by Andre Smit
FortranCodeNav: Visual Studio Extension which helps navigate modern Fortran code, by Tiemen Schreuder. It contains several parsers to generate a code structure representation which is used to provide jump-to and search functionality with limited context-awareness.
Fortran IntelliJ Idea plugin: Fortran language plugin for IntelliJ Idea, by satamas
Fortran Language Server: A Fortran implementation of the Language Server Protocol using Python (2.7+ or 3.0+), by hansec. Editor extensions using this language server to provide autocomplete and other IDE-like functionality are available for Atom, Visual Studio Code, Visual Studio, (Neo)vim, and Emacs.
Fortran Language Server (fortls): based on @hansec's original Language Server implementation but the two projects have since diverged. fortls (this project) is now developed independently by gnikit of the upstream hansec/fortran-language-server project and contains numerous bug fixes and new features the original fortran-language-server does not.
fortranNeoVIM: neovim config for Fortran programming, by Vuncano. Config files made using Lua, inpired by third part config. Also FortranDictionary_vim, a Fortran keyword dictionary, or word list, made to use specially with vim's built-in dictionary completion
fortran_syntax_highlighter_lite-xl: syntax highlighter for Fortran in lite-xl, by Rohan Vashisht
fortran.tmbundle: TextMate support for Fortran. TextMate is a graphical text editor for macOS 10.12 or later.
fortran-vim-plugin: Vim plugin for Fortran developers that can be used to jump to the declaration of a variable, subroutine, function, etc. and to all its references, by Tobias Melson
fossil: Fortran IDE designed in Python by someone eager to learn Fortran but in an easy and accessible way, by nrwade0
Guide_VSCode-fortran: comprehensive guide on how to set up a complete development environment for Fortran in Visual Studio Code, by Julian Henneberg
Modern-Fortran: language syntax for highlighting of Fortran code in Sublime Text, by eirik-kjonstad. It highlights modern Fortran (Fortran 90 and newer) and incorporates features introduced in Fortran 2003, 2008, and 2018.
neovim: Vim-fork focused on extensibility and usability
Photran: IDE and refactoring tool for Fortran based on Eclipse and the CDT. Photran supports Fortran 77-2008. It includes 39 refactoring, including Rename, Extract Procedure, and loop transformations
qtcreator-fortran: support for Fortran projects and source files in Qt Creator as well as syntax-highlighting, by Jonas Lindemann
Simply Fortran: modern Fortran development environment for Microsoft Windows, Apple macOS, and GNU/Linux systems. It includes the Aplot library for creating two-dimensional graphs and plots quickly from Fortran routines and AppGraphics for creating graphics and graphical user interfaces from either Fortran or C. Free 30-day trial. (C)
SublimeLinterFortran: linter plugin for SublimeLinter provides an interface to gfortran, by Ramón L. Panadés-Barrueta and Tejas Shetty. It will be used with files that have free format Fortran syntax.
TiddlyFor: single file, self-contained wiki, aa flavor of TiddlyWiki, for a Fortran programmer but that can be used for any other purposes, by Mohammad Rahmani. It can be put on the web, sent as an email attachment, or put on a thumb drive. Some features are syntax highlighting for modern Fortran and support for math formulas through katex.
vim: improved version of the UNIX editor Vi. Many new features have been added: multi-level undo, syntax highlighting, command line history, on-line help, spell checking, filename completion, block operations, script language, etc. Download here.
vimf90: Fortran ide for vim
vim-findent: vim plugin for Findent, which indents Fortran sources, by cradesto
vim-fortran-fpm: convenience functions for integrating vim with Fortran Package Manager, by Alexey Vyskubov
vim-FORTRAN-UPPER: vim plugin for automatic capitalization in Fortran source, by William C. Dawn
vim-tmux-IDE: minimal vim IDE by luco00. Sets a connection with external terminal via tmux to interactively execute code (Python, R, Julia, Fortran, Go are supported).
Visual Studio Code (vscode): combines the simplicity of a code editor with what developers need for their core edit-build-debug cycle, from Microsoft. It provides comprehensive code editing, navigation, and understanding support along with lightweight debugging, a rich extensibility model, and lightweight integration with existing tools.
vs-fortran-ls-client: Language Server Protocol client that connects to Chris Hansen's Fortran Language Server to add IntelliSense for Fortran to Visual Studio 2017
vscode-fortran-support: extension that provides support for the Fortran programming language. It includes syntax highlighting, debugging, code snippets and a linting based on gfortran.
vscode-modern-fortran-formatter: formatter extension for modern Fortran using fprettify, by Yuki Hanayama
Yapakit: free Fortran source code editor for Windows, Linux or Mac. It can automatically an html documentation of a project and generate Fortran 90 dependencies for inclusion in a makefile, taking module dependencies into account
CFortranTranslator: translator from Fortran to C++ that provides statement-wise translation to improve readability, by Calvin Neo and Michael Tesch
f2c: convert Fortran 77 to C
F2C-Translator: translates Fortran to C++, by Bin Lei. Also HPC-Code-translation-and-generation: tests the translation and generation performance of Fortran HPC code using CodeXGLUE and ChatGPT, and OpenMP-Fortran-CPP-Translation, associated with the paper Creating a Dataset for High-Performance Computing Code Translation using LLMs: A Bridge Between OpenMP Fortran and C++
f2cpp: Converts Fortran 77 code to C++, by victorliu. Unlike f2c, the output of f2cpp.pl may or may not compile, however, only a small number of hand-tuned changes are typically needed. The resulting code is much cleaner than f2c's output, and much closer to the original intent of the original Fortran code.
f2j: translate Fortran 77 to Java, especially for BLAS, LAPACK and ARPACK
f2matlab: converts Fortran 90 code to Matlab m-files, by benbarrowes. Accordingly, only basic data types and constructions are recommended.
f2perl: translates Fortran 77 into Perl, by Steve Hancock. Also at GitHub.
f4go: Transpiling Fortran code to golang code, by Konstantin8105
F77Ccompiler: compiler from Fortran 77 to C, by Danil
Fortran-CPP-HPC-code-translation-dataset: data set for the preprint Creating a Dataset for High-Performance Computing Code Translation: A Bridge Between HPC Fortran and C++ (2023), by Bin Lei et al.
Fortran2Cpp: aims to create an accurate and comprehensive Fortran-to-C++ translation dataset for fine-tining LLMS such as ChatGPT-4, by Bin Lei and Chunhua Liao
Fortran to C++ Conversion from Objexx: conversion process preserves the structure and syntax of the Fortran to retain the value of the existing documentation and developer knowledge. Another product converts Fortran to Python (C).
fortran2julia: Python script to translate Fortran 90 to Julia, by algorithmx
fortran2julia: parses to JSON by fortran-parser, after which parse.jl converts to JSON to Julia, by Tom Rottier. Requires dotnet runtime to be installed.
Fortran2Julia.js: converts Fortran codes to Julia codes using regular Expressions, groups and backreferences, by Shuhei Ohno. A web interface is here.
FortranTranspiler.jl: partial transpiler from Fortran to Julia, by Denis Telnov
Incomplete Fortran to C/C++ converter: translates Fortran 77 to readable C/C++, by Sebastian Macke
loki: tool to explore the possible use of source-to-source translation for ECMWF's Integrated Forecasting System (IFS) and associated Fortran software packages. Loki is based on compiler technology (visitor patterns and ASTs) and aims to provide an abstract, language-agnostic representation of a kernel, as well as a programmable (Pythonic) interface that allows developers to experiment with different kernel implementations and optimizations.
c2f: partial C to Fortran translator by David Frank
Macrofort: Fortran code generator in Maple, by Claude Gomez
makeFortran: converts Mathematica Code to Fortran, by joelgog
matlab2fmex: small translator which aims to convert numerical Matlab m-files to Fortran90 mex files, by Ben Barrowes. matlab2fmex first translates an m-file to a Fortran90 mex source file then compiles that Fortran90 file using Matlab's mex and the local compiler.
matlab2fortran: performs some simple conversions from Matlab code to Fortran, by ebranlard
Mc2For: MATLAB to Fortran compiler, from Sable
numeta: simple Just-In-Time (JIT) compiler for Python, focused on metaprogramming, by Andrea Bianchi. Currently, the code generates Fortran code that is compiled and executed.
pyccel: Pyccel can be viewed as a Python-to-Fortran/C converter or a compiler for a Domain Specific Language with Python syntax
automates: Automated Model Assembly from Text, Equations, and Software, from ml4ai
bench-cli: cross-platform command line tool to benchmark commands and other executables/scripts in command lines written in Fortran, by Lateralus138. Very precise and fast.
Fortran Debug Utilities: collection of some utilities useful for debugging code, by Pål Levold
Fortran-gdb-pp: gdb pretty printer for Fortran dynamic types, by Peter Hill
fortran-git: Fortran 2008 ISO C binding interfaces to libgit2, by interkosmos
Fortran-RefCount: simple reference counting for Fortran
fortran-sigwatch: library of routines to provide simple signal watching for Fortran programs, originally by Norman Gray, modified by Michael Hirsch. This allows a minimal level of control of a running program from outside it, for example to tell it to checkpoint itself on receipt of a signal.
Fortran-Standard-Search: shell script searching a string in the titles of the subsection of the Fortran standard, and opening the pages in a PDF viewer, by Vincent Magnin. It is based on pdfgrep, cut and okular.
irep: tool for filling C/C++ or Fortran data structures from Lua input tables, from LLNL
libconfort: a small library to handle simple configuration files from Modern Fortran (2008+), by Dominik Gronkiewicz
nmltab: Python 3 module and command-line tool to tabulate, semantically diff, superset and consistently format Fortran namelist files, with output to text, markdown, csv, latex and namelists, by Andrew Kiss and Aidan Heerdegen. Requires Python 3.4 or later, and f90nml (amongst other packages).
nml-to-f90: generates Fortran source code for handling parameter I/O from a namelist, by perrette
progRESS+repORT (progrep}: utility to show live progress, status and stats of a running simulation or any compute job that executes a given number of iterations, by SomajitDey. Progrep can report for both serial (single-core) and parallel (multi-core/multi-node - eg OpenMP/MPI) jobs.
f90tw: provides Fortran wrappers for a limited subset of the Boost and Google test frameworks functionality, by loudove. At the same time, it offers a rather simple mechanism for setting up and managing test suites in Fortran projects.
ForDebug: library designed for debugging Fortran code, especially within pure procedures, by Seyed Ali Ghasemi
FortCompare: tool to mitigate the amount of behavior changed between two implementations of the same Fortran function or subroutine, by aijac0
fort_test: very lightweight testing framework that supports basic assertions and running of test sets, by Thomas Marks
fortran-testanything: test library supporting the Test Anything Protocol (TAP) inspired by Perl's Test::More module, by dennisdjensen
fortran_test_helper: library to provide assistance to testing, by Jason Christopherson
FortranTestGenerator: automatically generates unit tests for subroutines of existing Fortran applications based on an approach called Capture & Replay, from fortesg
fortran-unit-test: unit test library in Fortran to encourage scientific programmer to write tests, by dongli
fortran_unit_test: minimalistic Fortran unit tests with CMake and CTest, by Felix Chern
Fortran-Unit-Test: shows how to link Fortran code with C/C++ and a testing framework such as Google Test, by Rich Morrison
Fortran_UnitTest: unit test library based on OOP, by zhenkunl. It is strongly inspired by Zofu, and its output format is derived from fortran-unit-test.
Fortran Unit Test Framework (FortUTF): unit test framework written purely in Fortran to be compatible with as many projects as possible, by Kristian Zarębski
Fortran Unit Test Library: pure Fortran library using Object-Oriented Programming (OOP), by zhenkunl. It is strongly inspired by Zofu, and its output format is derived from fortran-unit-test.
Fortran Unit Testing Objects (Fortuno): flexible and extensible Fortran unit testing framework for testing serial, MPI-parallelized and coarray-parallelized applications, by Bálint Aradi
ForUnitTest: simple, object-oriented unit testing framework, by Seyed Ali Ghasemi.
FRUIT: Fortran unit test framework in Ruby, by mortele and michaelkonecny
ftest: minimalistic unit testing, by Ladislav Méri
FUnit: lightweight library for writing, administering, and running unit tests in Fortran, by Andrey Pudov. It is an instance of the xUnit architecture and provides Fortran programmers a basic testing functionality with a flexible variety of user interfaces.
fytest: lightweight unit testing framework for Fortran, by aradi. Thanks to its header-only design, it can be easily bundled with any Fortran project without creating extra dependencies.
julienne: compiler-portable, unit-testing framework for modern Fortran, including accelerated coarray Fortran software, by Katherine Rasmussen and Damian Rouson
M_framework: aggregate of Fortran modules useful for creating terminal messages, comparing expected values to results, writing logfiles and playback journals and performing unit tests for Fortran, by urbanjost
par-funnel: unit test parameterizer using namelist, by Tomohiro Degawa. Par-funnel is not a unit test framework but is intended to be used with other unit test frameworks.
pFUnit: unit testing framework enabling JUnit-like testing of serial and MPI-parallel software written in Fortran, from Goddard-Fortran-Ecosystem. Limited support for OpenMP is also provided in the form of managing exceptions in a thread-safe manner.
tap: minimal producer implementation of the "Test Anything Protocol" (TAP) in Fortran 90, from gzahl
test-drive: lightweight, procedural unit testing framework based on nothing but standard Fortran, by awvwgk. Integration with meson, cmake and Fortran package manager (fpm) is available. testdrive_util by Tomohiro Degawa provides procedures to make using test-drive more convenient.
Testing Or ASsertion Toolkit (TOAST): unit testing library by thomasms and Bob Apthorpe
Vegetables: testing framework written using functional programming principles, by Brad Richardson. As many of its procedures as possible are marked with the pure keyword while still allowing the framework to test impure code.
XFunit: object oriented framework to implement unit testing in Fortran 2018, by Fran Martinez Fadrique. Unit testing with XFunit is structured in suites and units. A test suite typically define all test to be implemented for a Fortran module.