Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | path1 | |||
character(len=*), | intent(in) | :: | path2 |
function path_join(path1, path2) result(joined_path) character(len=*), intent(in) :: path1, path2 character(len=:), allocatable :: joined_path if (len_trim(path1) == 0) then joined_path = trim(path2) else if (len_trim(path2) == 0) then joined_path = trim(path1) else if (path2(1:1) == '/' .or. (len(path2) >= 2 .and. path2(2:2) == ':')) then ! path2 is absolute (Unix or Windows C:\...) joined_path = trim(path2) else ! Join with separator if (get_os_type() == OS_WINDOWS) then if (path1(len_trim(path1):len_trim(path1)) == '/' .or. & path1(len_trim(path1):len_trim(path1)) == '\') then joined_path = trim(path1)//trim(path2) else joined_path = join_path(trim(path1), trim(path2)) end if else if (path1(len_trim(path1):len_trim(path1)) == '/') then joined_path = trim(path1)//trim(path2) else joined_path = join_path(trim(path1), trim(path2)) end if end if end if end function path_join