How to document parameter constants and type members#
This guide shows when to use f:variable versus f:member and
how to document parameter constants clearly.
Document a parameter constant#
Use f:variable with the :parameter: option. The rendered
heading will show “parameter” instead of “variable”:
.. f:variable:: MAX_ELEMENTS
:parameter:
Maximum number of elements allowed.
```{f:variable} MAX_ELEMENTS
:parameter:
Maximum number of elements allowed.
```
This renders as:
- parameter MAX_ELEMENTS#
Maximum number of elements allowed.
Document a type component (member)#
Use f:member for variables that belong to a derived type.
.. f:type:: config_t
.. f:member:: verbose
Enable verbose output.
.. f:member:: max_iter
Maximum iteration count.
```{f:type} config_t
```{f:member} verbose
Enable verbose output.
```
```{f:member} max_iter
Maximum iteration count.
```
```
This renders as:
Reference members and parameters#
Use :f:var: for module-level variables and parameters:
See :f:var:`MAX_ELEMENTS` for the limit.
See {f:var}`MAX_ELEMENTS` for the limit.
This renders as:
See
MAX_ELEMENTSfor the limit.
Use :f:mem: for type components:
The :f:mem:`config_t.verbose` flag controls output.
The {f:mem}`config_t.verbose` flag controls output.
This renders as:
The
config_t.verboseflag controls output.
:f:var: still resolves members for compatibility, but :f:mem:
is preferred because it communicates structure more clearly.
Automatic detection via FORD#
When using the FORD bridge, sphinx-ford automatically:
Emits
f:memberfor type component variablesDetects the Fortran
parameterattribute and adds:parameter:Links type names in parameter lists to their definitions