subroutineadd_external_modulesprivate
subroutine add_external_modules(p, s)
Add modules documented elsewhere: extra_mods, and the modules.json of external projects.
Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
| p | type(project_t) | inout | the project | |
| s | type(settings_t) | in | the settings |
Calls
Source
Show the code
subroutine add_external_modules(p, s)
type(project_t), intent(inout) :: p !! the project
type(settings_t), intent(in) :: s !! the settings
integer :: k, id
do k = 1, size(s%extra_mods)
id = p%list%add(E_MODULE, 0)
associate (e => p%list%box(id)%e)
e%name = s%extra_mods(k)%key
e%external_url = s%extra_mods(k)%value
e%permission = 'public'
allocate (e%more%uses(0), e%more%public_list(0), e%attribs(0), e%doc(0), e%meta(0))
end associate
call push_int(p%modules, id)
end do
do k = 1, size(s%external)
call load_external_project(p, s, s%external(k)%value)
end do
end subroutine add_external_modules