pro ncdf_contents, ncfile, showData=showData

  id = ncdf_open(ncfile)

  file_inq = ncdf_inquire(id)
  ;help, file_inq, /structure
  if (file_inq.ngatts gt 0) then begin
    print, "Global attributes:"
    for i=0,file_inq.ngatts-1 do begin
      att_name = ncdf_attname(id, /global, i)
      if (att_name ne '') then begin
        ncdf_attget, id, /global, att_name, att_val
        print, "   " + att_name + " = '" + string(att_val) + "'"
      endif
    endfor
  endif

  if (file_inq.ndims gt 0) then begin
    print
    print, "Dimensions:"
    dnames = strarr(file_inq.ndims)
    for i=0,file_inq.ndims-1 do begin
      ncdf_diminq, id, i, dim_name, dim_size
      if (i eq file_inq.recdim) then $
        print, "   " + dim_name + ": Unlimited (" + strtrim(dim_size,2) + ")" $
      else $
        print, "   " + dim_name + ": " + strtrim(dim_size,2)
      dnames[i] = dim_name
    endfor
  endif

  if (file_inq.nvars gt 0) then begin
    print
    print, "Variables:"
    for i=0,file_inq.nvars-1 do begin
      var_inq = ncdf_varinq(id, i)
      var_str = "   " + var_inq.name
      if (var_inq.ndims gt 0) then $
        var_str = var_str + "(" + strjoin(dnames[var_inq.dim],",") + ")"
      print, var_str + ": " + var_inq.datatype
      if (var_inq.natts gt 0) then begin
        for j=0,var_inq.natts-1 do begin
          att_name = ncdf_attname(id, i, j)
          if (att_name ne '') then begin
            ncdf_attget, id, i, att_name, att_val
            print, "      " + att_name + " = '" + string(att_val) + "'"
          endif
        endfor
      endif
    endfor
  endif

  ncdf_close, id

end
