14 & time_average, average, &
16 & origin_value, origin_unit, &
17 & terminus_value, terminus_unit, &
18 & slice_start, slice_end, slice_stride, &
20 & newfile_intvalue, newfile_intunit, &
64 use dc_date, only: dcdifftimecreate
65 use netcdf
, only: nf90_max_dims
68 real(DP),
intent(in),
optional:: interval_value
74 character(*),
intent(in),
optional:: interval_unit
77 character(*),
intent(in),
optional:: precision
80 logical,
intent(in),
optional:: time_average
83 logical,
intent(in),
optional:: average
86 character(*),
intent(in),
optional:: fileprefix
89 real(DP),
intent(in),
optional:: origin_value
92 character(*),
intent(in),
optional:: origin_unit
95 real(DP),
intent(in),
optional:: terminus_value
98 character(*),
intent(in),
optional:: terminus_unit
101 integer,
intent(in),
optional:: slice_start(:)
104 integer,
intent(in),
optional:: slice_end(:)
107 integer,
intent(in),
optional:: slice_stride(:)
110 logical,
intent(in),
optional:: space_average(:)
113 integer,
intent(in),
optional:: newfile_intvalue
116 character(*),
intent(in),
optional:: newfile_intunit
119 logical,
intent(out),
optional:: err
138 integer:: stat, ary_size
139 character(STRING):: cause_c
140 character(*),
parameter:: subname =
'HstNmlInfoCreate' 143 & fmt =
'@interval_value=%r @interval_unit=%c @precision=%c @time_average=%y @fileprefix=%c', &
157 if ( gthstnml % initialized )
then 159 cause_c =
'GTHST_NMLINFO' 167 allocate( gthstnml % gthstnml_list )
168 nullify( gthstnml % gthstnml_list % next )
174 gthstnml % gthstnml_list % name =
'' 175 gthstnml % gthstnml_list % file =
'' 177 allocate( gthstnml % gthstnml_list % interval_value )
178 allocate( gthstnml % gthstnml_list % interval_unit )
179 allocate( gthstnml % gthstnml_list % precision )
180 allocate( gthstnml % gthstnml_list % time_average )
181 allocate( gthstnml % gthstnml_list % fileprefix )
183 allocate( gthstnml % gthstnml_list % origin_value )
184 allocate( gthstnml % gthstnml_list % origin_unit )
185 allocate( gthstnml % gthstnml_list % terminus_value )
186 allocate( gthstnml % gthstnml_list % terminus_unit )
187 allocate( gthstnml % gthstnml_list % slice_start (1:nf90_max_dims) )
188 allocate( gthstnml % gthstnml_list % slice_end (1:nf90_max_dims) )
189 allocate( gthstnml % gthstnml_list % slice_stride (1:nf90_max_dims) )
190 allocate( gthstnml % gthstnml_list % space_average (1:nf90_max_dims) )
191 allocate( gthstnml % gthstnml_list % newfile_intvalue )
192 allocate( gthstnml % gthstnml_list % newfile_intunit )
195 gthstnml % gthstnml_list % interval_value = -1.0
196 gthstnml % gthstnml_list % interval_unit =
'sec' 197 gthstnml % gthstnml_list % precision =
'float' 198 gthstnml % gthstnml_list % time_average = .false.
199 gthstnml % gthstnml_list % fileprefix =
'' 201 gthstnml % gthstnml_list % origin_value = -1.0
202 gthstnml % gthstnml_list % origin_unit =
'sec' 203 gthstnml % gthstnml_list % terminus_value = -1.0
204 gthstnml % gthstnml_list % terminus_unit =
'sec' 205 gthstnml % gthstnml_list % slice_start = 1
206 gthstnml % gthstnml_list % slice_end = -1
207 gthstnml % gthstnml_list % slice_stride = 1
208 gthstnml % gthstnml_list % space_average = .false.
209 gthstnml % gthstnml_list % newfile_intvalue = -1
210 gthstnml % gthstnml_list % newfile_intunit =
'sec' 212 if (
present(interval_value) ) gthstnml % gthstnml_list % interval_value = interval_value
213 if (
present(interval_unit) ) gthstnml % gthstnml_list % interval_unit = interval_unit
214 if (
present(precision) ) gthstnml % gthstnml_list % precision = precision
216 if (
present(average) ) gthstnml % gthstnml_list % time_average = average
217 if (
present(time_average) ) gthstnml % gthstnml_list % time_average = time_average
218 if (
present(fileprefix) ) gthstnml % gthstnml_list % fileprefix = fileprefix
220 if (
present(origin_value ) ) gthstnml % gthstnml_list % origin_value = origin_value
221 if (
present(origin_unit ) ) gthstnml % gthstnml_list % origin_unit = origin_unit
222 if (
present(terminus_value ) ) gthstnml % gthstnml_list % terminus_value = terminus_value
223 if (
present(terminus_unit ) ) gthstnml % gthstnml_list % terminus_unit = terminus_unit
224 if (
present(slice_start ) )
then 225 ary_size =
size(slice_start)
226 gthstnml % gthstnml_list % slice_start(1:ary_size) = slice_start
228 if (
present(slice_end ) )
then 229 ary_size =
size(slice_end)
230 gthstnml % gthstnml_list % slice_end(1:ary_size) = slice_end
232 if (
present(slice_stride ) )
then 233 ary_size =
size(slice_stride)
234 gthstnml % gthstnml_list % slice_stride(1:ary_size) = slice_stride
236 if (
present(space_average ) )
then 237 ary_size =
size(space_average)
238 gthstnml % gthstnml_list % space_average(1:ary_size) = space_average
240 if (
present(newfile_intvalue) ) gthstnml % gthstnml_list % newfile_intvalue = newfile_intvalue
241 if (
present(newfile_intunit ) ) gthstnml % gthstnml_list % newfile_intunit = newfile_intunit
247 call dcdifftimecreate( &
248 & diff = interval_time, &
250 &
real( gthstnml % gthstnml_list % interval_value, DP ), &
251 & unit = gthstnml % gthstnml_list % interval_unit, &
262 gthstnml % initialized = .true.
263 gthstnml % define_mode = .true.
265 call storeerror( stat, subname, err, cause_c )
integer, parameter, public dc_earglack
integer, parameter, public usr_errno
integer, parameter, public dc_enofileread
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
logical function, public present_and_true(arg)
subroutine, public storeerror(number, where, err, cause_c, cause_i)
integer, parameter, public dc_noerr
character(string) function, public joinchar(carray, expr)
character(*), parameter, public version
integer, parameter, public dp
倍精度実数型変数
logical function, public present_and_not_empty(arg)
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
subroutine hstnmlinfocreate(gthstnml, interval_value, interval_unit, precision, time_average, average, fileprefix, origin_value, origin_unit, terminus_value, terminus_unit, slice_start, slice_end, slice_stride, space_average, newfile_intvalue, newfile_intunit, err)
integer, parameter, public stdout
標準出力の装置番号
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
integer, parameter, public dc_ealreadyinit
integer, parameter, public dc_enegative
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ