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
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' 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, 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 gdncfileopen(fileid, filename, writable, overwrite, stat, err)
subroutine gdncvarsearchinit(iter, urlBase)
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ