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