;+
;PROCEDURE:     print_cdf_info
;PURPOSE:   prints information about a specified cdf file
;INPUT:
;   filename: The name of the file for which info is desired.
;KEYWORDS:
;   none
;
;CREATED BY:    D. Larson
;LAST MODIFICATION:     @(#)print_cdf_info.pro 1.13 02/11/01
;-

pro print_cdf_info,filename,printatt=printatt
if keyword_set(filename) eq 0 then filename = dialog_pickfile()
print,'File: ',filename
id=cdf_open(filename)
info=cdf_info(id)
printdat,info,nstr=1
;print,'dim=',info.dim
Print,'VARIABLES:'
print_struct,info.vars
q= !quiet
;print,'number or records=',info.num_recs
;help,info,/st

cdf_doc,id,v,r,c
;print,v,r,c

if keyword_set(printatt) then begin
print,"ATTRIBUTES:"
;  gatts = cdf_var_atts(id,attri=allatt)
 for a=0,info.inq.natts-1 do begin
  cdf_control,id,att=a,get_attr_info=ai
  cdf_attinq,id,a,name,scope,maxrent,maxzent
  scp = strmid(scope,0,1)
  if scp eq 'G' then begin
     for gentry = 0,ai.maxgentry do begin
       if cdf_attexists(id,a,gentry) then begin
         cdf_attget,id,a,gentry,value
         print,a,gentry,name,value,format='(i3," ",i2," ",a," --> ",a)'
 ;        printdat,value
       endif
     endfor
  endif
  if scp eq 'V' then begin
     print,a,name,ai.numrentries,ai.numzentries,format='(i3," ","  "," ",a,"  (",i0,",",i0,")")'
  endif
 endfor
endif

if 0 then begin
Print,'VARIABLES:'
print,format='(" mrec ","rec"," Z","          VAR NAME","        TYPE"," ELEM", "   VARY"," DIMVAR")'
;help,cdf_varinq(id,0),/str
for itest =0,info.nvars-1  do begin
!quiet =1
   cdf_control,id,var=itest,get_var_info=info
!quiet = q
   vinq = cdf_varinq(id,itest)
   print,info.maxrec,format='(i5," ",$)'
   print,itest,vinq,format='(i3,i2,a18,a12,i5,a7,5z)'
endfor

for itest =0,info.nzvars-1  do begin
!quiet =1
   cdf_control,id,var=itest,get_var_info=info,/zvar
!quiet = q
   vinq = cdf_varinq(id,itest, /zvariable)
   print,info.maxrec,format='(i5," ",$)'
   print,itest,vinq,format='(i3,i2,a18,a12,i5, a7, i7,i7,i7,i7)'
endfor
endif

cdf_close,id
end