File: domorsexyz_ric.F

package info (click to toggle)
aces3 3.0.6-7
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 82,460 kB
  • sloc: fortran: 225,647; ansic: 20,413; cpp: 4,349; makefile: 953; sh: 137
file content (82 lines) | stat: -rw-r--r-- 2,658 bytes parent folder | download | duplicates (6)
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
C  Copyright (c) 2003-2010 University of Florida
C
C  This program is free software; you can redistribute it and/or modify
C  it under the terms of the GNU General Public License as published by
C  the Free Software Foundation; either version 2 of the License, or
C  (at your option) any later version.

C  This program is distributed in the hope that it will be useful,
C  but WITHOUT ANY WARRANTY; without even the implied warranty of
C  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
C  GNU General Public License for more details.

C  The GNU General Public License is included in this distribution
C  in the file COPYRIGHT.
      SUBROUTINE DOMORSEXYZ_RIC(SCRATCH, NOPT, NX, LUOUT)
C
      IMPLICIT DOUBLE PRECISION (A-H, O-Z)
C
      INTEGER TOTREDNCO, TOTNOFBND
      LOGICAL BONDED
C     Maximum number of atoms currently allowed
#include "mxatms.par"
C
      DIMENSION IBNDTO(NATOMS*NATOMS), IREDUNCO(4, MAXREDUNCO) 
      DIMENSION SCRATCH(NX*NX)
      LOGICAL I_UNIQUE(MAXREDUNCO)
C
#include "cbchar.com"
#include "coord.com"
C
      COMMON /MACHSP/ IINTLN,IFLTLN,IINTFP,IALONE,IBITWD
C 
      CALL IGETREC(20, 'JOBARC', 'IBONDTO ', NATOMS*NATOMS, IBNDTO)
      CALL IGETREC(20, 'JOBARC', 'REDNCORD', 1, TOTREDNCO)
      CALL IGETREC(20, 'JOBARC', 'UNIQUEDF', TOTREDNCO, I_UNIQUE)
      CALL IGETREC(20, 'JOBARC', 'CONTEVIT', 4*TOTREDNCO, IREDUNCO)
C
      DO IOPT = 1,  NOPT
C
         IATM = IREDUNCO(1, IOPT)
         JATM = IREDUNCO(2, IOPT)
         KATM = IREDUNCO(3, IOPT)
C
         IF (I_UNIQUE(IOPT) .AND. KATM .EQ. 0) THEN
C
            NA = IATNUM(IATM)
            NB = IATNUM(JATM)
C
            CALL MORSEA(NA, NB, A)
C     
            IF(A.EQ.0.D0)THEN
               WRITE(LUOUT,1474)ZSYM(IATM),ZSYM(IATM)
 1474          FORMAT(T3,'@EFOL-I, No Morse constant available',
     &                'for ',A5, '-',A5,'.  Default used.')
            ENDIF
C
C Scale factor calculated from internal coordinates (not
C symmetry coordinate increment)
C
            Z = SCRATCH(NOPT + IOPT)/
     &          DSQRT(DFLOAT(NEQ(NOPTI(IOPT)) + 1))
C
            IF (DABS(Z) .GT. 0.75D0) THEN
               WRITE(LUOUT, 7208) VARNAM(IOPT)
 7208          FORMAT(T3,' NR step for ',A5,' too large.  MANR ',
     &                'scaling not done.')
            ELSE
               CORR = 1.D0 + 1.5D0*A*Z+2.3333333D0*(A*Z)**2
               WRITE(LUOUT, 7201)CORR,VARNAM(IOPT)
 7201          FORMAT(T3,' MANR scale factor for NR step is ',
     &                F5.3,' for ', A5,'.')
               SCRATCH(NOPT + IOPT) = SCRATCH(NOPT + IOPT)*CORR
            ENDIF
C     
         ENDIF
C
      ENDDO 
C
      RETURN
      END