NCEPLIBS-ncio  1.0.0
All Namespaces Files Functions
read_vardata_code_5d.f90
1 
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
9  logical return_errcode
10  ! check if use the errcode
11  if(present(errcode)) then
12  return_errcode=.true.
13  errcode = 0
14  else
15  return_errcode=.false.
16  endif
17  nvar = get_nvar(dset,varname)
18  if (dset%variables(nvar)%ndims /= 5) then
19  if (return_errcode) then
20  errcode=nf90_ebaddim
21  return
22  else
23  print *,'rank of data array != variable ndims (or ndims-1)'
24  stop 99
25  endif
26  endif
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)
32  ! allocate/deallocate values
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)
36  ! err check
37  if (return_errcode) then
38  call nccheck(ncerr,halt=.false.)
39  errcode=ncerr
40  else
41  call nccheck(ncerr)
42  endif