Loading...
Searching...
No Matches
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
25 use gtool_history_internal, only: default
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
78999 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 !
98 use gtool_history_generic, only: historyvarinfoinquire
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
subroutine historyvarinfoinquire2(varinfo, name, dims, longname, units, xtype, time_average, average, err)
subroutine historyvarinfoinquire1(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_enotinit
Definition dc_error.f90:557
integer, parameter, public dc_noerr
Definition dc_error.f90:509
種別型パラメタを提供します。
Definition dc_types.f90:49
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition dc_types.f90:109
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition dc_types.f90:118
integer, parameter, public dp
倍精度実数型変数
Definition dc_types.f90:83
type(gt_history), target, save default