1      double precision function del(var)
2      implicit double precision (a-h,o-z)
3      common /del1/dmolin(169),dofscl(169)
4      common /del2/d11(3,3),d12(3,3),d21(3,3),d22(3,3),
5     &             f11(3),f12(3),f21(3),f22(3),occ(3),
6     &             p(3,3),g(3,3),ibasis,idim
7      dimension var(2)
8
9      call rota(var(1))
10      call rotb(var(2))
11      call rotm
12
13      if (ibasis.eq.0) then
14
15         call rotden(p,occ)
16         del=0.0d0
17
18         do i=1,3
19            do j=1,3
20               del=del+(p(i,j)-g(i,j))**2
21            end do
22         end do
23
24      else
25
26         call rotden(d11,f11)
27         call rotden(d12,f12)
28         call rotden(d21,f21)
29         call rotden(d22,f22)
30         call mdout
31         del=0.0d0
32
33         do i=1,idim
34            do j=1,idim
35                 iaddr=j+(i-1)*idim
36                 del=del+(dofscl(iaddr)-dmolin(iaddr))**2
37            end do
38         end do
39
40      endif
41
42      return
43      end
44