Subroutine : |
|
url : | character(len = *), intent(out)
|
end : | logical, intent(out)
|
変数探査サブルーチン
あるファイル名 urlBase に依存する変数すべてを取得するには、 まず
GTVarSearch(urlBase) (下記のサブルーチン) を呼び出し、
その後無限ループの中で GTVarSearch(url, end) を呼び出します。
そうすることで url に1つ1つの変数名が返ります。 end
が真になったとき、すべての変数名を探索し終えたことになります。
例
use gtool5
character(len = STRING) :: filename, varname
logical :: end
write(*,*) "Enter file name: "
read(*,*) filename
call GTVarSearch(filename)
do
call GTVarSearch(varname, end)
if (end) exit
write(*, *) trim(varname)
enddo
[Source]
subroutine GTVarSearchNext(url, end)
!
!== 変数探査サブルーチン
!
! あるファイル名 urlBase に依存する変数すべてを取得するには、
! まず GTVarSearch(urlBase) (下記のサブルーチン) を呼び出し、
! その後無限ループの中で GTVarSearch(url, end) を呼び出します。
! そうすることで url に1つ1つの変数名が返ります。
! *end* が真になったとき、すべての変数名を探索し終えたことになります。
!
!=== 例
!
! use gtool5
! character(len = STRING) :: filename, varname
! logical :: end
!
! write(*,*) "Enter file name: "
! read(*,*) filename
!
! call GTVarSearch(filename)
! do
! call GTVarSearch(varname, end)
! if (end) exit
! write(*, *) trim(varname)
! enddo
!
use gtdata_netcdf_generic, only: var_search
use gtdata_internal_vartable, only: gdnc_search
use dc_trace, only: beginsub, endsub
implicit none
character(len = *), intent(out):: url
logical, intent(out):: end
continue
call beginsub('gtvarsearchnext')
call var_search(gdnc_search, url=url, end=end) ! (out)
call endsub('gtvarsearchnext', 'url=%c end=%y', c1=trim(url), L=(/end/))
end subroutine GTVarSearchNext