historyvarinfoinquire.f90
Go to the documentation of this file.
1 != GT_HISTORY_VARINFO 変数への問い合わせ
2 != Inquire for a GT_HISTORY_VARINFO variable
3 !
4 ! Authors:: Yasuhiro MORIKAWA
5 ! Version:: $Id: historyvarinfoinquire.f90,v 1.2 2009-05-25 09:45:19 morikawa Exp $
6 ! Tag Name:: $Name: $
7 ! Copyright:: Copyright (C) GFD Dennou Club, 2000-2009. All rights reserved.
8 ! License:: See COPYRIGHT[link:../../../COPYRIGHT]
9 !
10  subroutine historyvarinfoinquire1( varinfo, & ! (in)
11  & name, dims, longname, units, xtype, & ! (out) optional
12  & time_average, average, err & ! (out) optional
13  & )
14  !
15  !== GT_HISTORY_VARINFO 型変数への問い合わせ
16  !
17  ! GT_HISTORY_VARINFO 型の変数内の各情報を参照します。
18  !
19  ! dims はポインタ配列です。空状態にして与えてください。
20  !
21  use dc_types, only: string, token, dp
22  use dc_trace, only: beginsub, endsub, dbgmessage
26  implicit none
27  type(gt_history_varinfo),intent(in) :: varinfo
28  character(*), intent(out), optional:: name ! 変数名
29  character(*), pointer, optional:: dims(:) !(out) 依存する次元
30  character(*), intent(out), optional:: longname ! 変数の記述的名称
31  character(*), intent(out), optional:: units ! 変数の単位
32  character(*), intent(out), optional:: xtype ! 変数の型
33  logical, intent(out), optional:: time_average ! 時間平均
34  logical, intent(out), optional:: average ! 時間平均 (後方互換用)
35  logical, intent(out), optional:: err
36  ! 例外処理用フラグ.
37  ! デフォルトでは, この手続き内でエラーが
38  ! 生じた場合, プログラムは強制終了します.
39  ! 引数 *err* が与えられる場合,
40  ! プログラムは強制終了せず, 代わりに
41  ! *err* に .true. が代入されます.
42  !
43  ! Exception handling flag.
44  ! By default, when error occur in
45  ! this procedure, the program aborts.
46  ! If this *err* argument is given,
47  ! .true. is substituted to *err* and
48  ! the program does not abort.
49 
50  ! Internal Work
51  integer:: i, numdims, stat
52  character(STRING):: cause_c
53  character(*), parameter:: subname = "HistoryVarinfoInquire1"
54  continue
55  call beginsub(subname)
56  stat = dc_noerr
57  cause_c = ''
58 
59  if ( .not. varinfo % initialized ) then
60  stat = dc_enotinit
61  cause_c = 'GT_HISTORY_VARINFO'
62  goto 999
63  end if
64  if (present(name)) name = varinfo % name
65  if (present(dims)) then
66  numdims = size(varinfo % dims)
67  allocate(dims(numdims))
68  do i = 1, numdims
69  dims(i) = varinfo % dims(i)
70  end do
71  end if
72  if ( present(longname) ) longname = varinfo % longname
73  if ( present(units) ) units = varinfo % units
74  if ( present(xtype) ) xtype = varinfo % xtype
75  if ( present(time_average) ) time_average = varinfo % time_average
76  if ( present(average) ) average = varinfo % time_average
77 
78 999 continue
79  call storeerror(stat, subname, err, cause_c=cause_c)
80  call endsub(subname)
81  end subroutine historyvarinfoinquire1
82 
83  subroutine historyvarinfoinquire2( varinfo, & ! (in)
84  & name, dims, longname, units, xtype, & ! (out) optional
85  & time_average, average, err & ! (out) optional
86  & )
87  !
88  ! 使用方法は HistoryVarinfoInquire と同様です.
89  !
90  ! Usage is same as "HistoryVarinfoInquire".
91  !
92  !--
93  ! 総称名 Inquire として提供するためのサブルーチンです.
94  ! 機能は HistoryVarinfoInquire1 と同じです.
95  !++
96  !
99  use dc_trace, only: beginsub, endsub, dbgmessage
100  implicit none
101  type(gt_history_varinfo),intent(in) :: varinfo
102  character(*), intent(out), optional:: name ! 変数名
103  character(*), pointer, optional:: dims(:) !(out) 依存する次元
104  character(*), intent(out), optional:: longname ! 変数の記述的名称
105  character(*), intent(out), optional:: units ! 変数の単位
106  character(*), intent(out), optional:: xtype ! 変数の型
107  logical, intent(out), optional:: time_average ! 時間平均
108  logical, intent(out), optional:: average ! 時間平均 (後方互換用)
109  logical, intent(out), optional:: err
110  character(*), parameter:: subname = "HistoryVarinfoInquire2"
111  continue
112  call beginsub(subname)
113  call historyvarinfoinquire( varinfo, &
114  & name, dims, longname, units, xtype, &
115  & time_average, average, err )
116  call endsub(subname)
117  end subroutine historyvarinfoinquire2
type(gt_history), target, save, public default
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
subroutine historyvarinfoinquire1(varinfo, name, dims, longname, units, xtype, time_average, average, err)
subroutine historyvarinfoinquire2(varinfo, name, dims, longname, units, xtype, time_average, average, err)
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public dbgmessage(fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:509
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
種別型パラメタを提供します。
Definition: dc_types.f90:49
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118