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
2 Likes