46 character(len = *),
intent(in):: urlBase
47 character(len = string):: file
49 character(len = *),
parameter:: subname =
'GDNcVarSearchInit'
51 call beginsub(subname,
'urlbase=<%c>', c1=trim(urlbase))
52 call urlsplit(trim(urlbase), file=file)
53 call gdncfileopen(iter%fileid, filename=file, writable=.false., err=err)
54 if (err) iter%fileid = -1
57 call endsub(subname,
'file=%d', i=(/iter%fileid/))
83 use netcdf,
only: nf90_max_name, nf90_noerr, &
84 & nf90_inquire_variable, nf90_inquire_dimension, nf90_inq_varid
90 character(len = *),
intent(out):: url
91 logical,
intent(out):: end
92 character(len = string):: filename
93 character(len = NF90_MAX_NAME):: varname
94 integer:: stat, varid_tmp
95 character(len = *),
parameter:: subname =
'GDNcVarSearchNext'
98 if (iter%fileid <= 0)
then
101 call endsub(subname,
"bad file %d", i=(/iter%fileid/))
104 if (iter%varid >= 0)
then
105 iter%varid = iter%varid + 1
106 stat = nf90_inquire_variable(iter%fileid, iter%varid, name = varname)
107 if (stat == nf90_noerr)
goto 900
110 do while (iter%dimid >= 0)
111 iter%dimid = iter%dimid + 1
113 stat = nf90_inquire_dimension(iter%fileid, iter%dimid, name = varname)
114 if (stat /= nf90_noerr)
exit
116 stat = nf90_inq_varid(iter%fileid, varname, varid_tmp)
117 if (stat /= nf90_noerr)
goto 900
123 call endsub(subname,
"end file %d", i=(/iter%fileid/))
127 call gdncfileinquire(iter%fileid, name=filename)
128 url = urlmerge(file=trim(filename), var=trim(varname))
130 call endsub(subname,
"file=%d url=<%c>", &
131 & i=(/iter%fileid/), c1=trim(url))
subroutine gdncfileclose(fileid, err)
subroutine gdncvarsearchnext(iter, url, end)
subroutine gdncvarsearchinit(iter, urlbase)
非公開なので gtdata_netcdf_generic には置かない
subroutine, public dbgmessage(fmt, i, r, d, l, n, c1, c2, c3, ca)
subroutine, public beginsub(name, fmt, i, r, d, l, n, c1, c2, c3, ca, version)
subroutine, public endsub(name, fmt, i, r, d, l, n, c1, c2, c3, ca)
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ