OSDN Git Service

MOPAC 6.06 is included in the binary
[molby/Molby.git] / mopac606_nbo / src / refer.f
1       SUBROUTINE REFER
2       IMPLICIT DOUBLE PRECISION (A-H,O-Z)
3       INCLUDE 'SIZES'
4       COMMON
5      1       /REFS/ ALLREF(107,6)
6      2       /MOLKST/ NUMAT,NAT(NUMATM),NFIRST(NUMATM),NMIDLE(NUMATM),
7      3                NLAST(NUMATM), NORBS, NELECS,NALPHA,NBETA,
8      4                NCLOSE,NOPEN,NDUMY,FRACT
9      5       /KEYWRD/ KEYWRD
10       LOGICAL ALLOK, ELEMNS(107), MIXOK, MIX
11       SAVE MIX
12       CHARACTER KEYWRD*241, ALLREF*80
13       DATA MIX/.FALSE./
14       MIXOK=(INDEX(KEYWRD,'PARASOK').NE.0)
15       DO 10 I=1,102
16    10 ELEMNS(I)=.FALSE.
17       IF(INDEX(KEYWRD,'PM3').NE.0)THEN
18          MODE=4
19       ELSEIF(INDEX(KEYWRD,'AM1').NE.0)THEN
20          MODE=3
21       ELSEIF(INDEX(KEYWRD,'MINDO').NE.0)THEN
22          MODE=2
23       ELSEIF(INDEX(KEYWRD,'PDG').NE.0)THEN
24          MODE=5
25       ELSEIF(INDEX(KEYWRD,'MDG').NE.0)THEN
26          MODE=6
27       ELSE
28          MODE=1
29       ENDIF
30       ALLREF(99,MODE)=' DUMMY ATOMS ARE USED; THESE DO NOT AFFECT '
31      1//'THE CALCULATION'
32       ALLREF(100,MODE)=' '
33       DO 20 I=1,NUMAT
34          J=NAT(I)
35    20 ELEMNS(J)=.TRUE.
36       ALLOK=.TRUE.
37       DO 30 I=1,102
38          IF(ELEMNS(I))THEN
39             IF(I.LT.99.AND..NOT.MIX.AND.MODE.EQ.3)
40      1MIX=(INDEX(ALLREF(I,3),'MNDO').NE.0)
41             IF(ALLREF(I,MODE)(1:1).NE.' ')THEN
42                WRITE(6,'(A,I3)')' DATA ARE NOT AVAILABLE FOR ELEMENT NO.
43      1',I
44                ALLOK=.FALSE.
45             ELSE
46                WRITE(6,'(A)')ALLREF(I,MODE)
47             ENDIF
48          ENDIF
49    30 CONTINUE
50       IF(MIX.AND..NOT.MIXOK)THEN
51          WRITE(6,40)
52      1  'SOME ELEMENTS HAVE BEEN SPECIFIED FOR WHICH ONLY MNDO',
53      2  'PARAMETERS ARE AVAILABLE.  SUCH MIXTURES OF METHODS ARE',
54      3  'VERY RISKY AND HAVE NOT BEEN FULLY TESTED.  IF YOU FEEL',
55      4  'THE RISK IS WORTH WHILE - CHECK THE MANUAL FIRST - THEN',
56      5  'SPECIFY "PARASOK" IN THE KEYWORDS'
57          STOP
58       ENDIF
59       IF(ALLOK)RETURN
60       WRITE(6,40)
61      1 'SOME ELEMENTS HAVE BEEN SPECIFIED FOR WHICH',
62      2 'NO PARAMETERS ARE AVAILABLE.  CALCULATION STOPPED.'
63       STOP
64    40 FORMAT(/////10X,A,4(/10X,A))
65       END