fdoc

modulefdoc_model

The documented program: source files and the entities in them.

Entities live in one list and refer to each other by index. Each is held through an allocatable, so that growing the list or merging one list into another moves entities and does not copy them.

Uses

Graphs

Uses

Used by

Variables

NameTypeAttributesDefaultDescription
E_BLOCKDATAintegerparameter5
E_BOUNDPROCintegerparameter12
E_COMMONintegerparameter16
E_ENUMintegerparameter11
E_FILEintegerparameter1

a source file

E_FINALintegerparameter13
E_FUNCTIONintegerparameter7
E_INTERFACEintegerparameter9

a generic interface; other blocks dissolve into their bodies

E_MODPROCintegerparameter8

implementation of a separate module procedure

E_MODULEintegerparameter2
E_NAMELISTintegerparameter15
E_NONEintegerparameter0
E_PROGRAMintegerparameter4
E_SUBMODULEintegerparameter3
E_SUBROUTINEintegerparameter6
E_TYPEintegerparameter10
E_VARIABLEintegerparameter14
IFACE_ABSTRACTintegerparameter2

the body of an abstract interface block

IFACE_EXPLICITintegerparameter1

the body of an unnamed interface block

IFACE_NONEintegerparameter0

an ordinary procedure, or the body of a generic interface

no_moretype(entity_more_t)targetsave

What all variables share. This is never written to.

VAR_ARGUMENTintegerparameter1

a dummy argument

VAR_COMMONintegerparameter4

a member of a common block, shown with the block

VAR_HIDDENintegerparameter3

not shown, such as external names

VAR_PLAINintegerparameter0

listed among the variables of its parent

VAR_RESULTintegerparameter2

the result of a function

Types

attribute_t

An attribute given in a statement of its own, such as public :: x, waiting to be applied.

entity_box_t

Holds an entity, so that it can be moved without being copied.

entity_list_t

A list of entities. Indices start at 1, and 0 means no entity.

entity_more_t

What only some entities have. Most entities are variables, which share one of these, so an entity takes half the memory; this makes up most of the memory used on large projects.

entity_t

A file, program unit, procedure, type, variable or the like. Which components apply depends on kind.

meta_t

A metadata entry of a doc comment, such as author: me.

rename_t

A name in the only list of a use statement.

use_t

A use statement.

Functions

is_procedureelemental

elemental logical function is_procedure(kind)

True if kind is a subroutine or function.

list_addprivate

integer function list_add(self, kind, parent) result(id)

Add an entity of kind kind inside parent, returning its index.