Revision 8 src/egrad_LEPS.f90
egrad_LEPS.f90 (revision 8)  

14  14 
REAL(KREAL), INTENT(OUT) :: E,grad(Nat*3) 
15  15  
16  16  
17 
! Bohr > Angstr 

18 
real(KREAL), parameter :: BOHR = 0.52917726D+00 

19 
! 

20  17 
! Parameters to define the surface 
21  18 
INTEGER(KINT), DIMENSION(6), PARAMETER :: IECOEF = (/1,9,45,45,9,1/) 
22  19 
INTEGER(KINT), DIMENSION(6), PARAMETER :: ISCOEF = (/3,2,1,1,2,3/) 
23  20 
REAL(KREAL), PARAMETER :: hh=0.001d0 
24  21 

25  22 
! Variables 
26 
INTEGER(KINT) :: i,j,iat,jat


23 
INTEGER(KINT) :: i,iat,jat 

27  24 
REAL(KREAL), ALLOCATABLE :: Xyztmp(:,:),GradTmp(:,:) 
28 
REAL(KREAL) :: xp,yp 

29  
30 
CHARACTER(132) :: Line 

25 


31  26 
LOGICAL :: Debug 
32  27 

33 
real(KREAL), parameter :: zero = 0.0_KREAL, one = 1.0_KREAL 

34  28 
REAL(KREAL), external :: ELEPS_xyz 
35  29  
36  30  
...  ...  
94  88 
function ELEPS_xyz(natoms,Xyz) 
95  89  
96  90 
use Path_module, only : order 
91 
use Io_module, only : au2ev 

97  92  
98  93 
IMPLICIT NONE 
99  94 
integer, parameter :: KINT = kind(1) 
...  ...  
113  108  
114  109 
REAL(KREAL) :: Qbc,QAc,Qab,Jab,Jbc,Jac 
115  110  
116 
Real(KREAL), Parameter :: autoA=0.52917715d0,autoeV=27.21183d0 

117  
118  111 
rAB=0. 
119  112 
rAC=0. 
120  113 
rBC=0. 
...  ...  
140  133 
! V(x,y) = Qab(x)+Qbc(y)+Qac(rac)sqrt(Jab(x)**2+Jbc(y)**2+Jac(x)**2Jab(x)*Jbc(y)Jbc(y)*Jac(rac)Jab(x)*Jac(rac)) 
141  134  
142  135  
143 
ELEPS_xyz=(Qab+Qbc+Qacsqrt(Jab**2+Jbc**2+Jac**2Jab*JbcJbc*JacJab*Jac))/autoeV


136 
ELEPS_xyz=(Qab+Qbc+Qacsqrt(Jab**2+Jbc**2+Jac**2Jab*JbcJbc*JacJab*Jac))/au2eV


144  137  
145  138 
return 
146  139 
end function ELEPS_xyz 
Also available in: Unified diff