function hdr_intf, attr, title, title2, units, minlat, maxlat, minlon, maxlon, $ misval, mskval, order, nl, nt, nv, verbose=verbose ; VARIABLE DESCRIPTIONS: ; nl Number of levels ; nt Number of time dimensions ; nv Number of variables size_out=size(attr) if size_out(size_out(0)+1) ne 8 then begin if (keyword_set(verbose)) then print,'Header information not read' return,attr endif else begin size_array=size(attr.a) if (size_array(0) GT 2) then begin if (attr.t_lnr.no_times EQ 1) then nt=1 if (attr.z_lvl.no_levels EQ 1) then nl=1 if (keyword_set(verbose)) then $ print,'Extracting time ',nt,' level ',nl,' and var ',nv b=extract(attr,/whole,time=nt,level=nl,var=nv,verbose=verbose) endif else begin b=attr endelse if n_elements(title) eq 0 then title=b.ttl_str if n_elements(title2) eq 0 then begin title2='' if (strlen(b.t_ext) GT 0) then title2=title2 + $ ' ' + strtrim(b.t_ext) + ', ' title2=title2 + ' ' + strtrim(attr.var_strc(nv-1).subtitle) ; if (strlen(b.z_ext) GT 0) then title2=title2 + $ ; ', level ' + strtrim(b.z_ext) endif if n_elements(units) eq 0 then units=attr.var_strc(nv-1).var_units if n_elements(minlat) eq 0 then $ minlat=b.y_lnr.startpt - b.y_lnr.incr * 0.5 if n_elements(maxlat) eq 0 then $ maxlat=minlat + b.y_lnr.gridpts * b.y_lnr.incr if n_elements(minlon) eq 0 then $ minlon=b.x_lnr.startpt - b.x_lnr.incr * 0.5 if n_elements(maxlon) eq 0 then $ maxlon=minlon + b.x_lnr.gridpts * b.x_lnr.incr if n_elements(misval) eq 0 then misval=b.unk if n_elements(mskval) eq 0 then mskval=b.msk_val if n_elements(order) eq 0 then order=b.order_info if (keyword_set(verbose)) then begin print,'The title is ',title print,'The secondary title is ',title2 print,'Units ',units print,'Starting Y-coordinate',minlat print,'Ending Y-coordinate',maxlat print,'Starting X-coordinate',minlon print,'Ending X-coordinate',maxlon print,'Undefined value',misval print,'Mask value',mskval print,'Order is ',order endif return,reform(b.a) endelse end