22 subroutine gdncvargetreal(var, start, cnt, stride, imap, siz, val, iostat)
35 integer,
intent(in):: start(:)
36 integer,
intent(in):: cnt(:)
37 integer,
intent(in):: stride(:)
38 integer,
intent(in):: imap(:)
43 integer,
intent(in):: siz
44 real(SP),
intent(out):: val(siz)
45 integer,
intent(out):: iostat
49 integer,
allocatable:: istart(:), istride(:), iimap(:)
50 character(*),
parameter:: subname =
'GDNcVarGetReal' 53 if (iostat /= nf90_noerr)
goto 999
56 if (
associated(ent%dimids)) nd =
size(ent%dimids)
57 if (min(
size(start),
size(cnt),
size(stride),
size(imap)) < nd)
then 62 iostat = nf90_get_var(ent%fileid, ent%varid, val(1), start)
66 allocate(istart(nd), istride(nd), iimap(nd))
67 istart(1:nd) = start(1:nd)
68 istride(1:nd) = stride(1:nd)
69 iimap(1:nd) = imap(1:nd)
72 iostat = nf90_get_var(ent%fileid, ent%varid, val, istart, cnt, istride, iimap)
73 if (iostat == nf90_eindefine)
then 74 iostat = nf90_enddef(ent%fileid)
75 if (iostat /= nf90_noerr)
return 76 iostat = nf90_get_var(ent%fileid, ent%varid, val, istart, cnt, istride, iimap)
77 if (iostat /= nf90_noerr)
return 78 iostat = nf90_redef(ent%fileid)
79 if (iostat /= nf90_noerr)
return 81 deallocate(istart, istride, iimap)
98 integer,
intent(in):: start(:)
99 integer,
intent(in):: cnt(:)
100 integer,
intent(in):: stride(:)
101 integer,
intent(in):: imap(:)
106 integer,
intent(in):: siz
107 real(DP),
intent(out):: val(siz)
108 integer,
intent(out):: iostat
112 integer,
allocatable:: istart(:), istride(:), iimap(:)
113 character(*),
parameter:: subname =
'GDNcVarGetDouble' 116 if (iostat /= nf90_noerr)
goto 999
119 if (
associated(ent%dimids)) nd =
size(ent%dimids)
120 if (min(
size(start),
size(cnt),
size(stride),
size(imap)) < nd)
then 125 iostat = nf90_get_var(ent%fileid, ent%varid, val(1), start)
129 allocate(istart(nd), istride(nd), iimap(nd))
130 istart(1:nd) = start(1:nd)
131 istride(1:nd) = stride(1:nd)
132 iimap(1:nd) = imap(1:nd)
135 iostat = nf90_get_var(ent%fileid, ent%varid, val, istart, cnt, istride, iimap)
136 if (iostat == nf90_eindefine)
then 137 iostat = nf90_enddef(ent%fileid)
138 if (iostat /= nf90_noerr)
return 139 iostat = nf90_get_var(ent%fileid, ent%varid, val, istart, cnt, istride, iimap)
140 if (iostat /= nf90_noerr)
return 141 iostat = nf90_redef(ent%fileid)
142 if (iostat /= nf90_noerr)
return 144 deallocate(istart, istride, iimap)
148 subroutine gdncvargetint(var, start, cnt, stride, imap, siz, val, iostat)
160 integer,
intent(in):: start(:)
161 integer,
intent(in):: cnt(:)
162 integer,
intent(in):: stride(:)
163 integer,
intent(in):: imap(:)
168 integer,
intent(in):: siz
169 integer,
intent(out):: val(siz)
170 integer,
intent(out):: iostat
174 integer,
allocatable:: istart(:), istride(:), iimap(:)
175 character(*),
parameter:: subname =
'GDNcVarGetInt' 178 if (iostat /= nf90_noerr)
goto 999
181 if (
associated(ent%dimids)) nd =
size(ent%dimids)
182 if (min(
size(start),
size(cnt),
size(stride),
size(imap)) < nd)
then 187 iostat = nf90_get_var(ent%fileid, ent%varid, val(1), start)
191 allocate(istart(nd), istride(nd), iimap(nd))
192 istart(1:nd) = start(1:nd)
193 istride(1:nd) = stride(1:nd)
194 iimap(1:nd) = imap(1:nd)
197 iostat = nf90_get_var(ent%fileid, ent%varid, val, istart, cnt, istride, iimap)
198 if (iostat == nf90_eindefine)
then 199 iostat = nf90_enddef(ent%fileid)
200 if (iostat /= nf90_noerr)
return 201 iostat = nf90_get_var(ent%fileid, ent%varid, val, istart, cnt, istride, iimap)
202 if (iostat /= nf90_noerr)
return 203 iostat = nf90_redef(ent%fileid)
204 if (iostat /= nf90_noerr)
return 206 deallocate(istart, istride, iimap)
integer function, public vtable_lookup(var, entry)
subroutine gdncvargetreal(var, start, cnt, stride, imap, siz, val, iostat)
subroutine gdncvargetint(var, start, cnt, stride, imap, siz, val, iostat)
integer, parameter, public dp
倍精度実数型変数
subroutine gdncvargetdouble(var, start, cnt, stride, imap, siz, val, iostat)
integer, parameter, public sp
単精度実数型変数