Loading...
Searching...
No Matches
historyvarinfocreate.f90
Go to the documentation of this file.
1!= GT_HISTORY_VARINFO 変数の作成
2!= Constructor of GT_HISTORY_VARINFO
3!
4! Authors:: Yasuhiro MORIKAWA
5! Version:: $Id: historyvarinfocreate.f90,v 1.1 2009-05-06 14:23:12 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 historyvarinfocreate1( varinfo, & ! (out)
11 & name, dims, longname, units, xtype, & ! (in)
12 & time_average, average, err & ! (in) optional
13 & )
14 !
15 !== GT_HISTORY_VARINFO 型変数作成
16 !
17 ! GT_HISTORY_VARINFO 型変数を作成します。
18 ! このサブルーチンによる設定の後、
19 ! HistoryAddVariable の *varinfo* に与えます。
20 ! さらに属性を付加する場合には HistoryVarinfoAddAttr
21 ! を用いてください。
22 !
23 ! Constructor of GT_HISTORY_VARINFO
24 !
26 use dc_types, only: string, token, dp
27 use dc_trace, only: beginsub, endsub, dbgmessage
28 use dc_message, only: messagenotify
30 implicit none
31 type(gt_history_varinfo),intent(inout) :: varinfo
32 character(*), intent(in):: name ! 変数名
33 character(*), intent(in):: dims(:) ! 依存する次元
34 character(*), intent(in):: longname ! 変数の記述的名称
35 character(*), intent(in):: units ! 変数の単位
36 character(*), intent(in), optional:: xtype
37 ! 変数の型
38 logical, intent(in), optional:: time_average
39 ! 時間平均
40 logical, intent(in), optional:: average
41 ! 時間平均 (後方互換用)
42 logical, intent(out), optional:: err
43 ! 例外処理用フラグ.
44 ! デフォルトでは, この手続き内でエラーが
45 ! 生じた場合, プログラムは強制終了します.
46 ! 引数 *err* が与えられる場合,
47 ! プログラムは強制終了せず, 代わりに
48 ! *err* に .true. が代入されます.
49 !
50 ! Exception handling flag.
51 ! By default, when error occur in
52 ! this procedure, the program aborts.
53 ! If this *err* argument is given,
54 ! .true. is substituted to *err* and
55 ! the program does not abort.
56
57 ! Internal Work
58 integer:: i, numdims, stat
59 character(STRING):: cause_c
60 character(*), parameter:: subname = "HistoryVarinfoCreate1"
61 continue
62 call beginsub(subname)
63 stat = dc_noerr
64 cause_c = ''
65
66 if ( varinfo % initialized ) then
67 stat = dc_ealreadyinit
68 cause_c = 'GT_HISTORY_VARINFO'
69 goto 999
70 end if
71
72 varinfo % name = name
73 varinfo % longname = longname
74 varinfo % units = units
75 if ( present(xtype) ) varinfo % xtype = xtype
76 if ( present(time_average) ) varinfo % time_average = time_average
77 if ( present(average) ) varinfo % time_average = average
78 numdims = size(dims)
79 allocate(varinfo % dims(numdims))
80 do i = 1, numdims
81 varinfo % dims(i) = dims(i)
82 if (len(trim(dims(i))) > token) then
83 call messagenotify('W', subname, &
84 & 'dimension name <%c> is trancated to <%c>', &
85 & c1=trim(dims(i)), c2=trim(varinfo % dims(i)))
86 end if
87 end do
88 varinfo % initialized = .true.
89
90999 continue
91 call storeerror( stat, subname, err, cause_c )
92 call endsub(subname)
93 end subroutine historyvarinfocreate1
94
95 !-------------------------------------------------------------------
96
97 subroutine historyvarinfocreate2( varinfo, & ! (out)
98 & name, dims, longname, units, xtype, & ! (in)
99 & time_average, average, err & ! (in) optional
100 & )
101 !
102 ! 使用方法は HistoryVarinfoCreate と同様です.
103 !
104 ! Usage is same as "HistoryVarinfoCreate".
105 !
106 !--
107 ! 総称名 Create として提供するためのサブルーチンです.
108 ! 機能は HistoryVarinfoCreate1 と同じです.
109 !++
111 use gtool_history_generic, only: historyvarinfocreate
112 use dc_trace, only: beginsub, endsub, dbgmessage
113 implicit none
114 type(gt_history_varinfo),intent(inout) :: varinfo
115 character(*), intent(in):: name ! 変数名
116 character(*), intent(in):: dims(:) ! 依存する次元
117 character(*), intent(in):: longname ! 変数の記述的名称
118 character(*), intent(in):: units ! 変数の単位
119 character(*), intent(in), optional:: xtype
120 ! 変数の型
121 logical, intent(in), optional:: time_average
122 ! 時間平均
123 logical, intent(in), optional:: average
124 ! 時間平均 (後方互換用)
125 logical, intent(out), optional:: err
126 ! 例外処理用フラグ.
127 ! デフォルトでは, この手続き内でエラーが
128 ! 生じた場合, プログラムは強制終了します.
129 ! 引数 *err* が与えられる場合,
130 ! プログラムは強制終了せず, 代わりに
131 ! *err* に .true. が代入されます.
132 !
133 ! Exception handling flag.
134 ! By default, when error occur in
135 ! this procedure, the program aborts.
136 ! If this *err* argument is given,
137 ! .true. is substituted to *err* and
138 ! the program does not abort.
139
140 ! Internal Work
141 character(*), parameter:: subname = "HistoryVarinfoCreate2"
142 continue
143 call beginsub(subname)
144 call historyvarinfocreate( varinfo, & ! (out)
145 & name, dims, longname, units, xtype, & ! (in)
146 & time_average, average, err & ! (in) optional
147 & )
148 call endsub(subname)
149 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)
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition dc_error.f90:830
integer, parameter, public dc_ealreadyinit
Definition dc_error.f90:558
integer, parameter, public dc_noerr
Definition dc_error.f90:509
Provides kind type parameter values.
Definition dc_types.f90:49
integer, parameter, public token
Character length for word, token
Definition dc_types.f90:109
integer, parameter, public string
Character length for string
Definition dc_types.f90:118
integer, parameter, public dp
Double Precision Real number
Definition dc_types.f90:83