; Revision history:
; I. Barg 10-Jan-2000 Modified structure names (and tag names) to match 
;             "/iraf/stsdas/lib/hstio.h".
; 08-Jan-2001, I. Barg - Modified cna_initnlin to init up to 3 coeff
;		images and up to 6 error images, to accomodate
;		2nd-order correction scheme (as in STSDAS calnica Version 3.3)
; 10-Jan-2001, I. Barg - Changed all array indexes from () to [].


pro init_iodesc, dptr 

     dptr.filename = ' '  
     dptr.extname = ' '   
     dptr.extver = 0
     dptr.hflag = 0
     dptr.naxis1 = 0
     dptr.naxis2 = 0
     dptr.type = 0
     dptr.options = 0 
 
END

;pro init_hdr, hptr
;
;     hptr.nlines = 0
;     hptr.nalloc = 0
;     hptr.harray[*] = ' '
;
;END

pro init_sci, sptr

     sptr.tot_nx = 0
     sptr.tot_ny = 0
     sptr.nx = 0
     sptr.ny = 0
     sptr.data[*,*]=0.0

END

pro init_dq, sptr

     sptr.tot_nx = 0
     sptr.tot_ny = 0
     sptr.nx = 0
     sptr.ny = 0
     sptr.data[*,*]=0

END

pro init_err, sptr

     sptr.tot_nx = 0
     sptr.tot_ny = 0
     sptr.nx = 0
     sptr.ny = 0
     sptr.data[*,*]=0.0

END

pro init_smpl, sptr

     sptr.tot_nx = 0
     sptr.tot_ny = 0
     sptr.nx = 0
     sptr.ny = 0
     sptr.data[*,*]=0

END

pro init_intg, sptr

     sptr.tot_nx = 0
     sptr.tot_ny = 0
     sptr.nx = 0
     sptr.ny = 0
     sptr.data[*,*]=0.0

END

pro init_scihd, sciptr 

  init_iodesc, sciptr.iodesc 
  ;init_hdr, sciptr.hdr 
  init_sci, sciptr.data 
  sciptr.hdr[*] = ''
  sciptr.section.x_beg = 0
  sciptr.section.y_beg = 0
  sciptr.section.sx=0
  sciptr.section.sy=0

END

pro init_dqhd, dqptr 

  init_iodesc, dqptr.iodesc
  ;init_hdr, dqptr.hdr
  init_dq, dqptr.data 
  dqptr.hdr[*] = ''
  dqptr.section.x_beg = 0
  dqptr.section.y_beg = 0
  dqptr.section.sx=0
  dqptr.section.sy=0

END

pro init_errhd, errptr 

  init_iodesc, errptr.iodesc 
  ;init_hdr, errptr.hdr 
  init_err, errptr.data 
  errptr.hdr[*] = ''
  errptr.section.x_beg = 0
  errptr.section.y_beg = 0
  errptr.section.sx=0
  errptr.section.sy=0

END

pro init_smplhd, smplptr 

  init_iodesc, smplptr.iodesc 
  ;init_hdr, smplptr.hdr 
  init_smpl, smplptr.data 
  smplptr.hdr[*] = ''
  smplptr.section.x_beg = 0
  smplptr.section.y_beg = 0
  smplptr.section.sx=0
  smplptr.section.sy=0

END

pro init_intgd, intgptr 

  init_iodesc, intgptr.iodesc
  ;init_hdr, intgptr.hdr 
  init_intg, intgptr.data 
  intgptr.hdr[*] = ''
  intgptr.section.x_beg = 0
  intgptr.section.y_beg = 0
  intgptr.section.sx=0
  intgptr.section.sy=0

END

pro cna_initnic, NGptr

 NGptr.filename = ' '
 NGptr.group_num = 0
 NGptr.globalhdr[*] = ' '
 init_sci, NGptr.sci.data
 init_dq,  NGptr.dq.data
 init_err, NGptr.err.data
 init_smpl, NGptr.smpl.data
 init_intg, NGptr.intg.data

END

pro init_ref, refptr

  refptr.name = ''
  refptr.pedigree = ''
  refptr.descrip = ''

end

pro init_calstep, csptr

  init_ref, csptr.ref
  csptr.corr = 0
  csptr.done = 0
  csptr.swname = ''
  csptr.indname = ''
  csptr.pdname = ''

end

pro cna_initnicinfo, niptr

  niptr.filename = ''
  niptr.group = 0
  niptr.ngroups = 0
  niptr.NullData[*] = 0
  niptr.RefDataLoaded = 0
  niptr.DarkType = 0
  niptr.darkframe1 = 0
  niptr.darkframe1 = 0
  niptr.instr = ''
  niptr.camera = 0
  niptr.obsmode = 0
  niptr.filter = ''
  niptr.nread = 0
  niptr.nsamp = 0
  niptr.sampseq = ''
  niptr.readout = ''
  niptr.adcgain = 0.0
  niptr.exptime[*] = 0.0
  niptr.bunit[*] = 0
  niptr.tdftrans[*] = 0
  niptr.crthresh = 0.0
  niptr.zsthresh = 0.0

  init_calstep, niptr.BIAS
  init_calstep, niptr.ZOFF
  init_calstep, niptr.MASK
  init_calstep, niptr.NOIS
  init_calstep, niptr.NLIN
  init_calstep, niptr.DARK
  init_calstep, niptr.FLAT
  init_calstep, niptr.UNIT
  init_calstep, niptr.PHOT
  init_calstep, niptr.CRID
  init_calstep, niptr.BACK
  init_calstep, niptr.WARN

end


pro cna_initnlin, nlptr
  ; This routine now accomodates a 2nd-order correction, using 3 coefficient 
  ; and 6 error images.
  nlptr.globalhdr[*] = ''
  for i = 0, 1 do begin
    init_scihd, nlptr.nodes[i]
  endfor
  for i = 0, 2 do begin
    init_scihd, nlptr.coeff[i]
  endfor
  init_dqhd,nlptr.dqual
  for i = 0, 5 do begin
    init_errhd,  nlptr.error[i]
  endfor
  init_scihd, nlptr.zsci
  init_errhd, nlptr.zerr

end

pro cna_initphot, phot

  phot.mode = ''
  phot.flam = 0
  phot.fnu = 0
  phot.zpt = 0
  phot.plam = 0
  phot.bw = 0

end
