fdoc

subroutineinterface_bodyprivate

subroutine interface_body(site, id, b)

Write what is specific to a generic interface: the procedures in it.

Arguments

NameTypeIntentAttributesDescription
sitetype(site_t)in

the site

idintegerin

the interface

btype(buffer_t)inout

the HTML

Calls

Source

Show the code
subroutine interface_body(site, id, b)
    type(site_t), intent(in) :: site        !! the site
    integer, intent(in) :: id               !! the interface
    type(buffer_t), intent(inout) :: b      !! the HTML
    integer, allocatable :: specifics(:)
    logical :: forms
    integer :: k

    associate (e => site%p%list%box(id)%e)
        allocate (specifics(0))
        do k = 1, size(e%more%modproc_ids)
            if (e%more%modproc_ids(k) > 0) call push_int(specifics, e%more%modproc_ids(k))
        end do
        do k = 1, size(e%children)
            if (site%p%list%box(e%children(k))%e%kind == E_NONE) cycle
            if (allocated(site%p%list%box(e%children(k))%e%more%args)) call push_int(specifics, e%children(k))
        end do
        call write_call_forms(site%p%list, e%name, specifics, b, forms)

        call add(b, '<h2 id="procedures">Procedures</h2>'//achar(10))
        if (forms) then
            call add(b, '<details class="specifics"><summary>All '//trim(int_text(size(specifics)))// &
                     ' procedures</summary>'//achar(10))
        end if
        do k = 1, size(e%more%modproc_ids)
            if (e%more%modproc_ids(k) == 0) then
                call add(b, '<div class="item"><h3>')
                call html_escape(e%more%modprocs(k)%s, b, .false.)
                call add(b, '</h3></div>'//achar(10))
            else
                call summary_item(site, e%more%modproc_ids(k), b)
            end if
        end do
        do k = 1, size(e%children)
            if (site%p%list%box(e%children(k))%e%kind == E_NONE) cycle
            if (allocated(site%p%list%box(e%children(k))%e%more%args)) call summary_item(site, e%children(k), b)
        end do
        if (forms) call add(b, '</details>'//achar(10))
    end associate
end subroutine interface_body

Graphs

Calls

Called by