File: haddon.f

package info (click to toggle)
mopac7 1.15-6
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, buster, jessie, jessie-kfreebsd, stretch
  • size: 3,748 kB
  • ctags: 5,768
  • sloc: fortran: 35,321; sh: 9,039; ansic: 417; makefile: 80
file content (66 lines) | stat: -rw-r--r-- 1,631 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
      SUBROUTINE HADDON (W,L,M,LOC,A)
      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
      DIMENSION A(3,*)
C**********************************************************************
C
C   HADDON CALCULATES THE VALUE OF A SYMMETRY-DEPENDENT VARIABLE
C
C  ON INPUT: M   = NUMBER SPECIFYING THE SYMMETRY OPERATION
C            LOC = ADDRESS OF REFERENCE ATOM
C            A   = ARRAY OF INTERNAL COORDINATES
C  ON OUTPUT W   = VALUE OF DEPENDENT FUNCTION
C            L   = 1 (FOR BOND LENGTH), 2 (ANGLE), OR 3 (DIHEDRAL)
C**********************************************************************
      PI = 3.1415926536D00
      IF (M.GT.18 .OR. M.LT.1) THEN
         WRITE(6,'(///10X,''UNDEFINED SYMMETRY FUNCTION USED'')')
         STOP
      ENDIF
      I=LOC
      GO TO
     1(140,160,10,20,30,40,50,60,70,80,90,100,110,120,150,170,180,190),
     2M
   10 W=A(3,I)
      GO TO 130
   20 W=(PI/2.0D00)-A(3,I)
      GO TO 130
   30 W=(PI/2.0D00)+A(3,I)
      GO TO 130
   40 W=(2.0D00*PI/3.0D00)-A(3,I)
      GO TO 130
   50 W=(2.0D00*PI/3.0D00)+A(3,I)
      GO TO 130
   60 W=(PI)-A(3,I)
      GO TO 130
   70 W=(PI)+A(3,I)
      GO TO 130
   80 W=(4.0D00*PI/3.0D00)-A(3,I)
      GO TO 130
   90 W=(4.0D00*PI/3.0D00)+A(3,I)
      GO TO 130
  100 W=(3.0D00*PI/2.0D00)-A(3,I)
      GO TO 130
  110 W=(3.0D00*PI/2.0D00)+A(3,I)
      GO TO 130
  120 W=-A(3,I)
  130 L=3
      RETURN
  140 L=1
      W=A(1,I)
      RETURN
  150 L=1
      W=A(1,I)/2.0D00
      RETURN
  160 L=2
      W=A(2,I)
      RETURN
  170 L=2
      W=A(2,I)/2.0D00
      RETURN
  180 L=2
      W=PI-A(2,I)
      RETURN
  190 CALL DEPVAR (A,I,W,L)
      RETURN
C
      END