fdoc

subroutinetype_bodyprivate

subroutine type_body(site, id, variables, bindings, finals, b)

Write what is specific to a derived type.

Arguments

NameTypeIntentAttributesDescription
sitetype(site_t)in

the site

idintegerin

the type

variablesintegerindimension(:)

its components

bindingsintegerindimension(:)

its bindings

finalsintegerindimension(:)

its final procedures

btype(buffer_t)inout

the HTML

Calls

Source

Show the code
subroutine type_body(site, id, variables, bindings, finals, b)
    type(site_t), intent(in) :: site        !! the site
    integer, intent(in) :: id               !! the type
    integer, intent(in) :: variables(:)     !! its components
    integer, intent(in) :: bindings(:)      !! its bindings
    integer, intent(in) :: finals(:)        !! its final procedures
    type(buffer_t), intent(inout) :: b      !! the HTML
    integer :: k

    associate (e => site%p%list%box(id)%e)
        if (allocated(e%more%extends)) then
            call add(b, '<div class="meta"><span>extends ')
            call link_to(site, e%extends_id, e%more%extends, b)
            call add(b, '</span></div>'//achar(10))
        end if
        if (size(e%attribs) > 0) then
            call add(b, '<ul class="chips">')
            call add_words(e%attribs, b)
            call add(b, '</ul>'//achar(10))
        end if
        if (size(variables) > 0) then
            call add(b, '<h2 id="components">Components</h2>'//achar(10))
            call argument_table(site, variables, .true., b)
        end if
        if (e%constructor > 0) then
            call add(b, '<h2 id="constructor">Constructor</h2>'//achar(10))
            call summary_item(site, e%constructor, b)
        end if
        if (size(bindings) > 0) then
            call add(b, '<h2 id="bindings">Type-bound procedures</h2>'//achar(10))
            call binding_table(site, bindings, b)
        end if
        if (size(finals) > 0) then
            call add(b, '<h2 id="final">Final procedures</h2>'//achar(10)//'<ul class="chips">')
            do k = 1, size(finals)
                call add(b, '<li>')
                call link_to(site, site%p%list%box(finals(k))%e%proto_id, site%p%list%box(finals(k))%e%name, b)
                call add(b, '</li>')
            end do
            call add(b, '</ul>'//achar(10))
        end if
        call source_section(site, id, b)
    end associate
end subroutine type_body

Graphs

Calls

Called by