c	
C	LW7 model #320
C
	COMMON /FUN/ pr(768),ob(768)
	real d(768,2)
	external funk,pp
	call sas('lw7.dat','lw7320.lst','lw7320.fit')
	call assign(1,'lw7316.par')
	write(7,"(' *** LW7 model 320: variable FLMP ***')")
	read(9,"(16f7.4)")d
	call runstp(funk,512,768,-2,d,ob,pr,pp)
	stop
	end
	SUBROUTINE FUNK
	COMMON /STEP/ NV,NTRACE,MATRIX,CHISQ,MASK(1000),X(1000)
	COMMON /FUN/ pr(768),ob(768)
	COMMON /TEST/ NFB,CRIT
	real vi(16,16),au(16,16),bi(16,16)
	equivalence (pr(1),au),(pr(257),vi),(pr(513),bi)
	integer r,s
	real v(16,16),a(16,16)
	static nz
	equivalence (x(1),v),(x(257),a)
	data ii/0/
	nfb=10000000
c	ntrace=1
	if(ii.eq.1)go to 99
	read(1,"(8f7.4)")v,a
	ii=1
99	nz=0
	do 5 j=1,512
	if(x(j).le.0.002)nz=nz+1
5	if(x(j).le.0.002)x(j)=0.0
	do 40 s=1,16
        sum=0.
	do 45 r=1,16
45 	sum=sum+v(r,s)
	if(sum.eq.0.0)sum=1.0
	do 40 r=1,16
40	vi(r,s)=v(r,s)/sum

	do 50 s=1,16
        sum=0.
	do 55 r=1,16
55 	sum=sum+a(r,s)
	if(sum.eq.0.0)sum=1.0
	do 50 r=1,16
50	au(r,s)=a(r,s)/sum

	   do 60 s=1,16
	      sum=0.
	      do 65 r=1,16
	      bi(r,s)=v(r,s)*a(r,s)
65	      sum=sum+bi(r,s)
	      if(sum.eq.0.0)sum=1.0
	      do 60 r=1,16
60	      bi(r,s)=bi(r,s)/sum
	call cchi(ob(513),pr(513),256)
	rbi=sqrt(chisq/256.)
	call cchi(ob,pr,768)
	RETURN
	entry pp(is,rmsd)
	write(7,117)is,rmsd,rbi,512-nz,v,a
117	format(/' Sub  'i2' rmsd,rbi,np= '2f7.4,i4,/32(' v  = '8f7.4/),
&	32(' a  = '8f7.4/))
	ii=0
	return
	end
