gtool5 Fortran 90/95 ライブラリ 1.0.0-rc5
English
Loading...
Searching...
No Matches
historyvarinfocreate.f90
Go to the documentation of this file.
1!> @file historyvarinfocreate.f90
2!>
3!> @author Yasuhiro MORIKAWA
4!> @copyright Copyright (C) GFD Dennou Club, 2000-2026. All rights reserved. <br/>
5!> License is BSD-2-Clause. See [COPYRIGHT](@ref COPYRIGHT) in detail
6!>
7!> @en
8!> @brief Constructor of GT_HISTORY_VARINFO
9!> @enden
10!>
11!> @ja
12!> @brief GT_HISTORY_VARINFO 変数の作成
13!> @endja
14
15!>
16!> @en
17!> @brief Create a GT_HISTORY_VARINFO variable
18!>
19!> Creates a GT_HISTORY_VARINFO variable.
20!> After setting with this subroutine,
21!> pass it to the varinfo argument of HistoryAddVariable.
22!> To add attributes, use HistoryVarinfoAddAttr.
23!> @param[inout] varinfo Variable information
24!> @param[in] name Variable name
25!> @param[in] dims Dependent dimensions
26!> @param[in] longname Descriptive name
27!> @param[in] units Units
28!> @param[in] xtype Variable type (optional)
29!> @param[in] time_average Time average flag (optional)
30!> @param[in] average Time average flag (optional, backward compatibility)
31!> @param[out] err Error flag (optional)
32!> @enden
33!>
34!> @ja
35!> @brief GT_HISTORY_VARINFO 型変数作成
36!>
37!> GT_HISTORY_VARINFO 型変数を作成します。
38!> このサブルーチンによる設定の後、
39!> HistoryAddVariable の varinfo に与えます。
40!> さらに属性を付加する場合には HistoryVarinfoAddAttr
41!> を用いてください。
42!> @param[inout] varinfo 変数情報
43!> @param[in] name 変数名
44!> @param[in] dims 依存する次元
45!> @param[in] longname 変数の記述的名称
46!> @param[in] units 変数の単位
47!> @param[in] xtype 変数の型 (省略可能)
48!> @param[in] time_average 時間平均 (省略可能)
49!> @param[in] average 時間平均 (省略可能, 後方互換用)
50!> @param[out] err エラーフラグ (省略可能)
51!> @endja
52!>
53 subroutine historyvarinfocreate1( varinfo, & ! (out)
54 & name, dims, longname, units, xtype, & ! (in)
55 & time_average, average, err & ! (in) optional
56 & )
57 !
59 use dc_types, only: string, token
60 use dc_trace, only: beginsub, endsub
61 use dc_message, only: messagenotify
63 implicit none
64 type(gt_history_varinfo),intent(inout) :: varinfo
65 character(*), intent(in):: name ! 変数名
66 character(*), intent(in):: dims(:) ! 依存する次元
67 character(*), intent(in):: longname ! 変数の記述的名称
68 character(*), intent(in):: units ! 変数の単位
69 character(*), intent(in), optional:: xtype
70 ! 変数の型
71 logical, intent(in), optional:: time_average
72 ! 時間平均
73 logical, intent(in), optional:: average
74 ! 時間平均 (後方互換用)
75 logical, intent(out), optional:: err
76 ! 例外処理用フラグ.
77 ! デフォルトでは, この手続き内でエラーが
78 ! 生じた場合, プログラムは強制終了します.
79 ! 引数 *err* が与えられる場合,
80 ! プログラムは強制終了せず, 代わりに
81 ! *err* に .true. が代入されます.
82 !
83 ! Exception handling flag.
84 ! By default, when error occur in
85 ! this procedure, the program aborts.
86 ! If this *err* argument is given,
87 ! .true. is substituted to *err* and
88 ! the program does not abort.
89
90 ! Internal Work
91 integer:: i, numdims, stat
92 character(STRING):: cause_c
93 character(*), parameter:: subname = "HistoryVarinfoCreate1"
94 continue
95 call beginsub(subname)
96 stat = dc_noerr
97 cause_c = ''
98
99 if ( varinfo % initialized ) then
100 stat = dc_ealreadyinit
101 cause_c = 'GT_HISTORY_VARINFO'
102 goto 999
103 end if
104
105 varinfo % name = name
106 varinfo % longname = longname
107 varinfo % units = units
108 if ( present(xtype) ) varinfo % xtype = xtype
109 if ( present(time_average) ) varinfo % time_average = time_average
110 if ( present(average) ) varinfo % time_average = average
111 numdims = size(dims)
112 allocate(varinfo % dims(numdims))
113 do i = 1, numdims
114 varinfo % dims(i) = dims(i)
115 if (len(trim(dims(i))) > token) then
116 call messagenotify('W', subname, &
117 & 'dimension name <%c> is trancated to <%c>', &
118 & c1=trim(dims(i)), c2=trim(varinfo % dims(i)))
119 end if
120 end do
121 varinfo % initialized = .true.
122
123999 continue
124 call storeerror( stat, subname, err, cause_c )
125 call endsub(subname)
126 end subroutine historyvarinfocreate1
127
128 !-------------------------------------------------------------------
129
130!> @en
131 !> @brief Create a GT_HISTORY_VARINFO variable (generic interface)
132 !>
133 !> Usage is same as HistoryVarinfoCreate.
134 !> @enden
135 !> @ja
136 !> @brief GT_HISTORY_VARINFO 型変数作成 (総称インターフェース)
137 !>
138 !> 使用方法は HistoryVarinfoCreate と同様です。
139 !> @endja
140 subroutine historyvarinfocreate2( varinfo, & ! (out)
141 & name, dims, longname, units, xtype, & ! (in)
142 & time_average, average, err & ! (in) optional
143 & )
146 use dc_trace, only: beginsub, endsub
147 implicit none
148 type(gt_history_varinfo),intent(inout) :: varinfo
149 character(*), intent(in):: name ! 変数名
150 character(*), intent(in):: dims(:) ! 依存する次元
151 character(*), intent(in):: longname ! 変数の記述的名称
152 character(*), intent(in):: units ! 変数の単位
153 character(*), intent(in), optional:: xtype
154 ! 変数の型
155 logical, intent(in), optional:: time_average
156 ! 時間平均
157 logical, intent(in), optional:: average
158 ! 時間平均 (後方互換用)
159 logical, intent(out), optional:: err
160 ! 例外処理用フラグ.
161 ! デフォルトでは, この手続き内でエラーが
162 ! 生じた場合, プログラムは強制終了します.
163 ! 引数 *err* が与えられる場合,
164 ! プログラムは強制終了せず, 代わりに
165 ! *err* に .true. が代入されます.
166 !
167 ! Exception handling flag.
168 ! By default, when error occur in
169 ! this procedure, the program aborts.
170 ! If this *err* argument is given,
171 ! .true. is substituted to *err* and
172 ! the program does not abort.
173
174 ! Internal Work
175 character(*), parameter:: subname = "HistoryVarinfoCreate2"
176 continue
177 call beginsub(subname)
178 call historyvarinfocreate( varinfo, & ! (out)
179 & name, dims, longname, units, xtype, & ! (in)
180 & time_average, average, err & ! (in) optional
181 & )
182 call endsub(subname)
183 end subroutine historyvarinfocreate2
subroutine historyvarinfocreate2(varinfo, name, dims, longname, units, xtype, time_average, average, err)
subroutine historyvarinfocreate1(varinfo, name, dims, longname, units, xtype, time_average, average, err)
エラー処理用モジュール
Definition dc_error.f90:454
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition dc_error.f90:891
integer, parameter, public dc_ealreadyinit
Definition dc_error.f90:535
integer, parameter, public dc_noerr
エラー等を保持
Definition dc_error.f90:468
メッセージの出力
デバッグ時の追跡用モジュール
Definition dc_trace.f90:150
subroutine, public beginsub(name, fmt, i, r, d, l, n, c1, c2, c3, ca, version)
Definition dc_trace.f90:457
subroutine, public endsub(name, fmt, i, r, d, l, n, c1, c2, c3, ca)
Definition dc_trace.f90:580
種別型パラメタを提供します。
Definition dc_types.f90:55
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition dc_types.f90:128
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition dc_types.f90:137