pro do_polariz,INDEXLIST=indexlist,SAVEPATH=savepath,CAMERA=camera_batch, $
SAVE_POLARIZ=save_polariz,SAVE_PERCENT=save_percent,SAVE_MU=save_mu,SAVE_Q=save_q, $
SAVE_US=save_u, SAVE_UNPOLARIZ=save_unpol, SAVE_TOTAL=save_total, $
SAVE_JY=save_jy,SAVE_JZ=save_jz,SAVE_ALL=save_all,DIFF=diff,PTF=ptf, $
VIG=vig,AUTO=auto,HELP=help,C1TRIPLE=c1triple,FIXC3ZERO=fixc3zero,ROI=roi, $
SEQNO=seqno,DATATYPE=datatype


COMMON POLARIZ_DATA,camera,b0,aa,bb,cc,t,un,mu,cmu,jy,jz,i0,i1,i2,i3,pathname,h0,h1,h2,h3,corr1,corr2,corr3,pexptime,bias,lasco_hdr

error_keyword = 0
camera = 0
IF KEYWORD_SET(CAMERA_BATCH) then BEGIN
 if camera_batch gt 0 and camera_batch le 3 then camera = camera_batch $
 else error_keyword = 1
ENDIF ELSE BEGIN
 camera_batch = 0
ENDELSE
filter1=''
filter2=''
filter3=''
igroup = -1
ngroup = 24


if( keyword_set(HELP)) then BEGIN
print,'KEYWORDS: 
print,' FIXC3ZERO'
print,' INDEXLIST'
print,' SAVEPATH'
print,' CAMERA'
print,' SAVE_POLARIZ'
print,' SAVE_PERCENT'
print,' SAVE_MU'
print,' SAVE_Q'
print,' SAVE_US'
print,' SAVE_UNPOLARIZ'
print,' SAVE_TOTAL'
print,' SAVE_JY'
print,' SAVE_JZ'
print,' SAVE_ALL'
print,' DIFF'
print,' PTF'
print,' VIG'
print,' AUTO'
print,' ROI'
print,' SEQNO'
print,' DATATYPE'
print,' HELP'
RETURN
ENDIF

IF( keyword_set(PTF)) then ptf = 1 else ptf = 0 
IF( keyword_set(VIG)) then vig = 1 else vig = 0 
IF( keyword_set(AUTO)) then auto = 1 else auto = 0 
IF( keyword_set(FIXC3ZERO)) then fixc3zero = 1 else fixc3zero = 0 
IF( NOT keyword_set(ROI)) then roi = 20 
IF( NOT keyword_set(SEQNO)) then seqno = -1 

IF( NOT keyword_set(DATATYPE)) then datatype = -1 
IF datatype ne -1 and datatype ne 5 and datatype ne 1 and datatype ne 2 then error_keyword = 2

CASE error_keyword OF
 1: print,'Invalid CAMERA keyword',camera_batch
 2: print,'Invalid DATATYPE keyword',datatype
 ELSE:
ENDCASE

print,'do_polariz',ptf,vig,auto,fixc3zero,seqno,camera_batch,datatype

if ( keyword_set(INDEXLIST) and $
     keyword_set(SAVEPATH) and $
     keyword_set(CAMERA)) then BEGIN
    IF strpos(indexlist[0],'img_hdr.txt') GE 0 THEN indexfiles=indexlist ELSE read_list,indexlist,indexfiles
 n_elem = n_elements(indexfiles) - 1
 FOR ifile = 0, n_elem do BEGIN
  igroup = -1
  ngroup = 24
  if( auto eq 1) then igroup = 0
   REPEAT BEGIN
   error = polariz(j0,j1,j2,j3,filter0,filter1,filter2,filter3,vig,ptf, $
   fixc3zero,seqno,datatype,igroup,ngroup,FILELIST=indexfiles(ifile),CAMERA=camera_batch) 
   if ( error eq 0 ) then BEGIN
    if( keyword_set( SAVE_POLARIZ ) ) THEN save_polariz = 1 ELSE save_polariz = 0
    if( keyword_set( SAVE_PERCENT ) ) THEN save_percent = 1 ELSE save_percent = 0
    if( keyword_set( SAVE_MU ) ) THEN save_mu = 1 ELSE save_mu = 0
    if( keyword_set( SAVE_Q ) ) THEN save_q = 1 ELSE save_q = 0
    if( keyword_set( SAVE_U ) ) THEN save_u = 1 ELSE save_u = 0
    if( keyword_set( SAVE_UNPOL ) ) THEN save_unpol = 1 ELSE save_unpol = 0
    if( keyword_set( SAVE_TOTAL ) ) THEN save_total = 1 ELSE save_total = 0
    if( keyword_set( SAVE_JY ) ) THEN save_jy = 1 ELSE save_jy = 0
    if( keyword_set( SAVE_JZ ) ) THEN save_jz = 1 ELSE save_jz = 0
    if( keyword_set(SAVE_ALL) ) THEN BEGIN
     save_polariz = 1
     save_percent = 1
     save_mu = 1
     save_q = 1
     save_u = 1
     save_unpol = 1
     save_total = 1
     save_jy = 1
     save_jz = 1
    ENDIF
    polariz_batch,savepath,save_polariz,save_percent,save_mu,save_q,save_u, $
     save_unpol,save_total,save_jy,save_jz,ptf,vig,fixc3zero
   ENDIF
   if(igroup ge 0) then igroup = igroup + 1
   ENDREP UNTIL ((igroup ge ngroup) or (igroup eq -1))
   
 ENDFOR
ENDIF ELSE BEGIN
 IF( keyword_set(SEQNO)) then igroup = seqno  - 1
 if(keyword_set(diff)) then error = polariz(j0,j1,j2,j3,filter0,filter1,filter2,filter3,vig,ptf,fixc3zero,seqno,datatype,igroup,ngroup,CAMERA=camera_batch,/DIFF) $
 else error = polariz(j0,j1,j2,j3,filter0,filter1,filter2,filter3,vig,ptf,fixc3zero,seqno,datatype,igroup,ngroup,CAMERA=camera_batch)
 if(error eq 0) then polariz_display,j0,j1,j2,j3,filter0,filter1,filter2,filter3,vig,ptf,fixc3zero,roi
ENDELSE

RETURN
END