subroutine GTVarOpen(var, url, writable, err)
implicit none
type(GT_VARIABLE), intent(inout):: var
character(*), intent(in):: url
logical, intent(in), optional:: writable
logical, intent(out), optional:: err
integer:: ndims
integer, allocatable:: dimlen(:)
type(an_variable):: an
character(len = string):: filevar, iorange
continue
call beginsub('gtvaropen', fmt='<%c>', c1=trim(url))
call url_chop_iorange(url, iorange=iorange, remainder=filevar)
if (StrHead(filevar, "memory:")) then
call StoreError(GT_EFAKE, "GTVarOpen(memory:)", err)
var = gt_variable(-1)
else
call ANVarOpen(an, filevar, writable, err)
call inquire(an, ndims=ndims)
allocate(dimlen(max(1, ndims)))
call inquire(an, dimlen=dimlen)
call map_create(var, vtb_class_netcdf, an%id, ndims, dimlen)
deallocate(dimlen)
endif
call limit(var, trim(iorange))
call gtvar_dump(var)
call endsub('gtvaropen', 'mapid=%d', i=(/var%mapid/))
end subroutine