Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/acdeveloper-sci/forti4d/llms.txt

Use this file to discover all available pages before exploring further.

Every time forti4d runs, it writes all output files to the directory configured via --output (or the FORT_OUT environment variable), which defaults to results/. Each pipeline step writes its own files and never modifies another step’s output, so you can safely re-run individual steps without disturbing the rest. All output files are written even when the corpus produces no data for them — in that case the file contains column headers only.

Output Directory Structure

<FORT_OUT>/
├── inventory_report.csv
├── dep_00_ambiguities.csv
├── dep_01_master_data.csv
├── dep_02_unit_graph.csv
├── dep_03_impact_matrix.csv
├── dep_04_external_orphans.csv
├── dep_05_file_dependencies.csv
├── dep_06_include_files.csv
├── report_density.csv
├── audit/
│   └── <file>_DEBUG.csv       (one per source file)
├── blocks/
│   └── <file>_blocks.txt      (one per source file)
├── report_structure_analysis.csv
├── report_migration_strategy.csv
├── PROJECT_SUMMARY.md
├── file_statistics.csv
├── report_complexity.csv
├── common_usage.csv
├── common_coupling.csv
├── symbol_variables.csv
├── symbol_signatures.csv
├── symbol_implicit.csv
├── type_definitions.csv
├── type_components.csv
├── equivalences.csv
├── report_reachability.csv
├── report_sloc.csv
├── report_clones.csv
├── report_consolidated.csv
├── graph_*.dot
├── report_prioritization.csv
├── report.html
└── forti4d.log
audit/ and blocks/ are subdirectories, not flat files. Each contains one file per Fortran source file processed.

All Output Files

These files are produced by the first two pipeline steps and form the base that every subsequent script reads.
FileProduced byDescription
inventory_report.csvinventory.pyAll program units with type, parent unit, line range, and audit flags (legacy constructs, I/O statements). The foundation for all other scripts.
dep_00_ambiguities.csvdependencies.pyUnits defined in more than one source file.
dep_01_master_data.csvdependencies.pyRaw CALL, USE, and function-call relationships before resolution.
dep_02_unit_graph.csvdependencies.pyResolved call graph with typed edges (CALL, USE, FUNC_CALL).
dep_03_impact_matrix.csvdependencies.pyFan-In and Fan-Out per unit.
dep_04_external_orphans.csvdependencies.pyExternal references with no known definition in the corpus.
dep_05_file_dependencies.csvdependencies.pyFile-level dependency summary.
dep_06_include_files.csvdependencies.pyFortran INCLUDE file references with existence status.

Reading report_consolidated.csv

report_consolidated.csv is the central analysis surface — a single flat table joining every metric produced across the pipeline. It has one row per program unit and 34 columns spanning physical size, complexity, coupling, density, reachability, COMMON block usage, and the full E4 symbol summary.

Size columns

LOC, SLOC_physical, SLOC_net, N_Comments, N_Continuation, Pct_Comment

Complexity & coupling

CC, CC_Level, CC_SLOC, Fan_In, Fan_Out

Density profile

Pct_Calc, Pct_Control, Pct_IO, Pct_Legacy

Reachability

Status, Via_Entry_Points

COMMON blocks

N_Common_Blocks, Common_Blocks

E4 scope

N_Local_Vars, N_Formal_Args, Implicit_None, Has_Equiv, N_Equiv_Groups, N_Derived_Types
Open report_consolidated.csv in a spreadsheet. Sort by any column, add computed columns (e.g. CC × Fan_In), and filter to focus on specific risk profiles. The Interpretation guide explains exactly which combinations to look for.

Pipeline Order and Dependencies

The diagram below shows which files feed which scripts. Output files are listed next to the arrow from each producer.
Fortran source files


  inventory.py → inventory_report.csv

        ├──► dependencies.py → dep_00…dep_06_*.csv

        ├──► profiler.py → report_density.csv
        │              └──► audit/*_DEBUG.csv
        │                        │
        │              ┌─────────┴──────────┐
        │              ▼                    ▼
        │        block_analysis.py   complexity.py
        │        common_blocks.py    symbols.py
        │        equivalences.py     derived_types.py

        ├──► sloc.py → report_sloc.csv
        ├──► clones.py → report_clones.csv
        ├──► structure_analysis.py → report_structure_analysis.csv
        ├──► cross_analysis.py → report_migration_strategy.csv
        ├──► reachability.py → report_reachability.csv

        [all reports above]


         consolidate.py → report_consolidated.csv

                ├──► visual_graph.py → graph_*.dot
                ├──► prioritization.py → report_prioritization.csv
                └──► html_report.py → report.html
consolidate.py must run after all analysis scripts. prioritization.py must run after consolidate.py. html_report.py must run after prioritization.py. The forti4d CLI manages this order automatically.

Build docs developers (and LLMs) love