Help requested in reviewing Fortran tools

The following are new Fortran tools, but I would like someone to confirm that they are useful before adding them to my tools list.

Flang Modernization Advisor for Legacy Fortran

A comprehensive static analysis framework and interactive web dashboard designed to detect obsolete Fortran constructs, validate cross-file structural layouts (like COMMON blocks), verify subroutine/module call graphs, and generate prioritized modernization refactoring plans.

Flang-Multi-Stage-Compilation-Pipeline-Tracer

Traces Fortran source constructs through every stage of Flang’s unique multi-level compilation pipeline — Parse Tree, Semantics, FIR, HLFIR, LLVM IR — producing an annotated cross-level view showing how each source construct is represented and transformed at every stage.

preserf

Python preprocessor that expands !$SER directives in Fortran source into explicit serialization calls.

Fortran-C-Cross-Language-Interface-Validator

Static analysis tool that automatically detects ABI mismatches between Fortran BIND(C) interfaces and their corresponding C header declarations. It catches bugs that compilers silently accept but cause crashes, data corruption, or silent wrong results at runtime.

Col6Forge

Modern Fortran frontend and compiler driver written in Zig. It parses legacy and free-form Fortran, emits LLVM IR, and leverages zig cc for seamless cross-platform compilation.

f90c

single executable Fortran 90 compiler written in Rust. It can compile, link, and run Fortran 90 sources, supporting object files, optimizations, warnings, and multiple subcommands.


fortran-analyzer

Comprehensive tool for analyzing Fortran source code to identify variable sources, assignments, and cross-references with global variables.

Features

  • Whole-codebase scanning: Scans an entire directory to build a complete map of all modules and global variables before analysis.
  • Procedure-level analysis: Separate analysis for each subroutine and function.
  • Variable scope classification: Identifies global, local, and imported variables with codebase-wide context.
  • Assignment pattern detection: Categorizes different types of variable assignments
  • Cross-reference analysis: Shows relationships between variables across files
  • Flexible output: Complete lists by default, with optional truncation for large codebases
3 Likes

I am curious, is there a reason you want a second opinion on these tools in particular? I looked at them and it appears that all heavily used LLMs for coding. I personally wouldn’t exclude such projects if I were maintaining your list, opting more for comprehensiveness over curation.


Anyhow, while I’m posting, I would suggest adding my repository for the old Toolpack set of Fortran 77 tools to your list. The main changes I made were to get all the tools to compile on modern Linux and attempt to make a Python script to massage Fortran 77 code into a form more likely to be accepted by Toolpack, as it is brittle. There are a ton of tools here, but unfortunately the documentation in the repository is not great.

I am spending less time updating my tools and codes lists than before, and going forward I will primarily add tools and codes that are announced or recommended here, rather than searching on GitHub myself.

I added Toolpack, thanks.

This appears to be someone’s college class project. It looks cool, but (1) it doesn’t have a license file and (2) it may be a one-off project that may not be supported in the future.

In general, I wouldn’t list any tools that don’t include some kind of licensing information.

That’s a pretty good general advice. I always check the license (or lack thereof), whenever I visit a new repo.

The copyleft licenses are especially cumbersome to deal with, even more so if you lean towards static linking.

And btw, welcome to the forum!