| Path: | gtdata/gtvarattrsearch.f90 |
| Last Update: | Mon May 25 18:55:58 +0900 2009 |
| Authors: | Eizi TOYODA, Yasuhiro MORIKAWA |
| Version: | $Id: gtvarattrsearch.f90,v 1.5 2009-05-25 09:55:58 morikawa Exp $ |
| Tag Name: | $Name: gtool5-20090602 $ |
| Copyright: | Copyright (C) GFD Dennou Club, 2000-2005. All rights reserved. |
| License: | See COPYRIGHT |
以下のサブルーチン, 関数は gtdata_generic から提供されます。
| Subroutine : | |
| var : | type(GT_VARIABLE), intent(inout), target |
| name : | character(len = *), intent(out) |
| end : | logical, intent(out), optional |
Attr_Rewind を参照してください。
subroutine GTVarAttrNext(var, name, end)
!
!== 変数からの属性リスト取得
!
! Attr_Rewind を参照してください。
!
use gtdata_types, only: GT_VARIABLE
use gtdata_internal_map, only: var_class, vtb_class_netcdf, vtb_class_memory
use gtdata_netcdf_generic, only: attr_next
use gtdata_netcdf_types, only: GD_NC_VARIABLE
use gtdata_memory_generic, only: attr_next
use gtdata_memory_types, only: GD_MEM_VARIABLE
implicit none
type(GT_VARIABLE), intent(inout), target:: var
character(len = *), intent(out):: name
logical, intent(out), optional:: end
integer:: class, cid
continue
call var_class(var, class, cid)
select case(class)
case(vtb_class_netcdf)
call attr_next(GD_NC_VARIABLE(cid), name, end)
case(vtb_class_memory)
call attr_next(GD_MEM_VARIABLE(cid), name, end)
end select
end subroutine GTVarAttrNext
| Subroutine : | |
| var : | type(GT_VARIABLE), intent(inout), target |
var から属性名のリストを取得するために利用するサブルーチンです。 このサブルーチンと Attr_Next によって属性リスト一覧を取得できます。
ある変数 var について全ての属性を列挙するためには、まず Attr_Rewind を呼んだ後、Attr_Next を呼びます。最初の呼び出しで 最初の属性が、次の呼び出しで次の属性の名前が得られます。最後の 属性のあとでは end == .true. となります。
以下のサンプルソースコードを参照ください。
! 属性一覧の取得
use gtool5
type(GT_VARIABLE):: var
character(len = STRING):: attrname
logical:: end
call Attr_Rewind(var)
do
call Attr_Next(var, attrname, end)
if (end) exit
write(*,*) trim(attrname)
enddo
subroutine GTVarAttrRewind(var)
!
!== 変数からの属性リスト取得 (初期化用)
!
! *var* から属性名のリストを取得するために利用するサブルーチンです。
! このサブルーチンと Attr_Next によって属性リスト一覧を取得できます。
!
! ある変数 *var* について全ての属性を列挙するためには、まず
! Attr_Rewind を呼んだ後、Attr_Next を呼びます。最初の呼び出しで
! 最初の属性が、次の呼び出しで次の属性の名前が得られます。最後の
! 属性のあとでは end == .true. となります。
!
! 以下のサンプルソースコードを参照ください。
!
!
! ! 属性一覧の取得
! use gtool5
! type(GT_VARIABLE):: var
! character(len = STRING):: attrname
! logical:: end
!
! call Attr_Rewind(var)
! do
! call Attr_Next(var, attrname, end)
! if (end) exit
! write(*,*) trim(attrname)
! enddo
!
use gtdata_types, only: GT_VARIABLE
use gtdata_internal_map, only: var_class, vtb_class_netcdf, vtb_class_memory
use gtdata_netcdf_generic, only: attr_rewind
use gtdata_netcdf_types, only: GD_NC_VARIABLE
use gtdata_memory_generic, only: attr_rewind
use gtdata_memory_types, only: GD_MEM_VARIABLE
implicit none
type(GT_VARIABLE), intent(inout), target:: var
integer:: class, cid
continue
call var_class(var, class, cid)
select case(class)
case(vtb_class_netcdf)
call attr_rewind(GD_NC_VARIABLE(cid))
case(vtb_class_memory)
call attr_rewind(GD_MEM_VARIABLE(cid))
end select
end subroutine GTVarAttrRewind