;+
pro chkffscl, filename, img_list, nerr_arr, label
; 
; A program to check the IP instructions FLATFLD and SCALE.
; This program uses the decom file generated by the dofftst.src control file.
; (The IP program is contained in the file mk_ff.src).
;
;HISTORY:
;	Created Jan-95 by D.Mathur
;	   Apr-95 (MDM) - slight changes for logging purposes
;	 8-Jun-95 (MDM) - Corrected error - nerr_arr was not being passed out
;			  (nerr was being passed out instead)
;-

nerr_arr = intarr(3)
label    = strarr(3)
;
arr = str2arr(img_list)
p = (where(strpos(arr, '-') ne -1))(0)
if (p ne -1) then begin
    arr0 = arr
    temp = fix(str2arr(arr0(p), delim='-'))
    arr = indgen( temp(1)-temp(0)+1 ) + temp(0)
    if (p gt 0) then arr = [fix(arr0(0:p-1)), arr]
    if (p lt n_elements(arr0)-1) then arr = [arr, fix(arr0(p+1:*))]
end else begin
    arr = fix(arr)
end


read_mdi, filename, arr(0), ff_data, hdr    ; read flat field gain table
read_mdi, filename, arr(1), rcp_tbl, hdr    ; read reciprocal table
read_mdi, filename, arr(2), cal_img, hdr    ; read CAL (raw) image
read_mdi, filename, arr(3), ff_img, hdr     ; read flat fielded image
read_mdi, filename, arr(4), bpx_img, hdr    ; read bad pixel image
read_mdi, filename, arr(5), scl_img, hdr    ; read scaled image

print, ' '
print, '---------------------------------'
; Check Flat Field Data
ff_img_1 = long(cal_img) * long(ff_data) / 16  ; Shift count = 12
dummy = where (ff_img_1 ne ff_img, nerr)
print, nerr, format = '(/"# Errors in FLATFLD: ", i6)'
nerr_arr(0) = nerr
label(0) = 'FFSCL: FlatF'

; Check Bad Pixel data
ff_map = where (ff_data ne 0)
bpx_data = ff_data
bpx_data(ff_map) = 1 
bpx_img_1 = long(cal_img) * long(bpx_data)
dummy = where (bpx_img_1 ne bpx_img, nerr)
print, nerr, format = '("# Errors in BADPIX:  ", i6)'
nerr_arr(1) = nerr
label(1) = 'FFSCL: BadPix'

; Check Scaled Data
scl_img_1 = (long(cal_img) * 10) / 16          ; Shift count = 4
dummy = where (scl_img_1 ne scl_img, nerr)
print, nerr, format = '("# Errors in SCALE:   ", i6)'
print, '---------------------------------'
nerr_arr(2) = nerr
label(2) = 'FFSCL: Scale'


end
