gdncvarsearch.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine gdncvarsearchinit (iter, urlBase)
 
subroutine gdncvarsearchnext (iter, url, end)
 

Function/Subroutine Documentation

◆ gdncvarsearchinit()

subroutine gdncvarsearchinit ( type(gd_nc_variable_search), intent(out)  iter,
character(len = *), intent(in)  urlBase 
)

Definition at line 10 of file gdncvarsearch.f90.

References dc_trace::beginsub(), dc_trace::dbgmessage(), dc_trace::endsub(), gdncfileopen(), and dc_types::string.

10  use dc_types, only: string
12  use dc_url, only: urlsplit
14  use dc_trace, only: beginsub, endsub, dbgmessage
15  implicit none
16  type(gd_nc_variable_search), intent(out):: iter
17  character(len = *), intent(in):: urlbase
18  character(len = string):: file
19  logical:: err
20  character(len = *), parameter:: subname = 'GDNcVarSearchInit'
21 
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
26  iter%varid = 0
27  iter%dimid = 0
28  call endsub(subname, 'file=%d', i=(/iter%fileid/))
subroutine, public dbgmessage(fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:509
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
subroutine gdncfileopen(fileid, filename, writable, overwrite, stat, err)
Definition: gdncfileopen.f90:2
種別型パラメタを提供します。
Definition: dc_types.f90:49
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ gdncvarsearchnext()

subroutine gdncvarsearchnext ( type(gd_nc_variable_search), intent(inout)  iter,
character(len = *), intent(out)  url,
logical, intent(out)  end 
)

Definition at line 32 of file gdncvarsearch.f90.

References dc_trace::beginsub(), dc_trace::dbgmessage(), dc_trace::endsub(), gdncfileclose(), and dc_types::string.

33  use dc_types, only: string
34  use netcdf, only: nf90_max_name, nf90_noerr, &
35  & nf90_inquire_variable, nf90_inquire_dimension, nf90_inq_varid
36  use dc_url, only: urlmerge
38  use dc_trace, only: beginsub, endsub, dbgmessage
39  implicit none
40  type(gd_nc_variable_search), intent(inout):: iter
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'
47 continue
48  call beginsub(subname)
49  if (iter%fileid <= 0) then
50  end = .TRUE.
51  url = ''
52  call endsub(subname, "bad file %d", i=(/iter%fileid/))
53  return
54  endif
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
59  iter%varid = -1
60  endif
61  do while (iter%dimid >= 0)
62  iter%dimid = iter%dimid + 1
63  ! --- 指定番号の次元がなければエラー ---
64  stat = nf90_inquire_dimension(iter%fileid, iter%dimid, name = varname)
65  if (stat /= nf90_noerr) exit
66  ! --- 指定番号の次元と同名の変数があれば却下、次番号へ ---
67  stat = nf90_inq_varid(iter%fileid, varname, varid_tmp)
68  if (stat /= nf90_noerr) goto 900
69  enddo
70  end = .TRUE.
71  url = ""
72  call gdncfileclose(iter%fileid)
73  iter%dimid = -1
74  call endsub(subname, "end file %d", i=(/iter%fileid/))
75  return
76 
77 900 continue
78  call gdncfileinquire(iter%fileid, name=filename)
79  url = urlmerge(file=trim(filename), var=trim(varname))
80  end = .FALSE.
81  call endsub(subname, "file=%d url=<%c>", &
82  & i=(/iter%fileid/), c1=trim(url))
83  return
subroutine gdncfileclose(fileid, err)
subroutine, public dbgmessage(fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:509
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
種別型パラメタを提供します。
Definition: dc_types.f90:49
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function: