---
name: "lfortran"
section: "1"
platform: "linux"
package: "lfortran"
version: "0.45.0-1+b3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/lfortran"
---

# lfortran(1)

modern interactive LLVM-based Fortran compiler

## NAME

LFortran - modern interactive LLVM-based Fortran compiler

## SYNOPSIS

lfortran OPTIONS \[files...\] \[SUBCOMMAND\]

## DESCRIPTION

LFortran is a modern interactive Fortran compiler based on LLVM.

## OPTIONS

- •

  `-h, --help`: Print this help message and exit

- •

  `-S`: Emit assembly, do not assemble or link

- •

  `-c`: Compile and assemble, do not link

- •

  `-o TEXT`: Specify the file to place the compiler’s output into

- •

  `-v`: Be more verbose

- •

  `-E`: Preprocess only; do not compile, assemble, or link

- •

  `-l TEXT ...`: Link library option

- •

  `-L TEXT ...`: Library path option

- •

  `-I TEXT ...`: Include path

- •

  `-J TEXT`: Where to save mod files

- •

  `-g`: Compile with debugging information

- •

  `--debug-with-line-column`: Convert the linear location info into line + column in the debugging information

- •

  `-D TEXT ...`: Define `<macro>=<value>` (or 1 if `<value>` omitted)

- •

  `--version`: Display compiler version information

- •

  `-W TEXT ...`: Linker flags

- •

  `-f TEXT ...`: All `-f*` flags (only -fPIC supported for now)

- •

  `--cpp`: Enable C preprocessing

- •

  `--fixed-form`: Use fixed form Fortran source parsing

- •

  `--fixed-form-infer`: Use heuristics to infer if a file is in fixed form

- •

  `--no-prescan`: Turn off prescan

- •

  `--show-prescan`: Show tokens for the given file and exit

- •

  `--show-tokens`: Show tokens for the given file and exit

- •

  `--show-ast`: Show AST for the given file and exit

- •

  `--show-asr`: Show ASR for the given file and exit

- •

  `--with-intrinsic-mods`: Show intrinsic modules in ASR

- •

  `--show-ast-f90`: Show Fortran from AST for the given file and exit

- •

  `--no-color`: Turn off colored AST/ASR

- •

  `--no-indent`: Turn off Indented print ASR/AST

- •

  `--tree`: Tree structure print ASR/AST

- •

  `--json`: Print ASR/AST Json format

- •

  `--no-loc`: Skip location information in ASR/AST Json format

- •

  `--visualize`: Print ASR/AST Visualization

- •

  `--pass TEXT`: Apply the ASR pass and show ASR (implies –show-asr)

- •

  `--skip-pass TEXT`: Skip an ASR pass in the default pipeline

- •

  `--show-llvm`: Show LLVM IR for the given file and exit

- •

  `--show-cpp`: Show C++ translation source for the given file and exit

- •

  `--show-c`: Show C translation source for the given file and exit

- •

  `--show-asm`: Show assembly for the given file and exit

- •

  `--show-wat`: Show WAT (WebAssembly Text Format) and exit

- •

  `--show-julia`: Show Julia translation source for the given file and exit

- •

  `--show-fortran`: Show Fortran translation source for the given file and exit

- •

  `--show-stacktrace`: Show internal stacktrace on compiler errors

- •

  `--symtab-only`: Only create symbol tables in ASR (skip executable stmt)

- •

  `--time-report`: Show compilation time report

- •

  `--static`: Create a static executable

- •

  `--no-warnings`: Turn off all warnings

- •

  `--no-error-banner`: Turn off error banner

- •

  `--error-format TEXT=human`: Control how errors are produced (human, short)

- •

  `--backend TEXT=llvm`: Select a backend (llvm, cpp, x86, wasm, fortran)

- •

  `--openmp`: Enable OpenMP

- •

  `--generate-object-code`: Generate object code into .o files

- •

  `--rtlib`: Include the full runtime library in the LLVM output

- •

  `--use-loop-variable-after-loop`: Allow using loop variable after the loop

- •

  `--fast`: Best performance (disable strict standard compliance)

- •

  `--link-with-gcc`: Calls GCC for linking instead of clang

- •

  `--target TEXT`: Generate code for the given target

- •

  `--print-targets`: Print the registered targets

- •

  `--implicit-typing`: Allow implicit typing

- •

  `--implicit-interface`: Allow implicit interface

- •

  `--implicit-argument-casting`: Allow implicit argument casting

- •

  `--print-leading-space`: Print leading white space if format is unspecified

- •

  `--interactive-parse`: Use interactive parse

- •

  `--verbose`: Print debugging statements

- •

  `--dump-all-passes`: Apply all the passes and dump the ASR into a file

- •

  `--dump-all-passes-fortran`: Apply all passes and dump the ASR after each pass into a Fortran file

- •

  `--cumulative`: Apply all the passes cumulatively till the given pass

- •

  `--realloc-lhs`: Reallocate left-hand side automatically

- •

  `--module-mangling`: Mangles the module name

- •

  `--global-mangling`: Mangles all the global symbols

- •

  `--intrinsic-mangling`: Mangles all the intrinsic symbols

- •

  `--all-mangling`: Mangles all possible symbols

- •

  `--bindc-mangling`: Mangles functions with ABI bind(c)

- •

  `--apply-fortran-mangling`: Mangle symbols with Fortran supported syntax

- •

  `--mangle-underscore`: Mangles with underscore

- •

  `--legacy-array-sections`: Enables passing array items as sections if required

- •

  `--ignore-pragma`: Ignores all the pragmas

- •

  `--stack-arrays`: Allocate memory for arrays on stack

## SUBCOMMANDS

- •

  `fmt`: Format Fortran source files.

- •

  `kernel`: Run in Jupyter kernel mode.

- •

  `mod`: Fortran mod file utilities.

- •

  `pywrap`: Python wrapper generator

## SEE ALSO

For more information, visit the official LFortran documentation at https://docs.lfortran.org/.
