Statistiques
| Révision :

root / src / freemv.f90 @ 2

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

1
  Subroutine freemv(NFree,vfree)
2

    
3
  use Path_module, only : runtyp, hesupd,Hinv
4
  use Io_module, only : IoOut
5
  
6
  IMPLICIT NONE
7

    
8
  INTEGER, PARAMETER :: KINT=KIND(1)
9
  INTEGER, PARAMETER :: KREAL=KIND(1.0D0)
10

    
11
  INTEGER(KINT), INTENT(IN) :: Nfree
12
  REAL(KREAL), INTENT(OUT) :: Vfree(Nfree,Nfree)
13

    
14
! ======================================================================
15
!
16
! At the end, this should do:
17
! Construct displacement vectors that are free and which do not contain rigid motions.
18
! Output : vectors are orthonormal (in the non-mass-weighted metric)
19
! 
20
! For now, it just returns an identity matrix (NFree,Nfree)
21
! v3.94
22
! We delete displacements that correspond to frozen atoms
23
!
24
! ======================================================================
25
  logical :: debug
26
  integer(KINT) :: I
27

    
28
  interface
29
     function valid(string) result (isValid)
30
       logical                  :: isValid
31
       character(*), intent(in) :: string
32
     end function valid
33
  end interface
34

    
35
  debug=valid('vfree')
36

    
37
  if (debug) WRITE(*,*) "================================= Entering Vfree ==============="
38
  
39
  Vfree=0.d0
40
  DO I=1,Nfree
41
     Vfree(I,I)=1.d0
42
  END DO
43

    
44
  if (debug) WRITE(*,*) "================================= Exiting Vfree ==============="
45

    
46
 END Subroutine freemv
47

    
48