Program cam2glaremap implicit none c c This program fits a simple model to the camera 2 glare map c real*4 glaremapall(318,64),glaremapmodel(318,64),glaremapallpolar(318,64) real*4 x,y,r,rm,theta,arg,arg1 integer*4 i,j,k,jr,itheta character*11 head(5),headsv(5) data glaremapall /20352*0./ data glaremapmodel /20352*0./ data glaremapallpolar /20352*0./ c 1 format(a11) 2 format(20f9.2) c open(10,file='d:\sean\eclipse\glare2_151_1_el.grd',readonly) read(10,1)head read(10,2)((glaremapall(i,j),i=1,318),j=1,64) close(10) do i=1,5 headsv(i)=head(i) enddo do j=1,64 do i=1,318 x=float(i-159) y=float(312-j) theta=atan2d(x,y) itheta=nint(158.+theta*5.) r=sqrt(x*x+y*y) rm=r-286. jr=nint(rm) if(glaremapall(i,j).ne.0.)then if(jr.lt.1)print *,i,j,r,jr if(jr.lt.1)jr=1 if(jr.gt.64)print *,i,j,r,jr if(jr.gt.64)jr=64 if(itheta.lt.1)print *,i,j,theta,itheta if(itheta.lt.1)itheta=1 if(itheta.gt.318)print *,i,j,theta,itheta if(itheta.gt.318)itheta=318 glaremapallpolar(itheta,jr)=glaremapall(i,j)*(r/300.) c c Here form the model, subtract...at the end, remove the squares and covered pixels c arg=1.5+((theta+7.)/25.)**2 if(jr.gt.6)arg=arg+0.5 if(jr.gt.7)arg=arg+0.5 if(jr.gt.8)arg=arg+0.5 arg1=31.0*(exp(-((theta+28.2+rm/11.)**2)/30.))*exp(-((rm-9.0)**2)/260.) if(jr.le.5)arg1=arg1/1.2 arg=arg+arg1 arg1=6.0*(exp(-((theta-27.7+rm/11.)**2)/30.))*exp(-((rm-11.0)**2)/260.) if(jr.le.5)arg1=arg1/1.2 arg=arg+arg1 if(theta.lt.-28.8)arg=arg*exp((theta+28.8)/3.) if(theta.gt.+28.5)arg=arg*exp((28.5-theta)/3.) glaremapallpolar(itheta,jr)=glaremapallpolar(itheta,jr)-arg if(i.gt.5.and.i.lt.317)glaremapmodel(i,j)=arg if(j.le.25.and.(i.lt.25.or.i.gt.295))glaremapmodel(i,j)=0. endif c enddo enddo c print *,'glaremap formed, beginning output' open (11,file = 'd:\sean\eclipse\glare2_151_allpolardif.grd') head(3)='-31.8 +31.8' write(11,1)(head(k),k=1,5) write(11,2)((glaremapallpolar(i,j),i=1,318),j=1,64) close(11) c open (11,file = 'd:\sean\eclipse\glare2_2003_151_1_el_CCD_model.grd') write(11,1)(headsv(k),k=1,5) write(11,2)((glaremapmodel(i,j),i=1,318),j=1,64) close(11) c stop 'done' end