# 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
- `-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
- `--clojure`: Print ASR in clojure 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-style-suggestions`: Turn off style suggestions
- `--no-error-banner`: Turn off error banner
- `--continue-compilation`: Collect error messages and continue compilation after encountering semantic errors
- `--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
- `--separate-compilation`: 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-arrays`: Reallocate left hand side automatically for arrays
- `--disable-realloc-lhs-arrays`: Disables reallocating left hand side automatically for arrays
- `--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/.
