function cleanbe1, hdr, isam, number=number

if n_elements(number) le 0 then NN=1 else NN=number

;+
;NAME:
;	CLEANBEAM16D
;PURPOSE:
;	Create a projected image of the clean beam
;CALLING SEQUENCE:
;	beam=CLEANBEAM(HEADER)
;INPUT:
;	HEADER, header of a FITS file of a cleaned and projected image
;OUTPUT:
;	returns a fltarr(21,21) array.
;	the center of the beam is (10,10).
;RESTRICTIONS:
;	The FITS header must include SOLP and PMATn keywords.
;MODIFICATION HISTORY:
;	K. FUJIKI, MAY, 1996.
;-

if n_params() eq 1 then isam=16
i=0
while (strmid(hdr(i),0,5) ne 'SOLP ') do i=i+1
solp=strmid(hdr(i),11,19)*1.0
i=0
while (strmid(hdr(i),0,5) ne 'PMAT1') do i=i+1
pmat1=strmid(hdr(i),11,19)*1.0
i=0
while (strmid(hdr(i),0,5) ne 'PMAT2') do i=i+1
pmat2=strmid(hdr(i),11,19)*1.0
i=0
while (strmid(hdr(i),0,5) ne 'PMAT3') do i=i+1
pmat3=strmid(hdr(i),11,19)*1.0
i=0
while (strmid(hdr(i),0,5) ne 'PMAT4') do i=i+1
pmat4=strmid(hdr(i),11,19)*1.0

beam=fltarr(21*NN,21*NN)

for l=-10*NN,10*NN do begin
	for i=-10*NN,10 do begin
		x=(cos(solp/!radeg)*i $
			-sin(solp/!radeg)*l)*4.91104/4.64947
		y=(sin(solp/!radeg)*i $
			+cos(solp/!radeg)*l)*4.91104/4.64947
	xx=pmat1*x+pmat3*y
	yy=1.000112494*(pmat2*x+pmat4*y)
	if (isam eq 16) then beam(i+10*NN, l+10*NN)=exp(-0.0554*(xx*xx+yy*yy))
	if (isam eq 8) then beam(i+10*NN, l+10*NN)=exp(-0.1478*(xx*xx+yy*yy))

	endfor
endfor

return,beam
	end