gtvarattrsearch.f90
Go to the documentation of this file.
1 !
2 != 変数の属性取得
3 !
4 ! Authors:: Eizi TOYODA, Yasuhiro MORIKAWA
5 ! Version:: $Id: gtvarattrsearch.f90,v 1.5 2009-05-25 09:55:58 morikawa Exp $
6 ! Tag Name:: $Name: $
7 ! Copyright:: Copyright (C) GFD Dennou Club, 2000-2005. All rights reserved.
8 ! License:: See COPYRIGHT[link:../../COPYRIGHT]
9 !
10 ! 以下のサブルーチン, 関数は gtdata_generic から提供されます。
11 !
12 !
13 
14 subroutine gtvarattrrewind(var)
15  !
16  !== 変数からの属性リスト取得 (初期化用)
17  !
18  ! *var* から属性名のリストを取得するために利用するサブルーチンです。
19  ! このサブルーチンと Attr_Next によって属性リスト一覧を取得できます。
20  !
21  ! ある変数 *var* について全ての属性を列挙するためには、まず
22  ! Attr_Rewind を呼んだ後、Attr_Next を呼びます。最初の呼び出しで
23  ! 最初の属性が、次の呼び出しで次の属性の名前が得られます。最後の
24  ! 属性のあとでは end == .true. となります。
25  !
26  ! 以下のサンプルソースコードを参照ください。
27  !
28  !
29  ! ! 属性一覧の取得
30  ! use gtool5
31  ! type(GT_VARIABLE):: var
32  ! character(len = STRING):: attrname
33  ! logical:: end
34  !
35  ! call Attr_Rewind(var)
36  ! do
37  ! call Attr_Next(var, attrname, end)
38  ! if (end) exit
39  ! write(*,*) trim(attrname)
40  ! enddo
41  !
42  use gtdata_types, only: gt_variable
43  use gtdata_internal_map, only: var_class, vtb_class_netcdf, vtb_class_memory
48  implicit none
49  type(gt_variable), intent(inout), target:: var
50  integer:: class, cid
51 continue
52  call var_class(var, class, cid)
53  select case(class)
54  case(vtb_class_netcdf)
55  call attr_rewind(gd_nc_variable(cid))
56  case(vtb_class_memory)
57  call attr_rewind(gd_mem_variable(cid))
58  end select
59 end subroutine gtvarattrrewind
60 
61 subroutine gtvarattrnext(var, name, end)
62  !
63  !== 変数からの属性リスト取得
64  !
65  ! Attr_Rewind を参照してください。
66  !
67  use gtdata_types, only: gt_variable
68  use gtdata_internal_map, only: var_class, vtb_class_netcdf, vtb_class_memory
73  implicit none
74  type(gt_variable), intent(inout), target:: var
75  character(len = *), intent(out):: name
76  logical, intent(out), optional:: end
77  integer:: class, cid
78 continue
79  call var_class(var, class, cid)
80  select case(class)
81  case(vtb_class_netcdf)
82  call attr_next(gd_nc_variable(cid), name, end)
83  case(vtb_class_memory)
84  call attr_next(gd_mem_variable(cid), name, end)
85  end select
86 end subroutine gtvarattrnext
subroutine gtvarattrrewind(var)
subroutine gtvarattrnext(var, name, end)
subroutine, public var_class(var, class, cid)