Jim,
Attached are the source code for the fitting program, which needs to be
linked with the PGPLOT libraries, and an executable version for 32bit
versions of Windows 9X. It might work with NT, but I won't promise.
The program is fit.for, and the common block includes are xxx_com.for. I
hope I got all of them. There are a few PC specific parts to the code, but
I hope not too many.
Larry
integer nparam,mxd
PARAMETER (nparam=60,mxd=10000)
real*8 yobs,sigy,yc,x,sigx,delx,fax,xd
integer npts,nline,icyc,nsigma,iasymm,irefdet,irefsam
character*40 rfine1,rfine2
common /gplsc/yobs(mxd),sigy(mxd),yc(mxd),xd(mxd),x(nparam+4)
1 ,sigx(nparam+4),delx(nparam+4),fax,npts,nline,icyc
2 ,nsigma,iasymm,irefdet,irefsam,rfine1,rfine2
real*8 bg(mxd),pkval(20,mxd)
common /retval/bg,pkval
integer maxdta
PARAMETER (MAXDTA=10000)
real*8 ANGLE(MAXDTA+2),CPS(MAXDTA+2),sigf(maxdta+2)
real*8 wave,zero,pkwidth
integer ndata
character*80 ptitle,filename
COMMON /DATA/NDATA,ANGLE,CPS,sigf,wave,zero
common /data2/ptitle,filename,pkwidth
integer lo,li,icrt,n1
logical ansi,refit
real*8 anglmx,anglmn,cpsmx,cpsmn
real*8 inten(nparam),pos(nparam),posn(nparam)
COMMON /DSP/ANGLMX,ANGLMN,CPSMX,CPSMN,posn
common /dsp2/inten,pos,refit,lo,li,icrt,ansi,n1
PROGRAM FIT
use msflib
implicit none
C
C Routine to fit peak profiles from NIST powder data.
C
C Coded 1/13/99
C
C The BNL routine GPLS is called to do the fitting.
C
include 'gplsc_com.for'
include 'data_com.for'
include 'options_com.for'
include 'display_com.for'
include 'a_com.for'
character*1 IRESP,jresp
REAL*8 result,sam,det,tthi,tthf,dtth
real*8 zsam,zdet
integer low,nhigh,ihigh,ipnt1,ipnt2,nptf,i,j,k,n,ifirst,np1
integer np2,ioldnb
c
rfine1 = '0111111111111111111111111111111111111111'
rfine2 = '1111111111111111111111111111111111111111'
lo = 1
li = 1
result = SETEXITQQ (QWIN$EXITNOPERSIST)
CALL READTA
irefdet = 0
irefsam = 0
iasymm=0
write(*,'(a,$)')' Do you want an asymmetry correction (Y,<N>):'
read(*,'(a1)')IRESP
IF(IRESP.EQ.'Y'.OR.IRESP.EQ.'y') then
iasymm=2
write(*,'(a,$)')' Enter S/L and D/L (HALF Widths):'
read(*,'(3f8.0)')sam,det
write(*,'(a,$)')' Do you want to refine S/L (Y,<N>): '
read(*,'(a)')iresp
if(iresp.eq.'y'.or.iresp.eq.'Y')irefsam = 1
write(*,'(a,$)')' Do you want to refine D/L (Y,<N>): '
read(*,'(a)')iresp
if(iresp.eq.'y'.or.iresp.eq.'Y')irefdet = 1
end if
C
C first call sets up plot
C
call disply(angle,cps,1,ndata,ipnt1,ipnt2,99)
C
C DISPLAY ENTIRE SPECTRUM
C
low = 1
nhigh = ndata
90 ihigh = low + nhigh
if(ihigh.gt.ndata)ihigh = ndata
CALL DISPLY(angle,cps,low,ihigh,IPNT1,IPNT2,0)
NPTF = IPNT2 - IPNT1 +1
C
C DISPLAY SELECTED REGION
C
95 call pgpage
call clear
CALL DISPLY(angle,cps,IPNT1,IPNT2,I,J,1)
if (nb.eq.0) go to 90
C
C COPY COUNT AND POSITION DATA TO ARRAYS Y AND XD
c
J=0
DO 100 I=IPNT1,IPNT2
J=J+1
YOBS(J)=CPS(I)
XD(J)=ANGLE(I)
sigy(j)=sigf(i)
100 CONTINUE
TTHI=XD(1)
TTHF=XD(J)
DTTH=XD(2)-XD(1)
C
C SET UP TRIAL PARAMETERS
C
X(1)=YOBS(1)
if (pkwidth.eq.0.0) pkwidth = 0.05
x(3)=pkwidth
X(2)=0.80
if (indwid) then
nc = 2
nper = 3
else
NC=3
nper = 2
endif
n = nb * nper + nc
DO J=1,NB
K= nc + nper * (J-1)
if (indwid)then
k = k + 1
x(k) = pkwidth
X(K+1)=inten(j)*x(k)*2.0
else
X(K+1)=inten(j)*x(nc)*2.0
endif
X(K+2)=pos(j)
end do
IFIRST = 0
115 N1 = n
rfine1 = '01111111111111111111111111111111111111111'
rfine2 = '11111111111111111111111111111111111111111'
if (iasymm .ne. 0) then
N1 = N1 + 2
x(n1-1) = sam
if(irefsam.ne.0)then
rfine1(n1-1:n1-1) = '1'
rfine2(n1-1:n1-1) = '1'
else
rfine1(n1-1:n1-1) = '0'
rfine2(n1-1:n1-1) = '0'
endif
x(n1) = det
if(irefdet.ne.0)then
rfine1(n1:n1) = '1'
rfine2(n1:n1) = '1'
else
rfine1(n1:n1) = '0'
rfine2(n1:n1) = '0'
endif
else
rfine1(n+1:n+3) = '000'
rfine2(n+1:n+3) = '000'
endif
if (esdinc) then
nsigma=1
else
nsigma=0
end if
C
C CLEAR SCREEN
C
CALL CLEAR
C
C OPEN OUTPUT FILE AND WRITE DATA
C
OPEN(UNIT=7,FILE='GPLS.out',STATUS='unknown',access='append')
120 continue
c set to skip asymmetry on first cycles - rough convergence first
if(iasymm.ne.0.and.ifirst.ne.0)then
kasymm = 2
n1 = n + 2
else
kasymm = 0
n1 = n
endif
np = n1
npts = nptf
nline = nb
icyc = nc
ifirst=1
call clear
write(*,'(a)')' Least-Squares Calculation Running'
CALL GPLS
DO 122 I=1,N
if(abs(sigx(i)).gt.1.0e-6)DELX(I) = DELX(I)/SIGX(I)
122 CONTINUE
if (indwid) then
write(7,9036)FAX,(X(I),SIGX(I),DELX(I),I=1,nc),
1 ((J,X(nper*(J-1)+nc+I),SIGX(nper*(J-1)+nc+I),
2 DELX(nper*(J-1)+nc+I),I=1,nper),J=1,NB)
write(*,9036)FAX,(X(I),SIGX(I),DELX(I),I=1,nc),
1 ((J,X(nper*(J-1)+nc+I),SIGX(nper*(J-1)+nc+I),
2 DELX(nper*(J-1)+nc+I),I=1,nper),J=1,NB)
9036 FORMAT(5X,'LEAST-SQUARES RESULTS: GOF = ',F10.3
1 /' PARAMETER',6X,'VALUE',7X,'SIGMA',5X,'DELTA/SIGMA'/
2 /' BG',T10,3F13.5
3 /' ETA',T10,3F13.5/(' FWHM ',i2,T10,3F13.5
4 /' INT.',I2,T10,3F13.5/' POS.',I2,T10,3F13.5))
else
write(7,9037)FAX,(X(I),SIGX(I),DELX(I),I=1,nc),
1 ((J,X(nper*(J-1)+nc+I),SIGX(nper*(J-1)+nc+I),
2 DELX(nper*(J-1)+nc+I),I=1,nper),J=1,NB)
write(*,9037)FAX,(X(I),SIGX(I),DELX(I),I=1,nc),
1 ((J,X(nper*(J-1)+nc+I),SIGX(nper*(J-1)+nc+I),
2 DELX(nper*(J-1)+nc+I),I=1,nper),J=1,NB)
9037 FORMAT(5X,'LEAST-SQUARES RESULTS: GOF = ',F10.3
1 /' PARAMETER',6X,'VALUE',7X,'SIGMA',5X,'DELTA/SIGMA'/
2 /' BG',T10,3F13.5
3 /' ETA',T10,3F13.5/' FWHM',T10,3F13.5/(' INT.',I2,T10,3F13.5
4 /' POS.',I2,T10,3F13.5))
endif
if(kasymm.ne.0)then
np1 = n1-1
np2 = n1
if(irefsam.ne.0)then
write(7,99037)x(np1),sigx(np1),delx(np1)
write(*,99037)x(np1),sigx(np1),delx(np1)
99037 format(' S/L',t10,3f13.5)
sam = x(np1)
else
np2=np2-1
write(7,99038)sam
write(*,99038)sam
99038 format(' S/L',t10,f13.5)
endif
if(i ytext=ytext-0.025*(1.1*cpsmx-cpsmn)
do kk=1,4
call pgptext(xtext(kk),ytext,0.0,fjust(kk),vtext(jj,kk))
enddo
end do
end do
if (kasymm.ne.0) then
vtext(1,1)='S/L'
vtext(2,1)='D/L'
vtext(1,2)=' '
vtext(2,2)=' '
vtext(1,3)=' '
vtext(2,3)=' '
vtext(1,4)=' '
vtext(2,4)=' '
n1 = nper * nb + nc + 1
write(vtext(1,3),'(f13.5)')x(n1)
if (irefsam.ne.0) write(vtext(1,4),'(f13.5)')sigx(n1)
write(vtext(2,3),'(f13.5)')x(n1+1)
if (irefdet.ne.0) write(vtext(2,4),'(f13.5)')sigx(n1+1)
do jj=1,2
ytext=ytext-0.025*(1.1*cpsmx-cpsmn)
do kk=1,4
call pgptext(xtext(kk),ytext,0.0,fjust(kk),vtext(jj,kk))
enddo
enddo
endif
endif
call pgsch (1.0)
C
C if hardcopy, close plot
C
if (hardf) then
call pgiden
call pgsch(0.75)
call pgmtext('B',5.0,-0.05,0.0,filename)
call pgsch(1.0)
hardf = .false.
call clhd(lo,li)
call bgraf(icrt,lo,li)
else
C
C otherwise decide if hardcopy and/or refit
C
write(*,'(a,$)')' Repeat this plot on hardcopy (Y,<N>)? '
read(*,'(a1)')IRESP
IF(IRESP.EQ.'Y'.OR.IRESP.EQ.'y') hardf = .true.
if (hardf) goto 90
write(*,'(a,$)')' Add another line (Y,<N>)? '
read(*,'(a1)')iresp
if(iresp.eq.'y'.or.iresp.eq.'Y') then
nb=nb+1
j = nb
lpos=(anglmx+anglmn)/2
linten=cpsmx
call pgcurse(lpos,linten,alph)
pos(j) = lpos
inten(j) = linten
endif
call clear
end if
end if
C
C if full plot:
C
if (idsply.ne.0) return
write(*,'(a)')' Select the left edge of the region '
1 //'(right button to exit)'
call pgcurse(x1,y1,alph)
if(alph.eq.'D'.or.alph.eq.'d')then
stop
end if
write(*,'(/a)')' Select the right edge of the region'
1 //'(right button to expand)'
call pgcurse(x2,y1,alph)
C
C CALCULATE POSITION IN POINT NUMBER
C
IPNT1 = 0
IPNT2 = 0
DO I=ILOWI,IHIGHI
IF(IPNT1.EQ.0)then
if ((angd(i) - X1) * (X1 - angd(i+1)) .ge. 0.0)IPNT1=I
endif
IF(IPNT2.EQ.0)then
if ((angd(i) - X2) * (X2 - angd(i+1)) .ge. 0.0)IPNT2=I
endif
enddo
C SET UP TO EXPAND IF NECESSARY
IF(ALPH.EQ.'D'.OR.ALPH.EQ.'d')THEN
ILOWI=IPNT1
IHIGHI=IPNT2
call clear
GO TO 90
END IF
call clear
RETURN
END
SUBROUTINE GPLS
C
C GENERAL PURPOSE LEAST SQUARES PROGRAM
C MODIFIED VERSION OF MOWLS D. E. COX OCTOBER 1981
C FORMAT FOLLOWS THAT OF HAMILTON IN STATISTICS IN PHYSICAL SCIENCES
C DIMENSIONED FOR MXD OBSERVATIONS AND nparam PARAMETERS
C
C Original Version keeps entire observation matrix of
C Ndata by Nparams in memory. Converted to build normal
c equations matrix one observation at a time.
C Modifications 1-Oct-1992 by Larry W. Finger
C
implicit none
integer neta
PARAMETER (Neta=2)
include 'gplsc_com.for'
include 'a_com.for'
real*8 oldfax,sumwdel2,tth,wgt,del,getval
real*8 pnew(nparam)
integer isel(nparam),ncyc,i,kcyc,ncount,j,jj,k,kk,idone
real*8 amat(nparam,nparam),bmat(nparam),dsave(nparam)
real*8 deriv(nparam),xfr,pold(nparam),newx(nparam)
C
C OPEN INPUT AND OUTPUT FILES
c
C Iasymm is Non-zero for asymmetric peaks - Van Laar and Yelon (JAC
C 17,47,1984). SAM is S/L, the effective illumination half width of sample
C scaled by sample to detector distance,
C DET is D/L, the scaled half width of detector slit
C
NCYC=ICYC
no = npts
i = 0
oldfax = 1.0e10
C
C ESD TAKEN AS SQUARE ROOT OF OBSERVED VALUE IF NOT SET
C
do i=1,no
if(sigy(i).le.0.0)then
sigy(i)=sqrt(yobs(i))
if(sigy(i).le.0.0)sigy(i)=1.0
endif
end do
7 kcyc=0
c
c start cycle
c
C SET PARAMETER SELECTION FOR CYCLE
C
90 if(kcyc.le.1)THEN
READ(RFINE1,'(80i1)')(ISEL(I),I=1,nparam)
else
READ(RFINE2,'(80i1)')(ISEL(I),I=1,nparam)
endif
c Count number of refined parameters and change refinement switches into pointers
ncount=0
do i=1,np
if(isel(i).ne.0) then
ncount=ncount+1
isel(i) = ncount
endif
enddo
kcyc=kcyc+1
c Calculate fraction of shift to apply
xfr = 0.2 * kcyc
if(xfr.gt.0.9)xfr = 0.9
c Clear normal equations matrices
do i = 1,nparam
bmat(i) = 0.0
do j = 1,nparam
amat(j,i) = 0.0
enddo
enddo
sumwdel2 = 0.0
c Loop through observations
do i = 1,no
tth = xd(i) !get 2theta for this observation
c evaluate the profile and derivatives
yc(i) = Getval(x,tth,deriv,bg(i),pkval(1,i))
wgt = 1.0/sigy(i)**2
del = yobs(i) - yc(i)
sumwdel2 = sumwdel2 + wgt * del**2
do jj = 1,np
if(isel(jj).ne.0)then
j = isel(jj)
bmat(j) = bmat(j) + wgt * del * deriv(jj)
do kk = jj,np
if(isel(kk).ne.0)then
k = isel(kk)
amat(k,j) = amat(k,j) + wgt * deriv(jj)*deriv(kk)
endif
enddo
endif
enddo
c end of loop through observations
enddo
fax = sumwdel2 / (no - ncount)
write(*,'(a,6f10.2)')' GOF:',fax
if (fax .le. 1.05*oldfax) then
oldfax = fax
c begin conversion of A to correlation matrix - improves accuracy
c of inversion
do i = 1,ncount
dsave(i) = 1.0/sqrt(amat(i,i))
enddo
c Now do conversion and symmetrize
do i = 1,ncount
do j = i,ncount
amat(j,i) = amat(j,i) * dsave(i) * dsave(j)
amat(i,j) = amat(j,i)
enddo
enddo
c invert correlation matrix
call smi10(amat,ncount)
c correct inverse for conversion to correlation matrix
do j = 1,ncount
do i = 1,ncount
amat(i,j) = amat(i,j) * dsave(i) * dsave(j)
enddo
enddo
c Calculate shifts and new increment for next cycle
do i = 1,ncount
newx(i) = 0.0
do j = 1,ncount
newx(i) = newx(i) + amat(i,j) * bmat(j)
enddo
enddo
idone = 0
do i=1,np
if(isel(i).ne.0) then
delx(i)=newx(isel(i))*xfr
pnew(i)=delx(i)+x(i)
C Keep parameters positive
if (pnew(i) .lt. 0.0 .and. x(i) .gt. 0.0)
1 pnew(i) = 0.5 * x(i)
sigx(i)=sqrt(fax*amat(isel(i),isel(i)))
if(abs(delx(i)/sigx(i)).gt.0.1)idone=1
c Constrain Eta
if(i.eq.neta.and.pnew(i).gt.1.0)pnew(i)=1.0
pold(i) = x(i)
x(i)=pnew(i)
else
delx(i) = 0.0
sigx(i) = 0.0
endif
enddo
else
c refinement diverging - reduce interval
do i = 1,np
if(isel(i).ne.0) then
x(i) = pold(i) + 0.05 * (pnew(i) - pold(i))
endif
enddo
idone = 1
endif
ICYC=ICYC-1
IF((idone.ne.0.and.kcyc.lt.20).or.kcyc.lt.2) GO TO 90
return
end
c Matrix Inversion
SUBROUTINE SMI10(D,N)
implicit none
integer i,j,n,lr
include 'gplsc_com.for'
real*8 D(nparam,nparam),S(nparam),denom
c
do j=1,n
do i=1,j
d(i,j)=-d(i,j)
d(j,i)=d(i,j)
enddo
d(j,j)=1.+d(j,j)
enddo
do lr=1,n
denom=1.-d(lr,lr)
if(abs(denom).lt.1.0e-15)then
write(*,*)'Matrix Singular'
denom=1.0e-15
end if
d(lr,lr)=1.0/denom
do j=1,n
s(j)=d(lr,j)
if((j-lr).ne.0) then
d(j,lr)=d(j,lr)*d(lr,lr)
d(lr,j)=d(j,lr)
endif
enddo
do j=1,n
if(j.ne.lr)then
do i=1,j
if(i.ne.lr) then
d(i,j)=d(i,j)+d(i,lr)*s(j)
d(j,i)=d(i,j)
endif
enddo
endif
enddo
enddo
return
end
real*8 function getval(piz,twoth,deriv,bg,pkval)
implicit none
real*8 piz(*),deriv(*)
real*8 twoth
real*8 gamma,eta,zz,bg,pkval(*)
include 'a_com.for'
real*8 profval,temp,dPrdT,dPrdG,dPrdE,dPrdS,dPrdD
integer i,nl
real*8 twoth2,dPrdT2,dPrdG2,dPrdE2,dPrdS2,dPrdD2
real*8 ratio /1.00247185069/
real*8 RAD /57.2957795131/
include 'options_com.for'
c
C
C PIZ ARE PARAMETERS.
C PIZ(1) IS BACKGD
C PIZ(2) IS ETA
C IF indwid is false, PIZ(3) IS GAMMA
C IF indwid is true, each peak has own width
C
ETA=PIZ(2)
c
C modified for Van Laar and Yelon peak shapes - JAC 17,47(1984)
C
c---- det (piz(np)) and sam(piz(np-1)) are 1/2 detector slit and sample widths divided
by
c sample to detector distance, respectively
c
c Get background and derivatives for this point
c
zz=piz(1)
bg = zz
nl = 0
deriv(1) = 1.0
c
c initialize derivatives wrt eta, gamma, and sam
c
deriv(2) = 0.0
if (.not.indwid) then
GAMMA=PIZ(3)
deriv(3) = 0.0
endif
if(kasymm.ne.0)then
c
deriv(np) = 0.0
deriv(np-1) = 0.0
getval = ZZ
DO I=4,NP-2,nper
if (indwid) then
GAMMA = PIZ(i-1)
endif
if (kal12) then
c calculate 2theta for Ka2 contribution
twoth2 = asin(sin(0.5*piz(i+1)/rad)*ratio)*rad*2.0
temp = PROFVAL(ETA,GAMMA,piz(np-1),piz(np),TWOTH,PIZ(I+1)
1 ,dPrdT,dPrdG,dPrdE,dPrdS,dPrdD,.true.)
2 + 0.5 * PROFVAL(ETA,GAMMA,piz(np-1),piz(np),TWOTH,
3 twoth2,dPrdT2,dPrdG2,dPrdE2,dPrdS2,dPrdD2,.true.)
else
temp = PROFVAL(ETA,GAMMA,piz(np-1),piz(np),TWOTH,PIZ(I+1)
1 ,dPrdT,dPrdG,dPrdE,dPrdS,dPrdD,.true.)
dPrdT2 = 0.0
dPrdG2 = 0.0
dPrdE2 = 0.0
dPrdS2 = 0.0
dPrdD2 = 0.0
endif
nl = nl + 1
pkval(nl) = PIZ(i)*temp
getval=getval + PIZ(I)*temp
deriv(i) = temp
deriv(i+1) = (dPrdT+0.5*dPrdT2)*piz(i)
deriv(2) = deriv(2) + piz(i)*(dPrdE+0.5*dPrdE2)
deriv(np-1) = deriv(np-1) + piz(i)*(dPrdS+0.5*dPrdS2)
deriv(np) = deriv(np) + piz(i)*(dPrdD+0.5*dPrdD2)
temp = piz(i)*(dPrdG+0.5*dPrdG2)
if (indwid) then
deriv(i-1) = temp
else
deriv(3) = deriv(3) + temp
endif
enddo
else
c
c Section with no asymmetry below
c
getval=ZZ
DO I=4,NP,nper
if (indwid) then
GAMMA = PIZ(i-1)
endif
if (kal12) then
c calculate 2theta for Ka2 contribution
twoth2 = asin(sin(0.5*piz(i+1)/rad)*ratio)*rad*2.0
temp = PROFVAL(ETA,GAMMA,0.0D0,0.0D0,TWOTH,PIZ(I+1),dPrdT
1 ,dPrdG,dPrdE,dPrdS,dPrdD,.false.)
2 + 0.5 * PROFVAL(ETA,GAMMA,0.0d0,0.0d0,TWOTH,
3 twoth2,dPrdT2,dPrdG2,dPrdE2,dPrdS2,dPrdD2,.false.)
else
temp = PROFVAL(ETA,GAMMA,0.0d0,0.0d0,TWOTH,PIZ(I+1)
1 ,dPrdT,dPrdG,dPrdE,dPrdS,dPrdD,.false.)
dPrdT2 = 0.0
dPrdG2 = 0.0
dPrdE2 = 0.0
dPrdS2 = 0.0
dPrdD2 = 0.0
endif
nl = nl + 1
pkval(nl) = PIZ(i)*temp
getval = getval + PIZ(I)*temp
deriv(i) = temp
deriv(i+1) = piz(i)*(dPrdT+0.5*dPrdT2)
deriv(2) = deriv(2)+piz(i)*(dPrdE+0.5*dPrdE2)
temp = piz(i)*(dPrdG+0.5*dPrdG2)
if (indwid) then
deriv(i-1) = temp
else
deriv(3) = deriv(3) + temp
endif
enddo
endif
return
end
real*8 function Profval( Eta , Gamma , S_L , D_L , TwoTH ,
1 TwoTH0 , dPRdT, dPRdG, dPRdE , dPRdS , dPRdD , Use_Asym )
c Returns value of Profile
c Eta is the mixing coefficient between Gaussian and Lorentzian
c Gamma is the FWHM
c S_L is source width/detector distance
c D_L is detector width/detector distance
c TwoTH is point at which to evaluate the profile
c TwoTH0 is two theta value for peak
c dPRdT is derivative of profile wrt TwoTH0
c dPRdG is derivative of profile wrt Gamma
c dPRdE is derivative of profile wrt Eta
c dPRdS is derivative of profile wrt S_L
c dPRdD is derivative of profile wrt D_L
c Use_Asym is true if asymmetry to be used
c
c Asymmetry due to axial divergence using the method of Finger, Cox and
c Jephcoat, J. Appl. Cryst. 27, 892, 1992.
implicit none
real*8 Eta , Gamma , S_L , D_L , TwoTH
real*8 TwoTH0 , dPRdT, dPRdG, dPRdE , dPRdS , dPRdD
logical Use_Asym
integer*4 NTERMS(14)
integer Fstterm(14)
real*8 RAD
integer*4 ArrayNum , K , NGT, ngt2 , it, i
real*8 CsTH ! cos(theta)
real*8 TTH ! tan(theta)
real*8 SnTwoTH ! sin(twoth)
real*8 CsTwoTH ! cos(twoth)
real*8 ApB ! (S + H)/L
real*8 AmB ! (S - H)/L
real*8 ApB2 ! (ApB) **2
real*8 Einfl ! 2phi value for inflection point
real*8 Emin ! 2phi value for minimum
real*8 dEmindA ! derivative of Emin wrt A
real*8 tmp , tmp1 , tmp2 ! intermediate values
real*4 WP(1883) , XP(1883)! Storage for Gauss-Legendre weights and intervals
real*8 Delta ! Angle of integration for comvolution
real*8 dDELTAdA ! derivative of DELTA wrt A (S/L)
real*8 sinDELTA ! sine of DELTA
real*8 cosDELTA ! cosine of DELTA
real*8 tanDELTA ! tangent of DELTA
real*8 RcosDELTA ! 1/cos(DELTA)
real*8 F , dFdA
real*8 G , dGdA , dGdB , PsVoigt
real*8 sumWG , sumWRG , sumWdGdA , sumWRdGdA ,sumWdGdB , sumWRdGdB
real*8 sumWGdRdG , sumWGdRdE , sumWGdRdA , sumWGdRdB , sumWGdRd2t
data RAD /57.2957795/
data NTERMS/6,10,20,40,60,80,100,150,200,300,400,
1 600,800,1000/
data Fstterm/0,3,8,18,38,68,108,158,233,333,483,
1 683,983,1383/
!
! Values for the abscissas and weights of the Gauss-Legendre
! N-point quadrature formula have been precomputed using routine
! Gauleg from "Numerical Recipes" (Press, Flannery, Teukolsky
! and Vetterling, 1986, Cambridge University Press,
! ISBN 0 521 30811 9), and are stored in the DATA statements
! for XP and WP below.
!
data (xp(i),i= 1, 40)/
1.2386192E+00,.6612094E+00,.9324695E+00,.1488743E+00,.4333954E+00,
2.6794096E+00,.8650634E+00,.9739065E+00,.7652652E-01,.2277859E+00,
3.3737061E+00,.5108670E+00,.6360537E+00,.7463319E+00,.8391170E+00,
4.9122344E+00,.9639719E+00,.9931286E+00,.3877242E-01,.1160841E+00,
5.1926976E+00,.2681522E+00,.3419941E+00,.4137792E+00,.4830758E+00,
6.5494671E+00,.6125539E+00,.6719567E+00,.7273183E+00,.7783057E+00,
7.8246122E+00,.8659595E+00,.9020988E+00,.9328128E+00,.9579168E+00,
8.9772599E+00,.9907262E+00,.9982377E+00,.2595977E-01,.7780933E-01/
data (xp(i),i= 41, 80)/
1.1294491E+00,.1807400E+00,.2315436E+00,.2817229E+00,.3311428E+00,
2.3796701E+00,.4271737E+00,.4735258E+00,.5186014E+00,.5622789E+00,
3.6044406E+00,.6449728E+00,.6837663E+00,.7207165E+00,.7557238E+00,
4.7886937E+00,.8195375E+00,.8481720E+00,.8745199E+00,.8985103E+00,
5.9200785E+00,.9391663E+00,.9557223E+00,.9697018E+00,.9810672E+00,
6.9897879E+00,.9958405E+00,.9992101E+00,.1951138E-01,.5850444E-01,
7.9740840E-01,.1361640E+00,.1747123E+00,.2129945E+00,.2509524E+00,
8.2885281E+00,.3256644E+00,.3623048E+00,.3983934E+00,.4338754E+00/
data (xp(i),i= 81, 120)/
1.4686966E+00,.5028041E+00,.5361459E+00,.5686713E+00,.6003306E+00,
2.6310758E+00,.6608599E+00,.6896376E+00,.7173652E+00,.7440003E+00,
3.7695024E+00,.7938327E+00,.8169541E+00,.8388315E+00,.8594314E+00,
4.8787226E+00,.8966756E+00,.9132631E+00,.9284599E+00,.9422428E+00,
5.9545908E+00,.9654851E+00,.9749091E+00,.9828486E+00,.9892913E+00,
6.9942275E+00,.9976499E+00,.9995538E+00,.1562898E-01,.4687168E-01,
7.7806858E-01,.1091892E+00,.1402031E+00,.1710801E+00,.2017899E+00,
8.2323025E+00,.2625881E+00,.2926172E+00,.3223603E+00,.3517885E+00/
data (xp(i),i= 121, 160)/
1.3808730E+00,.4095853E+00,.4378974E+00,.4657816E+00,.4932108E+00,
2.5201580E+00,.5465970E+00,.5725019E+00,.5978475E+00,.6226089E+00,
3.6467619E+00,.6702830E+00,.6931492E+00,.7153381E+00,.7368281E+00,
4.7575981E+00,.7776279E+00,.7968979E+00,.8153892E+00,.8330839E+00,
5.8499645E+00,.8660147E+00,.8812187E+00,.8955616E+00,.9090296E+00,
6.9216093E+00,.9332885E+00,.9440559E+00,.9539008E+00,.9628137E+00,
7.9707858E+00,.9778094E+00,.9838775E+00,.9889844E+00,.9931249E+00,
8.9962951E+00,.9984920E+00,.9997137E+00,.1043694E-01,.3130627E-01/
data (xp(i),i= 161, 200)/
1.5216195E-01,.7299491E-01,.9379607E-01,.1145563E+00,.1352667E+00,
2.1559181E+00,.1765016E+00,.1970082E+00,.2174290E+00,.2377550E+00,
3.2579774E+00,.2780874E+00,.2980762E+00,.3179352E+00,.3376556E+00,
4.3572289E+00,.3766466E+00,.3959001E+00,.4149811E+00,.4338813E+00,
5.4525925E+00,.4711065E+00,.4894151E+00,.5075106E+00,.5253849E+00,
6.5430303E+00,.5604390E+00,.5776036E+00,.5945165E+00,.6111703E+00,
7.6275579E+00,.6436720E+00,.6595056E+00,.6750519E+00,.6903041E+00,
8.7052554E+00,.7198995E+00,.7342299E+00,.7482404E+00,.7619248E+00/
data (xp(i),i= 201, 240)/
1.7752773E+00,.7882919E+00,.8009631E+00,.8132853E+00,.8252531E+00,
2.8368613E+00,.8481049E+00,.8589789E+00,.8694787E+00,.8795996E+00,
3.8893372E+00,.8986874E+00,.9076460E+00,.9162090E+00,.9243729E+00,
4.9321340E+00,.9394890E+00,.9464346E+00,.9529678E+00,.9590857E+00,
5.9647858E+00,.9700655E+00,.9749225E+00,.9793548E+00,.9833603E+00,
6.9869373E+00,.9900843E+00,.9927999E+00,.9950829E+00,.9969323E+00,
7.9983473E+00,.9993274E+00,.9998723E+00,.7834291E-02,.2350095E-01,
8.3916184E-01,.5481311E-01,.7045093E-01,.8607145E-01,.1016708E+00/
data (xp(i),i= 241, 280)/
1.1172453E+00,.1327909E+00,.1483040E+00,.1637806E+00,.1792170E+00,
2.1946095E+00,.2099541E+00,.2252472E+00,.2404850E+00,.2556638E+00,
3.2707798E+00,.2858293E+00,.3008086E+00,.3157141E+00,.3305421E+00,
4.3452890E+00,.3599510E+00,.3745247E+00,.3890065E+00,.4033927E+00,
5.4176799E+00,.4318646E+00,.4459432E+00,.4599124E+00,.4737686E+00,
6.4875086E+00,.5011288E+00,.5146260E+00,.5279969E+00,.5412382E+00,
7.5543465E+00,.5673188E+00,.5801518E+00,.5928424E+00,.6053874E+00,
8.6177838E+00,.6300285E+00,.6421185E+00,.6540509E+00,.6658228E+00/
data (xp(i),i= 281, 320)/
1.6774311E+00,.6888732E+00,.7001461E+00,.7112472E+00,.7221736E+00,
2.7329227E+00,.7434919E+00,.7538786E+00,.7640801E+00,.7740941E+00,
3.7839181E+00,.7935496E+00,.8029862E+00,.8122257E+00,.8212659E+00,
4.8301044E+00,.8387391E+00,.8471679E+00,.8553887E+00,.8633995E+00,
5.8711983E+00,.8787832E+00,.8861524E+00,.8933041E+00,.9002364E+00,
6.9069477E+00,.9134364E+00,.9197008E+00,.9257394E+00,.9315507E+00,
7.9371333E+00,.9424859E+00,.9476071E+00,.9524956E+00,.9571503E+00,
8.9615700E+00,.9657536E+00,.9697002E+00,.9734086E+00,.9768781E+00/
data (xp(i),i= 321, 360)/
1.9801078E+00,.9830968E+00,.9858445E+00,.9883502E+00,.9906132E+00,
2.9926330E+00,.9944091E+00,.9959410E+00,.9972285E+00,.9982712E+00,
3.9990687E+00,.9996210E+00,.9999281E+00,.5227245E-02,.1568116E-01,
4.2613337E-01,.3658271E-01,.4702806E-01,.5746827E-01,.6790220E-01,
5.7832871E-01,.8874665E-01,.9915490E-01,.1095523E+00,.1199377E+00,
6.1303101E+00,.1406682E+00,.1510109E+00,.1613371E+00,.1716456E+00,
7.1819354E+00,.1922054E+00,.2024543E+00,.2126811E+00,.2228846E+00,
8.2330638E+00,.2432175E+00,.2533446E+00,.2634441E+00,.2735147E+00/
data (xp(i),i= 361, 400)/
1.2835555E+00,.2935652E+00,.3035429E+00,.3134874E+00,.3233976E+00,
2.3332725E+00,.3431110E+00,.3529120E+00,.3626744E+00,.3723971E+00,
3.3820792E+00,.3917194E+00,.4013169E+00,.4108705E+00,.4203792E+00,
4.4298420E+00,.4392578E+00,.4486255E+00,.4579443E+00,.4672130E+00,
5.4764306E+00,.4855961E+00,.4947086E+00,.5037670E+00,.5127704E+00,
6.5217177E+00,.5306079E+00,.5394402E+00,.5482135E+00,.5569269E+00,
7.5655795E+00,.5741702E+00,.5826982E+00,.5911624E+00,.5995621E+00,
8.6078963E+00,.6161639E+00,.6243643E+00,.6324964E+00,.6405594E+00/
data (xp(i),i= 401, 440)/
1.6485524E+00,.6564744E+00,.6643248E+00,.6721025E+00,.6798068E+00,
2.6874367E+00,.6949916E+00,.7024704E+00,.7098725E+00,.7171970E+00,
3.7244432E+00,.7316101E+00,.7386971E+00,.7457033E+00,.7526281E+00,
4.7594705E+00,.7662300E+00,.7729057E+00,.7794970E+00,.7860030E+00,
5.7924232E+00,.7987567E+00,.8050030E+00,.8111612E+00,.8172308E+00,
6.8232111E+00,.8291014E+00,.8349011E+00,.8406095E+00,.8462260E+00,
7.8517501E+00,.8571811E+00,.8625184E+00,.8677614E+00,.8729095E+00,
8.8779623E+00,.8829191E+00,.8877794E+00,.8925427E+00,.8972084E+00/
data (xp(i),i= 441, 480)/
1.9017761E+00,.9062452E+00,.9106152E+00,.9148857E+00,.9190563E+00,
2.9231263E+00,.9270955E+00,.9309634E+00,.9347295E+00,.9383934E+00,
3.9419548E+00,.9454132E+00,.9487683E+00,.9520197E+00,.9551671E+00,
4.9582100E+00,.9611482E+00,.9639814E+00,.9667092E+00,.9693313E+00,
5.9718476E+00,.9742575E+00,.9765610E+00,.9787578E+00,.9808476E+00,
6.9828302E+00,.9847054E+00,.9864729E+00,.9881326E+00,.9896844E+00,
7.9911279E+00,.9924632E+00,.9936899E+00,.9948081E+00,.9958175E+00,
8.9967181E+00,.9975097E+00,.9981923E+00,.9987659E+00,.9992302E+00/
data (xp(i),i= 481, 520)/
1.9995854E+00,.9998313E+00,.9999680E+00,.3922075E-02,.1176598E-01,
2.1960917E-01,.2745115E-01,.3529144E-01,.4312955E-01,.5096502E-01,
3.5879735E-01,.6662606E-01,.7445067E-01,.8227070E-01,.9008566E-01,
4.9789509E-01,.1056985E+00,.1134954E+00,.1212853E+00,.1290678E+00,
5.1368423E+00,.1446083E+00,.1523655E+00,.1601134E+00,.1678513E+00,
6.1755790E+00,.1832958E+00,.1910013E+00,.1986951E+00,.2063767E+00,
7.2140456E+00,.2217013E+00,.2293434E+00,.2369713E+00,.2445847E+00,
8.2521830E+00,.2597658E+00,.2673327E+00,.2748830E+00,.2824165E+00/
data (xp(i),i= 521, 560)/
1.2899326E+00,.2974308E+00,.3049108E+00,.3123719E+00,.3198139E+00,
2.3272362E+00,.3346383E+00,.3420199E+00,.3493804E+00,.3567194E+00,
3.3640365E+00,.3713311E+00,.3786029E+00,.3858515E+00,.3930762E+00,
4.4002768E+00,.4074528E+00,.4146037E+00,.4217291E+00,.4288285E+00,
5.4359016E+00,.4429478E+00,.4499667E+00,.4569580E+00,.4639212E+00,
6.4708558E+00,.4777615E+00,.4846377E+00,.4914841E+00,.4983003E+00,
7.5050859E+00,.5118403E+00,.5185633E+00,.5252543E+00,.5319131E+00,
8.5385391E+00,.5451319E+00,.5516912E+00,.5582166E+00,.5647076E+00/
data (xp(i),i= 561, 600)/
1.5711639E+00,.5775851E+00,.5839707E+00,.5903203E+00,.5966337E+00,
2.6029103E+00,.6091498E+00,.6153519E+00,.6215161E+00,.6276420E+00,
3.6337293E+00,.6397777E+00,.6457866E+00,.6517559E+00,.6576850E+00,
4.6635737E+00,.6694215E+00,.6752281E+00,.6809932E+00,.6867164E+00,
5.6923974E+00,.6980357E+00,.7036311E+00,.7091832E+00,.7146916E+00,
6.7201561E+00,.7255763E+00,.7309518E+00,.7362823E+00,.7415676E+00,
7.7468072E+00,.7520008E+00,.7571482E+00,.7622490E+00,.7673029E+00,
8.7723096E+00,.7772688E+00,.7821801E+00,.7870433E+00,.7918581E+00/
data (xp(i),i= 601, 640)/
1.7966241E+00,.8013412E+00,.8060089E+00,.8106271E+00,.8151953E+00,
2.8197134E+00,.8241811E+00,.8285980E+00,.8329640E+00,.8372787E+00,
3.8415419E+00,.8457533E+00,.8499127E+00,.8540198E+00,.8580743E+00,
4.8620760E+00,.8660247E+00,.8699201E+00,.8737620E+00,.8775501E+00,
5.8812842E+00,.8849641E+00,.8885896E+00,.8921603E+00,.8956762E+00,
6.8991369E+00,.9025424E+00,.9058923E+00,.9091864E+00,.9124246E+00,
7.9156067E+00,.9187324E+00,.9218016E+00,.9248141E+00,.9277697E+00,
8.9306682E+00,.9335094E+00,.9362932E+00,.9390194E+00,.9416878E+00/
data (xp(i),i= 641, 680)/
1.9442982E+00,.9468506E+00,.9493447E+00,.9517803E+00,.9541574E+00,
2.9564759E+00,.9587354E+00,.9609360E+00,.9630774E+00,.9651596E+00,
3.9671823E+00,.9691456E+00,.9710493E+00,.9728932E+00,.9746772E+00,
4.9764012E+00,.9780652E+00,.9796690E+00,.9812125E+00,.9826957E+00,
5.9841183E+00,.9854805E+00,.9867820E+00,.9880227E+00,.9892027E+00,
6.9903218E+00,.9913800E+00,.9923771E+00,.9933133E+00,.9941882E+00,
7.9950021E+00,.9957547E+00,.9964460E+00,.9970760E+00,.9976447E+00,
8.9981519E+00,.9985978E+00,.9989822E+00,.9993052E+00,.9995666E+00/
data (xp(i),i= 681, 720)/
1.9997666E+00,.9999050E+00,.9999820E+00,.2615810E-02,.7847359E-02,
2.1307869E-01,.1830967E-01,.2354014E-01,.2876997E-01,.3399902E-01,
3.3922713E-01,.4445417E-01,.4967999E-01,.5490445E-01,.6012741E-01,
4.6534873E-01,.7056825E-01,.7578585E-01,.8100137E-01,.8621467E-01,
5.9142561E-01,.9663405E-01,.1018398E+00,.1070429E+00,.1122429E+00,
6.1174399E+00,.1226337E+00,.1278242E+00,.1330111E+00,.1381944E+00,
7.1433739E+00,.1485495E+00,.1537210E+00,.1588884E+00,.1640513E+00,
8.1692098E+00,.1743636E+00,.1795127E+00,.1846569E+00,.1897960E+00/
data (xp(i),i= 721, 760)/
1.1949299E+00,.2000585E+00,.2051816E+00,.2102991E+00,.2154108E+00,
2.2205166E+00,.2256164E+00,.2307101E+00,.2357974E+00,.2408782E+00,
3.2459525E+00,.2510200E+00,.2560807E+00,.2611343E+00,.2661808E+00,
4.2712201E+00,.2762519E+00,.2812761E+00,.2862926E+00,.2913013E+00,
5.2963021E+00,.3012947E+00,.3062790E+00,.3112550E+00,.3162225E+00,
6.3211813E+00,.3261313E+00,.3310724E+00,.3360045E+00,.3409273E+00,
7.3458408E+00,.3507449E+00,.3556393E+00,.3605240E+00,.3653989E+00,
8.3702637E+00,.3751184E+00,.3799629E+00,.3847969E+00,.3896204E+00/
data (xp(i),i= 761, 800)/
1.3944333E+00,.3992353E+00,.4040264E+00,.4088065E+00,.4135754E+00,
2.4183329E+00,.4230790E+00,.4278136E+00,.4325364E+00,.4372474E+00,
3.4419464E+00,.4466333E+00,.4513080E+00,.4559703E+00,.4606202E+00,
4.4652574E+00,.4698819E+00,.4744936E+00,.4790923E+00,.4836778E+00,
5.4882502E+00,.4928091E+00,.4973546E+00,.5018864E+00,.5064046E+00,
6.5109088E+00,.5153991E+00,.5198753E+00,.5243372E+00,.5287848E+00,
7.5332179E+00,.5376364E+00,.5420402E+00,.5464292E+00,.5508032E+00,
8.5551622E+00,.5595059E+00,.5638343E+00,.5681473E+00,.5724448E+00/
data (xp(i),i= 801, 840)/
1.5767266E+00,.5809926E+00,.5852427E+00,.5894768E+00,.5936947E+00,
2.5978964E+00,.6020817E+00,.6062506E+00,.6104028E+00,.6145384E+00,
3.6186571E+00,.6227589E+00,.6268437E+00,.6309113E+00,.6349616E+00,
4.6389945E+00,.6430100E+00,.6470079E+00,.6509880E+00,.6549504E+00,
5.6588948E+00,.6628211E+00,.6667294E+00,.6706194E+00,.6744910E+00,
6.6783442E+00,.6821788E+00,.6859947E+00,.6897919E+00,.6935702E+00,
7.6973295E+00,.7010697E+00,.7047907E+00,.7084924E+00,.7121748E+00,
8.7158376E+00,.7194809E+00,.7231044E+00,.7267082E+00,.7302921E+00/
data (xp(i),i= 841, 880)/
1.7338560E+00,.7373998E+00,.7409234E+00,.7444268E+00,.7479097E+00,
2.7513722E+00,.7548142E+00,.7582355E+00,.7616360E+00,.7650157E+00,
3.7683744E+00,.7717121E+00,.7750287E+00,.7783241E+00,.7815982E+00,
4.7848508E+00,.7880821E+00,.7912917E+00,.7944797E+00,.7976459E+00,
5.8007903E+00,.8039128E+00,.8070132E+00,.8100916E+00,.8131479E+00,
6.8161818E+00,.8191934E+00,.8221826E+00,.8251493E+00,.8280935E+00,
7.8310149E+00,.8339136E+00,.8367895E+00,.8396425E+00,.8424725E+00,
8.8452794E+00,.8480632E+00,.8508238E+00,.8535611E+00,.8562750E+00/
data (xp(i),i= 881, 920)/
1.8589656E+00,.8616325E+00,.8642760E+00,.8668957E+00,.8694918E+00,
2.8720640E+00,.8746124E+00,.8771368E+00,.8796372E+00,.8821136E+00,
3.8845658E+00,.8869937E+00,.8893975E+00,.8917768E+00,.8941318E+00,
4.8964623E+00,.8987683E+00,.9010496E+00,.9033063E+00,.9055383E+00,
5.9077455E+00,.9099278E+00,.9120852E+00,.9142177E+00,.9163252E+00,
6.9184075E+00,.9204648E+00,.9224968E+00,.9245036E+00,.9264851E+00,
7.9284412E+00,.9303720E+00,.9322772E+00,.9341570E+00,.9360111E+00,
8.9378397E+00,.9396426E+00,.9414198E+00,.9431712E+00,.9448967E+00/
data (xp(i),i= 921, 960)/
1.9465965E+00,.9482703E+00,.9499181E+00,.9515400E+00,.9531358E+00,
2.9547056E+00,.9562492E+00,.9577666E+00,.9592578E+00,.9607228E+00,
3.9621615E+00,.9635738E+00,.9649597E+00,.9663193E+00,.9676524E+00,
4.9689590E+00,.9702391E+00,.9714927E+00,.9727196E+00,.9739199E+00,
5.9750936E+00,.9762406E+00,.9773609E+00,.9784544E+00,.9795211E+00,
6.9805610E+00,.9815741E+00,.9825603E+00,.9835197E+00,.9844521E+00,
7.9853575E+00,.9862360E+00,.9870876E+00,.9879120E+00,.9887095E+00,
8.9894799E+00,.9902232E+00,.9909394E+00,.9916285E+00,.9922904E+00/
data (xp(i),i= 961,1000)/
1.9929252E+00,.9935328E+00,.9941132E+00,.9946664E+00,.9951924E+00,
2.9956911E+00,.9961626E+00,.9966068E+00,.9970238E+00,.9974135E+00,
3.9977758E+00,.9981109E+00,.9984186E+00,.9986990E+00,.9989521E+00,
4.9991778E+00,.9993762E+00,.9995472E+00,.9996909E+00,.9998072E+00,
5.9998962E+00,.9999577E+00,.9999920E+00,.1962267E-02,.5886772E-02,
6.9811186E-02,.1373545E-01,.1765950E-01,.2158328E-01,.2550673E-01,
7.2942978E-01,.3335238E-01,.3727447E-01,.4119598E-01,.4511686E-01,
8.4903704E-01,.5295647E-01,.5687508E-01,.6079282E-01,.6470962E-01/
data (xp(i),i=1001,1040)/
1.6862542E-01,.7254017E-01,.7645380E-01,.8036625E-01,.8427746E-01,
2.8818738E-01,.9209594E-01,.9600308E-01,.9990874E-01,.1038129E+00,
3.1077154E+00,.1116162E+00,.1155154E+00,.1194128E+00,.1233083E+00,
4.1272019E+00,.1310936E+00,.1349832E+00,.1388708E+00,.1427562E+00,
5.1466395E+00,.1505204E+00,.1543991E+00,.1582754E+00,.1621492E+00,
6.1660205E+00,.1698893E+00,.1737555E+00,.1776190E+00,.1814798E+00,
7.1853377E+00,.1891928E+00,.1930450E+00,.1968942E+00,.2007404E+00,
8.2045835E+00,.2084235E+00,.2122602E+00,.2160937E+00,.2199238E+00/
data (xp(i),i=1041,1080)/
1.2237505E+00,.2275738E+00,.2313936E+00,.2352099E+00,.2390225E+00,
2.2428314E+00,.2466366E+00,.2504380E+00,.2542355E+00,.2580292E+00,
3.2618188E+00,.2656044E+00,.2693859E+00,.2731633E+00,.2769365E+00,
4.2807054E+00,.2844699E+00,.2882301E+00,.2919859E+00,.2957372E+00,
5.2994839E+00,.3032259E+00,.3069634E+00,.3106961E+00,.3144240E+00,
6.3181470E+00,.3218652E+00,.3255784E+00,.3292866E+00,.3329897E+00,
7.3366877E+00,.3403805E+00,.3440681E+00,.3477503E+00,.3514272E+00,
8.3550987E+00,.3587648E+00,.3624253E+00,.3660802E+00,.3697295E+00/
data (xp(i),i=1081,1120)/
1.3733731E+00,.3770109E+00,.3806429E+00,.3842691E+00,.3878893E+00,
2.3915036E+00,.3951118E+00,.3987140E+00,.4023100E+00,.4058998E+00,
3.4094834E+00,.4130607E+00,.4166316E+00,.4201960E+00,.4237541E+00,
4.4273055E+00,.4308504E+00,.4343887E+00,.4379203E+00,.4414451E+00,
5.4449632E+00,.4484743E+00,.4519786E+00,.4554759E+00,.4589662E+00,
6.4624494E+00,.4659255E+00,.4693945E+00,.4728562E+00,.4763106E+00,
7.4797577E+00,.4831973E+00,.4866296E+00,.4900543E+00,.4934715E+00,
8.4968812E+00,.5002831E+00,.5036774E+00,.5070638E+00,.5104425E+00/
data (xp(i),i=1121,1160)/
1.5138133E+00,.5171762E+00,.5205312E+00,.5238781E+00,.5272169E+00,
2.5305477E+00,.5338702E+00,.5371846E+00,.5404906E+00,.5437884E+00,
3.5470777E+00,.5503587E+00,.5536311E+00,.5568951E+00,.5601504E+00,
4.5633972E+00,.5666352E+00,.5698645E+00,.5730851E+00,.5762968E+00,
5.5794996E+00,.5826936E+00,.5858785E+00,.5890544E+00,.5922213E+00,
6.5953790E+00,.5985276E+00,.6016669E+00,.6047970E+00,.6079177E+00,
7.6110291E+00,.6141311E+00,.6172236E+00,.6203066E+00,.6233801E+00,
8.6264440E+00,.6294982E+00,.6325427E+00,.6355775E+00,.6386024E+00/
data (xp(i),i=1161,1200)/
1.6416176E+00,.6446229E+00,.6476182E+00,.6506036E+00,.6535789E+00,
2.6565442E+00,.6594994E+00,.6624444E+00,.6653792E+00,.6683037E+00,
3.6712180E+00,.6741219E+00,.6770155E+00,.6798986E+00,.6827712E+00,
4.6856333E+00,.6884849E+00,.6913259E+00,.6941562E+00,.6969758E+00,
5.6997847E+00,.7025828E+00,.7053701E+00,.7081465E+00,.7109120E+00,
6.7136666E+00,.7164102E+00,.7191427E+00,.7218642E+00,.7245746E+00,
7.7272737E+00,.7299617E+00,.7326385E+00,.7353039E+00,.7379581E+00,
8.7406008E+00,.7432322E+00,.7458521E+00,.7484606E+00,.7510575E+00/
data (xp(i),i=1201,1240)/
1.7536428E+00,.7562165E+00,.7587786E+00,.7613290E+00,.7638676E+00,
2.7663945E+00,.7689096E+00,.7714129E+00,.7739043E+00,.7763837E+00,
3.7788512E+00,.7813067E+00,.7837502E+00,.7861816E+00,.7886009E+00,
4.7910080E+00,.7934030E+00,.7957857E+00,.7981562E+00,.8005144E+00,
5.8028602E+00,.8051937E+00,.8075148E+00,.8098234E+00,.8121196E+00,
6.8144033E+00,.8166744E+00,.8189330E+00,.8211789E+00,.8234122E+00,
7.8256328E+00,.8278407E+00,.8300358E+00,.8322182E+00,.8343877E+00,
8.8365444E+00,.8386882E+00,.8408191E+00,.8429370E+00,.8450420E+00/
data (xp(i),i=1241,1280)/
1.8471339E+00,.8492128E+00,.8512786E+00,.8533313E+00,.8553709E+00,
2.8573972E+00,.8594104E+00,.8614104E+00,.8633970E+00,.8653704E+00,
3.8673304E+00,.8692771E+00,.8712104E+00,.8731303E+00,.8750367E+00,
4.8769297E+00,.8788091E+00,.8806750E+00,.8825274E+00,.8843662E+00,
5.8861913E+00,.8880028E+00,.8898006E+00,.8915847E+00,.8933550E+00,
6.8951117E+00,.8968545E+00,.8985835E+00,.9002987E+00,.9020000E+00,
7.9036874E+00,.9053609E+00,.9070204E+00,.9086660E+00,.9102976E+00,
8.9119152E+00,.9135187E+00,.9151081E+00,.9166835E+00,.9182447E+00/
data (xp(i),i=1281,1320)/
1.9197918E+00,.9213247E+00,.9228435E+00,.9243480E+00,.9258383E+00,
2.9273143E+00,.9287760E+00,.9302235E+00,.9316566E+00,.9330754E+00,
3.9344797E+00,.9358697E+00,.9372453E+00,.9386065E+00,.9399532E+00,
4.9412854E+00,.9426031E+00,.9439063E+00,.9451950E+00,.9464691E+00,
5.9477286E+00,.9489735E+00,.9502038E+00,.9514195E+00,.9526205E+00,
6.9538069E+00,.9549785E+00,.9561355E+00,.9572777E+00,.9584052E+00,
7.9595179E+00,.9606159E+00,.9616990E+00,.9627673E+00,.9638208E+00,
8.9648595E+00,.9658833E+00,.9668922E+00,.9678863E+00,.9688654E+00/
data (xp(i),i=1321,1360)/
1.9698296E+00,.9707788E+00,.9717132E+00,.9726325E+00,.9735369E+00,
2.9744262E+00,.9753006E+00,.9761600E+00,.9770043E+00,.9778335E+00,
3.9786477E+00,.9794468E+00,.9802309E+00,.9809998E+00,.9817537E+00,
4.9824924E+00,.9832160E+00,.9839244E+00,.9846177E+00,.9852958E+00,
5.9859587E+00,.9866065E+00,.9872390E+00,.9878564E+00,.9884585E+00,
6.9890455E+00,.9896171E+00,.9901736E+00,.9907148E+00,.9912407E+00,
7.9917514E+00,.9922468E+00,.9927269E+00,.9931917E+00,.9936412E+00,
8.9940754E+00,.9944943E+00,.9948979E+00,.9952862E+00,.9956591E+00/
data (xp(i),i=1361,1400)/
1.9960167E+00,.9963590E+00,.9966859E+00,.9969974E+00,.9972936E+00,
2.9975745E+00,.9978400E+00,.9980901E+00,.9983248E+00,.9985442E+00,
3.9987482E+00,.9989368E+00,.9991100E+00,.9992678E+00,.9994103E+00,
4.9995373E+00,.9996489E+00,.9997452E+00,.9998261E+00,.9998915E+00,
5.9999416E+00,.9999762E+00,.9999955E+00,.1570010E-02,.4710016E-02,
6.7849975E-02,.1098986E-01,.1412963E-01,.1726926E-01,.2040873E-01,
7.2354799E-01,.2668702E-01,.2982579E-01,.3296426E-01,.3610241E-01,
8.3924020E-01,.4237761E-01,.4551459E-01,.4865113E-01,.5178719E-01/
data (xp(i),i=1401,1440)/
1.5492274E-01,.5805775E-01,.6119218E-01,.6432601E-01,.6745921E-01,
2.7059174E-01,.7372358E-01,.7685468E-01,.7998504E-01,.8311460E-01,
3.8624334E-01,.8937123E-01,.9249824E-01,.9562434E-01,.9874950E-01,
4.1018737E+00,.1049969E+00,.1081190E+00,.1112401E+00,.1143601E+00,
5.1174789E+00,.1205966E+00,.1237131E+00,.1268284E+00,.1299424E+00,
6.1330552E+00,.1361666E+00,.1392767E+00,.1423855E+00,.1454928E+00,
7.1485987E+00,.1517031E+00,.1548060E+00,.1579074E+00,.1610073E+00,
8.1641055E+00,.1672022E+00,.1702971E+00,.1733905E+00,.1764821E+00/
data (xp(i),i=1441,1480)/
1.1795719E+00,.1826600E+00,.1857463E+00,.1888308E+00,.1919134E+00,
2.1949941E+00,.1980728E+00,.2011497E+00,.2042245E+00,.2072973E+00,
3.2103681E+00,.2134368E+00,.2165035E+00,.2195679E+00,.2226302E+00,
4.2256904E+00,.2287482E+00,.2318039E+00,.2348572E+00,.2379083E+00,
5.2409569E+00,.2440033E+00,.2470472E+00,.2500886E+00,.2531276E+00,
6.2561641E+00,.2591981E+00,.2622295E+00,.2652584E+00,.2682846E+00,
7.2713082E+00,.2743291E+00,.2773473E+00,.2803628E+00,.2833755E+00,
8.2863854E+00,.2893925E+00,.2923967E+00,.2953980E+00,.2983965E+00/
data (xp(i),i=1481,1520)/
1.3013920E+00,.3043845E+00,.3073740E+00,.3103605E+00,.3133439E+00,
2.3163243E+00,.3193015E+00,.3222756E+00,.3252465E+00,.3282141E+00,
3.3311786E+00,.3341398E+00,.3370977E+00,.3400522E+00,.3430035E+00,
4.3459513E+00,.3488957E+00,.3518367E+00,.3547742E+00,.3577082E+00,
5.3606387E+00,.3635657E+00,.3664890E+00,.3694087E+00,.3723248E+00,
6.3752373E+00,.3781460E+00,.3810510E+00,.3839522E+00,.3868497E+00,
7.3897433E+00,.3926331E+00,.3955190E+00,.3984010E+00,.4012791E+00,
8.4041533E+00,.4070234E+00,.4098896E+00,.4127517E+00,.4156097E+00/
data (xp(i),i=1521,1560)/
1.4184636E+00,.4213134E+00,.4241591E+00,.4270006E+00,.4298378E+00,
2.4326708E+00,.4354996E+00,.4383241E+00,.4411442E+00,.4439600E+00,
3.4467714E+00,.4495784E+00,.4523810E+00,.4551791E+00,.4579727E+00,
4.4607618E+00,.4635464E+00,.4663264E+00,.4691018E+00,.4718726E+00,
5.4746387E+00,.4774001E+00,.4801569E+00,.4829089E+00,.4856561E+00,
6.4883986E+00,.4911362E+00,.4938690E+00,.4965969E+00,.4993199E+00,
7.5020381E+00,.5047512E+00,.5074594E+00,.5101626E+00,.5128607E+00,
8.5155538E+00,.5182418E+00,.5209247E+00,.5236025E+00,.5262750E+00/
data (xp(i),i=1561,1600)/
1.5289425E+00,.5316046E+00,.5342616E+00,.5369133E+00,.5395597E+00,
2.5422007E+00,.5448365E+00,.5474668E+00,.5500918E+00,.5527113E+00,
3.5553254E+00,.5579340E+00,.5605371E+00,.5631347E+00,.5657267E+00,
4.5683131E+00,.5708940E+00,.5734692E+00,.5760387E+00,.5786026E+00,
5.5811608E+00,.5837132E+00,.5862599E+00,.5888008E+00,.5913360E+00,
6.5938652E+00,.5963886E+00,.5989062E+00,.6014178E+00,.6039235E+00,
7.6064233E+00,.6089170E+00,.6114048E+00,.6138865E+00,.6163622E+00,
8.6188318E+00,.6212953E+00,.6237527E+00,.6262040E+00,.6286490E+00/
data (xp(i),i=1601,1640)/
1.6310879E+00,.6335205E+00,.6359469E+00,.6383670E+00,.6407808E+00,
2.6431883E+00,.6455895E+00,.6479843E+00,.6503727E+00,.6527547E+00,
3.6551303E+00,.6574994E+00,.6598620E+00,.6622181E+00,.6645677E+00,
4.6669107E+00,.6692472E+00,.6715770E+00,.6739003E+00,.6762169E+00,
5.6785268E+00,.6808300E+00,.6831266E+00,.6854163E+00,.6876994E+00,
6.6899756E+00,.6922451E+00,.6945077E+00,.6967635E+00,.6990124E+00,
7.7012544E+00,.7034895E+00,.7057176E+00,.7079388E+00,.7101530E+00,
8.7123603E+00,.7145605E+00,.7167536E+00,.7189397E+00,.7211187E+00/
data (xp(i),i=1641,1680)/
1.7232906E+00,.7254553E+00,.7276129E+00,.7297634E+00,.7319066E+00,
2.7340426E+00,.7361714E+00,.7382929E+00,.7404071E+00,.7425141E+00,
3.7446137E+00,.7467060E+00,.7487909E+00,.7508684E+00,.7529385E+00,
4.7550013E+00,.7570565E+00,.7591043E+00,.7611446E+00,.7631774E+00,
5.7652027E+00,.7672204E+00,.7692306E+00,.7712332E+00,.7732282E+00,
6.7752155E+00,.7771953E+00,.7791673E+00,.7811317E+00,.7830884E+00,
7.7850373E+00,.7869785E+00,.7889120E+00,.7908376E+00,.7927555E+00,
8.7946656E+00,.7965678E+00,.7984622E+00,.8003486E+00,.8022273E+00/
data (xp(i),i=1681,1720)/
1.8040979E+00,.8059607E+00,.8078155E+00,.8096624E+00,.8115013E+00,
2.8133321E+00,.8151550E+00,.8169698E+00,.8187765E+00,.8205752E+00,
3.8223658E+00,.8241483E+00,.8259227E+00,.8276889E+00,.8294470E+00,
4.8311968E+00,.8329385E+00,.8346720E+00,.8363972E+00,.8381142E+00,
5.8398229E+00,.8415234E+00,.8432156E+00,.8448994E+00,.8465749E+00,
6.8482421E+00,.8499009E+00,.8515513E+00,.8531933E+00,.8548269E+00,
7.8564521E+00,.8580688E+00,.8596771E+00,.8612769E+00,.8628682E+00,
8.8644510E+00,.8660253E+00,.8675910E+00,.8691482E+00,.8706968E+00/
data (xp(i),i=1721,1760)/
1.8722369E+00,.8737683E+00,.8752911E+00,.8768053E+00,.8783108E+00,
2.8798077E+00,.8812959E+00,.8827754E+00,.8842463E+00,.8857083E+00,
3.8871617E+00,.8886063E+00,.8900422E+00,.8914692E+00,.8928875E+00,
4.8942970E+00,.8956977E+00,.8970895E+00,.8984725E+00,.8998466E+00,
5.9012119E+00,.9025683E+00,.9039157E+00,.9052543E+00,.9065839E+00,
6.9079046E+00,.9092164E+00,.9105192E+00,.9118130E+00,.9130978E+00,
7.9143736E+00,.9156404E+00,.9168982E+00,.9181469E+00,.9193866E+00,
8.9206172E+00,.9218387E+00,.9230511E+00,.9242545E+00,.9254487E+00/
data (xp(i),i=1761,1800)/
1.9266338E+00,.9278098E+00,.9289766E+00,.9301343E+00,.9312828E+00,
2.9324221E+00,.9335522E+00,.9346731E+00,.9357848E+00,.9368872E+00,
3.9379805E+00,.9390645E+00,.9401392E+00,.9412046E+00,.9422608E+00,
4.9433077E+00,.9443453E+00,.9453735E+00,.9463925E+00,.9474021E+00,
5.9484024E+00,.9493933E+00,.9503749E+00,.9513471E+00,.9523099E+00,
6.9532633E+00,.9542073E+00,.9551420E+00,.9560672E+00,.9569829E+00,
7.9578893E+00,.9587862E+00,.9596736E+00,.9605516E+00,.9614201E+00,
8.9622791E+00,.9631287E+00,.9639687E+00,.9647992E+00,.9656203E+00/
data (xp(i),i=1801,1840)/
1.9664318E+00,.9672338E+00,.9680262E+00,.9688091E+00,.9695824E+00,
2.9703462E+00,.9711004E+00,.9718451E+00,.9725801E+00,.9733056E+00,
3.9740215E+00,.9747278E+00,.9754244E+00,.9761115E+00,.9767889E+00,
4.9774567E+00,.9781148E+00,.9787633E+00,.9794022E+00,.9800314E+00,
5.9806509E+00,.9812608E+00,.9818610E+00,.9824515E+00,.9830323E+00,
6.9836035E+00,.9841649E+00,.9847166E+00,.9852586E+00,.9857909E+00,
7.9863135E+00,.9868264E+00,.9873295E+00,.9878229E+00,.9883066E+00,
8.9887805E+00,.9892447E+00,.9896991E+00,.9901437E+00,.9905786E+00/
data (xp(i),i=1841,1880)/
1.9910037E+00,.9914191E+00,.9918247E+00,.9922205E+00,.9926065E+00,
2.9929827E+00,.9933492E+00,.9937058E+00,.9940527E+00,.9943897E+00,
3.9947169E+00,.9950344E+00,.9953420E+00,.9956398E+00,.9959278E+00,
4.9962060E+00,.9964743E+00,.9967328E+00,.9969815E+00,.9972204E+00,
5.9974494E+00,.9976686E+00,.9978780E+00,.9980775E+00,.9982672E+00,
6.9984471E+00,.9986171E+00,.9987772E+00,.9989275E+00,.9990680E+00,
7.9991986E+00,.9993193E+00,.9994302E+00,.9995313E+00,.9996225E+00,
8.9997038E+00,.9997753E+00,.9998369E+00,.9998886E+00,.9999306E+00/
data (xp(i),i=1881,1883)/
1.9999626E+00,.9999848E+00,.9999971E+00/
data (wp(i),i= 1, 40)/
1.4679139E+00,.3607616E+00,.1713245E+00,.2955242E+00,.2692667E+00,
2.2190864E+00,.1494513E+00,.6667134E-01,.1527534E+00,.1491730E+00,
3.1420961E+00,.1316886E+00,.1181945E+00,.1019301E+00,.8327674E-01,
4.6267205E-01,.4060143E-01,.1761401E-01,.7750595E-01,.7703982E-01,
5.7611036E-01,.7472317E-01,.7288658E-01,.7061165E-01,.6791205E-01,
6.6480401E-01,.6130624E-01,.5743977E-01,.5322785E-01,.4869581E-01,
7.4387091E-01,.3878217E-01,.3346020E-01,.2793701E-01,.2224585E-01,
8.1642106E-01,.1049828E-01,.4521277E-02,.5190788E-01,.5176794E-01/
data (wp(i),i= 41, 80)/
1.5148845E-01,.5107016E-01,.5051418E-01,.4982204E-01,.4899558E-01,
2.4803703E-01,.4694899E-01,.4573438E-01,.4439648E-01,.4293889E-01,
3.4136555E-01,.3968070E-01,.3788887E-01,.3599490E-01,.3400389E-01,
4.3192122E-01,.2975249E-01,.2750356E-01,.2518048E-01,.2278952E-01,
5.2033712E-01,.1782990E-01,.1527462E-01,.1267817E-01,.1004756E-01,
6.7389931E-02,.4712730E-02,.2026812E-02,.3901781E-01,.3895840E-01,
7.3883965E-01,.3866176E-01,.3842499E-01,.3812971E-01,.3777636E-01,
8.3736549E-01,.3689771E-01,.3637375E-01,.3579439E-01,.3516053E-01/
data (wp(i),i= 81, 120)/
1.3447312E-01,.3373321E-01,.3294194E-01,.3210050E-01,.3121017E-01,
2.3027232E-01,.2928837E-01,.2825982E-01,.2718823E-01,.2607524E-01,
3.2492254E-01,.2373188E-01,.2250509E-01,.2124403E-01,.1995061E-01,
4.1862681E-01,.1727465E-01,.1589618E-01,.1449351E-01,.1306876E-01,
5.1162411E-01,.1016177E-01,.8683945E-02,.7192905E-02,.5690922E-02,
6.4180313E-02,.2663534E-02,.1144950E-02,.3125542E-01,.3122488E-01,
7.3116384E-01,.3107234E-01,.3095048E-01,.3079838E-01,.3061619E-01,
8.3040408E-01,.3016227E-01,.2989098E-01,.2959049E-01,.2926108E-01/
data (wp(i),i= 121, 160)/
1.2890309E-01,.2851685E-01,.2810276E-01,.2766120E-01,.2719261E-01,
2.2669746E-01,.2617622E-01,.2562940E-01,.2505754E-01,.2446120E-01,
3.2384096E-01,.2319742E-01,.2253122E-01,.2184300E-01,.2113344E-01,
4.2040323E-01,.1965309E-01,.1888374E-01,.1809594E-01,.1729046E-01,
5.1646809E-01,.1562962E-01,.1477588E-01,.1390771E-01,.1302595E-01,
6.1213146E-01,.1122511E-01,.1030780E-01,.9380420E-02,.8443871E-02,
7.7499073E-02,.6546948E-02,.5588428E-02,.4624450E-02,.3655961E-02,
8.2683925E-02,.1709393E-02,.7346345E-03,.2087312E-01,.2086402E-01/
data (wp(i),i= 161, 200)/
1.2084584E-01,.2081857E-01,.2078223E-01,.2073683E-01,.2068240E-01,
2.2061896E-01,.2054653E-01,.2046515E-01,.2037486E-01,.2027568E-01,
3.2016767E-01,.2005088E-01,.1992534E-01,.1979113E-01,.1964829E-01,
4.1949689E-01,.1933700E-01,.1916867E-01,.1899200E-01,.1880705E-01,
5.1861391E-01,.1841266E-01,.1820338E-01,.1798617E-01,.1776113E-01,
6.1752835E-01,.1728792E-01,.1703997E-01,.1678459E-01,.1652190E-01,
7.1625201E-01,.1597504E-01,.1569110E-01,.1540033E-01,.1510285E-01,
8.1479879E-01,.1448828E-01,.1417146E-01,.1384846E-01,.1351943E-01/
data (wp(i),i= 201, 240)/
1.1318451E-01,.1284384E-01,.1249758E-01,.1214587E-01,.1178887E-01,
2.1142673E-01,.1105962E-01,.1068768E-01,.1031109E-01,.9930004E-02,
3.9544593E-02,.9155022E-02,.8761463E-02,.8364086E-02,.7963064E-02,
4.7558573E-02,.7150788E-02,.6739888E-02,.6326051E-02,.5909457E-02,
5.5490289E-02,.5068728E-02,.4644959E-02,.4219166E-02,.3791535E-02,
6.3362252E-02,.2931504E-02,.2499479E-02,.2066366E-02,.1632357E-02,
7.1197647E-02,.7624721E-03,.3276087E-03,.1566826E-01,.1566442E-01,
8.1565672E-01,.1564519E-01,.1562981E-01,.1561059E-01,.1558755E-01/
data (wp(i),i= 241, 280)/
1.1556067E-01,.1552998E-01,.1549547E-01,.1545716E-01,.1541506E-01,
2.1536917E-01,.1531950E-01,.1526608E-01,.1520891E-01,.1514800E-01,
3.1508338E-01,.1501505E-01,.1494303E-01,.1486735E-01,.1478802E-01,
4.1470505E-01,.1461848E-01,.1452832E-01,.1443459E-01,.1433731E-01,
5.1423652E-01,.1413223E-01,.1402447E-01,.1391327E-01,.1379866E-01,
6.1368065E-01,.1355929E-01,.1343460E-01,.1330661E-01,.1317535E-01,
7.1304086E-01,.1290316E-01,.1276230E-01,.1261831E-01,.1247122E-01,
8.1232106E-01,.1216788E-01,.1201172E-01,.1185260E-01,.1169058E-01/
data (wp(i),i= 281, 320)/
1.1152568E-01,.1135796E-01,.1118744E-01,.1101418E-01,.1083822E-01,
2.1065959E-01,.1047835E-01,.1029454E-01,.1010820E-01,.9919373E-02,
3.9728115E-02,.9534468E-02,.9338480E-02,.9140200E-02,.8939676E-02,
4.8736957E-02,.8532093E-02,.8325134E-02,.8116132E-02,.7905137E-02,
5.7692201E-02,.7477377E-02,.7260717E-02,.7042274E-02,.6822103E-02,
6.6600256E-02,.6376790E-02,.6151757E-02,.5925215E-02,.5697218E-02,
7.5467822E-02,.5237083E-02,.5005059E-02,.4771806E-02,.4537382E-02,
8.4301844E-02,.4065249E-02,.3827657E-02,.3589125E-02,.3349711E-02/
data (wp(i),i= 321, 360)/
1.3109476E-02,.2868477E-02,.2626773E-02,.2384425E-02,.2141492E-02,
2.1898033E-02,.1654108E-02,.1409777E-02,.1165101E-02,.9201405E-03,
3.6749606E-03,.4296466E-03,.1845901E-03,.1045439E-01,.1045325E-01,
4.1045097E-01,.1044754E-01,.1044297E-01,.1043726E-01,.1043041E-01,
5.1042242E-01,.1041329E-01,.1040302E-01,.1039161E-01,.1037907E-01,
6.1036539E-01,.1035058E-01,.1033464E-01,.1031758E-01,.1029938E-01,
7.1028006E-01,.1025961E-01,.1023804E-01,.1021535E-01,.1019155E-01,
8.1016663E-01,.1014060E-01,.1011347E-01,.1008523E-01,.1005588E-01/
data (wp(i),i= 361, 400)/
1.1002544E-01,.9993899E-02,.9961267E-02,.9927547E-02,.9892741E-02,
2.9856855E-02,.9819891E-02,.9781854E-02,.9742747E-02,.9702576E-02,
3.9661345E-02,.9619057E-02,.9575718E-02,.9531333E-02,.9485905E-02,
4.9439441E-02,.9391946E-02,.9343424E-02,.9293880E-02,.9243321E-02,
5.9191751E-02,.9139177E-02,.9085604E-02,.9031038E-02,.8975485E-02,
6.8918951E-02,.8861442E-02,.8802965E-02,.8743525E-02,.8683130E-02,
7.8621786E-02,.8559499E-02,.8496277E-02,.8432127E-02,.8367054E-02,
8.8301068E-02,.8234174E-02,.8166380E-02,.8097693E-02,.8028121E-02/
data (wp(i),i= 401, 440)/
1.7957672E-02,.7886353E-02,.7814173E-02,.7741138E-02,.7667257E-02,
2.7592538E-02,.7516989E-02,.7440619E-02,.7363435E-02,.7285447E-02,
3.7206662E-02,.7127090E-02,.7046739E-02,.6965617E-02,.6883734E-02,
4.6801099E-02,.6717721E-02,.6633608E-02,.6548770E-02,.6463217E-02,
5.6376957E-02,.6290000E-02,.6202356E-02,.6114033E-02,.6025043E-02,
6.5935394E-02,.5845096E-02,.5754159E-02,.5662594E-02,.5570409E-02,
7.5477616E-02,.5384224E-02,.5290244E-02,.5195685E-02,.5100559E-02,
8.5004875E-02,.4908644E-02,.4811876E-02,.4714583E-02,.4616774E-02/
data (wp(i),i= 441, 480)/
1.4518461E-02,.4419654E-02,.4320364E-02,.4220601E-02,.4120378E-02,
2.4019704E-02,.3918590E-02,.3817049E-02,.3715090E-02,.3612725E-02,
3.3509965E-02,.3406822E-02,.3303306E-02,.3199429E-02,.3095203E-02,
4.2990638E-02,.2885746E-02,.2780539E-02,.2675029E-02,.2569225E-02,
5.2463141E-02,.2356788E-02,.2250177E-02,.2143320E-02,.2036229E-02,
6.1928915E-02,.1821391E-02,.1713667E-02,.1605756E-02,.1497670E-02,
7.1389420E-02,.1281018E-02,.1172476E-02,.1063806E-02,.9550200E-03,
8.8461294E-03,.7371464E-03,.6280830E-03,.5189512E-03,.4097636E-03/
data (wp(i),i= 481, 520)/
1.3005340E-03,.1912855E-03,.8217779E-04,.7844110E-02,.7843627E-02,
2.7842662E-02,.7841214E-02,.7839284E-02,.7836871E-02,.7833976E-02,
3.7830599E-02,.7826741E-02,.7822400E-02,.7817579E-02,.7812276E-02,
4.7806493E-02,.7800229E-02,.7793485E-02,.7786262E-02,.7778560E-02,
5.7770379E-02,.7761720E-02,.7752583E-02,.7742970E-02,.7732880E-02,
6.7722314E-02,.7711273E-02,.7699757E-02,.7687768E-02,.7675306E-02,
7.7662371E-02,.7648965E-02,.7635088E-02,.7620742E-02,.7605926E-02,
8.7590643E-02,.7574892E-02,.7558676E-02,.7541994E-02,.7524848E-02/
data (wp(i),i= 521, 560)/
1.7507240E-02,.7489169E-02,.7470638E-02,.7451646E-02,.7432197E-02,
2.7412290E-02,.7391927E-02,.7371109E-02,.7349838E-02,.7328114E-02,
3.7305939E-02,.7283315E-02,.7260243E-02,.7236724E-02,.7212760E-02,
4.7188352E-02,.7163501E-02,.7138210E-02,.7112480E-02,.7086312E-02,
5.7059708E-02,.7032669E-02,.7005198E-02,.6977296E-02,.6948964E-02,
6.6920205E-02,.6891020E-02,.6861412E-02,.6831380E-02,.6800929E-02,
7.6770059E-02,.6738773E-02,.6707072E-02,.6674958E-02,.6642433E-02,
8.6609500E-02,.6576160E-02,.6542416E-02,.6508269E-02,.6473721E-02/
data (wp(i),i= 561, 600)/
1.6438775E-02,.6403433E-02,.6367697E-02,.6331569E-02,.6295052E-02,
2.6258147E-02,.6220857E-02,.6183184E-02,.6145131E-02,.6106700E-02,
3.6067893E-02,.6028713E-02,.5989161E-02,.5949241E-02,.5908956E-02,
4.5868306E-02,.5827296E-02,.5785926E-02,.5744201E-02,.5702123E-02,
5.5659693E-02,.5616916E-02,.5573792E-02,.5530326E-02,.5486520E-02,
6.5442376E-02,.5397897E-02,.5353085E-02,.5307945E-02,.5262478E-02,
7.5216687E-02,.5170575E-02,.5124145E-02,.5077400E-02,.5030342E-02,
8.4982975E-02,.4935301E-02,.4887323E-02,.4839045E-02,.4790469E-02/
data (wp(i),i= 601, 640)/
1.4741598E-02,.4692436E-02,.4642984E-02,.4593247E-02,.4543228E-02,
2.4492929E-02,.4442353E-02,.4391504E-02,.4340385E-02,.4288999E-02,
3.4237349E-02,.4185438E-02,.4133270E-02,.4080847E-02,.4028173E-02,
4.3975251E-02,.3922085E-02,.3868678E-02,.3815032E-02,.3761152E-02,
5.3707040E-02,.3652700E-02,.3598135E-02,.3543349E-02,.3488345E-02,
6.3433126E-02,.3377697E-02,.3322059E-02,.3266217E-02,.3210173E-02,
7.3153933E-02,.3097498E-02,.3040873E-02,.2984060E-02,.2927064E-02,
8.2869888E-02,.2812535E-02,.2755009E-02,.2697314E-02,.2639453E-02/
data (wp(i),i= 641, 680)/
1.2581429E-02,.2523247E-02,.2464909E-02,.2406419E-02,.2347782E-02,
2.2289000E-02,.2230077E-02,.2171017E-02,.2111823E-02,.2052500E-02,
3.1993050E-02,.1933477E-02,.1873786E-02,.1813979E-02,.1754061E-02,
4.1694034E-02,.1633904E-02,.1573673E-02,.1513345E-02,.1452924E-02,
5.1392413E-02,.1331817E-02,.1271139E-02,.1210383E-02,.1149552E-02,
6.1088651E-02,.1027682E-02,.9666507E-03,.9055595E-03,.8444126E-03,
7.7832138E-03,.7219667E-03,.6606753E-03,.5993432E-03,.5379742E-03,
8.4765722E-03,.4151409E-03,.3536841E-03,.2922057E-03,.2307099E-03/
data (wp(i),i= 681, 720)/
1.1692014E-03,.1076904E-03,.4626372E-04,.5231608E-02,.5231465E-02,
2.5231179E-02,.5230749E-02,.5230177E-02,.5229461E-02,.5228602E-02,
3.5227600E-02,.5226454E-02,.5225166E-02,.5223735E-02,.5222161E-02,
4.5220444E-02,.5218584E-02,.5216581E-02,.5214435E-02,.5212147E-02,
5.5209716E-02,.5207142E-02,.5204426E-02,.5201567E-02,.5198567E-02,
6.5195423E-02,.5192138E-02,.5188710E-02,.5185141E-02,.5181429E-02,
7.5177576E-02,.5173581E-02,.5169445E-02,.5165167E-02,.5160747E-02,
8.5156186E-02,.5151485E-02,.5146642E-02,.5141658E-02,.5136534E-02/
data (wp(i),i= 721, 760)/
1.5131269E-02,.5125863E-02,.5120318E-02,.5114632E-02,.5108806E-02,
2.5102840E-02,.5096735E-02,.5090490E-02,.5084106E-02,.5077583E-02,
3.5070920E-02,.5064119E-02,.5057180E-02,.5050102E-02,.5042885E-02,
4.5035531E-02,.5028039E-02,.5020409E-02,.5012642E-02,.5004738E-02,
5.4996696E-02,.4988518E-02,.4980203E-02,.4971752E-02,.4963165E-02,
6.4954443E-02,.4945584E-02,.4936590E-02,.4927461E-02,.4918197E-02,
7.4908799E-02,.4899266E-02,.4889599E-02,.4879799E-02,.4869864E-02,
8.4859797E-02,.4849596E-02,.4839263E-02,.4828797E-02,.4818199E-02/
data (wp(i),i= 761, 800)/
1.4807470E-02,.4796608E-02,.4785616E-02,.4774492E-02,.4763238E-02,
2.4751853E-02,.4740338E-02,.4728694E-02,.4716920E-02,.4705017E-02,
3.4692985E-02,.4680825E-02,.4668537E-02,.4656121E-02,.4643577E-02,
4.4630907E-02,.4618109E-02,.4605185E-02,.4592136E-02,.4578960E-02,
5.4565659E-02,.4552233E-02,.4538683E-02,.4525008E-02,.4511210E-02,
6.4497288E-02,.4483243E-02,.4469075E-02,.4454785E-02,.4440373E-02,
7.4425840E-02,.4411185E-02,.4396410E-02,.4381514E-02,.4366498E-02,
8.4351363E-02,.4336109E-02,.4320736E-02,.4305245E-02,.4289636E-02/
data (wp(i),i= 801, 840)/
1.4273910E-02,.4258066E-02,.4242106E-02,.4226030E-02,.4209839E-02,
2.4193532E-02,.4177110E-02,.4160574E-02,.4143924E-02,.4127161E-02,
3.4110284E-02,.4093296E-02,.4076195E-02,.4058982E-02,.4041659E-02,
4.4024225E-02,.4006681E-02,.3989027E-02,.3971264E-02,.3953392E-02,
5.3935412E-02,.3917324E-02,.3899129E-02,.3880828E-02,.3862420E-02,
6.3843906E-02,.3825288E-02,.3806564E-02,.3787737E-02,.3768805E-02,
7.3749771E-02,.3730634E-02,.3711395E-02,.3692054E-02,.3672612E-02,
8.3653070E-02,.3633427E-02,.3613685E-02,.3593845E-02,.3573906E-02/
data (wp(i),i= 841, 880)/
1.3553869E-02,.3533735E-02,.3513504E-02,.3493177E-02,.3472754E-02,
2.3452237E-02,.3431624E-02,.3410918E-02,.3390119E-02,.3369227E-02,
3.3348242E-02,.3327166E-02,.3305999E-02,.3284741E-02,.3263394E-02,
4.3241957E-02,.3220431E-02,.3198818E-02,.3177116E-02,.3155328E-02,
5.3133454E-02,.3111493E-02,.3089448E-02,.3067318E-02,.3045104E-02,
6.3022806E-02,.3000426E-02,.2977964E-02,.2955420E-02,.2932796E-02,
7.2910091E-02,.2887306E-02,.2864443E-02,.2841501E-02,.2818481E-02,
8.2795384E-02,.2772211E-02,.2748961E-02,.2725637E-02,.2702238E-02/
data (wp(i),i= 881, 920)/
1.2678765E-02,.2655218E-02,.2631599E-02,.2607908E-02,.2584146E-02,
2.2560312E-02,.2536409E-02,.2512437E-02,.2488395E-02,.2464286E-02,
3.2440109E-02,.2415865E-02,.2391555E-02,.2367179E-02,.2342739E-02,
4.2318235E-02,.2293667E-02,.2269037E-02,.2244344E-02,.2219590E-02,
5.2194775E-02,.2169901E-02,.2144966E-02,.2119973E-02,.2094922E-02,
6.2069814E-02,.2044649E-02,.2019428E-02,.1994152E-02,.1968821E-02,
7.1943437E-02,.1917999E-02,.1892508E-02,.1866966E-02,.1841373E-02,
8.1815729E-02,.1790036E-02,.1764294E-02,.1738503E-02,.1712665E-02/
data (wp(i),i= 921, 960)/
1.1686780E-02,.1660848E-02,.1634872E-02,.1608850E-02,.1582785E-02,
2.1556676E-02,.1530525E-02,.1504331E-02,.1478097E-02,.1451822E-02,
3.1425507E-02,.1399154E-02,.1372762E-02,.1346332E-02,.1319866E-02,
4.1293363E-02,.1266825E-02,.1240253E-02,.1213646E-02,.1187006E-02,
5.1160334E-02,.1133630E-02,.1106895E-02,.1080130E-02,.1053335E-02,
6.1026511E-02,.9996593E-03,.9727801E-03,.9458743E-03,.9189426E-03,
7.8919858E-03,.8650045E-03,.8379996E-03,.8109717E-03,.7839217E-03,
8.7568502E-03,.7297579E-03,.7026457E-03,.6755143E-03,.6483644E-03/
data (wp(i),i= 961,1000)/
1.6211967E-03,.5940120E-03,.5668111E-03,.5395947E-03,.5123635E-03,
2.4851182E-03,.4578597E-03,.4305887E-03,.4033058E-03,.3760120E-03,
3.3487078E-03,.3213941E-03,.2940716E-03,.2667411E-03,.2394033E-03,
4.2120589E-03,.1847087E-03,.1573535E-03,.1299941E-03,.1026314E-03,
5.7526651E-04,.4790311E-04,.2057885E-04,.3924530E-02,.3924469E-02,
6.3924348E-02,.3924167E-02,.3923925E-02,.3923623E-02,.3923260E-02,
7.3922837E-02,.3922354E-02,.3921810E-02,.3921206E-02,.3920541E-02,
8.3919816E-02,.3919030E-02,.3918185E-02,.3917278E-02,.3916312E-02/
data (wp(i),i=1001,1040)/
1.3915285E-02,.3914198E-02,.3913051E-02,.3911843E-02,.3910575E-02,
2.3909247E-02,.3907858E-02,.3906410E-02,.3904901E-02,.3903332E-02,
3.3901703E-02,.3900014E-02,.3898265E-02,.3896456E-02,.3894587E-02,
4.3892658E-02,.3890668E-02,.3888619E-02,.3886510E-02,.3884342E-02,
5.3882113E-02,.3879825E-02,.3877476E-02,.3875068E-02,.3872601E-02,
6.3870074E-02,.3867487E-02,.3864840E-02,.3862134E-02,.3859369E-02,
7.3856544E-02,.3853660E-02,.3850716E-02,.3847713E-02,.3844651E-02,
8.3841530E-02,.3838349E-02,.3835109E-02,.3831811E-02,.3828453E-02/
data (wp(i),i=1041,1080)/
1.3825036E-02,.3821561E-02,.3818026E-02,.3814433E-02,.3810781E-02,
2.3807070E-02,.3803300E-02,.3799473E-02,.3795586E-02,.3791641E-02,
3.3787638E-02,.3783576E-02,.3779456E-02,.3775278E-02,.3771042E-02,
4.3766747E-02,.3762395E-02,.3757984E-02,.3753516E-02,.3748990E-02,
5.3744406E-02,.3739765E-02,.3735066E-02,.3730309E-02,.3725495E-02,
6.3720624E-02,.3715695E-02,.3710709E-02,.3705666E-02,.3700566E-02,
7.3695408E-02,.3690194E-02,.3684923E-02,.3679596E-02,.3674211E-02,
8.3668770E-02,.3663273E-02,.3657719E-02,.3652109E-02,.3646442E-02/
data (wp(i),i=1081,1120)/
1.3640720E-02,.3634941E-02,.3629106E-02,.3623216E-02,.3617269E-02,
2.3611267E-02,.3605209E-02,.3599096E-02,.3592927E-02,.3586703E-02,
3.3580424E-02,.3574090E-02,.3567700E-02,.3561256E-02,.3554757E-02,
4.3548203E-02,.3541594E-02,.3534931E-02,.3528213E-02,.3521441E-02,
5.3514615E-02,.3507734E-02,.3500800E-02,.3493812E-02,.3486770E-02,
6.3479674E-02,.3472524E-02,.3465321E-02,.3458065E-02,.3450756E-02,
7.3443393E-02,.3435977E-02,.3428508E-02,.3420987E-02,.3413413E-02,
8.3405786E-02,.3398107E-02,.3390375E-02,.3382592E-02,.3374756E-02/
data (wp(i),i=1121,1160)/
1.3366868E-02,.3358928E-02,.3350937E-02,.3342894E-02,.3334800E-02,
2.3326654E-02,.3318457E-02,.3310208E-02,.3301909E-02,.3293559E-02,
3.3285158E-02,.3276707E-02,.3268205E-02,.3259653E-02,.3251051E-02,
4.3242398E-02,.3233696E-02,.3224944E-02,.3216142E-02,.3207290E-02,
5.3198390E-02,.3189440E-02,.3180440E-02,.3171392E-02,.3162295E-02,
6.3153149E-02,.3143955E-02,.3134712E-02,.3125421E-02,.3116082E-02,
7.3106695E-02,.3097260E-02,.3087778E-02,.3078247E-02,.3068670E-02,
8.3059045E-02,.3049373E-02,.3039654E-02,.3029888E-02,.3020075E-02/
data (wp(i),i=1161,1200)/
1.3010217E-02,.3000311E-02,.2990360E-02,.2980362E-02,.2970318E-02,
2.2960229E-02,.2950094E-02,.2939914E-02,.2929688E-02,.2919418E-02,
3.2909102E-02,.2898742E-02,.2888336E-02,.2877887E-02,.2867393E-02,
4.2856855E-02,.2846273E-02,.2835647E-02,.2824977E-02,.2814264E-02,
5.2803508E-02,.2792708E-02,.2781865E-02,.2770980E-02,.2760052E-02,
6.2749081E-02,.2738068E-02,.2727013E-02,.2715915E-02,.2704776E-02,
7.2693596E-02,.2682374E-02,.2671110E-02,.2659805E-02,.2648460E-02,
8.2637073E-02,.2625646E-02,.2614179E-02,.2602671E-02,.2591123E-02/
data (wp(i),i=1201,1240)/
1.2579536E-02,.2567908E-02,.2556241E-02,.2544535E-02,.2532789E-02,
2.2521005E-02,.2509181E-02,.2497319E-02,.2485419E-02,.2473480E-02,
3.2461503E-02,.2449488E-02,.2437436E-02,.2425346E-02,.2413218E-02,
4.2401054E-02,.2388852E-02,.2376614E-02,.2364339E-02,.2352028E-02,
5.2339680E-02,.2327296E-02,.2314877E-02,.2302422E-02,.2289931E-02,
6.2277405E-02,.2264844E-02,.2252249E-02,.2239618E-02,.2226953E-02,
7.2214254E-02,.2201520E-02,.2188753E-02,.2175952E-02,.2163117E-02,
8.2150249E-02,.2137349E-02,.2124415E-02,.2111448E-02,.2098449E-02/
data (wp(i),i=1241,1280)/
1.2085417E-02,.2072354E-02,.2059258E-02,.2046131E-02,.2032972E-02,
2.2019782E-02,.2006561E-02,.1993309E-02,.1980026E-02,.1966713E-02,
3.1953370E-02,.1939996E-02,.1926592E-02,.1913159E-02,.1899697E-02,
4.1886205E-02,.1872684E-02,.1859134E-02,.1845555E-02,.1831949E-02,
5.1818314E-02,.1804650E-02,.1790960E-02,.1777241E-02,.1763495E-02,
6.1749722E-02,.1735922E-02,.1722096E-02,.1708242E-02,.1694363E-02,
7.1680457E-02,.1666526E-02,.1652569E-02,.1638586E-02,.1624578E-02,
8.1610545E-02,.1596488E-02,.1582405E-02,.1568299E-02,.1554168E-02/
data (wp(i),i=1281,1320)/
1.1540013E-02,.1525835E-02,.1511633E-02,.1497407E-02,.1483159E-02,
2.1468888E-02,.1454594E-02,.1440278E-02,.1425940E-02,.1411579E-02,
3.1397197E-02,.1382794E-02,.1368369E-02,.1353923E-02,.1339456E-02,
4.1324969E-02,.1310461E-02,.1295933E-02,.1281385E-02,.1266817E-02,
5.1252230E-02,.1237623E-02,.1222998E-02,.1208353E-02,.1193690E-02,
6.1179009E-02,.1164309E-02,.1149592E-02,.1134857E-02,.1120104E-02,
7.1105334E-02,.1090547E-02,.1075743E-02,.1060923E-02,.1046086E-02,
8.1031234E-02,.1016365E-02,.1001481E-02,.9865808E-03,.9716658E-03/
data (wp(i),i=1321,1360)/
1.9567359E-03,.9417913E-03,.9268321E-03,.9118587E-03,.8968712E-03,
2.8818700E-03,.8668551E-03,.8518269E-03,.8367855E-03,.8217313E-03,
3.8066644E-03,.7915851E-03,.7764936E-03,.7613902E-03,.7462750E-03,
4.7311483E-03,.7160104E-03,.7008614E-03,.6857017E-03,.6705313E-03,
5.6553507E-03,.6401600E-03,.6249593E-03,.6097491E-03,.5945295E-03,
6.5793007E-03,.5640630E-03,.5488166E-03,.5335618E-03,.5182987E-03,
7.5030277E-03,.4877489E-03,.4724626E-03,.4571690E-03,.4418684E-03,
8.4265610E-03,.4112470E-03,.3959267E-03,.3806003E-03,.3652680E-03/
data (wp(i),i=1361,1400)/
1.3499301E-03,.3345867E-03,.3192383E-03,.3038849E-03,.2885269E-03,
2.2731644E-03,.2577977E-03,.2424270E-03,.2270526E-03,.2116747E-03,
3.1962935E-03,.1809093E-03,.1655224E-03,.1501328E-03,.1347410E-03,
4.1193471E-03,.1039514E-03,.8855408E-04,.7315545E-04,.5775582E-04,
5.4235569E-04,.2695689E-04,.1158044E-04,.3140018E-02,.3139987E-02,
6.3139926E-02,.3139833E-02,.3139709E-02,.3139554E-02,.3139368E-02,
7.3139152E-02,.3138904E-02,.3138625E-02,.3138316E-02,.3137975E-02,
8.3137604E-02,.3137201E-02,.3136768E-02,.3136304E-02,.3135809E-02/
data (wp(i),i=1401,1440)/
1.3135283E-02,.3134726E-02,.3134138E-02,.3133519E-02,.3132869E-02,
2.3132189E-02,.3131477E-02,.3130735E-02,.3129962E-02,.3129158E-02,
3.3128323E-02,.3127457E-02,.3126560E-02,.3125633E-02,.3124675E-02,
4.3123686E-02,.3122666E-02,.3121615E-02,.3120534E-02,.3119422E-02,
5.3118279E-02,.3117105E-02,.3115901E-02,.3114666E-02,.3113400E-02,
6.3112103E-02,.3110776E-02,.3109418E-02,.3108029E-02,.3106610E-02,
7.3105160E-02,.3103680E-02,.3102169E-02,.3100627E-02,.3099055E-02,
8.3097452E-02,.3095819E-02,.3094155E-02,.3092461E-02,.3090736E-02/
data (wp(i),i=1441,1480)/
1.3088981E-02,.3087195E-02,.3085379E-02,.3083532E-02,.3081655E-02,
2.3079748E-02,.3077810E-02,.3075842E-02,.3073843E-02,.3071815E-02,
3.3069756E-02,.3067666E-02,.3065547E-02,.3063397E-02,.3061217E-02,
4.3059007E-02,.3056766E-02,.3054496E-02,.3052195E-02,.3049865E-02,
5.3047504E-02,.3045113E-02,.3042692E-02,.3040242E-02,.3037761E-02,
6.3035250E-02,.3032709E-02,.3030139E-02,.3027538E-02,.3024908E-02,
7.3022248E-02,.3019558E-02,.3016838E-02,.3014089E-02,.3011310E-02,
8.3008501E-02,.3005662E-02,.3002794E-02,.2999896E-02,.2996969E-02/
data (wp(i),i=1481,1520)/
1.2994012E-02,.2991026E-02,.2988010E-02,.2984965E-02,.2981890E-02,
2.2978786E-02,.2975652E-02,.2972489E-02,.2969297E-02,.2966075E-02,
3.2962825E-02,.2959545E-02,.2956236E-02,.2952897E-02,.2949530E-02,
4.2946134E-02,.2942708E-02,.2939254E-02,.2935770E-02,.2932258E-02,
5.2928716E-02,.2925146E-02,.2921547E-02,.2917919E-02,.2914262E-02,
6.2910577E-02,.2906863E-02,.2903120E-02,.2899349E-02,.2895549E-02,
7.2891720E-02,.2887863E-02,.2883978E-02,.2880064E-02,.2876122E-02,
8.2872151E-02,.2868152E-02,.2864125E-02,.2860069E-02,.2855985E-02/
data (wp(i),i=1521,1560)/
1.2851873E-02,.2847734E-02,.2843565E-02,.2839369E-02,.2835145E-02,
2.2830893E-02,.2826613E-02,.2822305E-02,.2817970E-02,.2813606E-02,
3.2809215E-02,.2804796E-02,.2800350E-02,.2795875E-02,.2791374E-02,
4.2786844E-02,.2782288E-02,.2777704E-02,.2773092E-02,.2768453E-02,
5.2763787E-02,.2759094E-02,.2754373E-02,.2749625E-02,.2744850E-02,
6.2740048E-02,.2735219E-02,.2730363E-02,.2725480E-02,.2720571E-02,
7.2715634E-02,.2710671E-02,.2705681E-02,.2700664E-02,.2695621E-02,
8.2690551E-02,.2685454E-02,.2680331E-02,.2675182E-02,.2670006E-02/
data (wp(i),i=1561,1600)/
1.2664804E-02,.2659576E-02,.2654321E-02,.2649040E-02,.2643733E-02,
2.2638400E-02,.2633041E-02,.2627657E-02,.2622246E-02,.2616809E-02,
3.2611347E-02,.2605858E-02,.2600344E-02,.2594805E-02,.2589240E-02,
4.2583649E-02,.2578033E-02,.2572391E-02,.2566724E-02,.2561032E-02,
5.2555315E-02,.2549572E-02,.2543804E-02,.2538011E-02,.2532193E-02,
6.2526350E-02,.2520483E-02,.2514590E-02,.2508672E-02,.2502730E-02,
7.2496763E-02,.2490772E-02,.2484756E-02,.2478715E-02,.2472650E-02,
8.2466561E-02,.2460447E-02,.2454309E-02,.2448147E-02,.2441961E-02/
data (wp(i),i=1601,1640)/
1.2435751E-02,.2429516E-02,.2423258E-02,.2416976E-02,.2410670E-02,
2.2404340E-02,.2397986E-02,.2391609E-02,.2385209E-02,.2378784E-02,
3.2372337E-02,.2365866E-02,.2359371E-02,.2352853E-02,.2346312E-02,
4.2339748E-02,.2333161E-02,.2326551E-02,.2319918E-02,.2313262E-02,
5.2306584E-02,.2299882E-02,.2293158E-02,.2286411E-02,.2279642E-02,
6.2272850E-02,.2266036E-02,.2259200E-02,.2252341E-02,.2245460E-02,
7.2238557E-02,.2231631E-02,.2224684E-02,.2217715E-02,.2210724E-02,
8.2203711E-02,.2196677E-02,.2189620E-02,.2182543E-02,.2175443E-02/
data (wp(i),i=1641,1680)/
1.2168323E-02,.2161180E-02,.2154017E-02,.2146832E-02,.2139626E-02,
2.2132400E-02,.2125152E-02,.2117883E-02,.2110593E-02,.2103282E-02,
3.2095951E-02,.2088599E-02,.2081226E-02,.2073833E-02,.2066420E-02,
4.2058986E-02,.2051531E-02,.2044057E-02,.2036562E-02,.2029047E-02,
5.2021513E-02,.2013958E-02,.2006384E-02,.1998789E-02,.1991175E-02,
6.1983542E-02,.1975888E-02,.1968216E-02,.1960524E-02,.1952812E-02,
7.1945082E-02,.1937332E-02,.1929563E-02,.1921775E-02,.1913968E-02,
8.1906142E-02,.1898298E-02,.1890434E-02,.1882552E-02,.1874652E-02/
data (wp(i),i=1681,1720)/
1.1866733E-02,.1858795E-02,.1850840E-02,.1842866E-02,.1834874E-02,
2.1826863E-02,.1818835E-02,.1810789E-02,.1802725E-02,.1794643E-02,
3.1786544E-02,.1778427E-02,.1770292E-02,.1762140E-02,.1753970E-02,
4.1745784E-02,.1737580E-02,.1729359E-02,.1721120E-02,.1712865E-02,
5.1704593E-02,.1696304E-02,.1687999E-02,.1679677E-02,.1671338E-02,
6.1662983E-02,.1654611E-02,.1646223E-02,.1637819E-02,.1629399E-02,
7.1620962E-02,.1612510E-02,.1604042E-02,.1595557E-02,.1587058E-02,
8.1578542E-02,.1570011E-02,.1561465E-02,.1552903E-02,.1544325E-02/
data (wp(i),i=1721,1760)/
1.1535733E-02,.1527125E-02,.1518503E-02,.1509865E-02,.1501213E-02,
2.1492545E-02,.1483863E-02,.1475167E-02,.1466456E-02,.1457730E-02,
3.1448990E-02,.1440236E-02,.1431467E-02,.1422684E-02,.1413888E-02,
4.1405077E-02,.1396253E-02,.1387414E-02,.1378563E-02,.1369697E-02,
5.1360818E-02,.1351926E-02,.1343020E-02,.1334101E-02,.1325169E-02,
6.1316224E-02,.1307265E-02,.1298294E-02,.1289310E-02,.1280314E-02,
7.1271305E-02,.1262283E-02,.1253249E-02,.1244202E-02,.1235143E-02,
8.1226072E-02,.1216989E-02,.1207894E-02,.1198787E-02,.1189668E-02/
data (wp(i),i=1761,1800)/
1.1180538E-02,.1171396E-02,.1162242E-02,.1153077E-02,.1143900E-02,
2.1134712E-02,.1125513E-02,.1116303E-02,.1107082E-02,.1097850E-02,
3.1088607E-02,.1079354E-02,.1070089E-02,.1060815E-02,.1051529E-02,
4.1042234E-02,.1032928E-02,.1023612E-02,.1014286E-02,.1004950E-02,
5.9956034E-03,.9862475E-03,.9768819E-03,.9675067E-03,.9581219E-03,
6.9487276E-03,.9393240E-03,.9299112E-03,.9204892E-03,.9110581E-03,
7.9016180E-03,.8921690E-03,.8827112E-03,.8732448E-03,.8637697E-03,
8.8542861E-03,.8447941E-03,.8352937E-03,.8257851E-03,.8162684E-03/
data (wp(i),i=1801,1840)/
1.8067436E-03,.7972109E-03,.7876703E-03,.7781220E-03,.7685659E-03,
2.7590023E-03,.7494312E-03,.7398528E-03,.7302670E-03,.7206740E-03,
3.7110739E-03,.7014668E-03,.6918528E-03,.6822320E-03,.6726045E-03,
4.6629703E-03,.6533295E-03,.6436824E-03,.6340289E-03,.6243691E-03,
5.6147032E-03,.6050312E-03,.5953533E-03,.5856694E-03,.5759799E-03,
6.5662846E-03,.5565837E-03,.5468774E-03,.5371657E-03,.5274486E-03,
7.5177264E-03,.5079991E-03,.4982667E-03,.4885295E-03,.4787874E-03,
8.4690406E-03,.4592892E-03,.4495332E-03,.4397729E-03,.4300082E-03/
data (wp(i),i=1841,1880)/
1.4202392E-03,.4104661E-03,.4006890E-03,.3909079E-03,.3811229E-03,
2.3713342E-03,.3615418E-03,.3517459E-03,.3419465E-03,.3321437E-03,
3.3223377E-03,.3125285E-03,.3027162E-03,.2929009E-03,.2830827E-03,
4.2732617E-03,.2634380E-03,.2536118E-03,.2437830E-03,.2339519E-03,
5.2241184E-03,.2142827E-03,.2044449E-03,.1946051E-03,.1847634E-03,
6.1749198E-03,.1650745E-03,.1552276E-03,.1453792E-03,.1355293E-03,
7.1256781E-03,.1158257E-03,.1059721E-03,.9611747E-04,.8626190E-04,
8.7640548E-04,.6654832E-04,.5669051E-04,.4683217E-04,.3697344E-04/
data (wp(i),i=1881,1883)/
1.2711461E-04,.1725677E-04,.7413338E-05/
CsTH = cos(TwoTH0 * 0.5/RAD)
if (abs(CsTH) .lt. 1.0e-15) CsTH = 1.0e-15
TTH = sin(TwoTH0 * 0.5/RAD)/CsTH
CsTwoTH = cos(TwoTH0/RAD)
SnTwoTH = sin(TwoTH0/RAD)
ApB = S_L + D_L
AmB = S_L - D_L
ApB2 = ApB**2
if (((S_L .ne. 0.0) .or. (D_L .ne. 0.0)) .and. Use_Asym) then
tmp = sqrt(1.0 + AmB**2)*CsTwoTH
if (abs(tmp) .gt. 1.0)tmp = 1.0
Einfl = dsign(acos(tmp)*RAD,TwoTH0)
tmp2 = 1.0 + ApB2
tmp = sqrt(tmp2 ) * CsTwoTH
c If S_L or D_L are zero, set Einfl = 2theta
if ((S_L .eq. 0.0) .or. (D_L .eq. 0.0)) Einfl = TwoTH0
if (abs(tmp) .le. 1.0) then
Emin = dsign(acos(tmp) * RAD,TwoTH0)
tmp1 = tmp2 * (1.0 - tmp2 * CsTwoTH**2)
else
tmp1 = 0.0
if (tmp .gt. 0.0) then
Emin = 0.0
else
Emin = 180.0
endif
endif
if ((tmp1 .gt. 0.0) .and. (abs(tmp) .le. 1.0)) then
dEmindA = -ApB * CsTwoTH/sqrt(tmp1)
else
dEmindA = 0.0
endif
ArrayNum = 1
K = 400.0 * (TwoTH0 - Emin) ! Calculate number of terms needed
K = max(K,80*int((TwoTH0-Emin)/gamma))
do while ((ArrayNum .lt. 14) .and. (K .gt. NTERMS(ArrayNum)))
ArrayNum = ArrayNum + 1
enddo
NGT = nterms(ArrayNum) ! Save number of terms
ngt2 = ngt / 2
c Clear terms needed for summations
sumWG = 0.0
sumWRG = 0.0
sumWdGdA = 0.0
sumWRdGdA = 0.0
sumWdGdB = 0.0
sumWRdGdB = 0.0
sumWGdRd2t = 0.0
sumWGdRdG = 0.0
sumWGdRdE = 0.0
sumWGdRdA = 0.0
sumWGdRdB = 0.0
c Compute the convolution integral
it = fstterm(arraynum)-ngt2
do K = ngt2 , NGT
delta = Emin + (TwoTH0 - Emin) * xp(k + it)
dDeltadA = (1.0 - xp(k+it) ) * dEmindA
sinDELTA = sin(Delta/RAD)
cosDELTA = cos(Delta/RAD)
if (abs(cosDELTA) .lt. 1.0e-15) cosDELTA = 1.0e-15
RcosDELTA = 1.0 / cosDELTA
tanDELTA = tan(Delta/RAD)
tmp = cosDELTA**2 - CsTwoTH**2
if (tmp .gt. 0.0) then
tmp1 = sqrt(tmp)
F = abs(CsTwoTH) / tmp1
dFdA = cosDELTA * CsTwoTH * sinDELTA * dDELTAdA
1 / (tmp1 * tmp1 * tmp1)
else
F = 0.0
dFdA = 0.0
endif
c calculate G(Delta,2theta) , FCJ eq. 7a and 7b
if ( abs(Delta - Emin) .gt. abs(Einfl - Emin)) then
if (S_L .gt. D_L) then
c
c N.B. this is the only place where d()/dA <> d()/dB
c
G = 2.0 * D_L * F * RcosDELTA
dGdA = 2.0 * D_L * RcosDELTA * (dFdA +
1 F*tanDELTA*dDELTAdA)
dGdB = dGdA + 2.0 * F * RcosDELTA
else
G = 2.0 * S_L * F * RcosDELTA
dGdB = 2.0 * S_L * RcosDELTA
1 *(dFdA + F * tanDELTA * dDELTAdA)
dGdA = dGdB + 2.0 * F * RcosDELTA
endif
else
G = (-1.0 + ApB * F) * RcosDELTA
dGdA = RcosDELTA * (F - tanDELTA * dDELTAdA + ApB * dFdA
1 + ApB * F * tanDELTA * dDELTAdA)
dGdB = dGdA
endif
tmp = PsVoigt(TwoTh-DELTA+TwoTH0,TwoTH0,eta,Gamma,dPRdT
1 ,dPRdG,dPRdE)
sumWG = sumWG + wp(k+it) * G
sumWRG = sumWRG + wp(k+it) * G * tmp
sumWdGdA = sumWdGdA + wp(k+it) * dGdA
sumWdGdB = sumWdGdB + wp(k+it) * dGdB
sumWRdGdA = sumWRdGdA + wp(k+it) * dGdA * tmp
sumWRdGdB = sumWRdGdB + wp(k+it) * dGdB * tmp
sumWGdRd2t = sumWGdRd2t + wp(k+it) * G * dPRdT
sumWGdRdG = sumWGdRdG + wp(k+it) * G * dPRdG
sumWGdRdE = sumWGdRdE + wp(k+it) * G * dPRdE
sumWGdRdA = sumWGdRdA + wp(k+it) * G * dPRdT * dDELTAdA * RAD
enddo
if (sumWG .eq. 0.0) sumWG = 1.0
Profval = sumWRG / sumWG
dPRdT = sumWGdRd2t/ sumWG
dPRdG = sumWGdRdG / sumWG
dPRdE = sumWGdRdE / sumWG
dPRdS = (sumWRdGdA + sumWGdRdA) / sumWG - sumWRG *
1 sumWdGdA/sumWG**2
dPRdD = (sumWRdGdB + sumWGdRdA) / sumWG - sumWRG *
1 sumWdGdB/sumWG**2
else ! here for no asymmetry
tmp = PsVoigt(TwoTH,TwoTH0,eta,Gamma,dPRdT,dPRdG,dPRdE)
Profval = tmp
dPRdS = 0.0
dPRdD = 0.0
endif
return
end
real*8 function PsVoigt(TwoTH , TwoTH0 , Eta , Gamma,
1 dPRdT , dPRdG , dPRdE )
c
c Returns value of Pseudo Voigt
c Eta is the mixing coefficient between Gaussian and Lorentzian
c Gamma is the FWHM
c TwoTH is point at which to evaluate the profile
c TwoTH0 is two theta value for peak
c dPRdT is derivative of profile wrt TwoTH0
c dPRdG is derivative of profile wrt Gamma
c dPRdE is derivative of profile wrt Eta
implicit none
real*8 TwoTH , TwoTH0 , Eta , Gamma
real*8 dPRdT , dPRdG , dPRdE
real*8 G,Gauss ! Gaussian part
real*8 L,Lorentz ! Lorentzian part
real*8 dGdT , dGdG , dLdT , dLdG, temp
G = Gauss(TwoTH , TwoTH0 , Gamma , dGdT , dGdG )
L = Lorentz(TwoTH , TwoTH0 , Gamma , dLdT , dLdG )
temp = Eta * L + (1.0 - Eta) * G
PsVoigt = temp/Gamma
dPRdT = (Eta * dLdT + (1.0 - Eta) * dGdT)/Gamma
dPRdG = (Gamma * (Eta * dLdG + (1.0 - Eta) * dGdG) - temp)
1 /Gamma**2
dPRdE = (L - G)/Gamma
return
end
real*8 function Gauss(Pos , Pos0 , Gamma , dGdT , dGdG )
c Return value of Gaussian at 'Pos' for peak at 'Pos0' and 'Gamma'.
c dGdT is derivative of G wrt Pos0.
c dGdG is derivative of G wrt Gamma.
implicit none
real*8 Pos , Pos0 , Gamma , dGdT , dGdG
real*8 c
real*8 cg
real*8 delp , temp
data c / 1.6651092/
data cg / 0.939437279/
delp = Pos - Pos0
if (abs(delp)/Gamma .gt. 6) then
Gauss = 0.0
dGdT = 0.0
dGdG = 0.0
else
temp = cg * exp(-(delp * c /Gamma)**2)
Gauss = temp
dGdG = 2.0 * temp * (delp * c)**2 / Gamma**3
dGdT = 2.0 * c**2 * delp * temp/Gamma**2
endif
return
end
real*8 function Lorentz(Pos , Pos0 , Gamma , dLdT , dLdG )
c Return value of Lorentzian at 'Pos' for peak at 'Pos0' and 'Gamma'.
c dLdT is derivative of L wrt Pos0.
c dLdG is derivative of L wrt Gamma.
implicit none
real*8 Pos , Pos0 , Gamma , dLdT , dLdG
real*8 cl
real*8 delp , denom
data cl/ 0.636619772/
delp = Pos - Pos0
denom = 4.0 * delp**2 + Gamma**2
Lorentz = cl * Gamma**2 / denom
dLdT = 8.0 * cl * Gamma**2 * delp / denom**2
dLdG = 2.0 * cl * Gamma * (denom - Gamma**2) / denom**2
return
end
logical indwid
integer kasymm,np,no,nc,nper,nb
common /a/kasymm,np,no,indwid,nc,nper,nb
logical esdinc,kal12
real*8 anglow
common /options/esdinc,anglow,kal12
fit.exe
--
Larry W. Finger [EMAIL PROTECTED]
Geophysical Laboratory Phone: +1 (202) 686-2410 X 2464
5251 Broad Branch Road N.W. FAX: +1 (202) 686-2419
Washington, DC 20015-1305, USA
http://www.gl.ciw.edu/~finger/ <---------------- Note NEW URL
http://btgix8.bgi.uni-bayreuth.de/~lafi