c
program fit
implicit none
c
Integer i1(5), i2(5), i3(5), i, j, k, jmin
character*30 fname
real*8 lambda, pi, alat, energy
real*8 tth(5), tths
real*8 sigmamin
REAL*8 ap(60), dd(60)
real*8 sum, sumap, dif, dq
real*8 rem, sigma, sigma2, vol
real*8 rmin, alatmin, zero_min
c
lambda=0.516598627d0
pi=3.1415926535d0
alat= 5.411102d0
c tths: sin(th)
c dd: (2sin(th)/lambda)^2
c
sigmamin=1000.
c
C ***** WRITE THE SUM DATA ON FILE (ASCII CODE) *****
c write(6,'('' INPUT/ out FILE NAME/X:#######.###'')')
c read(5,'(A30)') fname
c write(*,*) fname
c open(1,file=fname,status='old',ERR=999)
DO 100 I=1, 5
READ(1,*) i1(i), i2(i), i3(i), tth(i)
100 CONTINUE
c close(1)
c
DO 200 I=1, 5
tths = sin( tth(i) /2.0d0/180.d0*pi )
ap(i)= real(i1(i)*i1(i) +i2(i)*i2(i) + i3(i)*i3(i))
dd(i)= 2.0d0 * alat * tths
dd(i)= dd(i)*dd(i)
200 CONTINUE
c Initialize
sum = 0.
sumap = 0.
DO 300 I=1, 5
sumap = sumap + ap(i)*ap(i)
sum = sum + dd(i)*ap(i)
300 CONTINUE
lambda =sum/sumap
lambda=sqrt(lambda)
energy=12.398/lambda
c
rem=0.
DO 400 I=1, 5
dq = ap(i) /alat/ alat
dif = dq - dd(i)
c print *, dif
rem = rem + dif*dif
400 CONTINUE
c
sigma2 = rem/sumap/4
sigma = sigma2* alat*alat*alat*alat*alat*alat/4.0
sigma = sqrt(sigma)
c print 601, zero, sigma
c print 600, j, lambda, sigma
c print *, ' kmin=',kmin,' jmin=',jmin, ' lat= ',alatmin
print *, lambda, energy
c jmin, alatmin, rmin, sigmamin
stop
c
600 format(1x,E15.8,3(1x,E15.8))
601 format(3(1x,E15.8))
999 write(*,*) fname, ' File cannot be opened! '
END