5 type(Dataset),
intent(in) :: dset
6 character(len=*),
intent(in) :: varname
7 integer,
intent(out),
optional :: errcode
8 integer ncerr, nvar, n1,n2,n3,n4,n5
11 if(
present(errcode))
then
15 return_errcode=.false.
17 nvar = get_nvar(dset,varname)
18 if (dset%variables(nvar)%ndims /= 5)
then
19 if (return_errcode)
then
23 print *,
'rank of data array != variable ndims (or ndims-1)'
27 n1 = dset%variables(nvar)%dimlens(1)
28 n2 = dset%variables(nvar)%dimlens(2)
29 n3 = dset%variables(nvar)%dimlens(3)
30 n4 = dset%variables(nvar)%dimlens(4)
31 n5 = dset%variables(nvar)%dimlens(5)
33 if (
allocated(values))
deallocate(values)
34 allocate(values(n1,n2,n3,n4,n5))
35 ncerr = nf90_get_var(dset%ncid, dset%variables(nvar)%varid, values)
37 if (return_errcode)
then
38 call nccheck(ncerr,halt=.false.)