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
|
C
SUBROUTINE LOAD_DEFINED (PRPINT, NSIZE, NAO)
C
C THIS ROUTINE READS A LIST OF DEFINED TWO INDEXED QUANTITIES.
C
IMPLICIT DOUBLE PRECISION (A-H, O-Z)
DIMENSION PRPINT(NAO, NAO), BUF(600), IBUF(600)
C
COMMON /MACHSP/ IINTLN,IFLTLN,IINTFP,IALONE,IBITWD
COMMON /FILES/ LUOUT, MOINTS
COMMON /FLAGS/IFLAGS(100)
C
NNM1O2(IX) = (IX*(IX-1))/2
IEXTI(IX) = 1 + (-1+INT(DSQRT(8.D0*IX+0.999D0)))/2
IEXTJ(IX) = IX - NNM1O2(IEXTI(IX))
C
C READ IN THE PROPERTY INTEGRALS
C
IPRINT = IFLAGS(1)
CALL ZERO (PRPINT, NSIZE)
1 READ(30) BUF, IBUF, NUT
DO 10 I = 1, NUT
INDI = IEXTI(IBUF(I))
INDJ = IEXTJ(IBUF(I))
PRPINT(INDI, INDJ) = BUF(I)
PRPINT(INDJ, INDI) = PRPINT(INDI, INDJ)
10 CONTINUE
C
IF(NUT .EQ. 600) GOTO 1
C IF (IPRINT .GE. 40) THEN
C CALL HEADER ('PROPERTY INTEGRALS', -1, 6)
C CALL TAB (LUOUT, PRPINT, NAO, NAO, NAO, NAO)
C ENDIF
RETURN
END
|