# gen-interfaces

Tells the compiler to generate an interface block for each routine in a source file.

## Syntax

Linux: | -gen-interfaces [[no]source] -nogen-interfaces

macOS: | -gen-interfaces [[no]source] -nogen-interfaces

Windows: | /gen-interfaces[:[no]source] /nogen-interfaces

## Arguments

None

## Default

nogen-interfaces | The compiler does not generate interface blocks for routines in a source file.

## Description

This option tells the compiler to generate an interface block for each routine (that is, for each SUBROUTINE and FUNCTION statement) defined in the source file. The compiler generates two files for each routine, a .mod file and a .f90 file, and places them in the current directory or in the directory specified by the include (-I) or -module option. The .f90 file is the text of the interface block; the .mod file is the interface block compiled into binary form. The .f90 file is for reference only and may not completely represent the generated interface used by the compiler.

If source is specified, the compiler creates the procedure-name__GENmod.f90 as well as the procedure-name__GENmod.mod files. If nosource is specified, the compiler creates the procedure-name__GENmod.mod but not the procedure-name__GENmod.f90 files. If neither is specified, it is the same as specifying setting source for the gen-interfaces option.

On Windows* systems, for a Debug configuration in a Visual Studio project, the default is /warn:interfaces.

## IDE Equivalent

Visual Studio: None

## Alternate Options

None

Parent topic: Compiler Diagnostic Options