66 & nf90_einval, nf90_enotvar
71 integer,
intent(in),
optional:: dimord
72 logical,
intent(out),
optional:: err
73 integer,
intent(out),
optional:: stat
75 integer:: mystat, vid, id, nd, idim_lo, idim_hi, ilast
78 if (
present(dimord))
call dbgmessage(
'dimord=%d', i=(/dimord/))
86 call dbgmessage(
'dimension map not associated')
93 if (
present(dimord))
then
94 if (dimord < 0 .or. dimord <=
size(map))
then
95 call dbgmessage(
'dimord=%d is out of 1..%d', i=(/dimord,
size(map)/))
105 call dbgmessage(
'idim scan range=(%d:%d)', i=(/idim_lo, idim_hi/))
108 do, id = idim_lo, idim_hi
109 ilast = map(id)%start + (map(id)%count * 2 - 1) * map(id)%stride
110 call dbgmessage(
'last_index=%d allcount=%d', &
111 & i=(/ilast, map(id)%allcount/))
112 if (ilast >= 1 .and. ilast <= map(id)%allcount)
then
113 map(id)%start = map(id)%start + map(id)%count * map(id)%stride
125 if (
present(stat))
then
127 if (
present(err)) err = (mystat /=
dc_noerr)
129 call storeerror(mystat,
"GTVarSliceNext", err)
131 call endsub(
'gtvarslicenext',
'stat=%d', i=(/mystat/))
subroutine gtvarslicenext(var, dimord, err, stat)
subroutine, public storeerror(number, where, err, cause_c, cause_i)
integer, parameter, public dc_noerr
Error storage variables
integer, parameter, public gt_enomoredims
-101 or less: Data structure errors
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)
subroutine, public map_lookup(var, vid, map, ndims)
subroutine map_set(var, map, stat)