
function mask_c2,crpix1=crpix1,crpix2=crpix2,radius=radius

IF NOT KEYWORD_SET(crpix1) THEN crpix1 = 509.54
IF NOT KEYWORD_SET(crpix2) THEN crpix2 = 506.30 
IF NOT KEYWORD_SET(radius) THEN radius = 161.000

r = radius

;function mask will return inex for mask for given array where center
; of circle and radius is defined

xydim = FIX(2*radius*1.1)

x0= xydim/2.0
y0= xydim/2.0

img_mask = bytarr(xydim,xydim)

circle = img_mask

sz = size(img_mask)

window,1,xsize=xydim,ysize=xydim

theta = (findgen(720)/360) * 6.2832

xc = ((x0 + (r * COS(theta)))>0.)<(sz(1)-1)
yc = ((y0 + (r * SIN(theta)))>0.)<(sz(2)-1)

circle(xc,yc) = 99
tvscl,img_mask

;left to right

start = FIX(y0-r)

for i=start,y0 do begin
  li=where(circle(*,i) eq 99)
 IF N_ELEMENTS(li) EQ 2 THEN BEGIN
    
    x1=li(0)
    x2=li(1)
    y1=i
    y2 = y1+ 2*(y0-y1)
    img_mask(x1:x2,y1:y2)=255 
  ENDIF
    ;img_mask(xc,yc)=255
    tvscl,img_mask
endfor

;bottom to top

start = FIX(x0-r)

for i=start,x0 do begin
 li=where(circle(i,*) eq 99)
  IF N_ELEMENTS(li) EQ 2 THEN BEGIN
   
    y1=li(0)
    y2=li(1)
    x1=i
    x2 = x1+ 2*(x0-x1)
    img_mask(x1:x2,y1:y2)=255 
  ENDIF
    ;img_mask(xc,yc)=255
    tvscl,img_mask
endfor

r1col = FIX(crpix1) - FIX(xydim/2.) 
r1row = FIX(crpix2) - FIX(xydim/2.) 

r2col = FIX(crpix1) + FIX(xydim/2.) 
r2row = FIX(crpix2) + FIX(xydim/2.) 

MKHDR,head,img_mask

SXADDPAR,head,'CRPIX1', crpix1
SXADDPAR,head,'CRPIX2', crpix2
SXADDPAR,head,'RADIUS', r

SXADDPAR,head,'R1COL',r1col
SXADDPAR,head,'R1ROW',r1row
SXADDPAR,head,'R2COL',r2col
SXADDPAR,head,'R2ROW',r2row

tvscl,img_mask
WRITEFITS,'mask_c2.fts',img_mask,head
tvscl,img_mask
mind = WHERE(img_mask EQ 255)

return,mind
end
