1 SUBROUTINE DERI23 (F,FD,E,FCI,CMO,EMO,NORBS)
2 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
4 DIMENSION F(*), FD(*), E(*), FCI(*), CMO(NORBS,*), EMO(*)
5 ***********************************************************************
6 * 1) UNPACK THE C.I-ACTIVE M.O. DERIVATIVES IN M.O. BASIS,
7 * DIAGONAL BLOCKS INCLUDED.
8 * 2) EXTRACT THE FOCK EIGENVALUES RELAXATION OVER C.I-ACTIVE M.O.
10 * F : UNSCALED SOLUTIONS VECTOR IN M.O. BASIS,
11 * OFF-DIAGONAL BLOCKS PACKED AS DEFINED IN 'DERI21'.
12 * FD : DIAGONAL BLOCKS OF NON-RELAXED FOCK MATRIX
13 * AS DEFINED IN 'DERI1'.
14 * E(NORBS) : FOCK EIGENVALUES.
15 * FCI : DIAGONAL BLOCKS OF RELAXATION OF THE FOCK MATRIX.
16 * NORBS : NUMBER OF M.O
17 * NELEC,NMOS : # OF LAST FROZEN CORE M.O , C.I-ACTIVE BAND LENGTH.
19 * CMO(N,NELEC+1,...,NELEC+NMOS): C.I-ACTIVE M.O DERIVATIVES
21 * EMO( NELEC+1,...,NELEC+NMOS): C.I-ACTIVE FOCK EIGENVALUE RELAXATI
23 ***********************************************************************
24 COMMON /FOKMAT/ FDUMY(MPACK), SCALAR(MPACK)
25 COMMON /NVOMAT/ DIAG(MPACK/2)
26 COMMON /CIBITS/ NMOS,LAB,NELEC,NBO(3)
27 1 /MOLKST/ NDUMY(4*NUMATM+8),FRACT
34 C COMPUTE AND UNPACK DIAGONAL BLOCKS, DIAGONAL TERMS INCLUDED,
35 C ACCORDING TO CMO(I,J) = (FD(I,J)-FCI(I,J))/(E(I)-E(J))
36 C AND TAKING CMO(I,J)=0 IF E(I)=E(J) (THRESHOLD 1D-4 EV),
37 C I.E WHEN M.O. DEGENERACY OCCURS.
43 N1=MAX(NINIT,NELEC+1 )
44 N2=MIN(NEND ,NELEC+NMOS)
50 IF(ABS(DIFFE).GT.1.D-4) THEN
51 COM=(FD(L)-FCI(L))/DIFFE
62 C C.I-ACTIVE EIGENVALUES RELAXATION.
63 CALL SCOPY(NMOS,FCI(L),1,EMO(NELEC+1),1)
67 C UNPACK THE ANTISYMMETRIC MATRIX F IN CMO, (OFF-DIAGONAL BLOCKS).
70 IF(NBO(2).GT.0 .AND. NBO(1).GT.0) THEN
72 SCAL=1.D0/(2.D0-FRACT+CONST)
74 DO 40 I=NBO(1)+1,NOPEN
80 IF(NBO(3).GT.0 .AND. NBO(1).GT.0) THEN
90 IF(NBO(3).NE.0 .AND. NBO(2).NE.0) THEN
92 SCAL=1.D0/(FRACT+CONST)
93 DO 60 J=NBO(1)+1,NOPEN
94 DO 60 I=NOPEN+1 ,NORBS