96 & dims, dimsizes, longnames, units, xtypes, &
97 & institution, origin, interval, newest, oldest, &
98 & conventions, gt_version, &
110 logical,
intent(out),
optional :: err
111 character(*),
intent(out),
optional:: file, title, source, institution
112 real,
intent(out),
optional:: origin, interval
113 real,
intent(out),
optional:: newest
114 real,
intent(out),
optional:: oldest
115 character(*),
intent(out),
optional:: conventions, gt_version
116 character(*),
pointer,
optional:: dims(:)
117 integer,
pointer,
optional:: dimsizes(:)
118 character(*),
pointer,
optional:: longnames(:)
119 character(*),
pointer,
optional:: units(:)
120 character(*),
pointer,
optional:: xtypes(:)
125 character(STRING) :: url, cause_c
126 character(TOKEN) :: unknown_mes =
'unknown'
127 integer :: i, j, numdims, numvars, alldims, stat
130 character(*),
parameter:: subname =
"HistoryInquire1"
135 if (.not.
associated(history % dimvars) .or. &
136 &
size(history % dimvars) < 1)
then
141 if (
present(file))
then
142 call inquire(history % dimvars(1), url=url)
143 call urlsplit(fullname=url, file=file)
145 if (
present(title))
then
146 call get_attr(history % dimvars(1),
'+title', title, trim(unknown_mes))
148 if (
present(source))
then
149 call get_attr(history % dimvars(1),
'+source', source, trim(unknown_mes))
151 if (
present(institution))
then
152 call get_attr(history % dimvars(1),
'+institution', institution, trim(unknown_mes))
155 if (
present(origin))
then
156 origin = real(history % origin, kind=kind(origin))
159 if (
present(interval))
then
160 interval = real(history % interval, kind=kind(interval))
163 if (
present(newest))
then
164 newest = real(history % newest, kind=kind(newest))
167 if (
present(oldest))
then
168 oldest = real(history % oldest, kind=kind(oldest))
171 if (
present(conventions))
then
172 call get_attr(history % dimvars(1),
'+Conventions', conventions, trim(unknown_mes))
174 if (
present(gt_version))
then
175 call get_attr(history % dimvars(1),
'+gt_version', gt_version, trim(unknown_mes))
177 if (
present(dims))
then
178 numdims =
size(history % dimvars)
179 allocate(dims(numdims))
181 call inquire(history % dimvars(i), name=dims(i))
184 if (
present(dimsizes))
then
185 numdims =
size(history % dimvars)
186 allocate(dimsizes(numdims))
188 call inquire(history % dimvars(i), size=dimsizes(i), growable=growable)
189 if (growable) dimsizes(i) = 0
192 if (
present(longnames))
then
193 numdims =
size(history % dimvars)
194 allocate(longnames(numdims))
196 call get_attr(history % dimvars(i),
'long_name', &
197 & longnames(i),
'unknown')
200 if (
present(units))
then
201 numdims =
size(history % dimvars)
202 allocate(units(numdims))
204 call get_attr(history % dimvars(i),
'units', &
205 & units(i),
'unknown')
208 if (
present(xtypes))
then
209 numdims =
size(history % dimvars)
210 allocate(xtypes(numdims))
212 call inquire(history % dimvars(i), xtype=xtypes(i))
215 if (
present(axes))
then
216 numvars =
size(history % dimvars)
217 allocate(axes(numvars))
219 call inquire(history % dimvars(i), &
220 & allcount=axes(i) % length, &
221 & xtype=axes(i) % xtype, name=axes(i) % name)
222 call get_attr(history % dimvars(i),
'long_name', &
223 & axes(i) % longname,
'unknown')
224 call get_attr(history % dimvars(i),
'units', &
225 & axes(i) % units,
'unknown')
237 if (
present(varinfo))
then
238 if (.not.
associated(history % vars) )
then
242 if (
size(history % vars) < 1)
then
246 numvars =
size(history % vars)
247 allocate(varinfo(numvars))
249 call inquire(history % vars(i), alldims=alldims, &
250 & xtype=varinfo(i) % xtype, name=varinfo(i) % name)
251 call get_attr(history % vars(i),
'long_name', &
252 & varinfo(i) % longname,
'unknown')
253 call get_attr(history % vars(i),
'units', &
254 & varinfo(i) % units,
'unknown')
263 allocate(varinfo(i) % dims(alldims))
265 call open(var=dimvar, source_var=history % vars(i), &
266 & dimord=j, count_compact=.true.)
267 call inquire(dimvar, name=varinfo(i) % dims(j))
271 varinfo(i) % initialized = .true.
276 call storeerror(stat, subname, err, cause_c=cause_c)
296 & dims, dimsizes, longnames, units, xtypes, &
297 & institution, origin, interval, newest, oldest, &
298 & conventions, gt_version, &
307 character(*),
intent(in):: history
308 logical,
intent(out),
optional :: err
309 character(*),
intent(out),
optional:: file, title, source, institution
310 real,
intent(out),
optional:: origin, interval, newest, oldest
311 character(*),
intent(out),
optional:: conventions, gt_version
312 character(*),
pointer,
optional:: dims(:)
313 integer,
pointer,
optional:: dimsizes(:)
314 character(*),
pointer,
optional:: longnames(:)
315 character(*),
pointer,
optional:: units(:)
316 character(*),
pointer,
optional:: xtypes(:)
320 character(STRING):: cause_c
321 character(*),
parameter:: subname =
"HistoryInquire2"
323 call beginsub(subname,
"history=%c", c1=trim(history))
326 if (trim(history) /=
'default')
then
328 cause_c =
'history="' // trim(history) //
'"'
332 & dims, dimsizes, longnames, units, xtypes, &
333 & institution, origin, interval, newest, oldest, &
334 & conventions, gt_version, &
337 call storeerror(stat, subname, cause_c=cause_c)
354 & dims, dimsizes, longnames, units, xtypes, &
355 & institution, origin, interval, newest, oldest, &
356 & conventions, gt_version, &
363 logical,
intent(out),
optional :: err
364 character(*),
intent(out),
optional:: file, title, source, institution
365 real,
intent(out),
optional:: origin, interval
366 real,
intent(out),
optional:: newest
367 real,
intent(out),
optional:: oldest
368 character(*),
intent(out),
optional:: conventions, gt_version
369 character(*),
pointer,
optional:: dims(:)
370 integer,
pointer,
optional:: dimsizes(:)
371 character(*),
pointer,
optional:: longnames(:)
372 character(*),
pointer,
optional:: units(:)
373 character(*),
pointer,
optional:: xtypes(:)
377 character(*),
parameter:: subname =
"HistoryInquire3"
381 & dims, dimsizes, longnames, units, xtypes, &
382 & institution, origin, interval, newest, oldest, &
383 & conventions, gt_version, &
401 & dims, dimsizes, longnames, units, xtypes, &
402 & institution, origin, interval, newest, oldest, &
403 & conventions, gt_version, &
409 character(*),
intent(in):: history
410 logical,
intent(out),
optional :: err
411 character(*),
intent(out),
optional:: file, title, source, institution
412 real,
intent(out),
optional:: origin, interval, newest, oldest
413 character(*),
intent(out),
optional:: conventions, gt_version
414 character(*),
pointer,
optional:: dims(:)
415 integer,
pointer,
optional:: dimsizes(:)
416 character(*),
pointer,
optional:: longnames(:)
417 character(*),
pointer,
optional:: units(:)
418 character(*),
pointer,
optional:: xtypes(:)
421 character(*),
parameter:: subname =
"HistoryInquire4"
425 & dims, dimsizes, longnames, units, xtypes, &
426 & institution, origin, interval, newest, oldest, &
427 & conventions, gt_version, &
subroutine historyinquire3(history, err, file, title, source, dims, dimsizes, longnames, units, xtypes, institution, origin, interval, newest, oldest, conventions, gt_version, axes, varinfo)
subroutine historyinquire2(history, err, file, title, source, dims, dimsizes, longnames, units, xtypes, institution, origin, interval, newest, oldest, conventions, gt_version, axes, varinfo)
subroutine historyinquire4(history, err, file, title, source, dims, dimsizes, longnames, units, xtypes, institution, origin, interval, newest, oldest, conventions, gt_version, axes, varinfo)
subroutine historyinquire1(history, err, file, title, source, dims, dimsizes, longnames, units, xtypes, institution, origin, interval, newest, oldest, conventions, gt_version, axes, varinfo)
subroutine, public beginsub(name, fmt, i, r, d, l, n, c1, c2, c3, ca, version)