{% macro info_bar(name,meta,base_url,hierarchy) %}
    {% if meta['author'] %}
  • {{ meta['author'] }}
  • {% endif %} {% if meta['date'] %}
  • {{ meta['date'] }}
  • {% endif %} {% if meta['license'] %}
  • {{ meta['license'] }}
  • {% endif %} {% if meta['version'] %}
  • {{ meta['version'] }}
  • {% endif %} {% if meta['category'] %}
  • {{ meta['category'] }}
  • {% endif %} {% if hierarchy[0] %}
  • Source File
  • {% else %}
  • Source File
  • {% endif %}
{% endmacro %} {% macro sidebar(project,self) %} {% set count = 0 %} {% if self.variables %} {% set count = count + 1 %}

Variables

{% for var in self.variables %} {{ var.name }} {% endfor %}
{% endif %} {% if self.enums %} {% set count = count + 1 %}

Enumerations

{% for enum in self.enums %} {{ enum.name }} {% endfor %}
{% endif %} {% if self.constructor %} {% set count = count + 1 %}

Constructor

{{ self.constructor.name }}
{% endif %} {% if self.programs %} {% set count = count + 1 %}

Programs

{% for prog in self.programs %} {{ prog.name }} {% endfor %}
{% endif %} {% if self.modules %} {% set count = count + 1 %}

Modules

{% for mod in self.modules %} {{ mod.name }} {% endfor %}
{% endif %} {% if self.submodules %} {% set count = count + 1 %}

Submodules

{% for mod in self.submodules %} {{ mod.name }} {% endfor %}
{% endif %} {% if self.interfaces %} {% set count = count + 1 %}

Interfaces

{% for intr in self.interfaces %} {{ intr.name }} {% endfor %}
{% endif %} {% if self.absinterfaces %} {% set count = count + 1 %}

Abstract Interfaces

{% for intr in self.absinterfaces %} {{ intr.name }} {% endfor %}
{% endif %} {% if self.types %} {% set count = count + 1 %}

Derived Types

{% for type in self.types %} {{ type.name }} {% endfor %}
{% endif %} {% if self.functions %} {% set count = count + 1 %}

Functions

{% for proc in self.functions %} {{ proc.name }} {% endfor %}
{% endif %} {% if self.subroutines %} {% set count = count + 1 %}

Subroutines

{% for proc in self.subroutines %} {{ proc.name }} {% endfor %}
{% endif %} {% if self.modfunctions %} {% set count = count + 1 %}

Module Functions

{% for proc in self.modfunctions %} {{ proc.name }} {% endfor %}
{% endif %} {% if self.modsubroutines %} {% set count = count + 1 %}

Module Subroutines

{% for proc in self.modsubroutines %} {{ proc.name }} {% endfor %}
{% endif %} {% if self.modprocedures %} {% set count = count + 1 %}

Module Procedures

{% for proc in self.modprocedures %} {{ proc.name }} {% endfor %}
{% endif %} {% if self.finalprocs %} {% set count = count + 1 %}

Finalization Procedures

{% for fp in self.finalprocs %} {{ fp.name }} {% endfor %}
{% endif %} {% if self.boundprocs %} {% set count = count + 1 %}

Type-Bound Procedures

{% for bp in self.boundprocs %} {{ bp.name }} {% endfor %}
{% endif %} {% if self.modprocs %} {% set count = count + 1 %}

Module Procedures

{% for mod in self.modprocs %} {{ mod.name }} {% endfor %}
{% endif %} {% if self.src %} {% set count = count + 1 %}

Source Code

{{ self.name }}
{% endif %} {% if count > 0 %}
{% endif %} {% if self.obj == 'program' %}

All Programs

{% for prog in project.programs|sort(attribute='name') %} {{ prog.name }} {% endfor %}
{% elif self.obj == 'module' or self.obj == 'submodule' %}

All Modules

{% for mod in project.modules|sort(attribute='name') %} {{ mod.name }} {% endfor %}
{% elif self.obj == 'proc' or (self.obj == 'interface' and (not self.abstract)) %}

All Procedures

{% for proc in project.procedures|sort(attribute='name') %} {{ proc.name }} {% endfor %}
{% elif self.obj == 'interface' %}

All Abstract Interfaces

{% for absint in project.absinterfaces|sort(attribute='name') %} {{ absint.name }} {% endfor %}
{% elif self.obj == 'type' %}

All Derived Types

{% for dtype in project.types|sort(attribute='name') %} {{ dtype.name }} {% endfor %}
{% elif self.obj == 'sourcefile' %}

All Source Files

{% for src in project.files|sort(attribute='name') %} {{ src.name }} {% endfor %}
{% endif %} {% endmacro %} {% macro var_list(variables,intent=False,permission=False,summary=False,id=True) %} {% if permission %}{% endif %} {% if intent %}{% endif %} {% if not intent %}{% endif %} {% set colnum = 5 %} {% if permission %}{% set colnum = colnum + 1%}{% endif %} {% if intent %}{% set colnum = colnum + 2%}{% else %}{% set colnum = colnum + 1 %}{% endif %} {% for var in variables %} {% set args = 0 %} {% if var.kind %}{% set args = args + 1 %}{% endif %} {% if var.strlen %}{% set args = args + 1 %}{% endif %} {% if var.proto %}{% set args = args + 1 %}{% endif %} {% if var.obj == 'variable' %} {% if intent -%}{%- endif %} {% if permission %}{% endif %} {% if not intent %}{% endif %} {% elif var.obj == 'proc' %} {% endif %} {% endfor %}
TypeVisibilityIntentOptionalAttributesNameInitial
{{ var.vartype }}{% if args > 0 -%}({% if var.kind -%}kind={{ var.kind }}{%- endif %}{% if args > 1 -%},{%- endif %}{% if var.strlen -%}len={{ var.strlen }}{%- endif %}{% if var.proto -%}{% if not var.proto[0].permission or var.proto[0].visible -%}{{ var.proto[0] }}{% else %}{{ var.proto[0].name }}{%- endif %}{{ var.proto[1] }}{%- endif %}){%- endif %}{% if (intent and var.intent) or permission or var.parameter or var.attribs|length > 0 -%},{%- endif %}{% if var.intent -%}intent({{ var.intent }}){%- endif%}{% if var.optional or permission or var.parameter or var.attribs|length > 0 -%},{% endif %} {% if var.optional -%}optional{% if permission or var.parameter or var.attributes|length > 0 -%},{%- endif %}{%- endif %}{{ var.permission }}{% if var.parameter or var.attribs|length > 0 -%},{%- endif %}{% if var.parameter %}parameter{% if var.attribs|length > 0 %}, {% endif %}{% endif %}{% for attrib in var.attribs -%}{{ attrib }}{% if not loop.last -%}, {% endif %}{%- endfor %}:: {{ var.name }}{{ var.dimension }}{% if var.initial -%}{% if var.points -%} => {% else %} = {%- endif %}{% endif %}{% if var.initial %}{{ var.initial }}{%- endif %}{% if summary -%}{{ var.meta['summary'] }}{% else %}{{ var.doc }}{% endif %} {{ proc_summary(var,title=True,small=True) }}
{% endmacro %} {% macro proc_summary(proc,title=True,small=False,proto=False) %} {% if title %} {% if small %}
{% else %}

{% endif %}{{ proc_line(proc,proto=proto) }}{% if proto %}Prototype{% endif %}{% if small %}

{% else %}{% endif %} {% endif %} {% if small %}
{% else %}

{% endif %}Arguments{% if small %}

{% else %}{% endif %} {% if proc.args|length > 0 %} {% if proc.visible %} {{ var_list(proc.args,intent=True,summary=True,id=False) }} {% else %} {{ var_list(proc.args,intent=True,id=False) }} {% endif %} {% else %} None {% endif %} {% if proc.retvar %} {% set var = proc.retvar %} {% set args = 0 %} {% if var.kind %}{% set args = args + 1 %}{% endif %} {% if var.strlen %}{% set args = args + 1 %}{% endif %} {% if var.proto %}{% set args = args + 1 %}{% endif %} {% if small %}
{% else %}

{% endif %}Return Value {{ var.vartype }}{% if args > 0 -%}({% if var.kind -%}kind={{ var.kind }}{%- endif %}{% if args > 1 -%},{%- endif %}{% if var.strlen -%}len={{ var.strlen }}{%- endif %}{% if var.proto -%}{% if not var.proto[0].permission or var.proto[0].visible -%}{{ var.proto[0] }}{% else %}{{ var.proto[0].name }}{%- endif %}{{ var.proto[1] }}{%- endif %}){%- endif %}{% if var.attribs|length > 0 -%},{%- endif %} {% for attrib in var.attribs -%}{{ attrib }}{% if not loop.last or var.dimension -%}, {%- endif %}{%- endfor %}{{ var.dimension }}{% if small %}

{% else %}{% endif %} {{ var.meta['summary'] }} {% endif %} {% if proc.doc or (meta_list(proc.meta)|trim|length > 0 and proc.visible) %} {% if small %}
{% else %}

{% endif %}Description{% if small %}

{% else %}{% endif %} {% if proc.parent and proc.visible %} {{ meta_list(proc.meta) }} {% endif %} {{ proc.meta['summary'] }} {% endif %} {% endmacro %} {% macro bound_info(tb) %}

{% if tb.generic -%}generic,{% else %}procedure{% if tb.proto -%}({% if not tb.protomatch or tb.proto.visible -%}{{ tb.proto }}{% else %}{{ tb.proto.name }}{%- endif %}){%- endif %},{%- endif %} {{ tb.permission }}{% if tb.attribs -%}, {% for attrib in tb.attribs -%}{{ attrib }}{% if not loop.last -%}, {% endif %}{%- endfor %}{%- endif %} :: {{ tb.name }} {% if tb.generic or (tb.name != tb.bindings[0].name and tb.name != tb.bindings[0]) %} => {% for bind in tb.bindings -%}{% if not bind.parent or bind.visible %}{{ bind }}{% else %}{{ bind.name }}{% endif %}{% if not loop.last -%}, {% endif %}{%- endfor %}{% endif %} {% if tb.binding|length == 1 %}{{ tb.bindings[0].proctype }}{% endif %} {% if tb.meta['deprecated'] and tb.meta['deprecated'].lower() == 'true' %} Deprecated {% endif %}

{% if tb.doc or meta_list(tb.meta)|trim|length > 1 %}
{{ meta_list(tb.meta) }} {{ tb.doc }}
{% endif %}
{% endmacro %} {% macro interface(intr) %}

{% if intr.parobj == 'module' and intr.generic %}{{ intr.permission }} {% endif %}interface {% if intr.generic %}{% if intr.visible %}{{ intr }}{% else %}{{ intr.name }}{% endif %}{% endif %} {% if intr.meta['deprecated'] and intr.meta['deprecated'].lower() == 'true' %} Deprecated {% endif %}

{% if intr.doc or (meta_list(intr.meta)|trim|length > 0 and not intr.visible) %}
{% if not intr.visible %} {{ meta_list(intr.meta) }} {% endif %} {{ intr.meta['summary'] }}
{% endif %}
{% endmacro %} {% macro absinterface(intr) %}

abstract interface {% if intr.meta['deprecated'] and intr.meta['deprecated'].lower() == 'true' %} Deprecated {% endif %}

{% if intr.doc or meta_list(intr.meta)|trim|length > 0 %}
{{ meta_list(intr.meta) }} {{ intr.meta['summary'] }}
{% endif %}
{% endmacro %} {% macro proc_line(proc,link=True,proto=False) %} {% if proc.mp %}module procedure {% if not proc.parent or (proc.visible and link) %}{{ proc }}{% else %}{{ proc.name }}{% endif %} {% endif %}{% if (proc.parobj == 'module' or (proc.parobj == 'interface' and proc.parent.parobj == 'module')) and not proto %}{{ proc.permission }} {% endif %}{% for attrib in proc.attribs -%}{{ attrib }}{% if not loop.last or proc.module %} {% endif %}{%- endfor %}{% if proc.module and proc.module != True and (proc.parobj == 'interface' or proc.parobj == 'submodule') %}module {% endif %}{{ proc.proctype|lower }} {% if not proc.parent or (proc.visible and link and not proc.mp) %}{{ proc }}{% else %}{{ proc.name }}{% endif %}({% for arg in proc.args -%}{{ arg.name }}{% if not loop.last -%}, {% endif %}{%- endfor %}){% if proc.proctype|lower == 'function' and proc.name != proc.retvar.name %} result({{ proc.retvar.name }}){% endif %}{% if proc.bindC %} bind({{ proc.bindC }}){% endif %}{% if proc.mp %}{% endif %} {% if proc.meta['deprecated'] and proc.meta['deprecated'].lower() == 'true' %} Deprecated {% endif %} {% if proc.module and proc.module != True and proc.parobj == 'submodule' and proc.module.visible %} {% endif %} {% if proc.module and proc.module != True and proc.parobj == 'interface' and proc.module.visible %} {% endif %} {% endmacro %} {% macro final(finals) %} {% for proc in finals %}

final :: {{ proc.name }}

{{ proc_summary(proc,title=True) }}
{% endfor %} {% endmacro %} {% macro type_summary(dtype) %}

type{% if dtype.parobj == 'module' %}, {{ dtype.permission }}{% endif %}{% if dtype.sequence %}, sequence {% endif %}{% for attrib in dtype.attributes -%}, {{ attrib }}{%- endfor %}{% if dtype.extends %}, extends({{ dtype.extends }}){% endif %} :: {% if dtype.visible %}{{ dtype }}{% else %}{{ dtype.name }}{% endif %} {% if dtype.meta['deprecated'] and dtype.meta['deprecated'].lower() == 'true' %} Deprecated {% endif %}

{% if dtype.variables|length > 0 %}

Components

{{ var_list(dtype.variables,permission=True,summary=True) }} {% endif %} {% if dtype.constructor %}

Constructor

{% if dtype.constructor.obj == 'interface' %} {{ dtype.constructor.meta['summary'] }} {% endif %} {% if dtype.constructor.obj == 'proc' %} {% elif dtype.constructor.obj == 'interface' %} {% for proc in dtype.constructor.functions + dtype.constructor.subroutines %} {% endfor %} {% for mproc in dtype.constructor.modprocs %} {% set proc = mproc.procedure %} {% endfor %} {% endif %}
{{ proc_line(dtype.constructor) }}{{ dtype.constructor.meta['summary'] }}
{% if proc.parobj == 'module' or (proc.parobj == 'interface' and proc.parent.parobj == 'module') %}{{ proc.permission }} {% endif %}{% for attrib in proc.attribs -%}{{ attrib }}{% if not loop.last -%}, {%- endif %}{%- endfor %} {{ proc.proctype|lower }} {% if proc.visible %}{{ proc }}{% else %}{{ proc.name }}{% endif %}({% for arg in proc.args -%}{{ arg }}{% if not loop.last -%}, {% endif %}{%- endfor %}){% if proc.bindC -%}, bind({{ proc.bindC }}){% endif %}{{ proc.meta['summary'] }}
{% if proc.parobj == 'module' or (proc.parobj == 'interface' and proc.parent.parobj == 'module') %}{{ proc.permission }} {% endif %}{% for attrib in proc.attribs -%}{{ attrib }}{% if not loop.last -%}, {%- endif %}{%- endfor %} {{ proc.proctype|lower }} {% if proc.visible %}{{ proc }}{% else %}{{ proc.name }}{% endif %}({% for arg in proc.args -%}{{ arg }}{% if not loop.last -%}, {% endif %}{%- endfor %}){% if proc.bindC -%}, bind({{ proc.bindC }}){% endif %}{{ proc.meta['summary'] }}
{% endif %} {% if dtype.finalprocs|length > 0 %}

Finalizations Procedures

{% for fin in dtype.finalprocs %} {% endfor %}
final :: {{ fin.name }}{{ fin.meta['summary'] }}
{% endif %} {% if dtype.boundprocs|length > 0 %}

Type-Bound Procedures

{% for tb in dtype.boundprocs %} {% endfor %}
{% if tb.generic -%}generic,{% else %}procedure{% if tb.proto -%}({% if not tb.protomatch -%}{{ tb.proto }}{% else %}{{ tb.proto.name }}{%- endif %}){%- endif %},{%- endif %} {{ tb.permission }}{% if tb.attribs -%}, {% for attrib in tb.attribs -%}{{ attrib }}{% if not loop.last -%}, {% endif %}{%- endfor %}{%- endif %} :: {{ tb.name }} {% if tb.generic or (tb.name != tb.bindings[0].name and tb.name != tb.bindings[0]) %} => {% for bind in tb.bindings -%}{{ bind.name }}{% if not loop.last -%}, {% endif %}{%- endfor %}{% endif %} {% if tb.binding|length == 1 %}{{ tb.bindings[0].proctype }}{% endif %} {{ tb.meta['summary'] }}
{% endif %} {% if dtype.doc or (meta_list(dtype.meta)|trim|length > 0 and not dtype.visible) %}

Description

{% if not dtype.visible %} {{ meta_list(dtype.meta) }} {% endif %} {{ dtype.meta['summary'] }} {% endif %}
{% endmacro %} {% macro enum_entry(enum) %}

enum, bind(c){% if enum.meta['deprecated'] and enum.meta['deprecated'].lower() == 'true' %}Deprecated{% endif %}

Enumerators

{% for var in enum.variables %} {% endfor %}
{{ var.vartype }}:: {{ var.name }} = {{ var.initial }}{% if summary -%}{{ var.meta['summary'] }}{% else %}{{ var.doc }}{% endif %}
{% if enum.doc or meta_list(enum.meta)|trim|length > 0 %}

Description

{{ meta_list(enum.meta) }} {{ enum.doc }} {% endif %}
{% endmacro %} {% macro proc_entry(proc) %}

{{ proc_line(proc) }}

{{ proc_summary(proc,False) }}
{% endmacro %} {% macro ancestry(obj) %} {% if obj.ancestry|length > 0 %} {% endif %} {% endmacro %} {% macro descendants(obj) %} {% if obj.descendants|length > 0 %} {% endif %} {% endmacro %} {% macro use_list(obj) %} {% if obj.uses|length > 0 %} {% endif %} {% endmacro %} {% macro meta_list(meta) %} {% if meta['author'] or meta['date'] or meta['license'] or meta['version'] or meta['category'] %}
{% if meta['author'] %}
Author
{{ meta['author'] }}
{% endif %} {% if meta['date'] %}
Date
{{ meta['date'] }}
{% endif %} {% if meta['license'] %}
License
{{ meta['license'] }}
{% endif %} {% if meta['version'] %}
Version
{{ meta['version'] }}
{% endif %} {% if meta['category'] %}
Category
{{ meta['category'] }}
{% endif %}
{% endif %} {% endmacro %}