Statistiques
| Révision :

root / src / VectorPer.f90 @ 4

Historique | Voir | Annoter | Télécharger (1,42 ko)

1 1 equemene
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2 1 equemene
!
3 1 equemene
! VectorPer
4 1 equemene
!
5 1 equemene
!!!!!!!!!!!!!!!!!!!!!!!
6 1 equemene
!
7 1 equemene
! This subroutine caclulates the vector defined by atom i and j
8 1 equemene
! with j being displaced to a periodic image of the system.
9 1 equemene
!
10 1 equemene
! Input:
11 1 equemene
!  i: (INTEGER) index of the first atom, in the central cell
12 1 equemene
!  j: (INTEGER) index of the second atom, in a periodic image
13 1 equemene
!  na,nb,nc: (INTEGER) number of displacement of j atom, in lattice vectors.
14 1 equemene
!  x(Nat), y(nat), z(nat) : (REAL) Cartesian coordinates of the system.
15 1 equemene
!
16 1 equemene
! Output:
17 1 equemene
! vx,vy,vz: (REAL) Vector i->j
18 1 equemene
! Norm:     (REAL) Norm of the vector.
19 1 equemene
!
20 1 equemene
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
21 1 equemene
!
22 1 equemene
! Nat and Lattice vectors (lat_a, lat_b, lat_c) are taken from Path_Module
23 1 equemene
!
24 1 equemene
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
25 1 equemene
26 1 equemene
      SUBROUTINE VectorPer(n1,n2,na,nb,nc,x,y,z,vx,vy,vz,norm)
27 1 equemene
28 1 equemene
        use VarTypes
29 1 equemene
        use Path_module, only : NAt,Lat_a,Lat_b,Lat_c
30 1 equemene
31 1 equemene
        integer(KINT) :: n1,n2
32 1 equemene
        INTEGER(KINT) :: na,nb,nc
33 1 equemene
        real(KREAL) ::  x(Nat),y(Nat),z(Nat)
34 1 equemene
        real(KREAL) ::  vx,vy,vz,norm
35 1 equemene
36 1 equemene
        vx=x(n2)-x(n1)+na*Lat_a(1)+nb*Lat_b(1)+nc*Lat_c(1)
37 1 equemene
        vy=y(n2)-y(n1)+na*Lat_a(2)+nb*Lat_b(2)+nc*Lat_c(2)
38 1 equemene
        vz=z(n2)-z(n1)+na*Lat_a(3)+nb*Lat_b(3)+nc*Lat_c(3)
39 1 equemene
40 1 equemene
        norm=dsqrt( vx*vx + vy*vy + vz*vz )
41 1 equemene
42 1 equemene
!       write(6,*) "Dbg VectorPer : n1,n2, na,nb,nc :",n1,n2,na,nb,nc
43 1 equemene
!       write(6,*) vx,vy,vz,norm
44 1 equemene
!       write(6,*)
45 1 equemene
46 4 pfleura2
        RETURN
47 1 equemene
      END SUBROUTINE VectorPer