! Copyright (C) GFD Dennou Club, 2004.  All rights reserved.

! あるファイル名 urlBase に依存する変数すべてを取得するにはまず
! GTVarSearch(urlBase) を呼び出し、その後無限ループの中で
! GTVarSearch(url, end) を呼び出す。そうすることで url に1つ1つの
! 変数名が返る。end が真になったとき、すべての変数名を探索し終えた
! ことになる。

module gtvarsearch
    use an_types, only: AN_VARIABLE_SEARCH
    type(AN_VARIABLE_SEARCH), save:: an
end module

!---------------------------------------------------------------------
!  初期化サブルーチン
!---------------------------------------------------------------------
subroutine GTVarSearchInit(urlBase)
    use an_generic, only: var_search
    use gtvarsearch
    use dc_trace, only: beginsub, endsub
    character(len = *), intent(in):: urlBase
    call beginsub('gtvarsearchinit', 'urlbase=<%c>', c1=trim(urlbase))
    call var_search(an, urlBase=urlBase)
    call endsub('gtvarsearchinit')
end subroutine

!---------------------------------------------------------------------
!  各変数の探査サブルーチン
!---------------------------------------------------------------------
subroutine GTVarSearchNext(url, end)
    use an_generic, only: var_search
    use gtvarsearch
    use dc_trace, only: beginsub, endsub
    character(len = *), intent(out):: url
    logical, intent(out):: end
    call beginsub('gtvarsearchnext')
    call var_search(an, url=url, end=end)
    call endsub('gtvarsearchnext', 'url=%c end=%y', c1=trim(url), L=(/end/))
end subroutine
