14 & size, xtype, name, url, err )
40 use dc_trace,
only: beginsub, endsub, dbgmessage
43 character(len=*),
intent(out),
optional:: xtype
45 character(len=*),
intent(out),
optional:: name
51 character(len=*),
intent(out),
optional:: url
56 integer,
intent(out),
optional:: rank
60 integer,
intent(out),
optional:: alldims
65 integer,
intent(out),
optional:: allcount
70 integer,
intent(out),
optional:: size
75 logical,
intent(out),
optional:: growable
80 logical,
intent(out),
optional:: err
96 call beginsub(
'gtvarinquire',
'var.mapid=%d', i=(/var%mapid/))
99 case(vtb_class_netcdf)
100 if (
present(xtype) .or.
present(name) .or.
present(url))
then
102 if (
present(xtype))
call dbgmessage(
'xtype=%c', c1=trim(xtype))
103 if (
present(name))
call dbgmessage(
'name=%c', c1=trim(name))
104 if (
present(url))
call dbgmessage(
'url=%c', c1=trim(url))
106 if (
present(growable))
then
108 call dbgmessage(
'growable=%y', l=(/growable/))
112 if (
present(allcount)) allcount = internal_get_allcount(var)
113 if (
present(size))
size = internal_get_size(var)
114 if (
present(rank)) rank = internal_get_rank(var)
115 call endsub(
'gtvarinquire')
124 call dbgmessage(
'alldims=%d', i=(/result/))
127 integer function internal_get_allcount(var)
result(result)
135 call dbgmessage(
'internal_get_allcount: no map')
141 result = product(map(1:nd)%allcount)
142 call dbgmessage(
'internal_get_allcount: %d map.size=%d', &
145 end function internal_get_allcount
147 integer function internal_get_size(var)
result(result)
155 call dbgmessage(
'internal_get_size: no map')
161 result = product(map(1:nd)%count)
162 call dbgmessage(
'internal_get_size: %d map.size=%d', &
165 end function internal_get_size
167 integer function internal_get_rank(var)
result(result)
176 call dbgmessage(
'internal_get_rank: no map')
182 result = count(map(1:nd)%count > 1)
183 call dbgmessage(
'internal_get_rank: %d', i=(/result/))
185 end function internal_get_rank
252 use gtdata_generic,
only: open, close, inquire
253 use dc_trace,
only: beginsub, endsub
256 integer,
intent(in):: dimord
257 character(len=*),
intent(out),
optional:: url
258 integer,
intent(out),
optional:: allcount
259 logical,
intent(out),
optional:: err
261 character(len = *),
parameter:: subnam =
"gtvarinquireD"
263 call beginsub(subnam,
"%d", i=(/dimord/))
264 call open(dimvar, source_var=var, dimord=dimord, err=err)
265 if (
present(url))
call inquire(dimvar, url=url)
266 if (
present(allcount))
call inquire(dimvar, allcount=allcount)
subroutine gtvarinquire(var, growable, rank, alldims, allcount, size, xtype, name, url, err)