gt4f90ioリファレンスマニュアル - 手続名のリスト

変数 URL の文字列解析 (dc_url モジュール)

2004年08月08日 森川靖大


概要

dc_url は変数 URL 文字列を操作するためのサブルーチン群を持つモジュールです。 gtool4 で言う「変数」に関しては gtool 変数名 を参照してください。

書式

変数 URL の分解

subroutine UrlSplit(fullname, file, var, attr, iorange)
    character(len = *), intent(in)            :: fullname
    character(len = *), intent(out), optional :: file, var, attr, iorange
end subroutine

fullname で与えられる変数 URL を、ファイル名 file、 変数名 var、属性名 attr、入出力範囲指定 iorange に分解して返します。

変数 URL の結合

function UrlMerge(file, var, attr, iorange) result (result)
    use dc_types, only: string
    character(len = string)        :: result
    character(len = *), intent(in) :: file
    character(len = *), intent(in) :: var
    character(len = *), intent(in) :: attr
    character(len = *), intent(in) :: iorange
end function

function UrlMerge(file, var) result (result)
    use dc_types, only: string
    character(len = string)        :: result
    character(len = *), intent(in) :: file
    character(len = *), intent(in) :: var
end function

ファイル名 file、変数名 var、属性 attr、入出力範囲 iorange を結合して relsult として返します。

変数 URL の補完

function UrlResolve(relative, base) result(result)
    use dc_types, only: string
    character(len = STRING)        :: result
    character(len = *), intent(in) :: relative
    character(len = *), intent(in) :: base
end function

relative で与えられる変数 URL が完全でない (ファイル名、 変数名、属性名、入出力範囲指定のどれかが無い) 場合に、 base から補完します。

変数 URL から iorange を除去

subroutine Url_Chop_iorange(fullname, iorange, remainder)
    character(len = *), intent(in)  :: fullname
    character(len = *), intent(out) :: iorange, remainder
end subroutine

fullname で与えられる変数 URL から入出力範囲指定 iorange を除去し、remainder に返します。

変数 URL が同じファイルを指すかどうか判定

interface operator(.OnTheSameFile.)
    module procedure UrlOnTheSameFile
end interface

logical function UrlOnTheSameFile(url_a, url_b) result(result)
    use dc_types, only: string
        character(len = *), intent(in) :: url_a
        character(len = *), intent(in) :: url_b
end function

url_a で与えられる変数 URL と url_b で与えられる変数 URL とが同じファイルを指しているかどうか判定します。 利用者定義演算子 .OnTheSameFile. としても定義されているので、演算子として使用することが可能です。