Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | module_name | |||
character(len=*), | intent(out) | :: | package_name | |||
character(len=*), | intent(out) | :: | git_url | |||
character(len=*), | intent(out) | :: | version | |||
logical, | intent(out) | :: | found |
subroutine resolve_module_with_version(module_name, package_name, git_url, version, found) character(len=*), intent(in) :: module_name character(len=*), intent(out) :: package_name character(len=*), intent(out) :: git_url character(len=*), intent(out) :: version logical, intent(out) :: found integer :: i, underscore_pos character(len=128) :: inferred_package found = .false. package_name = '' git_url = '' version = '' ! First check prefixes do i = 1, n_packages if (len_trim(packages(i)%prefix) > 0) then if (index(module_name, trim(packages(i)%prefix)) == 1) then package_name = packages(i)%name git_url = packages(i)%git_url version = packages(i)%version found = .true. return end if end if end do ! Try underscore inference underscore_pos = index(module_name, '_') if (underscore_pos > 0) then inferred_package = module_name(1:underscore_pos - 1)//'-fortran' else inferred_package = module_name end if ! Look for inferred package name do i = 1, n_packages if (trim(packages(i)%name) == trim(inferred_package)) then package_name = packages(i)%name git_url = packages(i)%git_url version = packages(i)%version found = .true. return end if end do end subroutine resolve_module_with_version