14 use dc_trace
, only: beginsub, endsub, dbgmessage
17 character(len = *),
intent(in):: urlBase
18 character(len = string):: file
20 character(len = *),
parameter:: subname =
'GDNcVarSearchInit' 22 call beginsub(subname,
'urlbase=<%c>', c1=trim(urlbase))
23 call urlsplit(trim(urlbase), file=file)
24 call gdncfileopen(iter%fileid, filename=file, writable=.false., err=err)
25 if (err) iter%fileid = -1
28 call endsub(subname,
'file=%d', i=(/iter%fileid/))
34 use netcdf
, only: nf90_max_name, nf90_noerr, &
35 & nf90_inquire_variable, nf90_inquire_dimension, nf90_inq_varid
38 use dc_trace
, only: beginsub, endsub, dbgmessage
41 character(len = *),
intent(out):: url
42 logical,
intent(out):: end
43 character(len = string):: filename
44 character(len = NF90_MAX_NAME):: varname
45 integer:: stat, varid_tmp
46 character(len = *),
parameter:: subname =
'GDNcVarSearchNext' 48 call beginsub(subname)
49 if (iter%fileid <= 0)
then 52 call endsub(subname,
"bad file %d", i=(/iter%fileid/))
55 if (iter%varid >= 0)
then 56 iter%varid = iter%varid + 1
57 stat = nf90_inquire_variable(iter%fileid, iter%varid, name = varname)
58 if (stat == nf90_noerr)
goto 900
61 do while (iter%dimid >= 0)
62 iter%dimid = iter%dimid + 1
64 stat = nf90_inquire_dimension(iter%fileid, iter%dimid, name = varname)
65 if (stat /= nf90_noerr)
exit 67 stat = nf90_inq_varid(iter%fileid, varname, varid_tmp)
68 if (stat /= nf90_noerr)
goto 900
74 call endsub(subname,
"end file %d", i=(/iter%fileid/))
78 call gdncfileinquire(iter%fileid, name=filename)
79 url = urlmerge(file=trim(filename), var=trim(varname))
81 call endsub(subname,
"file=%d url=<%c>", &
82 & i=(/iter%fileid/), c1=trim(url))
subroutine gdncfileclose(fileid, err)
subroutine gdncvarsearchnext(iter, url, end)
subroutine gdncfileopen(fileid, filename, writable, overwrite, stat, err)
subroutine gdncvarsearchinit(iter, urlBase)
Provides kind type parameter values.
integer, parameter, public string
Character length for string.