Révision 2

src/Calc_mixed_frag.f90 (revision 2)
46 46
  real(KREAL) ::  vx3,vy3,vz3,norm3
47 47
  real(KREAL) ::  vx4,vy4,vz4,norm4
48 48
  real(KREAL) ::  vx5,vy5,vz5,norm5
49
  real(KREAL) ::  val,val_d, d12, d13,d23,d
50
  Logical PasFini,Debug
49
  real(KREAL) ::  val, val_d, d
50
  Logical Debug
51 51
  LOGICAL, ALLOCATABLE :: DejaFait(:),FCaf(:) !(na)
52 52
  Logical, ALLOCATABLE ::  FrozAt(:)    !T if this atom is frozen
53
  LOGICAL F1213, F1223,F1323
54 53

  
55 54

  
56
  INTEGER(KINT) :: I,J,n0,n1,n2,n3,n4,IAt,IL,JL,IFrag,ITmp, K, KMax
57
  INTEGER(KINT) :: IMax, I3,I1,Ip, IFragFroz,IBeg
55

  
56
  INTEGER(KINT) :: I, J, n1, n2, n3, n4, IAt, IL, JL, IFrag, ITmp
57
  INTEGER(KINT) :: I3, I1, Ip, IFragFroz, IBeg
58 58
  INTEGER(KINT) :: I0, Izm, JAt,Izm0,Idx
59 59

  
60
  REAL(KREAL) :: sDihe, Pi, Sang
60
  REAL(KREAL) :: Pi, Sang
61 61

  
62 62
  INTERFACE
63 63
     function valid(string) result (isValid)
......
938 938
     val=angle(vx1,vy1,vz1,norm1,vx2,vy2,vz2,norm2)
939 939

  
940 940
     CALL vecteur(n3,n4,x,y,z,vx3,vy3,vz3,norm3)
941
     CALL produit_vect(vx1,vy1,vz1,norm1,vx2,vy2,vz2,norm2, &
941
     CALL produit_vect(vx1,vy1,vz1,vx2,vy2,vz2, &
942 942
          vx4,vy4,vz4,norm4)
943
     CALL produit_vect(vx3,vy3,vz3,norm3,vx2,vy2,vz2,norm2, &
943
     CALL produit_vect(vx3,vy3,vz3,vx2,vy2,vz2, &
944 944
          vx5,vy5,vz5,norm5)
945 945

  
946 946
     val_d=angle_d(vx4,vy4,vz4,norm4, vx5,vy5,vz5,norm5, &
src/Header.f90 (revision 2)
5 5

  
6 6
         CHARACTER(*) :: String
7 7
         CHARACTER(70) :: Head1,Sep
8
         INTEGER, PARAMETER :: I=70
9 8
         INTEGER :: LenS,Len1,Pos1
10 9

  
11 10
         Head1="====================================================================="
src/Step_GEDIIS.f90 (revision 2)
22 22
      LOGICAL DEBUG, PRINT, ci_lt_zero
23 23
      INTEGER(KINT), SAVE :: MSET ! mth Iteration
24 24
    REAL(KREAL) :: ci(MRESET), ci_tmp(MRESET) ! MRESET = maximum number of iterations.
25
      INTEGER(KINT) :: NGEDIIS, MPLUS, INV, ITERA, MM, cis_zero, IXX, JXX, MSET_minus_cis_zero
26
      INTEGER(KINT) :: I,J,K, JJ, KJ, JNV, II, IONE, IJ, INK,ITmp, IX, JX, KX, MSET_C_cis_zero
27
    INTEGER(KINT) :: current_size_B_mat, MyPointer, Iat
28
      REAL(KREAL) :: XMax, XNorm, S, DET, THRES, tmp, ER_star, ER_star_tmp
25
      INTEGER(KINT) :: NGEDIIS, MPLUS, INV, ITERA, MM, cis_zero
26
      INTEGER(KINT) :: I, J, K, JJ, JNV, II, IONE, IJ, IX, JX, KX
27
    INTEGER(KINT) :: current_size_B_mat, MyPointer
28
      REAL(KREAL) :: XMax, XNorm, DET, THRES, tmp, ER_star, ER_star_tmp
29 29

  
30 30
      DEBUG=.TRUE.
31 31
      PRINT=.FALSE.
src/Mixed2cart.f90 (revision 2)
12 12
  REAL(KREAL), INTENT(IN) :: IntCoord(*)
13 13
  REAL(KREAL), INTENT(OUT) :: XyzCoord(Nat,3)
14 14

  
15
  INTEGER(KINT) :: I,J,K,L,Idx,IBeg,Iat
15
  INTEGER(KINT) :: I, J, Idx, IBeg, Iat
16 16
  REAl(KREAL), ALLOCATABLE :: ValZmat(:,:),XyzTmp(:,:)
17 17
  REAL(KREAL) :: d, a_val
18 18

  
src/Space_GEDIIS_all.f90 (revision 2)
17 17
      REAL(KREAL) :: GeomSet(NGeomF,MRESET*NCoord), GradSet(NGeomF,MRESET*NCoord), ESET(NGeomF,MRESET)
18 18
      ! Geom and GRAD for all iterations.
19 19

  
20
      INTEGER(KINT) :: I,J,K,NMK,MI,NI
20
      INTEGER(KINT) :: I, K, NMK, MI, NI
21 21
      INTEGER(KINT), SAVE :: NRESET
22 22

  
23 23
      ! UPDATE PARAMETER AND GRADIENT SUBSPACE:
src/minv.f90 (revision 2)
39 39
            IZ=N*(J-1)
40 40
            DO 20 I=K,N
41 41
               IJ=IZ+I
42
   10          IF (ABS(BIGA).LT.ABS(A(IJ)))THEN
42
               IF (ABS(BIGA).LT.ABS(A(IJ)))THEN
43 43
                  BIGA=A(IJ)
44 44
                  L(K)=I
45 45
                  M(K)=J
46 46
               ENDIF
47
   20    CONTINUE
47
20          CONTINUE
48 48
!
49 49
!     INTERCHANGE ROWS
50 50
!
src/Tensor.f90 (revision 2)
15 15

  
16 16
  IMPLICIT NONE
17 17

  
18
  REAL(KREAL), parameter :: zero=0.d0,one=1.d0
18
  REAL(KREAL), parameter :: zero=0.d0
19 19

  
20 20
  INTEGER(KINT), INTENT(IN) :: Natom
21 21
  real(KREAL) :: rx(Natom),ry(Natom),rz(Natom),rmass(Natom)
22 22
  real(KREAL) :: a,b,c,Tinert(3,3),CoordG(3)
23 23

  
24
  INTEGER(KINT) :: jover, I, J
24
  INTEGER(KINT) :: jover, J
25 25
  REAL(KREAL) :: Txx, Tyy, Tzz, Txy, Txz, Tyz, Txxi
26 26
  REAL(KREAL) :: Ryb, Rzc, Rxa, Rmj2, ryb2, rzc2, rxa2, Rmj
27 27

  
......
48 48
     CoordG(1)=a
49 49
     CoordG(2)=b
50 50
     CoordG(3)=c
51
1000 FORMAT(3F15.3)
52
     !c       WRITE(IOOUT,1000) (CoordG(i),i=1,3)
51

  
53 52
     jover=mod(natom,2)
54 53
     if(jover.eq.0) then
55 54
        txx=zero
src/Step_DIIS_all.f90 (revision 2)
18 18
    INTEGER(KINT) :: NGeomF,IGeom
19 19
    INTEGER(KINT), INTENT(IN) :: NCoord
20 20
    
21
    REAL(KREAL) :: Geom_new(NCoord),Geom(NCoord),Grad(NCoord)
21
    REAL(KREAL) :: Geom(NCoord), Grad(NCoord)
22 22
    REAL(KREAL) :: Hess(NCoord*NCoord),Step(NCoord)
23 23
    REAL(KREAL) :: HEAT,HP
24 24
    LOGICAL :: allocation_flag
......
67 67
      REAL(KREAL), ALLOCATABLE, SAVE :: GeomSet(:,:),GradSet(:,:),ERR(:,:) ! MRESET*NCoord
68 68
      REAL(KREAL), SAVE :: ESET(MRESET)
69 69
    REAL(KREAL), ALLOCATABLE, SAVE :: DXTMP(:,:),GSAVE(:,:) !NCoord, why DXTMP has SAVE attribute??
70
      REAL(KREAL) :: B(M2),BS(M2),BST(M2)
70
      REAL(KREAL) :: B(M2), BS(M2)
71 71
      LOGICAL DEBUG, PRINT
72 72
      INTEGER(KINT), ALLOCATABLE, SAVE :: MSET(:)
73 73
    LOGICAL, ALLOCATABLE, SAVE :: FRST(:)
src/Calc_baker_allGeomF.f90 (revision 2)
27 27
  REAL(KREAL), ALLOCATABLE :: XPrimRef(:) ! NPrim
28 28
  INTEGER(KINT) :: IGeom
29 29
  
30
  real(KREAL) ::  vx,vy,vz,dist, Norm
31
  real(KREAL) ::  vx1,vy1,vz1,norm1
32
  real(KREAL) ::  vx2,vy2,vz2,norm2
33
  real(KREAL) ::  vx3,vy3,vz3,norm3
34
  real(KREAL) ::  vx4,vy4,vz4,norm4
35
  real(KREAL) ::  vx5,vy5,vz5,norm5
36
  real(KREAL) ::  val,val_d, Q, T
37 30

  
38
  INTEGER(KINT) :: I,J, n1,n2,n3,n4,IAt,IL,JL,IFrag,ITmp, K, KMax
39
  INTEGER(KINT) :: I0, IOld, IAtTmp, Izm, JAt, Kat, Lat, L, NOUT
31
  INTEGER(KINT) :: I, J, K
40 32

  
41
  REAL(KREAL) :: sAngleIatIKat, sAngleIIatLat
42
  REAL(KREAL) :: DiheTmp
43 33

  
44
  LOGICAL :: debug, bond, AddPrimitiveCoord, FAIL
34
  LOGICAL :: debug
45 35
  LOGICAL :: DebugPFL
46 36

  
47 37
  INTERFACE
......
120 110
     z(1:Nat) = XyzGeomF(IGeom,3,1:Nat)
121 111
     XPrimREf=XPrimitiveF(IGeom,:)
122 112
     Call Calc_XPrim(nat,x,y,z,Coordinate,NPrim,XPrimitiveF(IGeom,:),XPrimRef)
123
!    ScanCoord=>Coordinate
124
!    I=0 ! index for the NPrim (NPrim is the number of primitive coordinates).
125
!    DO WHILE (Associated(ScanCoord%next))
126
!      I=I+1
127
!      SELECT CASE (ScanCoord%Type)
128
!       CASE ('BOND')
129
!       Call vecteur(ScanCoord%At2,ScanCoord%At1,x,y,z,vx2,vy2,vz2,Norm2)
130
!            XprimitiveF(IGeom,I) = Norm2  
131
!       CASE ('ANGLE')
132
!     Call vecteur(ScanCoord%At2,ScanCoord%At3,x,y,z,vx1,vy1,vz1,Norm1)
133
!     Call vecteur(ScanCoord%At2,ScanCoord%At1,x,y,z,vx2,vy2,vz2,Norm2)
134
!          XprimitiveF(IGeom,I) = angle(vx1,vy1,vz1,Norm1,vx2,vy2,vz2,Norm2)*Pi/180.
135
!     CASE ('DIHEDRAL')
136
!     Call vecteur(ScanCoord%At3,ScanCoord%At2,x,y,z,vx2,vy2,vz2,Norm2)
137
!     Call vecteur(ScanCoord%At2,ScanCoord%At1,x,y,z,vx1,vy1,vz1,Norm1)
138
!     Call vecteur(ScanCoord%At3,ScanCoord%At4,x,y,z,vx3,vy3,vz3,Norm3)
139
!     Call produit_vect(vx3,vy3,vz3,norm3,vx2,vy2,vz2,norm2, &
140
!                         vx5,vy5,vz5,norm5)
141
!     Call produit_vect(vx1,vy1,vz1,norm1,vx2,vy2,vz2,norm2, &
142
!                         vx4,vy4,vz4,norm4)
143
!                 DiheTmp= angle_d(vx4,vy4,vz4,norm4,vx5,vy5,vz5,norm5, &
144
!                         vx2,vy2,vz2,norm2)
145
!                 XprimitiveF(IGeom,I) = DiheTmp*Pi/180.
146
!! We treat large dihedral angles differently as +180=-180 mathematically and physically
147
!! but this causes lots of troubles when converting baker to cart.
148
!! So we ensure that large dihedral angles always have the same sign
149
!                    if (abs(ScanCoord%SignDihedral).NE.1) THEN
150
!                        ScanCoord%SignDihedral=Int(Sign(1.d0,DiheTmp))
151
!                    ELSE
152
!                         If ((abs(DiheTmp).GE.170.D0).AND.(Sign(1.,DiheTmp)*ScanCoord%SignDihedral<0)) THEN
153
!                          XprimitiveF(IGeom,I) = DiheTmp*Pi/180.+ ScanCoord%SignDihedral*2.*Pi
154
!                        END IF
155
!                    END IF
156
!      END SELECT
157
!      ScanCoord => ScanCoord%next
158
!    END DO ! matches DO WHILE (Associated(ScanCoord%next))
159 113
  END DO ! matches DO IGeom=1, NGeomF
160 114
   
161 115
  ALLOCATE(BprimT(3*Nat,NPrim))
src/egrad_gaussian.f90 (revision 2)
20 20
  character(LCHARS) :: LINE
21 21

  
22 22
  logical           :: debug, G03Ok
23
  LOGICAL :: fexist, FSim
24 23
  LOGICAL, SAVE :: first=.true.
25
  LOGICAL, ALLOCATABLE :: Done(:)
26 24

  
27
  REAL(KREAL), SAVE :: Eold=1.e6
28
  REAL(KREAL), ALLOCATABLE :: GradTmp(:)
25
  REAL(KREAL) :: Pi
29 26

  
30
  REAL(KREAL) :: d, a_val, Pi
31

  
32
  REAL(KREAL) :: coef,x
33 27
  INTEGER(KINT) :: ItG03
34
  INTEGER(KINT) :: iat, jat, kat, i, j, n3at, absidg, absidg2
35
  INTEGER(KINT) :: kTmp, Istart,ITmp1,ITmp2, Idx
36
  INTEGER(KINT), PARAMETER :: IOLOG=12, IOCOM=11
28
  INTEGER(KINT) :: iat, i, n3at
29
  INTEGER(KINT) :: ITmp1, ITmp2
37 30

  
38 31
  CHARACTER(132) :: FileIn, FileOut, FileChk
39 32

  
40 33
  CHARACTER(3) :: SepIn=' < ', SepOut=' > '
41
  CHARACTER(LCHARS) :: ListName, TitleTmp, CH32SVAR1
42
  CHARACTER(VLCHARS), SAVE :: RstrtCopy, RunCommand
43
  LOGICAL, SAVE :: FCopyRstrt=.False., FOrderChecked=.False.
44
  LOGICAL   :: FRdyn,FStopNucl, FTmp, Tchk,Tchk1
45
  INTEGER(kint) :: NbLists,LastIt,Nat4,NStep, Firstit
46
  INTEGER(KINT) :: NStepAd,NStepTmp
47
  INTEGER(KINT) :: IShowTmp
48
  REAL(KREAL)   :: FricPsiMin,FricPsiT, FricNuclTmp
34
  CHARACTER(VLCHARS), SAVE :: RunCommand
35
!  LOGICAL, SAVE :: FCopyRstrt=.False., FOrderChecked=.False.
49 36

  
50
  INTEGER(KINT), PARAMETER :: NbExtName=4
51

  
52
  INTEGER(KINT) :: ICouc
53

  
54
  INTEGER(KINT) :: ILine
55
  INTEGER(KINT) :: NPulses, PulseLen, NStepWarm,NStepAv,NStepEq,NStepTot
56
  REAL(KREAL) :: TempWarm,Mean,Slope,Dev,RTmp1,RTmp2
57

  
58 37
  ! ======================================================================
59 38

  
60 39
  LOGICAL, EXTERNAL :: valid
......
224 203

  
225 204
  RETURN
226 205

  
227
999 CONTINUE
228
  if (.NOT.Ftmp) WRITE(*,*) 'We should not be here !!!!'
229
  STOP
206
!999 CONTINUE
207
!  if (.NOT.Ftmp) WRITE(*,*) 'We should not be here !!!!'
208
!  STOP
230 209
  ! ======================================================================
231 210
end subroutine egrad_gaussian
src/Space_GEDIIS.f90 (revision 2)
18 18
      REAL(KREAL) :: GeomSet(MRESET*NCoord), GradSet(MRESET*NCoord), ESET(MRESET)
19 19
      ! Geom and GRAD for all iterations.
20 20

  
21
      INTEGER(KINT) :: I,J,K,NMK,MI,NI
21
      INTEGER(KINT) :: I, K, NMK, MI, NI
22 22
      INTEGER(KINT), SAVE :: NRESET
23 23

  
24 24
      ! UPDATE PARAMETER AND GRADIENT SUBSPACE:
src/PathCreate.f90 (revision 2)
24 24
  REAL(KREAL), PARAMETER :: Inf=1e32
25 25
  INTEGER(KINT), INTENT(IN) :: IOpt
26 26

  
27
  INTEGER(KINT) ::  at,long
28 27
  REAL(KREAL), ALLOCATABLE :: val_zmat(:,:), val_zmatTmp(:,:) ! (3,Nat)
29 28
  REAL(KREAL), ALLOCATABLE :: X0(:), Y0(:), Z0(:) ! Nat
30 29
  REAL(KREAL), ALLOCATABLE ::  XyzTmp(:,:), XyzTmp2(:,:) ! (Nat,3)
......
35 34
  ! NPrim=Number of primitive coordinates.
36 35
  REAL(KREAL), ALLOCATABLE :: XGeom(:) ! NGeomI
37 36
  REAL(KREAL), ALLOCATABLE :: XGeomF(:) ! NGeomF
38
  REAL(KREAL), ALLOCATABLE :: Hess_int(:,:) ! Hess_int (3*Nat,3*Nat), used for Baker case
39 37
  INTEGER(KINT) :: NGeomS
40 38

  
41
  REAL(KREAL) :: Rmsd,MRot(3,3), Delta, normDeltaX_int
42
  REAL(KREAL), PARAMETER ::  LimAngle=145.d0,TwoPi=360.d0
43
  REAL(KREAL)  ::s,ds,dist,a_val,d
44
  INTEGER(KINT) :: I,J,K,NbCycle,igeom,nb,ig,iat
45
  INTEGER(KINT) :: Itmp, Jat, L
39
  REAL(KREAL) :: Rmsd, MRot(3, 3), Delta
40
  REAL(KREAL), PARAMETER ::  TwoPi=360.d0
41
  REAL(KREAL)  ::s, dist, a_val, d
42
  INTEGER(KINT) :: I, J, igeom, iat
43
  INTEGER(KINT) :: Itmp, Jat
46 44
  INTEGER(KINT) :: Idx,IBeg
47 45
  CHARACTER(LCHARS) :: Title
48 46
  REAL(KREAL), ALLOCATABLE :: x(:), y(:), z(:)
src/upcase.f90 (revision 2)
3 3
! This subroutine converts a string into its Upcase
4 4
! version
5 5

  
6
        IMPLICIT NONE
7

  
6 8
        integer, parameter :: KINT = kind(1)
7
        integer, parameter :: KREAL = kind(1.0d0)
8 9

  
9 10
        CHARACTER(*), INTENT(INOUT) :: String
10 11
        INTEGER(KINT) :: i,ic, length
src/CalcBMat_int.f90 (revision 2)
1
subroutine CalcBmat_int(natoms, xyzatm, indzmat, dzdc, atmass,atome)
1
subroutine CalcBmat_int(natoms, xyzatm, indzmat, dzdc)
2 2

  
3 3
  use Io_module
4
  use Path_module, only : MW,Pi
4
  use Path_module, only : MW,Pi, atome
5 5

  
6 6
  IMPLICIT NONE
7 7

  
8 8

  
9
  integer(KINT) :: natoms, indzmat(natoms,5),atome(natoms)
10
  real(KREAL)   :: xyzatm(3,natoms), dzdc(3*natoms,3*natoms),atmass(natoms)
9
  integer(KINT), INTENT(IN) :: natoms, indzmat(natoms,5)
10
  real(KREAL), INTENT(IN)   :: xyzatm(3,natoms)
11
  real(KREAL), INTENT(OUT)   :: dzdc(3*natoms,3*natoms)
11 12

  
12 13

  
13 14
!!!!!!!!!!!!!!!!!!!!!
src/egrad_test.f90 (revision 2)
12 12
       REAL(KREAL), INTENT(IN) :: Geom(Nat,3)
13 13

  
14 14
!     Bohr --> Angstr
15
      real(KREAL), parameter :: BOHR   = 0.52917726D+00
15
!      real(KREAL), parameter :: BOHR   = 0.52917726D+00
16 16
!
17

  
17 18
! Parameters to define the surface
18 19
      INTEGER(KINT), DIMENSION(6), PARAMETER :: IECOEF = (/-1,9,-45,45,-9,1/)
19 20
      INTEGER(KINT), DIMENSION(6), PARAMETER :: ISCOEF = (/-3,-2,-1,1,2,3/)
20 21
      REAL(KREAL), PARAMETER :: hh=0.001d0
21 22
      
22 23
! Variables
23
       INTEGER(KINT) :: i,j,iat,jat
24
       INTEGER(KINT) :: i, iat, jat
24 25
       REAL(KREAL), ALLOCATABLE :: Xyztmp(:,:),GradTmp(:,:)
25
       REAL(KREAL) :: xp,yp
26 26

  
27
       CHARACTER(132) :: Line
28 27
       LOGICAL :: Debug
29 28
  
30
      real(KREAL), parameter :: zero = 0.0_KREAL,   one = 1.0_KREAL
31 29
      REAL(KREAL), external :: Exyz 
32 30

  
33 31

  
......
107 105
      INTEGER(KINT) :: i
108 106
      REAL(KREAL) :: dCH,dNH,dCN
109 107

  
110
      real(KREAL) :: autoA,autoeV
111
      parameter (autoA=0.52917715d0)
108
!      real(KREAL) :: autoA,autoeV
109
      real(KREAL) :: autoeV
110
!      parameter (autoA=0.52917715d0)
112 111
      parameter (autoeV=27.21183d0)
113 112

  
114 113

  
115
      real(KREAL) :: Q(3)
116
      real(KREAL) :: TT,gR,pR
117 114

  
118
      real(KREAL) :: mB,mC,mH
119
      real(KREAL) :: T,RN,RC,r1,r2,r3
115
      real(KREAL) :: r1, r2, r3
120 116

  
121 117
      real(KREAL) :: Z1,Z12,V1
122 118
      real(KREAL) :: Z2,Z22,V2
......
228 224
      REAL(KREAL) ,INTENT(IN) :: Xyz(natoms,3)
229 225
      REAL(KREAL) :: Exyz
230 226

  
231
     INTEGER(KINT) :: i,j,iat,jat
227
     INTEGER(KINT) :: iat, jat
232 228
     REAL(KREAL) :: Exyz2
233 229

  
234
      real(KREAL) :: autoA,autoeV
235
      parameter (autoA=0.52917715d0)
236
      parameter (autoeV=27.21183d0)
230
!      real(KREAL) :: autoA,autoeV
231
!      parameter (autoA=0.52917715d0)
232
!      parameter (autoeV=27.21183d0)
237 233

  
238 234

  
239
      real(KREAL) :: Q(3)
240
      real(KREAL) :: TT,gR,pR
241 235

  
242
      real(KREAL) :: mB,mC,mH
243
      real(KREAL) :: T,RN,RC,r1,r2,r3
244 236

  
245
      real(KREAL) :: Z1,Z12,V1
246
      real(KREAL) :: Z2,Z22,V2
247
      real(KREAL) :: Z3,Z32,V3
248 237

  
249
      real(KREAL) :: S1,S2,S3,S12,S22,S32,POLY
250
      real(KREAL) :: E1,E2,E3,HY1,HY2,HY3,SWITCH,V123
251 238

  
252 239
      Exyz=0.
253 240
      do jat=1,natoms
src/CalcTangent.f90 (revision 2)
18 18
  REAL(KREAL), ALLOCATABLE :: PathTan(:,:) ! NGeomF,NCoord
19 19
  REAL(KREAL), ALLOCATABLE :: DbgTgt(:),GeomTmp(:) ! NCoord
20 20

  
21
  INTEGER(KINT) :: i, j, n3at, Idx, iat,igeom,k
21
  INTEGER(KINT) :: i, j, n3at, k
22 22
  INTEGER(KINT), SAVE :: icall=-1
23 23
  INTEGER(KINT) :: NMaxPt
24
  REAL(KREAL), PARAMETER :: Inf=1e32, h=0.001d0
24
!  REAL(KREAL), PARAMETER :: Inf=1e32, h=0.001d0
25 25
  CHARACTER(120) :: Line,File
26 26
  CHARACTER(LCHARS) :: TITLE
27 27
  LOGICAL :: Debug=.False.
28
  REAL(KREAL) :: utmp,der
28
  REAL(KREAL) :: utmp
29 29

  
30 30
  LOGICAL, EXTERNAL :: valid
31 31

  
src/Step_DIIS.f90 (revision 2)
59 59
      REAL(KREAL), ALLOCATABLE, SAVE :: XSET(:),GSET(:),ERR(:) ! MRESET*NVAR
60 60
      REAL(KREAL) :: ESET(MRESET)
61 61
      REAL(KREAL), ALLOCATABLE, SAVE :: DX(:),GSAVE(:) !NVAR
62
      REAL(KREAL) :: B(M2),BS(M2),BST(M2)
62
      REAL(KREAL) :: B(M2), BS(M2)
63 63
      LOGICAL DEBUG, PRINT
64 64
      INTEGER(KINT), SAVE :: MSET
65 65
      INTEGER(KINT) :: NDIIS, MPLUS, INV, ITERA, MM
src/Write_vasp.f90 (revision 2)
7 7

  
8 8
  CHARACTER(SCHARS), INTENT(IN) :: poscar
9 9

  
10
  INTEGER(KINT) :: IGeom, Idx, Iat, I,J,NFr
10
  INTEGER(KINT) :: IGeom, Idx
11 11
  REAL(KREAL), ALLOCATABLE :: GeomTmpC(:), GeomTmp(:)
12
  REAL(KREAL) :: MRot(3,3), Rmsd
13 12
  CHARACTER(SCHARS) :: Line,Line2
14 13

  
15 14
  ! For VMD printing
16 15
  CHARACTER(SCHARS), PARAMETER :: FirstWord="mol "
17 16
  CHARACTER(LCHARS), PARAMETER :: LastWords=" type POSCAR first 0 last -1 step 1 filebonds 1 autobonds 1 waitfor all"
18 17

  
19
  REAL(KREAL) :: X,Y,Z
20 18
  CHARACTER(LCHARS) :: TITLE
21 19
  LOGICAL :: Debug
22 20

  
src/ZmatBuild.f90 (revision 2)
14 14
! after the atom was added to ind_zmat for the three first atoms,
15 15
! but before for all others. Now, it starts at zero and it
16 16
! is increased before the atom is added to ind_zmat
17
!     IMPLICIT NONE
18 17

  
19
      use Path_module, only : Nat, NMaxL, max_Z, KINT, KREAL
18
      use Path_module, only : Nat, NMaxL, max_Z, KINT, KREAL,Pi
19
      use Io_module
20 20

  
21
      IMPLICIT NONE
21 22

  
22
      INTEGER(KINT) :: Izm
23
      integer(KINT) :: na,atome(NAt),at,ind_zmat(NAt,5),long
24
      real(KREAL) ::  x(NAt),y(NAt),z(NAt),fact
23

  
24
      INTEGER(KINT) :: Izm,I,IAf,IAt,IAt0,J,Jat
25
      INTEGER(KINT) :: n1, NMaxCF, NMinCP, VCF
26
      INTEGER(KINT) :: IAta,IAtd,IAtDh,IAti,IAtv,ICat
27
      INTEGER(KINT) :: ICP0, IdAt0, IdAtl
28
      INTEGER(KINT) :: Idx, IIat, IIatDh, IndAFaire, IndFin
29
      INTEGER(KINT) :: IdxAt0
30
      INTEGER(KINT) :: ITmp, IZm0, IZm1, IZm2, IZm3, IZm4, IzmTmp
31
      integer(KINT) :: na, atome(NAt), ind_zmat(NAt, 5)
32
      real(KREAL) ::  x(NAt), y(NAt), z(NAt)
25 33
      real(KREAL) ::  val_zmat(NAt,3)
26 34
!     ListAt contains the indices of frozen atoms
27
      LOGICAL ListAT(NAt),FIzm1,FFirst
35
      LOGICAL ListAT(NAt), FFirst
28 36
      INTEGER(KINT) :: Natreat
29 37

  
30
      real(KREAL) ::  vx,vy,vz,dist
31
      INTEGER(KINT) :: LIAISONS(NAt,0:NMaxL),Nbli,Nblj
32
      INTEGER(KINT) :: LiaisonsBis(NAt,0:NMaxL)
38
      real(KREAL) ::  dist
39
      INTEGER(KINT) :: LIAISONS(NAt, 0:NMaxL)
33 40
      INTEGER(KINT) :: CAFaire(NAt)
34 41
      INTEGER(KINT) :: LieS_CP(NAt,0:NMaxL),LieS_CF(NAt,0:NMaxL)
35 42
      INTEGER(KINT) :: AtCP0(NAt),NbAt0,NbAt0r
36
      Integer(KINT) :: AtTypCycl(Max_Z), NbAt3(NAt,2),CyCleAt(NAt)
37 43
      Integer(KINT) :: NbCycle
38 44
      real(KREAL) ::  vx1,vy1,vz1,norm1
39 45
      real(KREAL) ::  vx2,vy2,vz2,norm2
40
      real(KREAL) ::  vx3,vy3,vz3,norm3
41
      real(KREAL) ::  vx4,vy4,vz4,norm4
42
      real(KREAL) ::  vx5,vy5,vz5,norm5
43
      real(KREAL) ::  val,val_d
44
      Logical AtTerm,Debug,Done
46
      real(KREAL) ::  val
47
      Logical Debug, Done
45 48
      Logical DejaFait(NAt)
46
      LOGICAL F1213, F1223,F1323,FTmp
47 49

  
50

  
51
      INTERFACE 
52
         FUNCTION angle(v1x,v1y,v1z,norm1,v2x,v2y,v2z,norm2)
53
           use Path_module, only :  Pi,KINT, KREAL
54
           real(KREAL) ::  v1x,v1y,v1z,norm1
55
           real(KREAL) ::  v2x,v2y,v2z,norm2
56
           real(KREAL) ::  angle
57
         END FUNCTION ANGLE
58
      END INTERFACE
59

  
60

  
61

  
62

  
63

  
48 64
!     As we may have to treat only partial molecules, it may happen
49 65
!     that there are no central atoms... so we first check this by looking
50 66
!     for the least number of CP atoms
......
809 825
            END IF
810 826
            IndAFaire=IndAFaire+1
811 827
         END DO
812
12345    CONTINUE
828
!12345    CONTINUE
813 829
      END DO
814 830

  
815 831
      WRITE(*,*) 'TOTOTOTOTOTOTOTOT'
src/gaussj.f90 (revision 2)
27 27
                  icol=k
28 28
                endif
29 29
              else if (ipiv(k).gt.1) then
30
                pause 'singular matrix in gaussj'
30
                Write(*,*) 'singular matrix in gaussj'
31
                STOP
31 32
              endif
32 33
12          continue
33 34
          endif
......
47 48
        endif
48 49
        indxr(i)=irow
49 50
        indxc(i)=icol
50
        if (a(icol,icol).eq.0.d0) pause 'singular matrix in gaussj'
51
        if (a(icol,icol).eq.0.d0) THEN
52
           WRITE(*,*)  'singular matrix in gaussj'
53
           STOP
54
        END IF
51 55
        pivinv=1.d0/a(icol,icol)
52 56
        a(icol,icol)=1.d0
53 57
        do 16 l=1,n
src/CalcBMat_mixed.f90 (revision 2)
1
subroutine CalcBMat_mixed (natoms, xyzatm, indzmat, dzdc, atmass,atome)
1
subroutine CalcBMat_mixed (natoms, xyzatm, indzmat, dzdc)
2 2

  
3 3
  use Io_module
4 4
  use Path_module, only : MW, NCart
......
6 6
  IMPLICIT NONE
7 7

  
8 8

  
9
  integer(KINT) :: natoms, indzmat(natoms,5),atome(natoms)
10
  real(KREAL)   :: xyzatm(3,natoms), dzdc(3*natoms,3*natoms),atmass(natoms)
9
  integer(KINT), INTENT(IN) :: natoms, indzmat(natoms,5)
10
  real(KREAL), INTENT(IN)   :: xyzatm(3,natoms)
11
  real(KREAL), INTENT(OUT)   :: dzdc(3*natoms,3*natoms)
11 12

  
12 13

  
13 14
!!!!!!!!!!!!!!!!!!!!!
src/egrad_mopac.f90 (revision 2)
22 22
  logical           :: debug
23 23
  LOGICAL, SAVE :: first=.true.
24 24

  
25
  REAL(KREAL), ALLOCATABLE :: GradTmp(:)
25
  REAL(KREAL) :: Pi
26 26

  
27
  REAL(KREAL) :: d, a_val, Pi
28

  
29
  REAL(KREAL) :: coef,x
30
  INTEGER(KINT) :: iat, jat, kat, i, j, k,n3at
27
  INTEGER(KINT) :: iat, i, j, k, n3at
31 28
  INTEGER(KINT) :: ITmp1,ITmp2, Idx
32
  INTEGER(KINT), PARAMETER :: IOLOG=12, IOCOM=11
33 29

  
34 30
  CHARACTER(132) :: FileIn, FileOut, FileChk
35 31

  
src/Hinvup_DFP.f90 (revision 2)
46 46
  REAL(KREAL), ALLOCATABLE  :: Hup(:,:)
47 47
  REAL(KREAL), ALLOCATABLE  :: Num(:,:), Num2(:,:)
48 48
  REAL(KREAL) :: Den, Den2,NormDS
49
  INTEGER(KINT) :: i,j,k, Idx
49
  INTEGER(KINT) :: i, j, Idx
50 50

  
51 51
  LOGICAL :: debug
52 52

  
src/egrad_ext.f90 (revision 2)
20 20

  
21 21
  ! ======================================================================
22 22

  
23
  character(LCHARS) :: LINE
24 23

  
25 24
  logical           :: debug
26
  LOGICAL :: fexist, FSim
27
  LOGICAL, SAVE :: first=.true.
28
  LOGICAL, ALLOCATABLE :: Done(:)
29 25

  
30
  REAL(KREAL), SAVE :: Eold=1.e6
31
  REAL(KREAL) :: d, a_val, Pi
26
  REAL(KREAL) :: Pi
32 27

  
33
  REAL(KREAL) :: coef,x
34
  INTEGER(KINT) :: iat, jat, kat, i, j, n3at, absidg, absidg2
35
  INTEGER(KINT) :: kTmp, Istart,ITmp1,ITmp2, Idx
36
  INTEGER(KINT), PARAMETER :: IOLOG=12, IOCOM=11
28
  INTEGER(KINT) :: iat, i, n3at
37 29

  
38 30
  !
39 31
  CHARACTER(132) :: FileIn,FileOut
40 32

  
41
  CHARACTER(LCHARS) :: ListName, TitleTmp, CH32SVAR1
42
  CHARACTER(VLCHARS), SAVE :: RstrtCopy, RunCommand
43
  LOGICAL, SAVE :: FCopyRstrt=.False., FOrderChecked=.False.
44
  LOGICAL   :: FRdyn,FStopNucl, FTmp, Tchk,Tchk1
45
  INTEGER(kint) :: NbLists,LastIt,Nat4,NStep, Firstit
46
  INTEGER(KINT) :: NStepAd,NStepTmp
47
  INTEGER(KINT) :: IShowTmp
48
  REAL(KREAL)   :: FricPsiMin,FricPsiT, FricNuclTmp
33
  CHARACTER(VLCHARS), SAVE :: RunCommand
34
!  LOGICAL, SAVE :: FCopyRstrt=.False., FOrderChecked=.False.
49 35

  
50 36

  
51
  INTEGER(KINT), PARAMETER :: NbExtName=4
52 37

  
53
  INTEGER(KINT) :: ICouc
54

  
55
  INTEGER(KINT) :: ILine
56
  INTEGER(KINT) :: NPulses, PulseLen, NStepWarm,NStepAv,NStepEq,NStepTot
57
  REAL(KREAL) :: TempWarm,Mean,Slope,Dev,RTmp1,RTmp2
58

  
59 38
  ! ======================================================================
60 39

  
61 40
  LOGICAL, EXTERNAL :: valid
......
112 91

  
113 92
  RETURN
114 93

  
115
999 CONTINUE
116
  if (.NOT.Ftmp) WRITE(*,*) 'We should not be here !!!!'
117
  STOP
94
!999 CONTINUE
95
!  if (.NOT.Ftmp) WRITE(*,*) 'We should not be here !!!!'
96
!  STOP
118 97
  ! ======================================================================
119 98
end subroutine egrad_ext
src/ConvXyzZmat.f90 (revision 2)
4 4

  
5 5
  IMPLICIT NONE
6 6

  
7
  integer(KINT) :: i,i1,i2
7
  integer(KINT) :: i
8 8

  
9 9
  integer(KINT) :: n1,n2,n3,n4,nb
10 10
  real(KREAL) ::  x(Nb),y(Nb),z(Nb)
......
106 106

  
107 107
              !        write(*,*) 'Debut procedure Xyz_Zmat43'
108 108
              CALL vecteur(n3,n4,x,y,z,vx3,vy3,vz3,norm3)
109
              CALL produit_vect(vx1,vy1,vz1,norm1, &
110
                   vx2,vy2,vz2,norm2, &
111
                   vx4,vy4,vz4,norm4)
112
              CALL produit_vect(vx3,vy3,vz3,norm3, &
113
                   vx2,vy2,vz2,norm2, &
114
                   vx5,vy5,vz5,norm5)
109
              CALL produit_vect(vx1,vy1,vz1,vx2,vy2,vz2,vx4,vy4,vz4,norm4)
110
              CALL produit_vect(vx3,vy3,vz3,vx2,vy2,vz2, vx5,vy5,vz5,norm5)
115 111
              val_d=angle_d(vx4,vy4,vz4,norm4, &
116 112
                   vx5,vy5,vz5,norm5, &
117 113
                   vx2,vy2,vz2,norm2)
118 114

  
119 115
              !               write(*,11) n1,n2,norm1,n3,val,n4,val_d
120
11            format (2(1x,i3),1x,f8.4,2(1x,i3,1x,f8.3))
116
!11            format (2(1x,i3),1x,f8.4,2(1x,i3,1x,f8.3))
121 117

  
122 118
              val_zmat(i,1)=norm1
123 119
              val_zmat(i,2)=val
src/Makefile (revision 2)
5 5
# You might also have to edit the location of
6 6
# some libraries (like mkl for ifort)
7 7

  
8
Machine=gfortran
8
Machine=arqg
9 9

  
10 10
###########################################
11 11
#                                         #
......
135 135
ifeq ($(Machine),arqP)
136 136
# Flags for arq Ifort
137 137
COMP=ifort
138
F90=${COMP}   -g -check bounds  -check format -check uninit  -traceback
139
#F90=${COMP}   -g -check all  -traceback
138
#F90=${COMP}   -g -check bounds  -check format -check uninit  -traceback
139
F90=${COMP}   -g -check all  -traceback
140 140
F77=${F90}
141 141
#F90=${COMP}  
142 142
LINK=${COMP} -lguide -lpthread   -L/usr/lib/ \
......
148 148

  
149 149
ifeq ($(Machine),arqg)
150 150
# Flags for arq GFortran
151
COMP=gfortran -fbacktrace -fbounds-check -Wall
151
COMP=gfortran -g -fbacktrace -fbounds-check -Wall -Wextra
152 152
F90=${COMP}  
153 153
F77=${F90}
154 154
#F90=${COMP}  
src/Calc_Xprim.f90 (revision 2)
34 34

  
35 35
  Type (ListCoord), POINTER :: ScanCoord
36 36

  
37
  real(KREAL) :: vx,vy,vz,dist, Norm
38 37
  real(KREAL) :: vx1,vy1,vz1,norm1
39 38
  real(KREAL) :: vx2,vy2,vz2,norm2
40 39
  real(KREAL) :: vx3,vy3,vz3,norm3
41 40
  real(KREAL) :: vx4,vy4,vz4,norm4
42 41
  real(KREAL) :: vx5,vy5,vz5,norm5
43
  real(KREAL) :: val,val_d, Q, T
44 42

  
45
  INTEGER(KINT) :: I,J, n1,n2,n3,n4
43
  INTEGER(KINT) :: I
46 44

  
47
  REAL(KREAL) :: sAngleIatIKat, sAngleIIatLat
48 45
  REAL(KREAL) :: DiheTmp
49 46

  
50 47
  LOGICAL :: debug, debugPFL
......
119 116
           Call vecteur(ScanCoord%At2,ScanCoord%At1,x,y,z,vx1,vy1,vz1,Norm1)
120 117
           Call vecteur(ScanCoord%At2,ScanCoord%At3,x,y,z,vx2,vy2,vz2,Norm2)
121 118
           Call vecteur(ScanCoord%At3,ScanCoord%At4,x,y,z,vx3,vy3,vz3,Norm3)
122
           Call produit_vect(vx1,vy1,vz1,norm1,vx2,vy2,vz2,norm2, &
119
           Call produit_vect(vx1,vy1,vz1,vx2,vy2,vz2, &
123 120
                vx4,vy4,vz4,norm4)
124
           Call produit_vect(vx3,vy3,vz3,norm3,vx2,vy2,vz2,norm2, &
121
           Call produit_vect(vx3,vy3,vz3,vx2,vy2,vz2, &
125 122
                vx5,vy5,vz5,norm5)
126 123

  
127 124
                 DiheTmp= angle_d(vx4,vy4,vz4,norm4,vx5,vy5,vz5,norm5, &
src/Hupdate_Bofill.f90 (revision 2)
27 27
  REAL(KREAL), ALLOCATABLE  :: HupInt(:)
28 28
  REAL(KREAL), ALLOCATABLE  :: HS(:), Num(:,:), Num2(:,:)
29 29
  REAL(KREAL) :: Phi, Num3, Den, Den2,NormDS
30
  CHARACTER(120) :: fmt,fmt2,Line
31 30
  INTEGER(KINT) :: i,j, idx
32 31

  
33 32
  LOGICAL debug,valid
src/bib_oper.f90 (revision 2)
100 100
!       produit vectoriel
101 101
!================================================================
102 102

  
103
       SUBROUTINE produit_vect(v1x,v1y,v1z,norm1, &
104
                               v2x,v2y,v2z,norm2, &
103
       SUBROUTINE produit_vect(v1x,v1y,v1z, &
104
                               v2x,v2y,v2z, &
105 105
                               v3x,v3y,v3z,norm3)
106 106

  
107 107
        use Path_module, only :  Pi,KINT, KREAL
108 108

  
109
        real(KREAL) ::  v1x,v1y,v1z,norm1 ! what do you do with norm1, norm2???
110
        real(KREAL) ::  v2x,v2y,v2z,norm2
109
        real(KREAL) ::  v1x,v1y,v1z ! what do you do with norm1, norm2???
110
        real(KREAL) ::  v2x,v2y,v2z
111 111
        real(KREAL) ::  v3x,v3y,v3z,norm3
112 112

  
113 113
        v3x= v1y*v2z-v1z*v2y
src/Extrapol_mixed.f90 (revision 2)
25 25
  REAL(KREAL), INTENT(IN) :: Xgeom(NGeomI),Coef(NGeomI,NCoord)
26 26

  
27 27
  INTEGER(KINT) :: IdxGeom, I, J, K, Idx
28
  REAL(KREAL) :: Rmsd,MRot(3,3), ds, u, v
29
  REAL(KREAL) :: a_val, d
28
  REAL(KREAL) :: Rmsd, MRot(3, 3), ds, u
30 29

  
31 30
  REAL(KREAL), ALLOCATABLE :: XyzTmp(:,:), XyzTmp2(:,:) ! (Nat,3)
32 31
  REAL(KREAL), ALLOCATABLE :: IntCoordTmp(:),DerInt(:) ! (NCoord)
src/Calc_zmat_constr_frag.f90 (revision 2)
45 45
  real(KREAL) ::  vx4,vy4,vz4,norm4
46 46
  real(KREAL) ::  vx5,vy5,vz5,norm5
47 47
  real(KREAL) ::  val,val_d, d12, d13,d23,d
48
  Logical PasFini,Debug
48
  Logical Debug
49 49
  LOGICAL, ALLOCATABLE :: DejaFait(:), FCaf(:) !(na)
50 50
  Logical, ALLOCATABLE ::  FrozAt(:)    !T if this atom is frozen
51 51
  LOGICAL F1213, F1223,F1323
......
492 492
        WRITE(*,*) "Dans le caca car tous les atoms de ce block sont align?s!"
493 493
     END IF
494 494

  
495
     CALL produit_vect(vx3,vy3,vz3,norm3,vx2,vy2,vz2,norm2, &
495
     CALL produit_vect(vx3,vy3,vz3,vx2,vy2,vz2, &
496 496
          vx5,vy5,vz5,norm5)
497 497

  
498 498

  
......
534 534
        ! les autres fragments ne seraient additonn?s que si l'on ne trouve pas notre bonheur dans le premier bloc
535 535
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
536 536

  
537
        CALL produit_vect(vx1,vy1,vz1,norm1,vx2,vy2,vz2,norm2, &
537
        CALL produit_vect(vx1,vy1,vz1,vx2,vy2,vz2, &
538 538
             vx4,vy4,vz4,norm4)
539 539
        val_d=angle_d(vx4,vy4,vz4,norm4,vx5,vy5,vz5,norm5, &
540 540
             vx2,vy2,vz2,norm2)
......
558 558
           if (FrozAt(Jat).AND.(.NOT.DejaFait(JAt))) THEN
559 559
              n1=JAt
560 560
              CALL vecteur(n2,n1,x,y,z,vx1,vy1,vz1,norm1)
561
              CALL produit_vect(vx1,vy1,vz1,norm1,vx2,vy2,vz2,norm2, &
561
              CALL produit_vect(vx1,vy1,vz1,vx2,vy2,vz2, &
562 562
                   vx4,vy4,vz4,norm4)
563 563
              val_d=angle_d(vx4,vy4,vz4,norm4, &
564 564
                   vx5,vy5,vz5,norm5, &
......
578 578
              if (.NOT.DejaFait(JAt)) THEN
579 579
                 n1=JAt
580 580
                 CALL vecteur(n2,n1,x,y,z,vx1,vy1,vz1,norm1)
581
                 CALL produit_vect(vx1,vy1,vz1,norm1, &
582
                      vx2,vy2,vz2,norm2, &
581
                 CALL produit_vect(vx1,vy1,vz1,vx2,vy2,vz2, &
583 582
                      vx4,vy4,vz4,norm4)
584 583
                 val_d=angle_d(vx4,vy4,vz4,norm4, &
585 584
                      vx5,vy5,vz5,norm5, &
......
697 696
     n4=LiaisonsBis(Iat,2)
698 697
     CALL vecteur(n2,n3,x,y,z,vx2,vy2,vz2,norm2)
699 698
     CALL vecteur(n3,n4,x,y,z,vx3,vy3,vz3,norm3)
700
     CALL produit_vect(vx3,vy3,vz3,norm3, &
701
          vx2,vy2,vz2,norm2, &
699
     CALL produit_vect(vx3,vy3,vz3,vx2,vy2,vz2, &
702 700
          vx5,vy5,vz5,norm5)
703 701

  
704 702
     DO While ((ITmp.LE.FrozBlock(Iat,0)).AND.(sDihe.LE.0.09d0))
705 703
        ITmp=ITmp+1
706 704
        n1=FrozBlock(Iat,Itmp)
707 705
        CALL vecteur(n2,n1,x,y,z,vx1,vy1,vz1,norm1)
708
        CALL produit_vect(vx1,vy1,vz1,norm1, &
709
             vx2,vy2,vz2,norm2, &
706
        CALL produit_vect(vx1,vy1,vz1, vx2,vy2,vz2, &
710 707
             vx4,vy4,vz4,norm4)
711 708
        val_d=angle_d(vx4,vy4,vz4,norm4,  &
712 709
             vx5,vy5,vz5,norm5,           &
......
725 722
           if (FrozAt(Jat).AND.(.NOT.DejaFait(JAt))) THEN
726 723
              n1=JAt
727 724
              CALL vecteur(n2,n1,x,y,z,vx1,vy1,vz1,norm1)
728
              CALL produit_vect(vx1,vy1,vz1,norm1,  &
729
                   vx2,vy2,vz2,norm2,               &
725
              CALL produit_vect(vx1,vy1,vz1, vx2,vy2,vz2,   &
730 726
                   vx4,vy4,vz4,norm4)
731 727
              val_d=angle_d(vx4,vy4,vz4,norm4,    &
732 728
                   vx5,vy5,vz5,norm5,              &
......
746 742
              if (.NOT.DejaFait(JAt)) THEN
747 743
                 n1=JAt
748 744
                 CALL vecteur(n2,n1,x,y,z,vx1,vy1,vz1,norm1)
749
                 CALL produit_vect(vx1,vy1,vz1,norm1,   &
750
                      vx2,vy2,vz2,norm2,                 &
745
                 CALL produit_vect(vx1,vy1,vz1, vx2,vy2,vz2,   &
751 746
                      vx4,vy4,vz4,norm4)
752 747
                 val_d=angle_d(vx4,vy4,vz4,norm4,       &
753 748
                      vx5,vy5,vz5,norm5,                 &
......
889 884
     n4=I1
890 885
     CALL vecteur(n2,n3,x,y,z,vx2,vy2,vz2,norm2)
891 886
     CALL vecteur(n3,n4,x,y,z,vx3,vy3,vz3,norm3)
892
     CALL produit_vect(vx3,vy3,vz3,norm3,  &
893
          vx2,vy2,vz2,norm2,    &
887
     CALL produit_vect(vx3,vy3,vz3, vx2,vy2,vz2,  &
894 888
          vx5,vy5,vz5,norm5)
895 889

  
896 890
     !     We will look at the other frozen atoms
......
901 895
        if (FrozAt(Jat).AND.(.NOT.DejaFait(JAt))) THEN
902 896
           n1=JAt
903 897
           CALL vecteur(n2,n1,x,y,z,vx1,vy1,vz1,norm1)
904
           CALL produit_vect(vx1,vy1,vz1,norm1, &
905
                vx2,vy2,vz2,norm2, &
898
           CALL produit_vect(vx1,vy1,vz1, vx2,vy2,vz2, &
906 899
                vx4,vy4,vz4,norm4)
907 900
           val_d=angle_d(vx4,vy4,vz4,norm4,  &
908 901
                vx5,vy5,vz5,norm5,   &
......
922 915
           if (.NOT.DejaFait(JAt)) THEN
923 916
              n1=JAt
924 917
              CALL vecteur(n2,n1,x,y,z,vx1,vy1,vz1,norm1)
925
              CALL produit_vect(vx1,vy1,vz1,norm1,  &
926
                   vx2,vy2,vz2,norm2, &
918
              CALL produit_vect(vx1,vy1,vz1, vx2,vy2,vz2, &
927 919
                   vx4,vy4,vz4,norm4)
928 920
              val_d=angle_d(vx4,vy4,vz4,norm4,   &
929 921
                   vx5,vy5,vz5,norm5,           &
......
1965 1957
        val=angle(vx1,vy1,vz1,norm1,vx2,vy2,vz2,norm2)
1966 1958

  
1967 1959
        CALL vecteur(n3,n4,x,y,z,vx3,vy3,vz3,norm3)
1968
        CALL produit_vect(vx1,vy1,vz1,norm1,vx2,vy2,vz2,norm2, &
1960
        CALL produit_vect(vx1,vy1,vz1,vx2,vy2,vz2, &
1969 1961
             vx4,vy4,vz4,norm4)
1970
        CALL produit_vect(vx3,vy3,vz3,norm3,vx2,vy2,vz2,norm2, &
1962
        CALL produit_vect(vx3,vy3,vz3,vx2,vy2,vz2, &
1971 1963
             vx5,vy5,vz5,norm5)
1972 1964

  
1973 1965
        val_d=angle_d(vx4,vy4,vz4,norm4, vx5,vy5,vz5,norm5, &
src/ConvertZmat_cart.f90 (revision 2)
17 17
        real(KREAL) ::  vvx1,vvy1,vvz1,normv1
18 18
        real(KREAL) ::  vx2,vy2,vz2,norm2
19 19
        real(KREAL) ::  vvx2,vvy2,vvz2,normv2
20
        real(KREAL) ::  vx3,vy3,vz3,norm3
21
        real(KREAL) ::  vx4,vy4,vz4,norm4
22
        real(KREAL) ::  d,a_val,a_dih,c1,c2
20
        real(KREAL) ::  vx4, vy4, vz4
21
        real(KREAL) ::  d, a_val, a_dih
23 22
        real(KREAL) ::  a11_z1,a12_z1
24 23
        real(KREAL) ::  a11_z2,a12_z2
25 24
        real(KREAL) ::  a11_y,a12_y
src/CalcRmsd.f90 (revision 2)
60 60
      real(KREAL) ::  x0c1,y0c1,z0c1, xc2,yc2,zc2
61 61
      
62 62

  
63
      INTEGER(KINT) :: i, j, nd, ia
63
      INTEGER(KINT) :: i, j, ia
64 64
      real(KREAL) :: x_norm, y_norm, lambda
65 65
      real(KREAL) :: Rmatrix(3,3)
66
      real(KREAL) :: S(4,4), dS(4,4), q(4)
67
      real(KREAL) :: tmp(3),tmp1(4),tmp2(4),EigVec(4,4), EigVal(4)
66
      real(KREAL) :: S(4, 4)
67
      real(KREAL) :: EigVec(4, 4), EigVal(4)
68 68

  
69 69
      INTERFACE
70 70
       function valid(string) result (isValid)
src/Path.f90 (revision 2)
1557 1557
  END IF
1558 1558

  
1559 1559
  IOpt=0
1560
  Call EgradPath(IOpt,Flag_Opt_Geom)
1560
  Call EgradPath(IOpt)
1561 1561

  
1562 1562
  if (debug)  WRITE(*,*) "Calling Write_path, L1002, Path.f90, IOpt=",IOpt
1563 1563
  Call Write_path(IOpt)
......
2252 2252

  
2253 2253
        ! We have the new path, we calculate its energy and gradient
2254 2254

  
2255
        Call EgradPath(IOpt,Flag_Opt_Geom)
2255
        Call EgradPath(IOpt)
2256 2256
        !IF(IOPT .EQ. 10) Then
2257 2257
        !         Print *, 'Stopping at my checkpoint.'
2258 2258
        !           STOP !This is my temporary checkpoint.
......
2428 2428
     END IF ! If (not.fini.).AND.(IOpt.LE.MaxCyc)
2429 2429
  END DO ! matches DO WHILE ((IOpt.LT.MaxCyc).AND.(.NOT.Fini))
2430 2430

  
2431
  IF (PROG=="GAUSSIAN") THEN
2432
     DEALLOCATE(Gauss_paste)
2433
     DEALLOCATE(Gauss_root,Gauss_comment,Gauss_end,current)
2434
  END IF
2431
!   IF (PROG=="GAUSSIAN") THEN
2432
!      DEALLOCATE(Gauss_paste)
2433
!      DEALLOCATE(Gauss_root)
2434
!      DEALLOCATE(Gauss_comment)
2435
!      DEALLOCATE(Gauss_end)
2436
!   END IF
2437

  
2435 2438
  DEALLOCATE(XyzGeomF, IntCoordF)
2436 2439
  DEALLOCATE(XyzGeomI, IntCoordI)
2437 2440
  DEALLOCATE(XyzTangent,IntTangent)
......
2465 2468
        previous => current  ! make current point to new head
2466 2469
     END DO
2467 2470

  
2468
     DEALLOCATE(current)
2471

  
2469 2472
  END IF
2470 2473

  
2471 2474
  DEALLOCATE(GeomTmp, Hess, GradTmp)
src/Calc_zmat_frag.f90 (revision 2)
36 36

  
37 37
  IMPLICIT NONE
38 38

  
39
  CHARACTER(5) ::  AtName
40 39
  integer(KINT), INTENT(IN) ::  na,atome(na)
41 40
  real(KREAL), INTENT(IN)   ::  x(Na),y(Na),z(Na),fact
42 41
  real(KREAL), INTENT(IN)   ::  r_cov(0:Max_Z)
......
48 47
! Frozen contains the indices of frozen atoms
49 48
! INTEGER(KINT) Frozen(*),NFroz
50 49
! Number of fragment, Index of the current fragment for loops
51
  INTEGER(KINT) :: NbFrag,IdxFrag
50
  INTEGER(KINT) :: NbFrag
52 51
! Fragment(I) contains the fragment index to which I belongs
53 52
! NbAtFrag(j) contains the number of atoms of fragment j
54 53
  INTEGER(KINT), ALLOCATABLE :: Fragment(:),NbAtFrag(:) !na
......
75 74
  real(KREAL) ::  vx4,vy4,vz4,norm4
76 75
  real(KREAL) ::  vx5,vy5,vz5,norm5
77 76
  real(KREAL) ::  val,val_d, d12, d13,d23,d
78
  Logical PasFini,Debug, FirstAt, DebugGaussian
77
  Logical Debug, FirstAt, DebugGaussian
79 78
  LOGICAL, ALLOCATABLE :: DejaFait(:), FCaf(:) !(na)
80 79
!  Logical, ALLOCATABLE ::  FrozAt(:)    !T if this atom is frozen
81 80
  LOGICAL F1213, F1223,F1323
82 81

  
83 82
  INTEGER(KINT) :: I,J,n0,n1,n2,n3,n4,IAt,IL,JL,IFrag,ITmp, K, KMax
84
  INTEGER(KINT) :: IMax, I3,I1,Ip, IFragFroz
85
  INTEGER(KINT) :: I0, Izm, JAt,Izm0
83
  INTEGER(KINT) :: I3, I1, Ip
84
  INTEGER(KINT) :: I0, Izm, JAt
86 85
  INTEGER(KINT) :: OrderZmat
87 86

  
88 87
  REAL(KREAL) :: sDihe
......
392 391
    STOP
393 392
     END IF
394 393

  
395
     CALL produit_vect(vx3,vy3,vz3,norm3,vx2,vy2,vz2,norm2, &
396
          vx5,vy5,vz5,norm5)
394
     CALL produit_vect(vx3,vy3,vz3,vx2,vy2,vz2,  vx5,vy5,vz5,norm5)
397 395

  
398 396

  
399 397
! We search for the fourth atom while checking that it is not aligned with 1st and 2nd atoms.
......
439 437
        ! les autres fragments ne seraient additonn?s que si l'on ne trouve pas notre bonheur dans le premier bloc
440 438
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
441 439

  
442
        CALL produit_vect(vx1,vy1,vz1,norm1,vx2,vy2,vz2,norm2, &
443
             vx4,vy4,vz4,norm4)
440
        CALL produit_vect(vx1,vy1,vz1,vx2,vy2,vz2, vx4,vy4,vz4,norm4)
444 441
        val_d=angle_d(vx4,vy4,vz4,norm4,vx5,vy5,vz5,norm5, &
445 442
             vx2,vy2,vz2,norm2)
446 443
        sDihe=abs(sin(val_d*pi/180.d0))
......
463 460
!           if (FrozAt(Jat).AND.(.NOT.DejaFait(JAt))) THEN
464 461
!              n1=JAt
465 462
!              CALL vecteur(n2,n1,x,y,z,vx1,vy1,vz1,norm1)
466
!              CALL produit_vect(vx1,vy1,vz1,norm1,vx2,vy2,vz2,norm2, &
467
!                   vx4,vy4,vz4,norm4)
463
!              CALL produit_vect(vx1,vy1,vz1,vx2,vy2,vz2,vx4,vy4,vz4,norm4)
468 464
!              val_d=angle_d(vx4,vy4,vz4,norm4, &
469 465
!                   vx5,vy5,vz5,norm5, &
470 466
!                   vx2,vy2,vz2,norm2)
......
484 480
!              if (.NOT.DejaFait(JAt)) THEN
485 481
!                 n1=JAt
486 482
!                 CALL vecteur(n2,n1,x,y,z,vx1,vy1,vz1,norm1)
487
!                 CALL produit_vect(vx1,vy1,vz1,norm1, &
488
!                      vx2,vy2,vz2,norm2, &
489
!                      vx4,vy4,vz4,norm4)
483
!                 CALL produit_vect(vx1,vy1,vz1,vx2,vy2,vz2,vx4,vy4,vz4,norm4)
490 484
!                 val_d=angle_d(vx4,vy4,vz4,norm4, &
491 485
!                      vx5,vy5,vz5,norm5, &
492 486
!                      vx2,vy2,vz2,norm2)
......
627 621
!     n4=Liaisons(Iat,2)
628 622
!     CALL vecteur(n2,n3,x,y,z,vx2,vy2,vz2,norm2)
629 623
!     CALL vecteur(n3,n4,x,y,z,vx3,vy3,vz3,norm3)
630
!     CALL produit_vect(vx3,vy3,vz3,norm3, &
631
!          vx2,vy2,vz2,norm2, &
632
!          vx5,vy5,vz5,norm5)
624
!     CALL produit_vect(vx3,vy3,vz3, vx2,vy2,vz2, vx5,vy5,vz5,norm5)
633 625
!
634 626
!     DO While ((ITmp.LE.FrozBlock(Iat,0)).AND.(sDihe.LE.0.09d0))
635 627
!        ITmp=ITmp+1
636 628
!        n1=FrozBlock(Iat,Itmp)
637 629
!        CALL vecteur(n2,n1,x,y,z,vx1,vy1,vz1,norm1)
638
!        CALL produit_vect(vx1,vy1,vz1,norm1, &
639
!             vx2,vy2,vz2,norm2, &
640
!             vx4,vy4,vz4,norm4)
630
!        CALL produit_vect(vx1,vy1,vz1,vx2,vy2,vz2, vx4,vy4,vz4,norm4)
641 631
!        val_d=angle_d(vx4,vy4,vz4,norm4,  &
642 632
!             vx5,vy5,vz5,norm5,           &
643 633
!             vx2,vy2,vz2,norm2)
......
655 645
!           if (FrozAt(Jat).AND.(.NOT.DejaFait(JAt))) THEN
656 646
!              n1=JAt
657 647
!              CALL vecteur(n2,n1,x,y,z,vx1,vy1,vz1,norm1)
658
!              CALL produit_vect(vx1,vy1,vz1,norm1,  &
659
!                   vx2,vy2,vz2,norm2,               &
660
!                   vx4,vy4,vz4,norm4)
648
!              CALL produit_vect(vx1,vy1,vz1, vx2,vy2,vz2, vx4,vy4,vz4,norm4)
661 649
!              val_d=angle_d(vx4,vy4,vz4,norm4,    &
662 650
!                   vx5,vy5,vz5,norm5,              &
663 651
!                   vx2,vy2,vz2,norm2)
......
676 664
!              if (.NOT.DejaFait(JAt)) THEN
677 665
!                 n1=JAt
678 666
!                 CALL vecteur(n2,n1,x,y,z,vx1,vy1,vz1,norm1)
679
!                 CALL produit_vect(vx1,vy1,vz1,norm1,   &
680
!                      vx2,vy2,vz2,norm2,                 &
681
!                      vx4,vy4,vz4,norm4)
667
!                 CALL produit_vect(vx1,vy1,vz1, vx2,vy2,vz2, vx4,vy4,vz4,norm4)
682 668
!                 val_d=angle_d(vx4,vy4,vz4,norm4,       &
683 669
!                      vx5,vy5,vz5,norm5,                 &
684 670
!                      vx2,vy2,vz2,norm2)
......
830 816
!     n4=I1
831 817
!     CALL vecteur(n2,n3,x,y,z,vx2,vy2,vz2,norm2)
832 818
!     CALL vecteur(n3,n4,x,y,z,vx3,vy3,vz3,norm3)
833
!     CALL produit_vect(vx3,vy3,vz3,norm3,  &
834
!          vx2,vy2,vz2,norm2,    &
835
!          vx5,vy5,vz5,norm5)
819
!     CALL produit_vect(vx3,vy3,vz3, vx2,vy2,vz2,vx5,vy5,vz5,norm5)
836 820
!
837 821
!     !     We will look at the other frozen atoms
838 822
!     !     we might improve the search so as to take the atom closest to IAt
......
842 826
!        if (FrozAt(Jat).AND.(.NOT.DejaFait(JAt))) THEN
843 827
!           n1=JAt
844 828
!           CALL vecteur(n2,n1,x,y,z,vx1,vy1,vz1,norm1)
845
!           CALL produit_vect(vx1,vy1,vz1,norm1, &
846
!                vx2,vy2,vz2,norm2, &
847
!                vx4,vy4,vz4,norm4)
829
!           CALL produit_vect(vx1,vy1,vz1, vx2,vy2,vz2, vx4,vy4,vz4,norm4)
848 830
!           val_d=angle_d(vx4,vy4,vz4,norm4,  &
849 831
!                vx5,vy5,vz5,norm5,   &
850 832
!                vx2,vy2,vz2,norm2)
......
863 845
!           if (.NOT.DejaFait(JAt)) THEN
864 846
!              n1=JAt
865 847
!              CALL vecteur(n2,n1,x,y,z,vx1,vy1,vz1,norm1)
866
!              CALL produit_vect(vx1,vy1,vz1,norm1,  &
867
!                   vx2,vy2,vz2,norm2, &
868
!                   vx4,vy4,vz4,norm4)
848
!              CALL produit_vect(vx1,vy1,vz1,vx2,vy2,vz2, vx4,vy4,vz4,norm4)
869 849
!              val_d=angle_d(vx4,vy4,vz4,norm4,   &
870 850
!                   vx5,vy5,vz5,norm5,           &
871 851
!                   vx2,vy2,vz2,norm2)
......
1175 1155
        val=angle(vx1,vy1,vz1,norm1,vx2,vy2,vz2,norm2)
1176 1156

  
1177 1157
        CALL vecteur(n3,n4,x,y,z,vx3,vy3,vz3,norm3)
1178
        CALL produit_vect(vx1,vy1,vz1,norm1,vx2,vy2,vz2,norm2, &
1179
             vx4,vy4,vz4,norm4)
1180
        CALL produit_vect(vx3,vy3,vz3,norm3,vx2,vy2,vz2,norm2, &
1181
             vx5,vy5,vz5,norm5)
1158
        CALL produit_vect(vx1,vy1,vz1,vx2,vy2,vz2,vx4,vy4,vz4,norm4)
1159
        CALL produit_vect(vx3,vy3,vz3,vx2,vy2,vz2,vx5,vy5,vz5,norm5)
1182 1160

  
1183 1161
        val_d=angle_d(vx4,vy4,vz4,norm4, vx5,vy5,vz5,norm5, &
1184 1162
             vx2,vy2,vz2,norm2)
......
1238 1216
  INTEGER(KINT), INTENT(IN) :: ind_zmat(Na,5)
1239 1217
  real(KREAL), INTENT(IN)   :: val_zmat(Na,3)
1240 1218

  
1241
  character(6) :: at1,at2,at3,at4,at5,d,a,dh
1219
  character(6) :: at1, at2, at3, at4, d, a, dh
1242 1220
  character(SCHARS), ALLOCATABLE :: tab(:) ! 3*na
1243 1221
  character(LCHARS) :: ligne
1244 1222
  
src/Calc_zmat.f90 (revision 2)
20 20
      integer(KINT), INTENT(OUT) :: ind_zmat(na,5)
21 21
      real(KREAL),INTENT(OUT) ::  val_zmat(na,3)
22 22

  
23
      character(2) :: ATOM
24
      integer(KINT) :: at,long
25 23

  
26
      real(KREAL) ::  vx,vy,vz,dist
27 24
      INTEGER(KINT), ALLOCATABLE :: LIAISONS(:,:) !(na,0:NMaxL
28 25
      INTEGER(KINT), ALLOCATABLE :: LiaisonsBis(:,:) ! na,0:NMaxL
29 26
      INTEGER(KINT), ALLOCATABLE :: LieS_CP(:,:),LieS_CF(:,:) ! (na,0:NMaxL)
30 27
      INTEGER(KINT), ALLOCATABLE :: NbAt3(:,:) !(Na,2)
31 28
      INTEGER(KINT), ALLOCATABLE :: CycleAt(:) !(Na)
32
      INTEGER(KINT) :: Nbli,Nblj
33 29
      INTEGER(KINT), ALLOCATABLE :: CAFaire(:) ! Na
34 30

  
35 31
      Integer(KINT) :: AtTypCycl(Max_Z)
36 32
      Integer(KINT) :: NbCycle
37 33
      real(KREAL) ::  vx1,vy1,vz1,norm1
38 34
      real(KREAL) ::  vx2,vy2,vz2,norm2
39
      real(KREAL) ::  vx3,vy3,vz3,norm3
40
      real(KREAL) ::  vx4,vy4,vz4,norm4
41
      real(KREAL) ::  vx5,vy5,vz5,norm5
42
      real(KREAL) ::  val,val_d
35
      real(KREAL) ::  val
43 36
      Logical PasFini,AtTerm,Debug,Bicycle,FLie3,FirstCycle
44 37
      LOGICAL, ALLOCATABLE ::  Former3(:), DejaFait(:) ! Na
45 38
      Logical FTmp
......
182 175
      END IF
183 176

  
184 177

  
185
 1036 FORMAT(I2)
186

  
187 178
!     Premiere etape : calcul des connectivites
188 179
      DO I=1,na
189 180
         DejaFait(I)=.FALSE.
......
958 949
            END IF
959 950
            IndAFaire=IndAFaire+1
960 951
         END DO
961
12345    CONTINUE
952
!12345    CONTINUE
962 953
      END DO
963 954

  
964 955
      if (debug) THEN
src/EgradPath.f90 (revision 2)
1
SUBROUTINE EGradPath(Iopt,Flag_Opt_Geom)
1
SUBROUTINE EGradPath(Iopt)
2 2

  
3 3
  ! This subroutine calculates the energy+gradient for all points of
4 4
  ! the path
......
13 13
  IMPLICIT NONE
14 14

  
15 15
  INTEGER(KINT), INTENT(IN) :: Iopt
16
  LOGICAL, INTENT(IN) :: Flag_Opt_Geom
17 16

  
18 17
  INTEGER(KINT) :: IGeom,IGeom0,IGeomF
19 18
  CHARACTER(LCHARS) :: Line,FileInp,RunCommand
src/Calc_baker.f90 (revision 2)
40 40
  REAL(KREAL), ALLOCATABLE :: UMat_tmp(:,:)
41 41
  INTEGER(KINT) :: NbBonds, NbAngles, NbDihedrals, IGeom
42 42

  
43
  real(KREAL) :: vx,vy,vz,dist, Norm
43
  real(KREAL) :: vx, vy, vz, Norm
44 44
  real(KREAL) :: vx1,vy1,vz1,norm1
45 45
  real(KREAL) :: vx2,vy2,vz2,norm2
46 46
  real(KREAL) :: vx3,vy3,vz3,norm3
47 47
  real(KREAL) :: vx4,vy4,vz4,norm4
48 48
  real(KREAL) :: vx5,vy5,vz5,norm5
49
  real(KREAL) :: val,val_d, Q, T
50 49

  
51
  INTEGER(KINT) :: I,J, n1,n2,n3,n4,IAt,IL,JL,IFrag,ITmp, K, KMax
52
  INTEGER(KINT) :: I0, IOld, IAtTmp, Izm, JAt, Kat, Lat, L, NOUT
50
  INTEGER(KINT) :: I, J, IAt, K
51
  INTEGER(KINT) :: Kat, Lat, L
53 52

  
54 53
  REAL(KREAL) :: sAngleIatIKat, sAngleIIatLat
55
  REAL(KREAL) :: DiheTmp
56 54

  
57
  LOGICAL :: debug, bond, AddPrimitiveCoord, FAIL
55
  LOGICAL :: debug, bond, AddPrimitiveCoord
58 56

  
59 57
  INTERFACE
60 58
     function valid(string) result (isValid)
......
124 122
!!!!!!!! PFL Debug
125 123
!
126 124
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
127
  REAL(KREAL), ALLOCATABLE :: V(:,:) ! (NCoord,NCoord)
128
  REAL(KREAL) :: tol
129 125
  INTEGER(KINT) :: I1,I2,I3,I4
130
  LOGICAL ::  FALOBBT,FALOBPrimt,FAloBBTInv
131 126
  LOGICAL :: debugPFL
132 127
  REAL(KREAL), ALLOCATABLE :: val_zmat(:,:)
133 128
  INTEGER(KINT), ALLOCATABLE :: indzmat0(:,:)
......
283 278
              Call vecteur(I2,I1,x_refGeom,y_refGeom,z_refGeom,vx1,vy1,vz1,Norm1)
284 279
              Call vecteur(I2,I3,x_refGeom,y_refGeom,z_refGeom,vx2,vy2,vz2,Norm2)
285 280
              Call vecteur(I3,I4,x_refGeom,y_refGeom,z_refGeom,vx3,vy3,vz3,Norm3)
286
                       CALL produit_vect(vx1,vy1,vz1,norm1,vx2,vy2,vz2,norm2, &
281
                       CALL produit_vect(vx1,vy1,vz1,vx2,vy2,vz2, &
287 282
                            vx4,vy4,vz4,norm4)
288
                       CALL produit_vect(vx3,vy3,vz3,norm3,vx2,vy2,vz2,norm2, &
283
                       CALL produit_vect(vx3,vy3,vz3,vx2,vy2,vz2, &
289 284
                            vx5,vy5,vz5,norm5)
290 285
!                       CurrentCoord%value=angle_d(vx4,vy4,vz4,norm4,vx5,vy5,vz5,norm5, &
291 286
!                            vx2,vy2,vz2,norm2)*Pi/180.
......
519 514

  
520 515
                       ! IF (AddPrimitiveCoord) THEN
521 516
                       !   NbDihedrals=NbDihedrals+1
522
                       !  CALL produit_vect(vx3,vy3,vz3,norm3,vx2,vy2,vz2,norm2, &
517
                       !  CALL produit_vect(vx3,vy3,vz3,vx2,vy2,vz2, &
523 518
                            !      vx5,vy5,vz5,norm5)
524
                       !CALL produit_vect(vx1,vy1,vz1,norm1,vx2,vy2,vz2,norm2, &
519
                       !CALL produit_vect(vx1,vy1,vz1,vx2,vy2,vz2, &
525 520
                            !    vx4,vy4,vz4,norm4)
526 521
                       !         CurrentCoord%value=angle_d(vx4,vy4,vz4,norm4,vx5,vy5,vz5,norm5, &
527 522
                       !             vx2,vy2,vz2,norm2)*Pi/180.
......
598 593
                    IF (AddPrimitiveCoord) THEN
599 594
                       NbDihedrals=NbDihedrals+1
600 595
                       Call vecteur(iat,lat,x_refGeom,y_refGeom,z_refGeom,vx3,vy3,vz3,Norm3)
601
                       CALL produit_vect(vx3,vy3,vz3,norm3,vx2,vy2,vz2,norm2, &
596
                       CALL produit_vect(vx3,vy3,vz3,vx2,vy2,vz2, &
602 597
                            vx5,vy5,vz5,norm5)
603
                       CALL produit_vect(vx1,vy1,vz1,norm1,vx2,vy2,vz2,norm2, &
598
                       CALL produit_vect(vx1,vy1,vz1,vx2,vy2,vz2, &
604 599
                            vx4,vy4,vz4,norm4)
605 600
                       CurrentCoord%value=angle_d(vx4,vy4,vz4,norm4,vx5,vy5,vz5,norm5, &
606 601
                            vx2,vy2,vz2,norm2)*Pi/180.
......
702 697
!            Call vecteur(ScanCoord%At2,ScanCoord%At1,x,y,z,vx1,vy1,vz1,Norm1)
703 698
!            Call vecteur(ScanCoord%At2,ScanCoord%At3,x,y,z,vx2,vy2,vz2,Norm2)
704 699
!            Call vecteur(ScanCoord%At3,ScanCoord%At4,x,y,z,vx3,vy3,vz3,Norm3)
705
!            Call produit_vect(vx1,vy1,vz1,norm1,vx2,vy2,vz2,norm2, &
700
!            Call produit_vect(vx1,vy1,vz1,vx2,vy2,vz2, &
706 701
!                 vx4,vy4,vz4,norm4)
707
!            Call produit_vect(vx3,vy3,vz3,norm3,vx2,vy2,vz2,norm2, &
702
!            Call produit_vect(vx3,vy3,vz3,vx2,vy2,vz2, &
708 703
!                 vx5,vy5,vz5,norm5)
709 704

  
710 705
!                  DiheTmp= angle_d(vx4,vy4,vz4,norm4,vx5,vy5,vz5,norm5, &
src/Decomp_frag.f90 (revision 2)
11 11
  LOGICAL,       INTENT(IN) :: ListAt(na)
12 12
  INTEGER(KINT), INTENT(OUT) :: NbFrag,Fragment(na),NbAtFrag(na),FragAt(na,na)
13 13

  
14
  INTEGER(KINT) :: i,j,k,iat,jat
14
  INTEGER(KINT) :: i, j, iat, jat
15 15
  INTEGER(KINT) :: IdxFrag, IdxtoDo, IFrag,IaFaire
16 16
  INTEGER(KINT), ALLOCATABLE :: ToDo(:)
17 17

  
src/egrad_chamfre.f90 (revision 2)
22 22
       REAL(KREAL), INTENT(IN) :: Geom(Nat,3)
23 23

  
24 24
!     Bohr --> Angstr
25
      real(KREAL), parameter :: BOHR   = 0.52917726D+00
25
!      real(KREAL), parameter :: BOHR   = 0.52917726D+00
26 26

  
27 27
!! PFL 2010 Nov. 28 ->
28 28
! for now I keep this old F77 scheme. This has to be replaced by ALLOCATABLE
......
30 30
! <- PFL 2010 Nov 28.
31 31
  REAL(KREAL) :: xa(100),ya(100),za(100),dvdr(100,3)
32 32
  REAL(KREAL) :: rshort,rlong,zshort,zlong
33
  REAL(KREAL), SAVE :: rnc,rnn,rhh,rch,rnh,ann(100),anc(100),anh(100),ach(100),ahh(100),a(100)
33
  REAL(KREAL), SAVE :: rnc, rnn, rhh, rch, rnh, ann(100), anc(100), anh(100), ach(100), ahh(100)
34 34
  REAL(KREAL) :: dv(100,10,3),df(100,10,3)
35 35
  REAL(KREAL) :: px(9000),py(9000),pz(9000),tmp,temp,rtemp,yf
36 36
  INTEGER(KINT) :: ka(9000),kx(9000),ky(9000),itx,ity,nf(100),mf(100,500)
37
  REAL(KREAL) :: xi(3),xj(3),xk(3),rij,rik,rjk,rji,rki,er,eb
38
  REAL(KREAL) :: fcut,tf,bodij,bodji,bod,cost,gtheta,dgdt,xt,t1,t2,t3
39
  REAL(KREAL) :: zi,fcut2
37
  REAL(KREAL) :: xi(3), xj(3), rij, er, eb
38
  REAL(KREAL) :: fcut, tf
40 39
  INTEGER(KINT) :: np,nq,nh,nc
41 40
  INTEGER(KINT) :: i, j, nn, m, n, mid, n1, im, jm, n2,n3,n4, iat
42 41
  LOGICAL, SAVE :: First=.TRUE.
......
584 583
subroutine fctNiNi(r2,r,fcut)
585 584

  
586 585
   IMPLICIT NONE
... Ce différentiel a été tronqué car il excède la taille maximale pouvant être affichée.

Formats disponibles : Unified diff