@@ -326,8 +326,6 @@ subroutine get_netcdf_var_int_1d(this, varname, var, errmsg, errcode, start, cou
326
326
if (do_subset) then
327
327
! If subsetting is requested, then read only the specified
328
328
! subset of the variable:
329
- write (* ,* ) ' var size:' , size (var), alloc_dims(:)
330
- write (* ,* ) ' start/count:' , start(:), count (:)
331
329
errcode = pio_get_var(pio_file_handle, var_id, start, count, var(:))
332
330
else
333
331
! Otherwise, read the entire variable:
@@ -2258,12 +2256,12 @@ subroutine var_subset_check(varname, var_ndims, dim_sizes, do_subset, alloc_dims
2258
2256
2259
2257
! Check that start indices are within bounds:
2260
2258
do i = 1 , file_var_dim_num
2261
- if ((start(i) < 0 ) .or. (start(i) >= dim_sizes(i))) then
2259
+ if ((start(i) < 1 ) .or. (start(i) > dim_sizes(i))) then
2262
2260
errcode = bad_subset_range_err
2263
2261
write (errmsg, ' (a,i0,3a,i0,a,i0,a)' ) &
2264
2262
" Element " , i, " of 'start' for variable '" , &
2265
- trim (varname), " ' is out of bounds. Expected 0 to " , &
2266
- dim_sizes(i)- 1 , " but got " , start(i), " ."
2263
+ trim (varname), " ' is out of bounds. Expected 1 to " , &
2264
+ dim_sizes(i), " but got " , start(i), " ."
2267
2265
return
2268
2266
end if
2269
2267
end do
@@ -2274,20 +2272,20 @@ subroutine var_subset_check(varname, var_ndims, dim_sizes, do_subset, alloc_dims
2274
2272
! start + count is within bounds
2275
2273
! for each dimension:
2276
2274
do i = 1 , file_var_dim_num
2277
- if (count (i) < 0 ) then
2275
+ if (( count (i) < 1 ) .or. ( count (i) > dim_sizes(i)) ) then
2278
2276
errcode = bad_subset_range_err
2279
2277
write (errmsg, ' (a,i0,3a,i0,a,i0,a)' ) &
2280
2278
" Element " , i, " of 'count' for variable '" , &
2281
2279
trim (varname), " ' is out of bounds. Expected 1 to " , &
2282
2280
dim_sizes(i), " but got " , count (i), " ."
2283
2281
return
2284
- else if (start(i) + count (i) > dim_sizes(i)) then
2285
- errcode = bad_subset_range_err
2286
- write (errmsg, ' (a,i0,3a,i0,a,i0,a)' ) &
2287
- " Element " , i, " of 'start' + 'count' for variable '" , &
2288
- trim (varname), " ' is out of bounds. Expected 1 to " , &
2289
- dim_sizes(i), " but got " , start(i) + count (i), " ."
2290
- return
2282
+ ! else if (start(i) + count(i) > dim_sizes(i)) then
2283
+ ! errcode = bad_subset_range_err
2284
+ ! write(errmsg, '(a,i0,3a,i0,a,i0,a)') &
2285
+ ! "Element ", i, " of 'start' + 'count' for variable '", &
2286
+ ! trim(varname), "' is out of bounds. Expected 1 to ", &
2287
+ ! dim_sizes(i), " but got ", start(i) + count(i), "."
2288
+ ! return
2291
2289
end if
2292
2290
end do
2293
2291
0 commit comments