1c ================================================== 2c == Delocalized internals optimizer main routine == 3c ================================================== 4c 5 subroutine deloc(periodic, natom, ndim, 6 & coord_in, grad_in, covrad, 7 & converged, ierror) 8c 9 implicit none 10c 11c == general includes == 12#include "stdio.fh" 13c 14c == optimizer specific includes == 15c 16 logical periodic ! periodic/molecular flag 17 integer natom, ndim ! number of atoms and dimensions 18 double precision coord_in(*) ! incoming coordinates 19 double precision grad_in(*) ! incoming gradients 20 double precision covrad(*) ! covalent radii 21 logical converged ! convergence flag 22 integer ierror ! return status (0: success, 1: failure) 23c 24 logical hasconverged 25 external hasconverged 26c 27 integer i 28c 29c == check convergence on entry == 30 converged = .false. 31 ierror = 0 32 if (hasconverged(ndim,grad_in)) then 33 converged = .true. 34 return 35 end if 36c 37c == test print out == 38 write(luout,*) "== natom ==",natom 39 write(luout,*) "== coordinates ==" 40 do i = 1,natom 41 write(luout,*) coord_in(3*i-2),coord_in(3*i-1),coord_in(3*i) 42 end do 43 write(luout,*) "== gradients ==" 44 do i = 1,natom 45 write(luout,*) grad_in(3*i-2),grad_in(3*i-1),grad_in(3*i) 46 end do 47 write(luout,*) "== covalent radii ==" 48 do i = 1,natom 49 write(luout,*) i, covrad(i) 50 end do 51c 52 return 53 end 54c $Id$ 55