gtvarattrtrue.f90
Go to the documentation of this file.
1 !
2 != 論理型属性の入力
3 !
4 ! Authors:: Eizi TOYODA, Yasuhiro MORIKAWA
5 ! Version:: $Id: gtvarattrtrue.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 logical function gtvarattrtrue(var, name, default) result(result)
14  !
15  !== 論理型属性の入力
16  !
17  ! 変数 *var* に付加されている属性 *name* の値を返します。
18  ! 属性値が論理型属性の場合のみ用いることが出来ます。
19  !
20  ! 以下の場合には .false. が返ります。
21  !
22  ! * 属性の値が文字型で "", "0", "0.0", "0.", ".0", "FALSE",
23  ! "false", ".FALSE.", ".false.", "F", "f", "0.0D0", "0.0d0"
24  ! のいづれかであった場合
25  ! * 属性の値が負の実数であった場合
26  !
27  ! 属性の値が正常に取得できず、且つ *default* が与えられて
28  ! いた場合、その値が返ります。*default* が与えられていなかった
29  ! 場合には .false. が返ります。
30  !
31  use gtdata_types, only: gt_variable
32  use gtdata_internal_map, only: var_class, vtb_class_netcdf, vtb_class_memory
36  use gtdata_memory_types, only: memvar_t => gd_mem_variable
37  use dc_error, only: storeerror, gt_enotvar
38  implicit none
39  type(gt_variable), intent(in):: var
40  character(len = *), intent(in):: name
41  logical, intent(in), optional:: default
42  integer:: class, cid
43 continue
44  call var_class(var, class, cid)
45  if (class == vtb_class_netcdf) then
46  call get_attr(gd_nc_variable(cid), name, result, default)
47  else if (class == vtb_class_memory) then
48  result = attr_true(memvar_t(cid), name, default)
49  else
50  call storeerror(gt_enotvar, "GTVarAttrTrue(NO VARIABLE)")
51  result = .false.
52  endif
53 end function gtvarattrtrue
integer, parameter, public gt_enotvar
Definition: dc_error.f90:533
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
logical function gtvarattrtrue(var, name, default)
subroutine, public var_class(var, class, cid)