13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 use dc_string, only: strhead
38 use gtdata_generic, only: limit
44 use dc_trace, only: beginsub, endsub
45 use dc_present, only: present_and_true
46 implicit none
47 type(GT_VARIABLE), intent(out):: var
48 character(*), intent(in):: url
49 logical, intent(in), optional:: writable
50 logical, intent(out), optional:: err
51 integer:: ndims, stat, cause_i
52 character(STRING):: cause_c
53 integer, allocatable:: dimlen(:)
54 type(GD_NC_VARIABLE):: gdnc
55 character(STRING):: filevar, iorange
56 character(*), parameter:: subname = "GTVarOpen"
57 character(*), parameter:: version = &
58 & '$Name: $' // &
59 & '$Id: gtvaropen.f90,v 1.4 2009-05-25 09:55:57 morikawa Exp $'
60continue
61 call beginsub(subname, fmt='<%c>', c1=trim(url), version=version)
63 cause_i = 0
64 cause_c = ''
67 call open(gdnc, filevar, writable, err)
68 if ( present_and_true(err) ) then
70 goto 999
71 end if
73 allocate(dimlen(max(1, ndims)))
74 call inquire(gdnc, dimlen=dimlen)
75 call map_create(var, vtb_class_netcdf, gdnc%id, ndims, dimlen, stat)
77 cause_i = ndims
78 goto 999
79 end if
80 deallocate(dimlen)
81 call limit(var, trim(iorange))
83999 continue
84 call storeerror(stat, subname, err, cause_c = cause_c, cause_i = cause_i)
85 call endsub(subname, 'mapid=%d', i=(/var%mapid/))
subroutine, public storeerror(number, where, err, cause_c, cause_i)
integer, parameter, public gt_efake
integer, parameter, public dc_noerr
integer, parameter, public gt_enotvar
Provides kind type parameter values.
integer, parameter, public string
Character length for string
subroutine, public url_chop_iorange(fullname, iorange, remainder)
subroutine, public map_create(var, class, cid, ndims, allcount, stat)
subroutine gtvar_dump(var)