|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 111360 (0x1b300) Types: TextFile Names: »tmchf77«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ. └─⟦4334b4c0b⟧ └─⟦this⟧ »tmchf77«
program mchf77 c version 1981-07-14 LONG ASTER,NEXT LOGICAL FAIL,RSCAN(20),OMIT,PRINT,OUT,ORTHO,EZERO,LD,ALL REAL EL COMMON /TEST/FAIL,RSCAN,ORTHO,OMIT,EZERO,ALL COMMON /LABEL/CONFIG(3,40),EL(20),ATOM,TERM COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF zone oucz(128,1,stderror) INTEGER OUC,OUD,OUF,OUH COMMON /INOUT/ IUC,IUD,IUF,IUH,OUC,OUD,OUF,OUH data z/0.d0/,tol/0.d0/,no/0/,nd/0/,nwf/0/,np/0/,ncfg/0/, 1 ib/0/,ic/0/,nscf/0/ data pde/220*0.d0/,ek/20*0.d0/,e/400*0.d0/,ed/0.d0/,azd/0.d0/, 1 az/20*0.d0/,sum/20*0.d0/,s/20*0.d0/,dpm/20*0.d0/, 2 acc/20*0.d0/,meth/20*0/,ipr/0/ data iuc/0/,iud/0/,iuf/0/,iuh/0/,ouc/0/,oud/0/,ouf/0/,ouh/0/ C ASTER='*' READ (5,3) IUC,IUD,IUF,IUH,OUC,OUD,OUF,OUH 3 FORMAT(4I3) if (ouc.eq.6) goto 525 call zassign(oucz,ouc) call open(oucz,4,'hfwf',0) C C ***** INITIALIZE C 525 CALL INIT do 600 i=1,20 rscan(i)=.false. 600 continue ortho=.false. omit=.false. ezero=.false. ezero=.false. all=.false. H3 = H/D3 H1 = D2*H3 CH = H*H/D12 EH = EXP(-H) c the variables in 13 must be initialized acfg=0.d0 id=0 cfgtol=0.d0 scftol=0.d0 ld=.false. c end of new cards 1 FAIL = .FALSE. DO 4 I=1,20 DPM(I) = D10 DO 4 J=1,20 IF (I .NE. J) E(I,J) = 1.E-10 4 CONTINUE C C ***** DETERMINE DATA ABOUT THE PROBLEM C CALL DATAIO(NEW) 13 READ (5,2) PRINT,NSCF,IC,ACFG,ID,CFGTOL,SCFTOL,LD 2 FORMAT(L3,2I3,F3.1,I3,2F6.1,L3) 550 format(' test output',l3,2i8,f8.1,i8,2f8.1,l3) a write(6,550) print,nscf,ic,acfg,id,cfgtol,scftol,ld C C ***** PERFORM THE MCHF ITERATION C CALL SCF(ETOTAL,ACFG,SCFTOL,CFGTOL,LD,NEW) IF (FAIL) GO TO 6 C C ***** OUTPUT RESULTS IF PRINT = .TRUE. C IF (IB .GT. NWF ) GO TO 15 CALL OUTPUT(PRINT) CALL SUMMRY(ETOTAL) C C ***** CHECK FOR ISOELECTRONIC SEQUENCE OR END OF CASE. C 15 READ (5,10) NEXT,ATOM,ZZ,(ACC(I),I=1,NWF) 10 FORMAT(1X,I2,A6,F6.0,20F3.1) IF (NEXT .EQ. 0) GO TO 1 C C ***** SCALE RESULTS FOR ANOTHER MEMBER OF THE ISOELECTRONIC SEQUENCE C CALL SCALE(ZZ) WRITE (6,14) ATOM,TERM 14 FORMAT(1H1,9X,2A6) CALL ORTHOG GO TO 13 C C ***** SEARCH FOR AN * CARD DENOTING AN END OF CASE C 6 READ (5,12) NEXT 12 FORMAT(A1) IF (READERR.SHIFT.(-8).EQ.25) GOTO 5 IF (NEXT .EQ. ASTER) GO TO 1 GO TO 6 5 STOP END C C ------------------------------------------------------------------ C 3-2 A R R A Y C ------------------------------------------------------------------ C K C FROM THE AVERAGE ENERGIES AS WELL AS FROM CONTRIBUTION OF F C K C AND G WHICH ARISE EITHER AS DEVIATIONS FROM AN AVERAGE ENERGY OR C AS AN INTERACTION, TWO ARRAYS A(I,J,K) AND B(I,J,K) ARE C 2(K-1) C GENERATED. THE VALUE OF A IS THE COEFFICIENT OF Y (J,J) C IJK C IN THE POTENTIAL FUNCTION FOR THE I'TH RADIAL FUNCTION, C WHEREAS THE VALUE C !L -L !+2(K-1) C OF B IS THE COEFFICIENT OF Y I J (I,J)P (R) C IJK J C IN THE EXCHANGE FUNCTION. C C IN AN MCHF CALCULATION, THESE COEFFICIENTS DEPEND ON THE C MIXING COEFFICIENTS. C C SUBROUTINE ARRAY REAL QC COMMON /COEFF/A(20,20,5),B(20,20,5),CA(4,4),CB(5,5,5) COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR COMMON /STATE/WT(40),QC(20,40),CFG(200),CR(300),KFG(200),NF,NG,NR, 1 NL,IFG(200),NCI(200),JFG(200),NCJ(200),KR(300),I1R(300),I2R(300) 2 ,NCRI(300),J1R(300),J2R(300),NCRJ(300),IO(300),JO(300),IQ(300) 3 ,CL(20),ILI(20),NCLI(20),ILJ(20),NCLJ(20),ILO(20),JLO(20),LQ(20) COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF data r/220*0.d0/,rr/220*0.d0/,r2/220*0.d0/,p/4400*0.d0/, 1 y/4400*0.d0/,yk/220*0.d0/,yr/220*0.d0/, 2 x/220*0.d0/,n/20*0/,l/20*0/,max/20*0/ C C ***** INITIALIZE ARRAYS C DO 1 I=1,NWF SUM(I) = D0 DO 1 J=1,NWF DO 1 K=1,5 A(I,J,K) = D0 1 B(I,J,K) = D0 C C ***** DETERMINE COEFFICIENTS FOR AVERAGE ENERGIES OF CONFIGURATIONS C DO 2 K =1,NCFG C = WT(K)**2 DO 3 I=1,NWF IF (QC(I,K) .EQ. D0) GO TO 3 LI = L(I)+1 IF (LI .GT. 5) GO TO 3 DO 4 J=1,NWF IF (QC(J,K) .EQ. D0) GO TO 4 LJ = L(J)+1 IF (LJ .GT. 5) GO TO 4 IF (I .NE. J) GO TO 5 CC = C*QC(I,K)*(QC(I,K) - D1) A(I,I,1) = A(I,I,1) + CC IF (LI .EQ. 1) GO TO 4 DO 8 KL = 2,LI 8 A(I,I,KL) = A(I,I,KL) - CC*CA(LI-1,KL-1) GO TO 4 5 CC = C*QC(I,K)*QC(J,K) A(I,J,1) = A(I,J,1) + CC DO 9 KL =1,5 9 B(I,J,KL) = B(I,J,KL) - CC*CB(LI,LJ,KL) 4 CONTINUE 3 SUM(I) = SUM(I) + C*QC(I,K) 2 CONTINUE C C ***** CORRECT COEFFICIENTS FOR DEVIATIONS FROM THE AVERAGE FOR A C ***** SPECIFIC SL TERM AS DETERMINED BY THE INPUT DATA C IF (NF .EQ. 0) GO TO 10 C C ***** CORRECTIONS DUE TO 'FK' INTEGRALS C DO 11 I=1,NF K = KFG(I)/2 + 1 NI = NCI(I) NJ = NCJ(I) CON = CFG(I)*WT(NI)*WT(NJ) II = IFG(I) IJ = JFG(I) A(II,IJ,K) = A(II,IJ,K) + CON 11 A(IJ,II,K) = A(IJ,II,K) + CON 10 IF (NG .EQ. 0) GO TO 12 C C ***** CORRECTIONS DUE TO 'GK' INTEGRALS C NFG = NF + NG NFP = NF + 1 DO 13 I= NFP,NFG II = IFG(I) IJ = JFG(I) NI = NCI(I) NJ = NCJ(I) LI = L(II) LJ = L(IJ) KL = (KFG(I) - IABS(LI - LJ))/2 + 1 CON = CFG(I)*WT(NI)*WT(NJ) B(II,IJ,KL) = B(II,IJ,KL) + CON 13 B(IJ,II,KL) = B(IJ,II,KL) + CON C C ***** DIVIDE ALL ARRAYS FOR FUNCTION I BY THE EXPECTED OCCUPATION C ***** NUMBER FOR FUNCTION I, IF DIFFERENT FROM ZERO C 12 DO 15 I = 1,NWF IF (SUM(I) .EQ. D0) GO TO 15 DO 14 J=1,NWF DO 14 K=1,5 A(I,J,K) = A(I,J,K)/SUM(I) 14 B(I,J,K) = B(I,J,K)/SUM(I) 15 CONTINUE RETURN END C C ------------------------------------------------------------------ C 3-3 D A T A C ------------------------------------------------------------------ C C DATA CONCERNING THE NUMBER OF CONFIGURATIONS (NCFG), THE NUMBER C AND TYPE OF ELECTRONS IN EACH CONFIGURATION, AS WELL AS DATA C ASSOCIATED WITH THE ENERGY EXPRESSION ARE READ AND STORED. C SUBROUTINE DATAIO(NEW) REAL QC LONG BL,EL,EL1,EL2 LOGICAL FAIL,RSCAN(20),OMIT,ORTHO,EZERO,LWT,ALL COMMON /TEST/FAIL,RSCAN,ORTHO,OMIT,EZERO,ALL COMMON /LABEL/CONFIG(3,40),EL(20),ATOM,TERM COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /STATE/WT(40),QC(20,40),CFG(200),CR(300),KFG(200),NF,NG,NR, 1 NL,IFG(200),NCI(200),JFG(200),NCJ(200),KR(300),I1R(300),I2R(300) 2 ,NCRI(300),J1R(300),J2R(300),NCRJ(300),IO(300),JO(300),IQ(300) 3 ,CL(20),ILI(20),NCLI(20),ILJ(20),NCLJ(20),ILO(20),JLO(20),LQ(20) COMMON /TEMP/ATM(20),TRM(20),ZZ(20),IND(20),IDUM(3181) INTEGER OUC,OUD,OUF,OUH COMMON /INOUT/ IUC,IUD,IUF,IUH,OUC,OUD,OUF,OUH data atm/20*0.d0/,trm/20*0.d0/,zz/20*0.d0/,ind/20*0/,idum/3181*0/ C C ***** READ 'ATOM' CARD C BL=' ' READ (5,1) ATOM,TERM,Z,NO,NWF,NIT,NCFG,NF,NG,NR,NL,ORTHO, 1 OMIT,NEW 1 FORMAT(2A6,F6.0,I6,7I3,2L3,I3) IB = NWF - NIT + 1 ND = NO - 2 WRITE (6,2) ATOM,TERM,Z 2 FORMAT(1H1///9X,33HHARTREE-FOCK WAVE FUNCTIONS FOR ,2A6,4H Z =, 1 F5.1//27X,13HCONFIGURATION,15X,6HWEIGHT//) OMIT = .NOT. OMIT C C ***** READ 'CONFIGURATION' CARDS AND NORMALIZE THE WEIGHTS C W = D0 DO 3 I=1,NCFG READ (IUC,4) CONFIG(1,I),CONFIG(2,I),CONFIG(3,I),WTT,LWT IF (.NOT. LWT) WT(I) = WTT 4 FORMAT(3A8,F10.8,L1) 3 W = W + WT(I)**2 C C ***** IF INPUT WEIGHTS ARE ALL ZERO, SET EACH = 1/SQRT(NCFG) C IF (W .NE. D0) GO TO 21 W = NCFG DO 22 I=1,NCFG 22 WT(I) = D1 21 W = SQRT(W) DO 18 I = 1,NCFG WT(I) = WT(I)/W 18 WRITE (6,5) I, CONFIG(1,I), CONFIG(2,I), CONFIG(3,I), WT(I) 5 FORMAT(14X,I2,6X,3A8,F19.8) WRITE (6,6)(I,I=1,NCFG) 6 FORMAT(//9X,10HINPUT DATA/9X,10H----- ----//13X,13HWAVE FUNCTION, 1 11H PROCEDURE,6X,41HNUMBER OF ELECTRONS IN EACH CONFIGURATION/ 2 17X,22HNL SIGMA METH ACC OPT,20I4/40X,20I4) WRITE (6,66) 66 FORMAT(//) C C ***** READ 'ELECTRON ' CARD C DO 9 I = 1,NWF READ (5,7) EL(I),N(I),L(I),S(I),METH(I),ACC(I),IND(I), 1 (QC(I,J),J=1,NCFG) 7 FORMAT(A3,2I3,F6.2,I3 ,F3.1,I3,15F3.0/24X,15F3.0/24X,15F3.0) WRITE (6,8) I,EL(I),N(I),L(I),S(I),METH(I),ACC(I),IND(I) 1 ,(QC(I,J),J=1,NCFG) 8 FORMAT(I8, 2X,A3,2I3,F7.1,I4,F4.1,I4,1X,20F4.0/40X,20F4.0) SUM(I) = D0 DO 36 J = 1,NCFG IF (QC(I,J) .GT. D0 ) SUM(I)=SUM(I) + QC(I,J)*WT(J)**2 IF ( QC(I,J) .LT. D0 ) QC(I,J) = 1.E-15 36 CONTINUE C C ***** INITIALIZE ARRAYS, IF NECESSARY C IF (IND(I) .EQ. 1) GO TO 9 E(I,I) = D0 EK(I) = D0 AZ(I) = D0 9 RSCAN(I) = .TRUE. WRITE (6,10) 10 FORMAT(//9X,9HENERGY = ,9X,12HE(AVERAGE) + //) C C ***** READ 'FK' AND 'GK' CARDS C NFG = NF + NG IF (NFG .EQ. 0) GO TO 13 DO 20 I=1,NFG READ (IUD,11) CFG(I),W,KFG(I),IFG(I),NCI(I),JFG(I),NCJ(I) 11 FORMAT(F12.8,A1,I1,1X,2I2,1X,2I2) IF ( OUD .EQ. 0 ) GO TO 20 I1 = IFG(I) I2 = JFG(I) WRITE (6,12) CFG(I),NCI(I),NCJ(I),W,KFG(I),EL(I1),EL(I2) 12 FORMAT(26X,F14.8,3H*C(,I2,4H)*C(,I2,2H) ,A1,I1,1H(,A3,1H,,A3,1H)) 20 CONTINUE 13 IF (NR .EQ. 0) GO TO 17 C C ***** READ 'RK' CARDS AND SET RSCAN(I)=.FALSE. IF WAVEFUNCTION I C ***** IS PRESENT IN THE RK INTEGRAL C DO 14 I=1,NR READ (IUD,15) CR(I),KR(I),I1R(I),I2R(I),NCRI(I),J1R(I),J2R(I), 1 NCRJ(I),IO(I),JO(I),IQ(I) 15 FORMAT(F12.8,1X,I1,1X,3I2,1X,3I2,2X,I2,1X,I2,1X,I2) I1 = I1R(I) I2 = I2R(I) J1 = J1R(I) J2 = J2R(I) EL1 = BL EL2 = BL IF (IQ(I) .EQ. 0) GO TO 30 II = IO(I) JJ = JO(I) RSCAN(II) = .FALSE. RSCAN(JJ) = .FALSE. EL1 = EL(II) EL2 = EL(JJ) 30 IF ( OUD .EQ. 0 ) GO TO 23 WRITE (6,16) CR(I),NCRI(I),NCRJ(I),KR(I),EL(I1),EL(I2),EL(J1), 1 EL(J2),EL1,EL2,IQ(I) 16 FORMAT(26X,F14.8,3H*C(,I2,4H)*C(,I2,3H) R,I1,1H(,2A3,1H,,2A3,2H)< 1 ,A3,1H!,A3,1H>,I2) 23 RSCAN(I1) = .FALSE. RSCAN(I2) = .FALSE. RSCAN(J1) = .FALSE. 14 RSCAN(J2) = .FALSE. 17 IF (NL .EQ. 0) GO TO 31 C C ***** READ 'L' CARDS AND SET RSCAN(I)=.FALSE. IF WAVEFUNCTION I C ***** IS PRESENT IN THE L INTEGRAL C DO 32 I = 1,NL READ (IUD,33) CL(I),ILI(I),NCLI(I),ILJ(I),NCLJ(I),ILO(I),JLO(I), 1 LQ(I) 33 FORMAT(F12.8,2X,2I2,1X,2I2,2X,I2,1X,I2,1X,I2) I1 = ILI(I) J1 = ILJ(I) EL1 = BL EL2 = BL IF (LQ(I) .EQ. 0) GO TO 34 I2 = ILO(I) J2 = JLO(I) EL1 = EL(I2) EL2 = EL(J2) RSCAN(I2) = .FALSE. RSCAN(J2) = .FALSE. 34 IF ( OUD .EQ. 0 ) GO TO 24 WRITE (6,35) CL(I),NCLI(I),NCLJ(I),EL(I1),EL(J1),EL1,EL2,LQ(I) 35 FORMAT(26X,F14.8,3H*C(,I2,4H)*C(,I2,4H) L(,A3,1H,,A3,2H)<, 1 A3,1H!,A3,1H>,I2) 24 RSCAN(I1) = .FALSE. 32 RSCAN(J2) = .FALSE. 31 IF ( OUD .EQ. 0 ) WRITE(6,25) NF, NG, NR, NL 25 FORMAT(19X,I3,17H FK INTEGRAL(S) +/19X,I3,17H GK INTEGRAL(S) +/ 1 19X,I3,17H RK INTEGRAL(S) +/19X,I3,15H L INTEGRAL(S) ) C C ***** COMPUTE THE INITIAL ARRAY AND INITIAL RADIAL FUNCTIONS C IF ( NIT .NE. 0) CALL ARRAY CALL WAVEFN RETURN STOP END C C ------------------------------------------------------------------ C 3-4 D E C ------------------------------------------------------------------ C C THIS ROUTINE CONTROLS THE SOLUTION OF THE DIFFERENTTIAL EQUATION C FOR THE RADIAL FUNCTION P . ONE OF THREE METHODS IS SELECTED - C I1 C M1, M2, OR M3 - FOR SOLVING THE EQUATIONS, THE INITIAL CHOICE C BEING DETERMINED BY AN INPUT PARAMTER, METH(I), EXCEPT WHEN NO C EXCHANGE IS PRESENT, IN WHICH CASE M2 IS SELECTED. (FOR FURTHER C INFORMATION SEE SEC. 7-4) C C VALUE OF METH(I) METHOD C --------------- ------ C < OR =1 M1 WITH SEARCH FOR AN ACCEPTABLE SOLUTION C =2 M2 WITH SEARCH FOR AN ACCEPTABLE SOLUTION C =3 M1 WITHOUT ANY CHECKING OF THE SOLUTION C C IF M1 FAILS TO FIND AN ACCEPTABLE SOLUTION, THE RADIAL FUNCTIONS C ARE ORTHOGONALIZED, OFF-DIAGONAL ENERGY PARAMETERS RECOMPUTED, C AND THE METHOD TRIED AGAIN. SHOULD IT CONTINUE TO FAIL, METH(I) C IS SET TO 2. C SUBROUTINE DE(I1) LONG EL LONG ASTER(3) LOGICAL FAIL,RSCAN(20),OMIT,ORTHO,EZERO,OTHER,ALL COMMON /TEST/FAIL,RSCAN,ORTHO,OMIT,EZERO ,ALL COMMON /COEFF/A(20,20,5),B(20,20,5),CA(4,4),CB(5,5,5) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR COMMON /LABEL/CONFIG(3,40),EL(20),ATOM,TERM COMMON /TEMP/P2(220),HQ(220),XX(220),AZZ,PP,FN,EM,FM,EU,FU, 1 DELTAE,M,NODE,MK,KK,NJ,IDUM(1980) ASTER(1)=' ' ASTER(2)='* ' ASTER(3)='**' I = I1 ED2 = E(I,I) KK= MAX0(1,METH(I)) IF (NWF .EQ. 1) KK = 2 NODE = N(I) - L(I) - 1 C C ***** CALL METHOD TO SOLVE THE DIFFERENTIAL EQUATION C CALL METHOD(I) IF ( FAIL ) GO TO 25 C 12 PN = SQRT(QUAD(I,M,PDE,PDE)) DO 9 J = 1,M 9 PDE(J) = PDE(J)/PN AZZ = AZZ/PN C C ***** SET THE ACCELERATING PARAMETER C C IF (IPR .NE. I ) GO TO 33 ED2 = ED2 - E(I,I) IF (ED1*ED2 .GT. D0) ACC(I) = .75*ACC(I) IF (ED1*ED2 .LT. D0) ACC(I) = (D1 + D3*ACC(I))/D4 33 C = ACC(I) CD = D1 - C C C ***** IMPROVE THE ESTIMATES C MAX(I) = M DP = D0 DO 21 J = 1,M DIFF = P(I,J)-PDE(J) DP = AMAX1(DP ,ABS(DIFF)*R2(J)) 21 P(I,J) = PDE(J) + C*DIFF IF (M .EQ. NO) GO TO 26 M = M + 1 DO 24 J = M,NO 24 P(I,J) = D0 AZ(I) = CD*AZZ + C*AZ(I) IF (C .EQ. D0) GO TO 28 26 PNN = SQRT(QUADR(I,I,0)) DO 30 J = 1,M 30 P(I,J) = P(I,J)/PNN AZ(I) = AZ(I)/PNN C C ***** CHECK THE ORTHOGONALIZATION C 28 DO 60 J = 1,NWF IF (J .GE. IB .AND. OMIT ) GO TO 60 IF (N(I) .EQ. N(J) .OR. L(I) .NE. L(J)) GO TO 60 IF (A(I,J,1) .EQ. D0 .AND. .NOT. ORTHO) GO TO 60 J1 = J J2 = I IF ( J .LT. IB .OR. DPM(J) .LT. DPM(I)) GO TO 61 J1 = I J2 = J 61 C = QUADR(J1,J2,0) D = SQRT(D1 - C*C) WRITE (6,63) EL(J1),EL(J2),C 63 FORMAT(6X,1H(,A3,1H/,A3,2H)=,1PE8.1) IF (P(J2,1) - C*P(J1,1) .LT. D0) D = -D DO 62 JJ = 1,NO 62 P(J2,JJ) = (P(J2,JJ) - C*P(J1,JJ))/D AZZ = (AZ(J2) - C*AZ(J1))/D IF (AZZ .GT. D0) AZ(J2) = AMAX1(AZZ,D5*AZ(J2)) IF (J2 .EQ. I) GO TO 60 CALL YKF(J2,J2,0) DO 64 JJ = 1,NO 64 Y(J2,JJ) = YK(JJ) 60 CONTINUE C C ***** GENERATE THE IMPROVED Y0 ARRAY C CALL YKF(I,I,0) DO 31 J = 1,NO 31 Y(I,J) = YK(J) WRITE (6,17) EL(I),E(I,I),AZ(I),PN,ASTER(KK),DP 17 FORMAT(20X,A3,2F15.7,F12.7, A2,1PE10.2) C DPM(I) = DP IF (IPR .EQ. I1) ED1 = ED2 IF (IPR .NE. I1) ED1 = ED2 - E(I1,I1) IPR = I1 RETURN C C ***** IF METHOD FAILED TO FIND AN ACCEPTABLE SOLUTION, ORTHOGONALIZE C ***** THE ESTIMATES AND TRY AGAIN C 25 CALL ORTHOG CALL GRANGE 27 CALL METHOD(I) IF ( FAIL ) GO TO 23 GO TO 12 C C ***** ERROR RETURN FROM SECOND TRY. IF M1 WAS USED,SWITCH TO C M2 AND TRY ONCE MORE. C 23 IF ( KK .EQ. 2) RETURN KK = 2 GO TO 27 END C C ------------------------------------------------------------------ C 3-5 D I A G C ------------------------------------------------------------------ C C THE DIAG SUBROUTINE COMPUTES AN ENERGY MATRIX AND, IF THE NUMBER C OF CONFIGURATIONS IS GREATER THAN 1, FINDS AN EIGENVALUE AND C EIGENVECTOR OF THIS MATRIX. C C GIVEN THE ACCELERATING PARAMETER FOR CONFIGURATION MIXING, C ACFG, AND THE RELATIVE CONVERGENCE CRITERION, CFGTOL, THE C ROUTINE RETURNS THE NEW VALUE OF THE TOTAL ENERGY AND THE C VALUE OF A LOGICAL VARIABLE, ECONV, WHICH WILL BE .TRUE. IF C THE RELATIVE DIFFERENCE OF THE TWO ENERGIES IS LESS C THAN CFGTOL. THE NEW MIXING COEFFICIENTS ARE STORED IN COMMON. C C SUBROUTINE DIAG(ETOTAL,ECONV,ACFG,CFGTOL,NC,LAST) REAL QC LONG EL LOGICAL ECONV,LAST COMMON /LABEL/CONFIG(3,40),EL(20),ATOM,TERM COMMON /STATE/WT(40),QC(20,40),CFG(200),CR(300),KFG(200),NF,NG,NR, 1 NL,IFG(200),NCI(200),JFG(200),NCJ(200),KR(300),I1R(300),I2R(300) 2 ,NCRI(300),J1R(300),J2R(300),NCRJ(300),IO(300),JO(300),IQ(300) 3 ,CL(20),ILI(20),NCLI(20),ILJ(20),NCLJ(20),ILO(20),JLO(20),LQ(20) COMMON /COEFF/A(20,20,5),B(20,20,5),CA(4,4),CB(5,5,5) COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR COMMON /TEMP/W(40,40),GKIJ(5),FKIJ,C,CC,CCC,RATIO,ETL, 1WP(40),CONT,ETPREV,LIJ,LI,LJ,IM,N1,N2,NFP,NFG,NM,IP,JP,II,JJ,I,J COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON /HMATRX/ET(40,40) INTEGER OUC,OUD,OUF,OUH COMMON /INOUT/ IUC,IUD,IUF,IUH,OUC,OUD,OUF,OUH C C ***** COMPUTE KINETIC ENERGY IF NECESSARY C c nc may be negative in the call. that is nonsense if (nc.le.0) nc=1 IF (IB .GT. NWF) GO TO 51 DO 50 I = IB,NWF 50 EK(I) = -D5*HL(I,I) C C ***** SET UP THE ENERGY MATRIX FOR DIFFERENT CONFIGURATIONS LEAVING C ***** AN NC BY NC PRINCIPAL SUBMATRIX UNCHAMGED C 51 DO 52 I = 1,NCFG 52 WP(I) = WT(I) DO 1 II = NC,NCFG DO 1 JJ = 1,II ET(JJ,II) = D0 1 ET(II,JJ) = D0 DO 2 I = 1,NWF IF (SUM(I) .EQ. D0) GO TO 2 LI = L(I) + 1 IF (LI .GT. 5) GO TO 2 DO 3 J = 1,I IF (SUM(J) .EQ. D0) GO TO 3 LJ = L(J) + 1 IF (LJ .GT. 5) GO TO 3 LIJ = IABS(LI - LJ) KMAX = (LI + LJ - LIJ)/2 IF (I .NE. J) FKIJ = FK(I,J,0) DO 4 K = 1,KMAX 4 GKIJ(K) = GK(I,J,LIJ+2*(K-1)) DO 5 II = NC,NCFG C = QC(I,II) IF (I .EQ. J) GO TO 6 CC = C*QC(J,II) ET(II,II) = ET(II,II) + CC*FKIJ DO 7 K = 1,KMAX CCC = CB(LI,LJ,K) 7 ET(II,II) = ET(II,II) - CC*CCC*GKIJ(K) GO TO 5 6 CC = D5*C*(C-D1) ET(II,II) = ET(II,II) + C*EK(I) + CC*GKIJ(1) IF (LI .EQ. 1) GO TO 5 DO 8 K = 2,KMAX 8 ET(II,II) = ET(II,II) - CA(LI-1,K-1)*CC*GKIJ(K) 5 CONTINUE 3 CONTINUE 2 CONTINUE IF (NF .EQ. 0) GO TO 10 C C ***** ADD CONTRIBUTIONS FROM 'FK' INTEGRALS C DO 11 I=1,NF N1 = NCI(I) N2 = NCJ(I) CONT = D5*CFG(I)*FK(IFG(I),JFG(I),KFG(I)) ET(N1,N2) = ET(N1,N2) + CONT 11 ET(N2,N1) = ET(N2,N1) + CONT 10 IF (NG .EQ. 0) GO TO 12 C C ***** ADD CONTRIBUTIONS FROM 'GK' INTEGRALS C NFP = NF+1 NFG = NF + NG DO 13 I=NFP,NFG N1 = NCI(I) N2 = NCJ(I) CONT = D5*CFG(I)*GK(IFG(I),JFG(I),KFG(I)) ET(N1,N2) = ET(N1,N2) + CONT 13 ET(N2,N1) = ET(N2,N1) + CONT 12 IF (NR .EQ. 0) GO TO 41 C C ***** ADD CONTRIBUTIONS FROM 'RK' INTEGRALS C DO 15 I =1,NR N1 = NCRI(I) N2 = NCRJ(I) CC = D1 IF (IQ(I) .NE. 0) CC = QUADR(IO(I),JO(I),0)**IQ(I) CONT =D5*CR(I)*CC *RK(I1R(I),I2R(I),J1R(I),J2R(I),KR(I)) ET(N1,N2) = ET(N1,N2) + CONT 15 ET(N2,N1) = ET(N2,N1) + CONT 41 IF ( NL .EQ. 0 ) GO TO 14 C C ***** ADD CONTRIBUTION FROM THE 'L' INTEGRALS C DO 42 I = 1,NL N1 = NCLI(I) N2 = NCLJ(I) CC = D1 IF (LQ(I) .NE. 0) CC = QUADR(ILO(I),JLO(I),0)**LQ(I) CONT = D5*CC*CL(I)*HL(ILI(I),ILJ(I)) ET(N1,N2) = ET(N1,N2) + CONT 42 ET(N2,N1) = ET(N2,N1) + CONT 14 IF (NCFG .EQ. 1) GO TO 37 IF (ID .GT. 0) GO TO 38 C C ***** COMPUTE EIGENVALUE AND EIGENVECTOR BY THE METHOD OF C ***** SEC. 6-8.2 THIS METHOD MAY CAUSE DIFFICULTIES WHEN NEAR C ***** DEGENERACY EFFECTS ARE PRESENT SINCE IT MAY CONVERGE TO C ***** THE WRONG EIGENVALUE. THE CODE UP TO, BUT NOT INCLUDING C ***** STATEMENT NUMBER 31, MAY BE REPLACED BY A CALL TO A MORE C ***** REFINED LIBRARY SUBROUTINE. C ETPREV = D0 DO 30 II=1,5 ETL = D0 C C ***** DETERMINE ESTIMATE OF THE EIGENVALUE C DO 16 I=1,NCFG CONT = D0 DO 17 J=1,NCFG 17 CONT = CONT + WT(J)*ET(I,J) 16 ETL = ETL + WT(I)*CONT C C ***** SOLVE SYSTEM OF EQUATIONS FOR EIGENVECTOR C DO 18 I=1,NCFG DO 19 J=1,NCFG 19 W(I,J) = ET(I,J) 18 W(I,I) = W(I,I) - ETL WT(1) = D1 IF (NCFG .NE. 2) GO TO 54 WT(2) = -W(2,1)/W(2,2) GO TO 20 54 NM = NCFG -1 DO 21 I=2,NM IP =I+1 DO 21 J=IP,NCFG RATIO = W(J,I)/W(I,I) DO 23 K=1,NCFG 23 W(J,K) = W(J,K) - RATIO*W(I,K) 21 CONTINUE WT(NCFG) = -W(NCFG,1)/W(NCFG,NCFG) DO 24 I = 2,NM J = NCFG -I+1 JP = J+1 WT(J) = - W(J,1) DO 25 K = JP,NCFG 25 WT(J) = WT(J) - W(J,K)*WT(K) 24 WT(J) = WT(J)/W(J,J) 20 DO 26 I=2,NCFG 26 WT(1) = WT(1) + WT(I)**2 WT(1) = D1/SQRT(WT(1)) DO 27 I=2,NCFG 27 WT(I) = WT(I)*WT(1) C C ***** ITERATE, IF NECESSARY, OTHERWISE OUTPUT RESULTS C IF (ABS((ETPREV-ETL)/ETL) .LT. 1.E-5) GO TO 31 30 ETPREV = ETL WRITE (6,40) 40 FORMAT(///10X,47HMATRIX DIAGONALIZATION PROCEDURE NOT CONVERGING ) DELTAE = D0 GO TO 33 31 DELTAE = ETL -ETOTAL 33 ETOTAL = ETL WRITE (6,32) ETOTAL 32 FORMAT(//10X,15HTOTAL ENERGY = ,F18.9 ) 39 WRITE (6,34) 34 FORMAT(/20X,6HWEIGHT,13X,13HENERGY MATRIX ) CC = D0 DO 28 I = 1,NCFG WT(I) = WT(I) + ACFG*(WP(I) - WT(I)) 28 CC = CC + WT(I)**2 CC = D1/SQRT(CC) DO 35 I=1,NCFG 35 WT(I) = WT(I)*CC II = NC IF (LAST) II = 1 DO 45 I = II,NCFG 45 WRITE (6,36) I,WT(I),(ET(I,J),J=1,I) 36 FORMAT(I10,F12.8,2X,7F15.7/(24X,7F15.7)) 70 IF (.NOT. LAST .OR. OUC .EQ. 0 ) GO TO 49 C C ***** PUNCH CONFIGURATIONS AND WEIGHTS ON UNIT OUC C WRITE(OUC,46) ATOM,TERM,ETOTAL 46 FORMAT(3X,2A6,F14.7) DO 47 J = 1,NCFG 47 WRITE(OUC,48) CONFIG(1,J),CONFIG(2,J),CONFIG(3,J),WT(J) 48 FORMAT(3A8,F10.7) IF ( OUH .EQ. 0 ) GO TO 49 DO 60 I = 1,NCFG 60 WRITE (OUH,61) (ET(I,J),J=1,I) 61 FORMAT(5F14.7) 49 ECONV = .FALSE. IF (ABS(DELTAE/ETOTAL) .LE. CFGTOL) ECONV = .TRUE. RETURN 37 ETOTAL = ET(1,1) DELTAE = D0 WRITE (6,32) ETOTAL GO TO 70 38 DELTAE = D0 ETOTAL = ET(1,1) GO TO 39 END C C ------------------------------------------------------------------ C 3-6 D I F F C ------------------------------------------------------------------ C C C STORES LP IN THE ARRAY YK. THE DIFFERENCE APPROXIMATION OF C I C EQ. (6-14) IS USED. C C SUBROUTINE DIFF(I) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR C C ***** FORM DD + 2Z/R -L(L+1)/RR!P(I)> C MM = MAX(I) - 3 FL = L(I) TZ = Z + Z C = (FL+D5)**2 HH = 180.E0*H*H DO 11 K = 4,MM 11 YK(K) = (D2*(P(I,K+3)+P(I,K-3)) - 27.E0*(P(I,K+2)+P(I,K-2)) + 1 270.E0*(P(I,K+1)+P(I,K-1)) - 490.E0*P(I,K))/HH + 2 P(I,K)*(TZ*R(K) - C) C C ***** BECAUSE OF THE POSSIBILITY OF EXTENSIVE CANCELLATION NEAR THE C ***** ORIGIN, SEARCH FOR THE POINT WHERE THE ASYMPTOTIC BEHAVIOUR C ***** BEGINS AND SMOOTH THE ORIGIN. C LEXP = L(I) + 2 Y1 = YK(4)/R2(4)/R(4)**LEXP Y2 = YK(5)/R2(5)/R(5)**LEXP DO 1 K = 4,100 KP = K+2 Y3 = YK(KP)/R2(KP)/R(KP)**LEXP IF (Y2 .EQ. D0) GO TO 1 IF (ABS(Y1/Y2 - D1) .LT. .05 .AND. ABS(Y3/Y2 - D1) .LT. .05) 1 GO TO 2 Y1 = Y2 Y2 = Y3 1 CONTINUE WRITE (6,3) I 3 FORMAT(6X,47HASYMPTOTIC REGION NOT FOUND FOR FUNCTION NUMBER,I3) STOP C C ***** ASYMPTOTIC REGION HAS BEEN FOUND C 2 KP = K KM = KP - 1 DO 4 K = 1,KM 4 YK(K) = Y1*R2(K)*R(K)**LEXP MM = MM + 1 YK(MM) = (-(P(I,MM+2)+P(I,MM-2)) + D16*(P(I,MM+1)+P(I,MM-1)) 1 -D30*P(I,MM))/(D12*H*H) + P(I,MM)*(TZ*R(MM) - C) MM = MM + 1 YK(MM) = (P(I,MM+1) + P(I,MM-1) - D2*P(I,MM))/(H*H) + 1 P(I,MM)*(TZ*R(MM) - C) MM = MM+1 DO 5 K =MM,NO 5 YK(K) = D0 RETURN END C C ------------------------------------------------------------------ C 3-7 D Y K C ------------------------------------------------------------------ C C STORES IN YK THE VALUES OF THE INTEGRAL OF C K C P (S/R) (DP /DS - P /S) INTEGRATED OVER THE INTERVAL (0,R) C I J J C C WHICH ENTER INTO THE SPIN-ORBIT CALCULATION. C C SUBROUTINE DYK(I,J,K) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) DEN = L(I)+ L(J)+ 2 + K FACT = L(J) DO 1 JJ =1,2 1 YK(JJ) = FACT*P(I,JJ)*P(J,JJ)*R(JJ)/DEN A = EH**K AA = A*A A = D4*A F1 = FACT*P(I,1)*P(J,1)*R(1) F2 = FACT*P(I,2)*P(J,2)*R(2) DO 8 M =3,ND F3 =D5*P(I,M)*((P(J,M+1)-P(J,M-1))/H - P(J,M))*R(M) YK(M) = YK(M-2)*AA + H3*(F3+ A*F2 + AA*F1) F1 = F2 8 F2 = F3 A = A*(EH)**3 AA = A*A/D16 C = 2*K+3 HH = C*H3 YK(NO)= YK(ND) F1 = YK(NO) F2 = F1 DO 9 MM = 3,NO M = NO -MM+1 F3 =YK(M) YK(M) = YK(M+2)*AA + HH*(F3 +A*F2 + AA*F1) F1 = F2 9 F2 = F3 RETURN END C C ------------------------------------------------------------------ C 3-8 E K I N C ------------------------------------------------------------------ C C RETURNS THE VALUE OF THE INTEGRAL OF C C (2/R)P (Y P + X ) C J I I I C C INTEGRATED WITH RESPECT TO R. C C FUNCTION EKIN(I,II) COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF CALL XCH(I,2) CALL POTL(I) DO 1 J=1,NO YK(J) = YR(J) 1 YR(J) = P(II,J) EKIN = D2*QUADS(I,II,1) + QUAD(II,NO ,YR,X) RETURN END C C ------------------------------------------------------------------ C 3-9 E L A G R C ------------------------------------------------------------------ C C THE ROUTINE FIRST DETERMINES WHETHER OR NOT THE OFF-DIAGONAL C ENERGY PARAMETER CONNECTING THIS PAIR OF FUNCTIONS MAY BE SET TO C ZERO; IF NOT, IT COMPUTES A LAGRANGE MULTIPLIER USING AN C EQUATION LIKE EQ. (7-8) PROVIDED !Q - Q ! > 0.05. THE C I J C EQUATION IS MODIFIED TO INCLUDE CONTRIBUTIONS FROM THE C INTERACTIONS BETWEEN CONFIGURATIONS. C C FUNCTION ELAGR(I,J) REAL QC LONG EL LOGICAL FAIL,RSCAN(20),OMIT,ORTHO,EZERO,ALL COMMON /TEST/FAIL,RSCAN,ORTHO,OMIT,EZERO,ALL COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /TEMP/QI,QJ,G,DI,DJ,DII,DJJ,DIJ,DJI,IDUM(3303) COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR COMMON /LABEL/CONFIG(3,40),EL(20),ATOM,TERM COMMON /COEFF/A(20,20,5),B(20,20,5),CA(4,4),CB(5,5,5) COMMON /STATE/WT(40),QC(20,40),CFG(200),CR(300),KFG(200),NF,NG,NR, 1 NL,IFG(200),NCI(200),JFG(200),NCJ(200),KR(300),I1R(300),I2R(300) 2 ,NCRI(300),J1R(300),J2R(300),NCRJ(300),IO(300),JO(300),IQ(300) 3 ,CL(20),ILI(20),NCLI(20),ILJ(20),NCLJ(20),ILO(20),JLO(20),LQ(20) QI = SUM(I) QJ = SUM(J) EZERO = .TRUE. G = D0 IF (E(I,J) .EQ. D0) GO TO 1 ALL = .TRUE. CALL ROTATE(I,J) C C ***** IF EZERO IS 'TRUE', THEN THE OFF-DIAGONAL ENERGY PARAMETERS C ***** SHOULD BE ZERO C IF (EZERO) GO TO 1 IF (.NOT. EZERO .AND. G .EQ. D0) GO TO 1 G = D0 IF (ABS(QI - QJ) .LT. 5.E-2) GO TO 1 C C ***** COMPUTE THE OFF-DIAGONAL ENERGY PARAMETER WHEN BOTH C ***** FUNCTIONS ARE IN THE SCF ITERATION AND QI NOT EQUAL TO QJ C DO 13 K = 1,5 C = A(I,I,K) - A(J,I,K) - B(J,I,K) IF (ABS(C ) .GT. 1.E-10) G = G + C*RK(I,I,I,J,2*(K-1)) C = A(J,J,K) - A(I,J,K) - B(I,J,K) IF (ABS(C ) .GT. 1.E-10) G = G - C*RK(J,J,J,I,2*(K-1)) 13 CONTINUE DO 14 M = 1,NWF IF (M .EQ. I .OR. M.EQ. J) GO TO 14 DO 15 K = 1,5 C = A(I,M,K) - A(J,M,K) IF (ABS(C) .GT. 1.E-10) G = G + C*RK(I,M,J,M,2*(K-1)) C = B(I,M,K) - B(J,M,K) IF (ABS(C) .GT. 1.E-10) G = G + C*RK(I,J,M,M,IABS(L(I)-L(M)) 1 + 2*(K-1)) 15 CONTINUE 14 CONTINUE C C C ***** ADD CONTRIBUTION FROM THE INTERACTION OF CONFIGURATIONS C ALL = .FALSE. IF (NR .EQ. 0) GO TO 11 DO 20 II = 1,NR N1 = NCRI(II) N2 = NCRJ(II) C = WT(N1)*WT(N2)*CR(II) CI = C/SUM(I) CJ = C/SUM(J) CALL RPERT(I,J,II) DD = CI*DI - CJ*DJ G = G + D5*DD 20 CONTINUE C C C ***** ADD CONTRIBUTION FROM THE INTERACTION OF CONFIGURATIONS - HL C 11 IF (NL .EQ. 0) GO TO 1 DO 30 II = 1,NL N1 = NCLI(II) N2 = NCLJ(II) C = WT(N1)*WT(N2)*CL(II) CI = C/SUM(I) CJ = C/SUM(J) CALL LPERT(I,J,II) DD = CI*DI - CJ*DJ G = G + D5*DD 30 CONTINUE 1 ELAGR = G RETURN END C C ------------------------------------------------------------------ C 3-10 F K C ------------------------------------------------------------------ C K C RETURNS THE VALUE OF F (I,J) C C FUNCTION FK(I,J,K) COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF IF (K .NE. 0) GO TO 1 DO 3 JJ = 1,NO 3 YK(JJ) = Y(I,JJ) GO TO 4 1 CALL YKF(I,I,K) 4 FK = QUADS(J,J,1) RETURN END C C ------------------------------------------------------------------ C 3-11 G K C ------------------------------------------------------------------ C K C RETURNS THE VALUE OF G (I,J). C C FUNCTION GK(I,J,K) CALL YKF(I,J,K) GK = QUADS(I,J,1) RETURN END C C ------------------------------------------------------------------ C 3-12 G R A N G E C ------------------------------------------------------------------ C C CONTROLS THE CALCULATION OF OFF-DIAGONAL ENERGY PARAMETERS. C IT SEARCHES FOR ALL PAIRS (I,J) WHICH ARE CONSTRAINED THROUGH AN C ORTHOGONALITY REQUIREMENT. WHEN ONE OF THE PAIR , SAY P C I C MUST BE ORTHOGONAL NOT ONLY TO P BUT ALSO TO P WHERE N = N , C J K J K C A SYSTEM OF EQUATIONS MUST BE SOLVED, THE EXACT FORM DEPENDING ON C WHETHER OR NOT ANY OF THE FUNCTIONS ARE PART OF THE FROZEN CORE. C WHEN ONLY ONE PAIR WITH A GIVEN SET OF PRINCIPAL QUANTUM NUMBERS C IS PRESENT, ELAGR(I,J) IS USED TO DETERMINE THE OFF- DIAGONAL C ENERGY PARAMETERS AS LONG AS !Q -Q ! > 0.05. OTHERWISE EQ. C I J C (7-10) MODIFIED FOR CONFIGURATION INTERACTION IS USED. C C SUBROUTINE GRANGE REAL EL LOGICAL FAIL,RSCAN(20),OMIT,ORTHO,EZERO,OTHER,ALL COMMON /TEST/FAIL,RSCAN,ORTHO,OMIT,EZERO,ALL COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /TEMP/QI,QJ,D,DI,DJ,DL,G,FN,FL,RI(5),RJ(5),IL,M,MM,MX,IDUM(3279) COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR COMMON /LABEL/CONFIG(3,40),EL(20),ATOM,TERM COMMON /COEFF/A(20,20,5),B(20,20,5),CA(4,4),CB(5,5,5) DIMENSION KI(4),KJ(4),KT(4),AA(4,5),CC(4),XX(4) EQUIVALENCE (I1,KI(1)),(I2,KI(2)),(J1,KJ(1)),(J2,KJ(2)) EQUIVALENCE (AA(1,5),CC(1)) IF (NWF .EQ. 1 .OR. IB .GT. NWF) RETURN WRITE (6,26) 26 FORMAT(/) II = MAX0(2,IB) DO 2 I = II,NWF C C ***** WHEN ORTHO IS 'TRUE', CHECK IF ANOTHER ORBITAL WITH INDEX > I C ***** HAS THE SAME NL VALUES C IF ( I .EQ. NWF .OR. .NOT. ORTHO ) GO TO 1 OTHER = .FALSE. IP = I+1 DO 3 I2 = IP,NWF IF (N(I2) .EQ. N(I) .AND. L(I2) .EQ. L(I) ) OTHER = .TRUE. 3 CONTINUE IF (OTHER) GO TO 2 1 IL = I-1 DO 4 J = 1,IL IF (N(I) .EQ. N(J) .OR. L(I) .NE. L(J)) GO TO 4 IF (A(I,J,1) .EQ. D0 .AND. .NOT. ORTHO) GO TO 4 KI(1) = I KJ(1) = J NI = 1 NJ = 1 IF (.NOT. ORTHO) GO TO 6 C C ***** AN (I,J) PAIR CONSTRAINED BY AN ORTHOGONALITY REQUIREMENT HAS C ***** BEEN FOUND. CHECK IF ANOTHER ORBITAL WITH INDEX > J HAS THE C ***** SAME NL VALUES. C OTHER = .FALSE. JP = J+1 DO 5 J2 = JP,NWF IF (N(J2) .EQ. N(J) .AND. L(J2) .EQ. L(J)) OTHER = .TRUE. 5 CONTINUE IF (OTHER) GO TO 4 C C ***** THE (I,J) PAIR HAS THE HIGHEST POSSIBLE INDICES FOR THE GIVEN C ***** SET OF NL VALUES C C ***** SEARCH FOR OTHER ORBITALS WITH THE SAME NL VALUES C DO 7 K = 1,NWF IF (K .EQ. I .OR. N(K) .NE. N(I) .OR. L(K) .NE. L(I)) GO TO 8 NI = NI + 1 KI(NI) = K GO TO 7 8 IF (K .EQ. J .OR. N(K) .NE. N(J) .OR. L(K) .NE. L(J)) GO TO 7 NJ = NJ + 1 KJ(NJ) = K 7 CONTINUE IF ( NI*NJ .EQ. 1 ) GO TO 6 C C ***** ONE OF THE NL VALUES HAS MORE THAN ONE ORBITAL ASSOCIATED WITH C ***** IT C IF (NJ-2) 41,42,30 C C ***** NOW NJ = 2 C 42 IF ( J1 .GE. IB .OR. J2 .GE. IB) GO TO 43 C C ***** NOW NJ = 2 AND J1 AND J2 ARE BOTH PART OF THE FROZEN CORE C OV = QUADR(J1,J2,0) DEN = D1 - OV**2 DO 31 K = 1,NI KK = KI(K) IF (KK .LT. IB ) GO TO 31 C1 = HL(KK,J1) - EKIN(KK,J1) C2 = HL(KK,J2) - EKIN(KK,J2) E(KK,J1) = (C1 - C2*OV)/DEN E(KK,J2) = (C2 - C1*OV)/DEN WRITE(6,24) EL(KK),EL(J1),E(KK,J1),EL(KK),EL(J2),E(KK,J2) 31 CONTINUE GO TO 4 C C ***** TOO MANY ORBITALS WITH THE SAME NL VALUES C 30 WRITE(6,23) (KI(K),K=1,NI),(KJ(K),K=1,NJ) 23 FORMAT(/10X,50HTOO MANY ORBITALS WITH THE SAME NL VALUE..INDICES 1 ,3HARE/10X,20I3) STOP C C ***** NJ = 2 BUT WITH EITHER J1 OR J2 NOT PART OF THE FROZEN CORE C 43 IF (NI .GT. 2) GO TO 30 C C ***** IF NECESSARY, INTERCHANGE THE TWO GROUPS SO THAT NI .LE. NJ C IF (NI .LE. NJ) GO TO 15 DO 10 K = 1,NI 10 KT(K) = KI(K) NII = NI DO 11 K = 1,NJ 11 KI(K) = KJ(K) NI = NJ DO 12 K = 1,NII 12 KJ(K) = KT(K) NJ = NII C C ***** SET UP THE SYSTEM OF EQUATIONS FOR UP TO 4 OFF-DIAGONAL C ***** ENERGY PARAMETERS C 15 DO 48 K = 1,4 XX(K) = D0 DO 49 KK = 1,5 49 AA(K,KK) = D0 48 CONTINUE IF (NI .EQ. 1) I2 = 0 K1 = 1 K2 = 2 K3 = 3 K4 = 4 IROW = 1 OVI = D0 IF (I2 .NE. 0) OVI = QUADR(I1,I2,0) OVJ = QUADR(J1,J2,0) DO 50 K = 1,2 DO 51 KK = 1,2 IF (I1 .EQ. 0) GO TO 55 IF (I1 .LT. IB) GO TO 52 C C ***** NOW I1 .GE. IB C IF (J1 .LT. IB) GO TO 53 C C C ***** NOW I1 AND J1 .GE. IB C CC(IROW) = HL(I1,J1) - EKIN(I1,J1) + HL(J1,I1) - EKIN(J1,I1) AA(IROW,K1) = D1 + SUM(I1)/SUM(J1) IF (I2 .GT. 0) AA(IROW,K3) = SUM(I2)*OVI/SUM(J1) GO TO 54 C C ***** NOW I1 .GE. IB BUT J1 < IB C 53 CC(IROW) = HL(I1,J1) - EKIN(I1,J1) AA(IROW,K1) = D1 54 AA(IROW,K2) = OVJ GO TO 55 C C ***** I1 IS PART OF THE FROZEN CORE C 52 IF (J1 .LT. IB) GO TO 55 C C ***** I1 < IB BUT J1 .GE. IB C CC(IROW) = HL(J1,I1) - EKIN(J1,I1) AA(IROW,K1) = SUM(I1)/SUM(J1) IF (I2 .NE. 0) AA(IROW,K3) = SUM(I2)*OVI/SUM(J1) C C ***** NOW INTERCHANGE J1 AND J2 AND INCREMENT THE ROW C 55 JT = J1 J1 = J2 J2 = JT KTT = K1 K1 = K2 K2 = KTT KTT = K3 K3 = K4 K4 = KTT 51 IROW = IROW + 1 C C ***** NOW INTERCHANGE I1 AND I2 AND REPEAT IT = I1 I1 = I2 I2 = IT KTT = K1 K1 = K3 K3 = KTT KTT = K2 K2 = K4 50 K4 = KTT C C ***** NOW SOLVE THE SYSTEM OF EQUATIONS C DO 60 K = 1,3 C C ***** SEARCH FOR THE LARGEST PIVOT IN THE K'TH COLUMN C LM = K DM = ABS(AA(K,K)) KP = K+1 DO 61 KK = KP,4 DD = ABS(AA(KK,K)) IF (DM .GE. DD) GO TO 61 DM = DD LM = KK 61 CONTINUE IF (LM .EQ. K) GO TO 65 C C ***** INTERCHANGE THE ROWS C DO 62 KK = K,5 T = AA(K,KK) AA(K,KK) = AA(LM,KK) 62 AA(LM,KK) = T C C ***** ELIMINATE THE K'TH VARIABLE C 65 IF (AA(K,K) .EQ. D0) GO TO 60 DO 63 KK = KP,4 RATIO = AA(KK,K)/AA(K,K) DO 64 KKK = KP,5 64 AA(KK,KKK) = AA(KK,KKK) - RATIO*AA(K,KKK) 63 CONTINUE 60 CONTINUE C C ***** BACKSUBSTITUTE ALLOWING FOR THE POSSIBILITY THAT THE RANK C ***** OF THE SYSTEM MAY ONLY BE 2. C IF (AA(4,4) .NE. D0) XX(4) = CC(4)/AA(4,4) IF (AA(3,3) .NE. D0) XX(3) = (CC(3) - AA(3,4)*XX(4))/AA(3,3) XX(2) = (CC(2) - AA(2,3)*XX(3) - AA(2,4)*XX(4))/AA(2,2) XX(1) = (CC(1) - AA(1,2)*XX(2) - AA(1,3)*XX(3) - AA( 1,4)*XX(4))/ 1 AA(1,1) C C ***** COMPUTE AND PRINT THE OFF-DIAGONAL ENERGY PARAMETERS C IROW = 1 DO 70 K =1,2 IF (I1 .EQ. 0) GO TO 72 DO 71 KK = 1,2 E(I1,J1) = XX(IROW) E(J1,I1) = SUM(I1)*XX(IROW)/SUM(J1) WRITE(6,24) EL(I1),EL(J1),E(I1,J1),EL(J1),EL(I1),E(J1,I1) 24 FORMAT(10X,2HE(,2A3,4H) = ,F10.6,4X,2HE(,2A3,4H) = ,F10.6) C C ***** INTERCHANGE J1 AND J2 C JT = J1 J1 = J2 J2 = JT 71 IROW = IROW + 1 C C ***** INTERCHANGE I1 AND I2 C 72 IT = I1 I1 = I2 70 I2 = IT GO TO 4 C C ***** NJ = 1 BUT NI .GT. 1 C 41 IF (J1 .GE. IB) GO TO 43 C C ***** NOW NJ = 1 AND J1 IS PART OF THE FROZEN CORE C DO 20 K = 1,NI KK= KI(K) E(KK,J1) = HL(KK,J1) - EKIN(KK,J1) 20 WRITE (6,25) EL(KK),EL(J1),E(KK,J1) 25 FORMAT(10X,2HE(,2A3,4H) = ,F10.6) GO TO 4 C C ***** NJ AND NI = 1 C 6 IF (J .GE. IB) GO TO 28 E(I,J) = HL(I,J) - EKIN(I,J) GO TO 22 28 G = ELAGR(I,J) IF ( G .NE. D0) GO TO 27 IF ( .NOT. EZERO ) GO TO 21 GO TO 4 27 G = D2*G/(QI - QJ) E(I,J) = G*QJ E(J,I) = G*QI GO TO 22 21 E(I,J) = HL(I,J) - EKIN(I,J) E(J,I) = HL(J,I) - EKIN(J,I) E(I,J) = QJ*(E(I,J) + E(J,I))/(QI + QJ) E(J,I) = QI*E(I,J)/QJ 22 WRITE(6,24) EL(I),EL(J),E(I,J),EL(J),EL(I),E(J,I) 4 CONTINUE 2 CONTINUE RETURN END C C ------------------------------------------------------------------ C 3-13 H L C ------------------------------------------------------------------ C C RETURNS THE VALUE OF <I!L!J>, USING A SPECIAL FORMULA TO C PRESERVE SYMMETRY. C FUNCTION HL(I,J) REAL EL COMMON /LABEL/CONFIG(3,40),EL(20),ATOM,TERM COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR IF (IABS(L(I)-L(J)) .EQ. 0) GO TO 3 WRITE(6,4) EL(I),L(I),EL(J),L(J) 4 FORMAT(10X,44HUNALLOWED L VALUES OCCURRED IN HL SUBROUTINE/ 1 2(10X,A3,9H HAS L = ,I3)) 3 LI = L(I) C = 2*LI + 1 A1 = -D2/(C*(LI+1)) A2 = A1/((C+D2)*(LI+1)) A3 = A2/((LI+2)*(LI+1)) ZR = Z*R(1) HL = H*C*P(I,1)*P(J,1)*(D1+ZR*(A1+ZR*(A2+ZR*A3))) MM = MIN0(MAX(I)+3,MAX(J)+3,ND-1) K = 2 C = D4/D3 DI1 = P(I,K+1) - P(I,K-1) DI2 = P(I,K+1) - D2*P(I,K) + P(I,K-1) DJ1 = P(J,K+1) - P(J,K-1) DJ2 = P(J,K+1) - D2*P(J,K) + P(J,K-1) HL = HL + DI1*DJ1 + C*DI2*DJ2 DO 1 K = 4,MM,2 DI1 = P(I,K+1) - P(I,K-1) DI2 = P(I,K+1) - D2*P(I,K) + P(I,K-1) DI4 = P(I,K+2) - D4*(P(I,K+1)+P(I,K-1)) + D6*P(I,K) +P(I,K-2) DI3 = P(I,K+2) - P(I,K-2) - D2*DI1 DI5 = P(I,K+3)-P(I,K-3) - D4*(P(I,K+2)-P(I,K-2)) 1 + 5.E0*(P(I,K+1)-P(I,K-1)) DI6 = P(I,K+3)+P(I,K-3) - D6*(P(I,K+2)+P(I,K-2)) 1 + 15.E0*(P(I,K+1)+P(I,K-1)) - 20.E0*P(I,K) DJ1 = P(J,K+1) - P(J,K-1) DJ2 = P(J,K+1) - D2*P(J,K) + P(J,K-1) DJ4 = P(J,K+2) - D4*(P(J,K+1)+P(J,K-1)) + D6*P(J,K) +P(J,K-2) DJ3 = P(J,K+2) - P(J,K-2) - D2*DJ1 DJ5 = P(J,K+3)-P(J,K-3) - D4*(P(J,K+2)-P(J,K-2)) 1 + 5.E0*(P(J,K+1)-P(J,K-1)) DJ6 = P(J,K+3)+P(J,K-3) - D6*(P(J,K+2)+P(J,K-2)) 1 + 15.E0*(P(J,K+1)+P(J,K-1)) - 20.E0*P(J,K) 1 HL = HL + DI1*DJ1 + C*DI2*DJ2 + (DI3*DJ3 + DI2*DJ4+DI4*DJ2)/45.E0 1 -(DI3*DJ5+DI5*DJ3)/252.E0 - (DI2*DJ6+DI6*DJ2-1.1*DI4*DJ4)/378.E0 TZ = Z + Z C = (LI + D5)**2 HL2 = D5*(TZ*R(1) - C)*P(I,1)*P(J,1) DO 2 K = 2,MM,2 2 HL2 = HL2 + D2*(TZ*R(K) - C)*P(I,K)*P(J,K) 1 + (TZ*R(K+1) - C)*P(I,K+1)*P(J,K+1) HL = -HL/(D2*H) + HL2*H1 RETURN END C C ------------------------------------------------------------------ C 3-14 H N O R M C ------------------------------------------------------------------ C C RETURNS THE VALUE OF THE NORMALIZATION CONSTANT FOR AN (NL) C HYDROGENIC FUNCTION WITH NUCLEAR CHARGE ZZ. C C FUNCTION HNORM(N,L,ZZ) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF M = L + L + 1 A = N + L B = M T = A D = B M = M - 1 IF (M .EQ. 0) GO TO 2 DO 1 I = 1,M A = A - D1 B = B - D1 T = T*A 1 D = D*B 2 HNORM = SQRT(ZZ*T)/( N*D) RETURN END C C ------------------------------------------------------------------ C 3-15 H W F C ------------------------------------------------------------------ C C RETURNS THE VALUE OF AN UNNORMALIZED (NL) HYDROGENIC FUNCTION C WITH NUCLEAR CHARGE ZZ AND RADIUS R. C C FUNCTION HWF(N,L,ZZ,R) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF K = N-L-1 P = D1 A = D1 B = K C = N+ L X = -D2*ZZ*R/N C C ***** TEST IF UNDERFLOW MAY OCCUR, IF SO SET HWF = 0 C IF ( X .LT. -180.E0 ) GO TO 5 IF (K) 1,2,3 3 DO 4 I = 1,K P = D1 + A/B*P/C*X A = A + D1 B = B - D1 4 C = C - D1 2 HWF = P*EXP(X/D2)*(-X)**(L+1) RETURN 1 WRITE(6,7) N,L,ZZ,R 7 FORMAT(51H FORBIDDEN COMBINATION OF N AND L IN HWF SUBPROGRAM/ 1 4H N = ,I4,6H L = ,I4,6H Z = ,F6.1,6H R = ,F8.4) STOP 5 HWF = D0 RETURN END C C ------------------------------------------------------------------ C 3-16 I N I T C ------------------------------------------------------------------ C C INITIALIZES BASIC CONSTANTS OF THE PROGRAM INCLUDING THOSE C WHICH DEFINE THE AVERAGE ENERGY OF A CONFIGURATION. C C SUBROUTINE INIT COMMON /COEFF/A(20,20,5),B(20,20,5),CA(4,4),CB(5,5,5) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF C C THE ARRAYS IN STATE COMMON AREA INITIALIZED C A.L. 1981-07-13 COMMON /STATE/WT(40),QC(20,40),CFG(200),CR(300),KFG(200),NF,NG,NR, 1 NL,IFG(200),NCI(200),JFG(200),NCJ(200),KR(300),I1R(300),I2R(300) 2 ,NCRI(300),J1R(300),J2R(300),NCRJ(300),IO(300),JO(300),IQ(300) 3 ,CL(20),ILI(20),NCLI(20),ILJ(20),NCLJ(20),ILO(20),JLO(20),LQ(20) DATA WT/40*0.E0/,QC/800*0.E0/,CFG/200*0.E0/,CR/300*0.E0/ DATA NCI/200*0.E0/,NCJ/200*0.E0/,NCRI/300*0.E0/,NCRJ/300*0.E0/ DATA CL/20*0.E0/,NCLI/20*0.E0/,NCLJ/20*0.E0/ DATA KFG/200*0/,NF/0/,NG/0/,NR/0/,NL/0/ DATA IFG/200*0/,JFG/200*0/,KR/300*0/,I1R/300*0/,I2R/300*0/ DATA J1R/300*0/,J2R/300*0/,IO/300*0/,JO/300*0/,IQ/300*0/ DATA ILI/20*0/,ILJ/20*0/,ILO/20*0/,JLO/20*0/,LQ/20*0/ C ***** SET THE COMMONLY USED CONSTANTS C D0 = 0.E0 D1 = 1.E0 D2 = 2.E0 D3 = 3.E0 D4 = 4.E0 D5 = 1./2.E0 D6 = 6.E0 D8 = 8.E0 D10 = 10.E0 D12 = 12.E0 D16 = 16.E0 D30 = 30.E0 C C ***** SET THE STARTING POINT AND THE STEP SIZE C RHO = -4.E0 H = 1./16.E0 C C ***** CLEAR THE ARRAYS FOR THE AVERAGE INTERACTIONS C DO 1 I = 1,4 DO 1 J = 1,4 1 CA(I,J) = 0.E0 DO 2 I = 1,5 DO 2 J = 1,5 DO 3 K = 1,5 3 CB(I,J,K) = 0.E0 2 CONTINUE C C ***** AVERAGE INTERACTIONS FOR EQUIVALENT ELECTRONS C C ***** P - P C CA(1,1) = 2.E0/25.E0 C C ***** D - D C CA(2,1) = 2.E0/63.E0 CA(2,2) = 2.E0/63.E0 C C ***** F - F C CA(3,1) = 4.E0/ 195.E0 CA(3,2) = 2.E0/ 143.E0 CA(3,3) = 100.E0/5577.E0 C C ***** G - G C CA(4,1) = 20.E0/ 1309.E0 CA(4,2) = 162.E0/ 17017.E0 CA(4,3) = 20.E0/ 2431.E0 CA(4,4) = 4410.E0/371943.E0 C C C ***** AVERAGE INTERACTIONS FOR NON-EQUIVALENT ELECTRONS C C ***** S - ( S, P, D, F, G ) C CB(1,1,1) = 1.E0/ 2.E0 CB(2,1,1) = 1.E0/ 6.E0 CB(3,1,1) = 1.E0/10.E0 CB(4,1,1) = 1.E0/14.E0 CB(5,1,1) = 1.E0/18.E0 C C ***** P - ( P, D, F, G ) C CB(2,2,1) = 1.E0/ 6.E0 CB(2,2,2) = 1.E0/ 15.E0 CB(3,2,1) = 1.E0/ 15.E0 CB(3,2,2) = 3.E0/ 70.E0 CB(4,2,1) = 3.E0/ 70.E0 CB(4,2,2) = 2.E0/ 63.E0 CB(5,2,1) = 2.E0/ 63.E0 CB(5,2,2) = 5.E0/198.E0 C C ***** D - ( D, F, G ) C CB(3,3,1) = 1.E0/ 10.E0 CB(3,3,2) = 1.E0/ 35.E0 CB(3,3,3) = 1.E0/ 35.E0 CB(4,3,1) = 3.E0/ 70.E0 CB(4,3,2) = 2.E0/105.E0 CB(4,3,3) = 5.E0/231.E0 CB(5,3,1) = 1.E0/ 35.E0 CB(5,3,2) = 10.E0/693.E0 CB(5,3,3) = 5.E0/286.E0 C C ***** F - ( F, G ) C CB(4,4,1) = 1.E0/ 14.E0 CB(4,4,2) = 2.E0/ 105.E0 CB(4,4,3) = 1.E0/ 77.E0 CB(4,4,4) = 50.E0/3003.E0 CB(5,4,1) = 2.E0/ 63.E0 CB(5,4,2) = 1.E0/ 77.E0 CB(5,4,3) = 10.E0/1001.E0 CB(5,4,4) = 35.E0/2574.E0 C C ***** G - ( G ) C CB(5,5,1) = 1.E0/ 18.E0 CB(5,5,2) = 10.E0/ 693.E0 CB(5,5,3) = 9.E0/ 1001.E0 CB(5,5,4) = 10.E0/ 1287.E0 CB(5,5,5) = 245.E0/21879.E0 C C ***** SYMMETRIZE THE ARRAY C DO 4 I = 2,5 IM = I - 1 DO 5 J = 1,IM DO 6 K = 1,4 6 CB(J,I,K) = CB(I,J,K) 5 CONTINUE 4 CONTINUE RETURN END C C ------------------------------------------------------------------ C 3-17 L P E R T C ----------------------------------------------------------------- C C LPERT DETERMINES THE EFFECT OF A PERTURBATION IN THE FORM OF A C ROTATION OF THE I'TH AND J'TH ORBITAL BOTH ON THE ENERGY AND ON THE C STATIONARY CONDITION, DUE TO THE PRESENCE OF A GIVEN L INTEGRAL. C C SUBROUTINE LPERT(IIN,JIN,M) REAL EL,QC LOGICAL FAIL,RSCAN(20),OMIT,ORTHO,EZERO,ALL COMMON /TEST/FAIL,RSCAN,ORTHO,OMIT,EZERO,ALL COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON /TEMP/QI,QJ,G,DI,DJ,DII,DJJ,DIJ,DJI,IDUM(3303) COMMON /STATE/WT(40),QC(20,40),CFG(200),CR(300),KFG(200),NF,NG,NR, 1 NL,IFG(200),NCI(200),JFG(200),NCJ(200),KR(300),I1R(300),I2R(300) 2 ,NCRI(300),J1R(300),J2R(300),NCRJ(300),IO(300),JO(300),IQ(300) 3 ,CL(20),ILI(20),NCLI(20),ILJ(20),NCLJ(20),ILO(20),JLO(20),LQ(20) DIMENSION IND(6) EQUIVALENCE (I1,IND(1)),(I2,IND(2)),(I3,IND(3)),(I4,IND(4)), 1 (I5,IND(5)),(I6,IND(6)) I1 = ILI(M) I2 = ILJ(M) J = IIN I = JIN IPW = LQ(M) IF (IPW .EQ. 0) GO TO 1 I5 = ILO(M) I6 = JLO(M) OVLAP = QUADR(I5,I6,0)**IPW IF ((I5-I)*(I6-I)*(I5-J)*(I6-J) .NE. 0) GO TO 1 EZERO = .FALSE. RETURN 1 DO 10 KP = 1,2 DI = D0 DII = D0 DIJ = D0 DO 2 K = 1,2 IF (IND(K) .NE. I) GO TO 2 IND(K) = J DI = DI + HL(I1,I2) IF (.NOT. ALL) GO TO 3 DO 4 K2 = 1,2 IF (IND(K2) .NE. J) GO TO 5 IND(K2) = I DIJ = DIJ + HL(I1,I2) IND(K2) = J 5 IF (IND(K2) .NE. I) GO TO 4 IND(K2) = J DII = DII + HL(I1,I2) IND(K2) = I 4 CONTINUE 3 IND(K) = I 2 CONTINUE IF (IPW .EQ. 0) GO TO 6 DI = DI*OVLAP DII = DII*OVLAP DIJ = DIJ*OVLAP 6 IF (KP .EQ. 2) RETURN DJ = DI DJJ = DII DJI = DIJ I = IIN J = JIN 10 CONTINUE RETURN END C C ------------------------------------------------------------------ C 3-18 M E T H O D C ------------------------------------------------------------------ C C USES M1, M2, OR M3 TO SOLVE THE RADIAL EQUATION. IF THE INPUT C DATA INDICATED METH(I) = 3, THEN THIS SOLUTION IS RETURNED TO C DE. OTHERWISE, THE ROUTINE SEARCHES FOR AN ACCEPTABLE SOLUTION C WHICH IS BOTH POSITIVE NEAR THE ORIGIN AND HAS THE REQUIRED C NUMBER OF NODES. C C SUBROUTINE METHOD(I) REAL EL LOGICAL ONE,V1,V2,FIRST LOGICAL FAIL,RSCAN(20),OMIT,ORTHO,EZERO,OTHER ,ALL COMMON /TEST/FAIL,RSCAN,ORTHO,OMIT,EZERO,ALL COMMON /COEFF/A(20,20,5),B(20,20,5),CA(4,4),CB(5,5,5) COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON /LABEL/CONFIG(3,40),EL(20),ATOM,TERM COMMON /TEMP/P2(220),HQ(220),XX(220),AZZ,PP,FN,EM,FM,EU,FU, 1 DELTAE,M,NODE,MK,KK,NJ,IDUM(1980) DIMENSION P1(220) EQUIVALENCE (PDE(1),P1(1)) C C ***** 'FIRST' MUST BE 'TRUE' THE FIRST TIME SOLVE IS CALLED FOR C ***** POTENTIAL AND EXCHANGE TO BE COMPUTED C ***** 'ONE' IS SET 'TRUE' AS SOON AS AN ACCEPTABLE SOLUTION HAS BEEN C ***** FOUND C ***** 'EU' IS THE UPPER BOUND OF THE ENERGY PARAMETER C ***** 'EM' IS THE MINIMUM VALUE OF THE ENERGY PARAMETER C FIRST = .TRUE. FAIL = .FALSE. EM = D0 EU = ((Z - AMIN1(D5*S(I),D2*S(I)))/N(I))**2 FU = EU MK = 0 17 CALL SOLVE(I,FIRST) C C ***** IF KK NOT EQUAL 1, OMIT THE NODE CHECKING C IF (KK .EQ. 3) GO TO 51 C C ***** COUNT THE NUMBER OF NODES C NC = NODEC(M) C C ***** IF NODE COUNT IS OFF BY NO MORE THAN 1 AND DELTAE IS STILL C ***** QUITE LARGE, APPLY THE DELTAE CORRECTION C IF (IABS(NC-NODE) .EQ. 1 .AND. ABS(DELTAE/ED) .GT. 0.02D0) 1 GO TO 46 C C ***** BRANCH ACCORDING TO WHETHER THE NODE COUNT IS TOO SMALL, C ***** JUST RIGHT, OR TOO LARGE C IF (NC - NODE ) 8,9,10 C C ***** THE SOLUTION HAS THE CORRECT NUMBER OF NODES C 9 V2 = ABS(DELTAE)/ED .LT. 1.E-5 IF (PDE(1) .LT. D0 .AND. .NOT. V2) GO TO 46 IF (PDE(1) .GT. D0) GO TO 51 DO 52 J = 1,NO 52 PDE(J) = - PDE(J) PP = -D2 - PP 51 AZZ = AZD*(D1 + PP) E(I,I) = ED RETURN C C ***** THE SOLUTION HAS TOO FEW NODES C 8 IF (PDE(1) .LE. D0) GO TO 11 DEL = D1 - ED/EU EU = ED IF ( DEL .LT. .05E0) FU = FU*((L(I)+1+NC)/FN)**2.5 IF (DEL .GE. .05E0) FU = ED*((L(I)+1+NC)/FN)**2.5 IF (FU .LT. EM) FU = D5*(EU + EM) IF (ABS(FU - ED) .LT. 0.001E0) GO TO 27 ED = FU GO TO 33 C C ***** TRY A NEW VALUE OF ED WHICH MUST LIE WITHIN THE UPPER AND C ***** LOWER BOUND C 11 EDP = ED ED = ED*((L(I)+1+NC)/FN)**2.5 IF (ED .GE. EU ) ED = D5*(EU + EDP) IF (ED .LE. EM ) ED = D5*(EM + EDP) 33 MK = MK + 1 IF ( EU .LE. EM ) WRITE(6,30) EM,EU,ED 30 FORMAT(6X,48HWARNING: DIFFICULTY WITH NODE COUNTING PROCEDURE/ 1 6X,42HLOWER BOUND ON ED GREATER THAN UPPER BOUND/ 2 6X,5HEL = ,F10.6,7H EU = ,F10.6,7H ED = ,F10.6) FIRST = .FALSE. IF ( MK .GT. 3*N(I) .OR. EU-EM .LT. FN**(-3)) GO TO 27 GO TO 17 C C ***** THE SOLUTION HAS TOO MANY NODES C 10 IF (PDE(1) .LT. D0) GO TO 11 DEL = D1 - EM/ED EM = ED IF (DEL .LT. 0.05E0) FM = FM*((L(I)+1+NC)/FN)**2.5 IF (DEL .GE. 0.05E0) FM = ED*((L(I)+1+NC)/FN)**2.5 IF (FM .GT. EU) FM = D5*(EU + EM) IF (ABS(FM - ED) .LT. 0.001E0) GO TO 27 ED = FM GO TO 33 C C ***** ADJUST ENERGY TO LIE BETWEEN UPPER AND LOWER BOUND C 46 ED = ED - DELTAE IF (ED .LE. EM .OR. ED .GE. EU) ED = ED + DELTAE + DELTAE IF (ED .GT. EM .AND. ED .LT. EU) GO TO 33 ED = ED - DELTAE DELTAE = D5*DELTAE GO TO 46 C C ***** METHOD WAS UNABLE TO FIND AN ACCEPTABLE SOLUTION C 27 WRITE (6,28) KK,EL(I),NC,NJ,ED,EM,EU 28 FORMAT(10X,6HMETHOD,I2,38H UNABLE TO SOLVE EQUATION FOR ELECTRON, 1 A3/10X,5HNC = ,I3,3X,5HNJ = ,I3,3X,5HED = ,F10.6,3X,5HEL = , 2 F10.6,3X,5HEU = ,F10.6) FAIL = .TRUE. RETURN END C C C ------------------------------------------------------------------ C 3-19 N M R V S C ------------------------------------------------------------------ C C GIVEN TWO STARTING VALUES, PDE(1) AND PDE(2), VALUES OF PDE(J), C J=3,4,...,NJ+1 ARE OBTAINED BY OUTWARD INTEGRATION OF C Y" = YR Y + F C USING THE DISCRETIZATION OF EQ. (6-27 ) WITH THE DIFFERENCE C CORRECTION. WITH PDE(NJ) GIVEN, THE TAIL PROCEDURE IS APPLIED TO C PDE(J),J=NJ+1, NJ+2,...,MM, WHERE MM IS DETERMINED AUTOMATICALLY C AND DELTA IS THE DIFFERENCE BETWEEN PDE(NJ+1) FOR OUTWARD AND C INWARD INTEGRATION. (SEE EQ 6-32, 6-33, AND 6-37 FOR FURTHER C DETAILS.) C C SUBROUTINE NMRVS(NJ,DELTA,MM,PDE,F) DIMENSION PDE(220),F(220),A(150),D(150) COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF EQUIVALENCE (G,G3) C C ***** INTEGRATE OUTWARD TO NJ+1 C Y1 = PDE(1) Y2= PDE(2) G1 = YR(1) G2 = YR(2) M = NJ + 1 DO 1 I = 3,M G3 = YR(I) Y3 = (Y2+Y2-Y1 + (D10*G2*Y2 + G1*Y1) + F(I-1)) / (D1 - G3) PDE(I) = Y3 Y1 = Y2 Y2 = Y3 G1 = G2 1 G2 = G3 DELTA = Y3 C C ***** APPLY THE TAIL PROCEDURE C K = 1 PDE(M) = -(D1 - G1)*Y1 + F(M) A(1) = D1 - G D(1) = -(D2 + D10*G) 22 RATIO = A(K)/D(K) C C ***** THE INTEGER 149 IN THE NEXT STATEMENT IS THE DIMENSION OF A C ***** MINUS 1 C IF (K .GE. 149 .OR. M .EQ. ND) GO TO 23 K = K +1 M = M+1 G = YR(M) A(K) = D1 - G D(K) = -(D2 + D10*G) - A(K)*RATIO PDE(M) = -PDE(M-1)*RATIO + F(M) IF (ABS(PDE(M))+ABS(PDE(M-1)) .GT. TOL .OR. K .LT. 9) GO TO 22 20 CON =SQRT(EH)*EXP(-SQRT(ABS(G/CH-.25)/RR(M))*(R(M+1)-R(M))) PDE(M) = PDE(M)/(D(K) + CON*(D1- YR(M+1))) J = M+1 DO 2 I= J,NO 2 PDE(I) = D0 DO 3 J = 2,K I = M-J+1 II = K-J+1 3 PDE(I) = (PDE(I)-A(II+1)*PDE(I+1))/D(II) C C ***** SET DELTA = DIFFERENCE OF THE TWO SOLUTIONS AT NJ+1 C ***** MM = NUMBER OF POINTS IN THE RANGE OF THE SOLUTION C DELTA = DELTA - PDE(I) MM = M RETURN 23 WRITE (6,24) 24 FORMAT(6X,52HWARNING: FUNCTIONS TRUNCATED BY NMRVS IN TAIL REGION) GO TO 20 END C C ------------------------------------------------------------------ C 3-20 N O D E C C ------------------------------------------------------------------ C C COUNTS THE NUMBER OF NODES OF THE FUNCTION PDE(J) IN THE RANGE C J=40,...,M-10. THE NODE COUNTING PROCEURE TERMINATES AS SOON AS C A LOCAL MAX (OR MIN) IS ENCOUNTERED AFTER THE MAIN MAXIMUM FOR C WHICH !PDE(J)! < 0.75 MAX !PDE(J)! C J C FUNCTION NODEC(M) COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) NCC= 0 DM = 0.E0 MM = M - 10 DO 36 J = 40,MM X1 = ABS(PDE(J)*R2(J)) IF (X1 .LT. .75E0*DM) GO TO 12 DM = AMAX1(DM,X1) NODEC = NCC 12 IF (PDE(J)*PDE(J+1) .LE. 0.E0) NCC= NCC+ 1 IF (X1 .EQ. 0.E0) NCC = NCC - 1 36 CONTINUE RETURN END C C ------------------------------------------------------------------ C 3-21 O R T H O G C ------------------------------------------------------------------ C C THIS ROUTINE ORTHOGONALIZES THE SET OF RADIAL FUNCTIONS WHEN AN C ORTHOGONALITY CONSTRAIN APPLIES. A GRAM-SCHMIDT TYPE OF PROCESS C IS USED. WHEN MORE THAN ONE RADIAL FUNCTION WITH A GIVEN (NL) IS C PRESENT, IT MAY BE NECESSARY TO SOLVE A 2X2 SYSTEM OF EQUATIONS. C C SUBROUTINE ORTHOG REAL EL LOGICAL FAIL,RSCAN(20),OMIT,ORTHO,EZERO,OTHER,ALL COMMON /TEST/FAIL,RSCAN,ORTHO,OMIT,EZERO,ALL COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /TEMP/QI,QJ,D,DI,DJ,DL,G,FN,FL,RI(5),RJ(5),IL,M,MM,MX,K, 2IDUM(3278) COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR COMMON /LABEL/CONFIG(3,40),EL(20),ATOM,TERM COMMON /COEFF/A(20,20,5),B(20,20,5),CA(4,4),CB(5,5,5) DIMENSION KI(4),KJ(4),KT(4) EQUIVALENCE (I1,KI(1)),(I2,KI(2)),(J1,KJ(1)),(J2,KJ(2)) IF (NWF .EQ. 1 .OR. IB .GT. NWF) RETURN WRITE (6,26) 26 FORMAT(/) II = MAX0(2,IB) DO 2 I = II,NWF IL = I-1 DO 3 J = 1,IL IF (N(I) .EQ. N(J) .OR. L(I) .NE. L(J)) GO TO 3 IF (A(I,J,1) .EQ. D0 .AND. .NOT. ORTHO) GO TO 3 KJ(1) = J NJ = 1 IF (.NOT. ORTHO) GO TO 9 C C ***** AN (I,J) PAIR CONSTRAINED BY AN ORTHOGONALITY REQUIREMENT HAS C ***** BEEN FOUND. CHECK IF ANOTHER ORBITAL WITH INDEX > J HAS THE C ***** SAME NL VALUES. C IF ( J .EQ. IL ) GO TO 1 OTHER = .FALSE. JP = J+1 DO 5 J2 = JP,IL IF (N(J2) .EQ. N(J) .AND. L(J2) .EQ. L(J)) OTHER = .TRUE. 5 CONTINUE IF (OTHER) GO TO 3 C C ***** THE (I,J) PAIR HAS THE HIGHEST POSSIBLE INDICES FOR THE GIVEN C ***** SET OF NL VALUES C ***** SEARCH FOR OTHER ORBITALS WITH THE SAME NL VALUES C 1 IF ( J .EQ. 1 ) GO TO 8 JM = J - 1 C DO 7 K = 1,JM IF (N(K) .NE. N(J) .OR. L(K) .NE. L(J)) GO TO 7 NJ = NJ + 1 KJ(NJ) = K 7 CONTINUE 8 IF (NJ .EQ. 1) GO TO 9 OV = QUADR(J1,J2,0) C1 = QUADR(I,J1,0) C2 = QUADR(I,J2,0) DEN = D1 - OV**2 A1 = -(C1 - C2*OV)/DEN A2 = -(C2 - C1*OV)/DEN WRITE (6,6) EL(I),EL(J1),C1,EL(I),EL(J2),C2,EL(J1),EL(J2),OV D = SQRT(D1 + C1*A1 + C2*A2) MX = MAX0(MAX(I),MAX(J1),MAX(J2)) DO 34 JJ = 1,MX 34 P(I,JJ) = (P(I,JJ) + A1*P(J1,JJ) + A2*P(J2,JJ))/D AZ(I) = (AZ(I) + A1*AZ(J1) + A2*AZ(J2))/D GO TO 35 9 D = QUADR(I,J,0) IF ( ABS(D) .LT. 1.E-9 ) GO TO 3 DI = SQRT(D1 - D*D) IF (P(I,1)-D*P(J,1) .LT. D0) DI = -DI IMAX = MAX(I) JMAX = MAX(J) MX = MAX0(IMAX,JMAX) DO 4 K=1,MX 4 P(I,K) = (P(I,K) - D *P(J,K))/DI AZ(I) = (AZ(I) - D*AZ(J))/DI WRITE(6,6) EL(I),EL(J),D 6 FORMAT(6X,1H(,A3,1H/,A3,4H) = ,1PE13.3) C C ***** COMPUTE AND STORE Y0(I,I) C 35 CALL YKF(I,I,0) DO 10 K = 1,NO 10 Y(I,K) = YK(K) 3 CONTINUE 2 CONTINUE RETURN END C C ------------------------------------------------------------------ C 3-22 O U T P U T C ------------------------------------------------------------------ C C THE RADIAL FUNCTIONS AND ORTHOGONALITY INTEGRALS ARE PRINTED, C IF PRINT IS .TRUE. THE FUNCTIONS P/SQRT(R) WILL ALSO BE C PUNCHED (OR STORED) ON UNIT OUF, IF OUF .NE. 0. C C SUBROUTINE OUTPUT(PRINT) REAL EL LOGICAL PRINT INTEGER OUC,OUD,OUF,OUH COMMON /INOUT/ IUC,IUD,IUF,IUH,OUC,OUD,OUF,OUH COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /LABEL/CONFIG(3,40),EL(20),ATOM,TERM DIMENSION OUT(8) IF ( .NOT. PRINT ) GO TO 30 C C ***** PRINT RADIAL FUNCTIONS, 7 PER PAGE C ML = IB 2 MU = MIN0(ML+7,NWF) I = MU - ML + 1 MX = 0 DO 1 J = ML,MU 1 MX = MAX0(MX,MAX(J)) WRITE (6,5) ATOM,TERM,(EL(J),J=ML,MU) 5 FORMAT(1H1,9X,19HWAVE FUNCTIONS FOR ,2A6//10X,1HR,8(10X,A3)) K= 0 KK = 0 DO 6 J = 1,MX DO 9 JJ = ML,MU IJ = JJ - ML + 1 9 OUT(IJ) = P(JJ,J)*R2(J) K = K+1 IF (K .LE. 10) GO TO 6 K = 1 KK = KK+1 IF (KK .LT. 5) GO TO 21 KK = 0 WRITE (6,23) 23 FORMAT(1H1//) GO TO 6 21 WRITE (6,8) 8 FORMAT(1X) 6 WRITE (6,10) R(J),(OUT(JJ),JJ=1,I) 10 FORMAT(F13.5,F15.6,7F13.6) DO 15 J = ML,MU IJ = J - ML + 1 15 OUT(IJ) = DPM(J) WRITE (6,16) (OUT(J),J=1,I) 16 FORMAT(4X,10HMAX. DIFF. ,F15.7,7F13.7) ML = ML+8 IF (ML .LE. NWF) GO TO 2 IF ( NWF .LE. 1) GO TO 30 C C ***** PRINT ORTHOGONALITY INTEGRALS C WRITE (6,11) ATOM,TERM 11 FORMAT(////10X,33HORTHOGONALITY INTEGRALS FOR ATOM ,A6,6H TERM ,A6 1 //20X, 4H(NL),3X,4H(NL),7X,8HINTEGRAL //) LM = IB ML = MAX0(2,LM) DO 12 I = ML,NWF JF = I - 1 DO 13 J = 1,JF IF (L(I) .NE. L(J)) GO TO 13 T = QUADR(I,J,0) WRITE (6,17) EL(I),EL(J),T 17 FORMAT(21X,A3,4X,A3,F15.8) 13 CONTINUE 12 CONTINUE 30 IF ( OUF .EQ. 0) GO TO 14 C C ***** OUTPUT FUNCTIONS ON UNIT OUF FOR FUTURE INPUT C DO 3 I = IB,NWF MX = MAX(I) WRITE (OUF,4) ATOM,TERM,EL(I),MX,Z,E(I,I),EK(I),AZ(I) 4 FORMAT( 6H ATOM ,A6,6H TERM ,A6,8HELECTRON ,A3,I6,F6.2/ 1 4H E =,1PE14.7,4H I =,1PE14.7,4H AZ=,1PE14.7) 3 WRITE (OUF,7) (P(I,J),J =1,MX) 7 FORMAT(5(1PE14.7)) C 14 RETURN END C C ------------------------------------------------------------------ C 3-23 P O T L C ------------------------------------------------------------------ C C COMPUTES AND STORES THE POTENTIAL FUNCTION C 2(K-1) C YR = SUM A Y (J,J;R) C J,K IJK C SUBROUTINE POTL(I) COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /COEFF/A(20,20,5),B(20,20,5),CA(4,4),CB(5,5,5) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF DO 1 J=1,NO 1 YR(J) = D0 DO 2 J=1,NWF C = A(I,J,1) IF ( ABS(C) .LE. 1.E-10) GO TO 2 DO 3 JJ = 1,NO 3 YR(JJ) = C*Y(J,JJ) + YR(JJ) DO 5 K = 2,5 C = A(I,J,K) IF (ABS(C) .LE. 1.E-10) GO TO 5 CALL YKF(J,J,2*K-2) DO 7 JJ=1,NO 7 YR(JJ) = YR(JJ) + C*YK(JJ) 5 CONTINUE 2 CONTINUE RETURN END C C ------------------------------------------------------------------ C 3-24 Q U A D C ------------------------------------------------------------------ C C EVALUATES THE INTEGRAL OF F(R)G(R) WITH RESPECT TO R , WHERE C F(R) AND G(R) HAVE THE SAME ASYMPTOTIC PROPERTIES AS P (R). THE C I C COMPOSITE SIMPSON'S RULE IS USED. THE INTEGRAND IS ZERO FOR R > C R . C M C FUNCTION QUAD(I,M,F,G) DIMENSION F(220),G(220) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) D = (D1 + D5*Z*R(1))/(H1*(2*L(I) + 3)) QUAD = RR(1)* F(1)*G(1)*( D -D5) DO 1 J = 2,M,2 1 QUAD = QUAD + D2*RR(J)*F(J)*G(J)+ RR(J-1)*F(J-1)*G(J-1) QUAD = QUAD*H1 RETURN END C C ------------------------------------------------------------------ C 3-25 Q U A D R C ------------------------------------------------------------------ C C KK C EVALUATES THE INTEGRAL OF R P (R) P (R) WITH RESPECT TO R C I J C FUNCTION QUADR(I,J,KK) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR K = KK + 2 LI = L(I) LJ = L(J) DEN = LI + LJ + 1 + K ZR = Z*R(4) BI = (P(I,4)/(AZ(I)*R2(4)*R(4)**LI) - D1+ZR/(LI+1) )/ZR**2 BJ = (P(J,4)/(AZ(J)*R2(4)*R(4)**LJ) - D1+ZR/(LJ+1) )/ZR**2 ALPHA= (D1/(LI + 1) + D1/(LJ + 1))/(DEN + D1) ZR = Z*R(1) BETA = (DEN+D1)*ALPHA**2 - D2*(BI+BJ+D1/((LI+1)*(LJ+1)))/(DEN+D2) D = P(I,1)*P(J,1)*R(1)**K*(((BETA*ZR+ALPHA)*ZR+D1)/(DEN*H1)+D5) M = MIN0(MAX(I),MAX(J)) - 1 DO 1 JJ = 2,M,2 JP = JJ + 1 1 D = D + D2*P(I,JJ)*P(J,JJ)*R(JJ)**K+P(I,JP)*P(J,JP)*R(JP)**K QUADR = D*H1 RETURN END C C ------------------------------------------------------------------ C 3-26 Q U A D S C ------------------------------------------------------------------ C C C KK C EVALUATES THE INTEGRAL OF (1/R) YK(R) P (R) P (R) WITH C I J C RESPECT TO R. C C FUNCTION QUADS(I,J,KK) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) DEN = L(I) + L(J) + 3 K = 2 - KK CD = D1 + Z*R(1)*(DEN-D1)/((DEN+D1)*((L(I)+1)*(L(J)+1))) D = YK(1)*P(I,1)*P(J,1)*R(1)**K*( CD/(DEN*H1)+ D5) MX = MIN0(MAX(I),MAX(J)) - 1 DO 1 M = 2,MX,2 1 D = D + D2*YK(M)*P(I,M)*P(J,M)*R(M)**K + 1 YK(M+1)*P(I,M+1)*P(J,M+1)*R(M+1)**K QUADS = D*H1 RETURN END C C ------------------------------------------------------------------ C 3-27 R K C ------------------------------------------------------------------ C C K C EVALUATES R (I, J; II, JJ) C C FUNCTION RK(I,J,II,JJ,K) CALL YKF(I,II,K) RK = QUADS(J,JJ,1) RETURN END C C ------------------------------------------------------------------ C 3-28 R O T A T E C ------------------------------------------------------------------ C C THIS ROUTINE ANALYSES THE ENERGY EXPRESSION TO DETERMINE THE C STATIONARY CONDITION WITH RESPECT TO ROTATION OF ORBIALS I AND J. C IF THE CONDITION IS ZERO, THE OFF-DIAGONAL ENERGY PARAMETERS MAY C BE SET TO ZERO; OTHERWISE THE ORBITALS ARE ROTATED SO AS TO SATISFY C THE STATIONAY CONDITION TO FIRST ORDER IN THE PERTURBATION. C C ROTATE SHOULD ONLY BE CALLED WHEN BOTH ORBITALS ARE BEING C VARIED, AN ORTHOGONALITY CONSTRAINT APPLIES TO THE PAIR, AND NO C OTHER ORBITALS ARE PRESENT WITH THE SAME PRINCIPAL QUANTUM NUMBERS. C AN INCORRECT VALUE OF ORTHO = .FALSE. MAY CAUSE ROTATE TO BE CALLED C WHEN THE ABOVE CONDITIONS DO NOT APPLY. C C SUBROUTINE ROTATE(I,J) REAL EL,QC LOGICAL FAIL,RSCAN(20),OMIT,ORTHO,EZERO,ALL COMMON /TEST/FAIL,RSCAN,ORTHO,OMIT,EZERO,ALL COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /TEMP/QI,QJ,G,DI,DJ,DII,DJJ,DIJ,DJI,IDUM(3303) COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR COMMON /LABEL/CONFIG(3,40),EL(20),ATOM,TERM COMMON /COEFF/A(20,20,5),B(20,20,5),CA(4,4),CB(5,5,5) COMMON /STATE/WT(40),QC(20,40),CFG(200),CR(300),KFG(200),NF,NG,NR, 1 NL,IFG(200),NCI(200),JFG(200),NCJ(200),KR(300),I1R(300),I2R(300) 2 ,NCRI(300),J1R(300),J2R(300),NCRJ(300),IO(300),JO(300),IQ(300) 3 ,CL(20),ILI(20),NCLI(20),ILJ(20),NCLJ(20),ILO(20),JLO(20),LQ(20) G = D0 DG = D0 IF (QI .EQ. D2*(2*L(I)+1) .AND. QJ .EQ. D2*(2*L(J)+1)) 1 GO TO 44 IF (ABS(QI - QJ) .LT. 1.E-14) GO TO 16 C = D5*(QI - QJ) G = G -C*HL(I,J) DG = DG -C*(HL(I,I) - HL(J,J)) C 16 DO 13 K = 1,5 C = QI*(A(I,I,K) - A(I,J,K) - B(I,J,K)) IF (ABS(C) .LT. 1.E-10) GO TO 21 G = G + C*RK(I,I,I,J,2*(K-1)) FKII = FK(I,I,2*(K-1)) FKIJ = FK(I,J,2*(K-1)) GKIJ = GK(I,J,2*(K-1)) DG = DG +C*(FKII - FKIJ - D2*GKIJ) 21 CJ = QJ*(A(J,J,K) - A(J,I,K) - B(J,I,K)) IF (ABS(CJ) .LT. 1.E-10) GO TO 13 FKJJ = FK(J,J,2*(K-1)) IF (ABS(C) .GE. 1.E-10) GO TO 22 FKIJ = FK(I,J,2*(K-1)) GKIJ = GK(I,J,2*(K-1)) 22 G = G - CJ*RK(J,J,J,I,2*(K-1)) DG = DG + CJ*(FKJJ -FKIJ - D2*GKIJ) 13 CONTINUE DO 14 M = 1,NWF IF (M .EQ. I .OR. M.EQ. J) GO TO 14 DO 15 K = 1,5 C = A(I,M,K)*QI - A(J,M,K)*QJ IF (ABS(C) .LT. 1.E-10) GO TO 23 G = G + C*RK(I,M,J,M,2*(K-1)) DG = DG + C*(FK(I,M,2*(K-1)) - FK(J,M,2*(K-1))) 23 C = B(I,M,K)*QI - B(J,M,K)*QJ IF (ABS(C) .LT. 1.E-10) GO TO 15 KK = IABS(L(I) - L(M)) + 2*(K-1) G = G + C*RK(I,J,M,M,KK) DG = DG + C*(GK(I,M,KK) - GK(J,M,KK)) 15 CONTINUE 14 CONTINUE C C C ***** ADD CONTRIBUTION FROM THE INTERACTION OF CONFIGURATIONS C IF (NR .EQ. 0) GO TO 11 DO 20 II = 1,NR N1 = NCRI(II) N2 = NCRJ(II) C = WT(N1)*WT(N2)*CR(II) CALL RPERT(I,J,II) IF (.NOT. EZERO ) GO TO 45 G = G + D5*C*(DI - DJ) DG = DG +D5*C*(DIJ - DJJ - DII + DJI) 20 CONTINUE C C C ***** ADD CONTRIBUTION FROM THE INTERACTION OF CONFIGURATIONS - HL C 11 IF (NL .EQ. 0) GO TO 101 DO 30 II = 1,NL N1 = NCLI(II) N2 = NCLJ(II) C = WT(N1)*WT(N2)*CL(II) CALL LPERT(I,J,II) IF (.NOT. EZERO ) GO TO 45 G = G + D5*C*(DI - DJ) DG = DG + D5*C*(DIJ - DJJ - DII + DJI) 30 CONTINUE 101 WRITE (6,100) G,DG 100 FORMAT(10X,12HCONDITION = ,F10.6,4X,12HVARIATION = ,F10.6) IF (ABS(G) .GT. 1.E-9 .OR. ABS(E(I,J)) .GT. 2.E-10) GO TO 40 G = D0 44 E(I,J) = D0 RETURN 40 EPS = G/DG EZERO = .FALSE. DD = SQRT(D1 + EPS*EPS) DO 41 JJ = 1,NO PI = (P(I,JJ) + EPS*P(J,JJ))/DD P(J,JJ) = (P(J,JJ) - EPS*P(I,JJ))/DD 41 P(I,JJ) = PI CALL YKF(I,I,0) DO 42 JJ=1,NO 42 Y(I,JJ) = YK(JJ) CALL YKF(J,J,0) DO 43 JJ = 1,NO 43 Y(J,JJ) = YK(JJ) RETURN C C ***** ONE OF THE PAIR OF ORBITALS OCCURS IN AN OVERLAP INTEGRAL AND C ***** THE PAIR CANNOT BE ROTATED. C 45 G = D0 RETURN END C C ------------------------------------------------------------------ C 3-29 R P E R T C ------------------------------------------------------------------ C C RPERT DETERMINES THE EFFECT OF A PERTURBATION IN THE FORM OF A C ROTATION OF THE I'TH AND J'TH ORBITAL BOTH ON THE ENERGY AND ON THE C STATIONARY CONDITION, DUE TO THE PRESENCE OF A GIVEN RK INTEGRAL. C C SUBROUTINE RPERT(IIN,JIN,M) REAL EL,QC LOGICAL FAIL,RSCAN(20),OMIT,ORTHO,EZERO,ALL COMMON /TEST/FAIL,RSCAN,ORTHO,OMIT,EZERO,ALL COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON /TEMP/QI,QJ,G,DI,DJ,DII,DJJ,DIJ,DJI,IDUM(3303) COMMON /STATE/WT(40),QC(20,40),CFG(200),CR(300),KFG(200),NF,NG,NR, 1 NL,IFG(200),NCI(200),JFG(200),NCJ(200),KR(300),I1R(300),I2R(300) 2 ,NCRI(300),J1R(300),J2R(300),NCRJ(300),IO(300),JO(300),IQ(300) 3 ,CL(20),ILI(20),NCLI(20),ILJ(20),NCLJ(20),ILO(20),JLO(20),LQ(20) DIMENSION IND(6) EQUIVALENCE (I1,IND(1)),(I2,IND(2)),(I3,IND(3)),(I4,IND(4)), 1 (I5,IND(5)),(I6,IND(6)) I1 = I1R(M) I2 = I2R(M) I3 = J1R(M) I4 = J2R(M) KK = KR(M) J = IIN I = JIN IPW = IQ(M) IF (IPW .EQ. 0) GO TO 1 I5 = IO(M) I6 = JO(M) OVLAP = QUADR(I5,I6,0)**IPW IF ((I5-I)*(I6-I)*(I5-J)*(I6-J) .NE. 0) GO TO 1 EZERO = .FALSE. RETURN 1 DO 10 KP = 1,2 DI = D0 DII = D0 DIJ = D0 DO 2 K = 1,4 IF (IND(K) .NE. I) GO TO 2 IND(K) = J DI = DI + RK(I1,I2,I3,I4,KK) IF (.NOT. ALL) GO TO 3 DO 4 K2 = 1,4 IF (IND(K2) .NE. J) GO TO 5 IND(K2) = I DIJ = DIJ + RK(I1,I2,I3,I4,KK) IND(K2) = J 5 IF (IND(K2) .NE. I) GO TO 4 IND(K2) = J DII = DII + RK(I1,I2,I3,I4,KK) IND(K2) = I 4 CONTINUE 3 IND(K) = I 2 CONTINUE IF (IPW .EQ. 0) GO TO 6 DI = DI*OVLAP DII = DII*OVLAP DIJ = DIJ*OVLAP 6 IF (KP .EQ. 2) RETURN DJ = DI DJJ = DII DJI = DIJ I = IIN J = JIN 10 CONTINUE RETURN END C C ------------------------------------------------------------------ C 3-30 S C A L E C ------------------------------------------------------------------ C C THE CURRENT RADIAL FUNCTIONS ARE SCALED ACCORDING TO THE C PROCEDURES OF SEC. 7-2 . VALUES OF AZ AND E(I,I), THE STARTING C VALUES AND THE DIAGONAL ENERGY PARAMETERS ARE ALSO SCALED. C C SUBROUTINE SCALE(ZZ) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR COMMON /TEMP/RATIO,SR,SC,SS,F0,F1,F2,F3,PNORM,THETA,K,IDUM(3300) DIMENSION RS(220),PS(220) EQUIVALENCE (RS(1),YR(1)),(PS(1),X(1)) C C ***** SCALE VALUES OF R=RS, P=PS AND ONE-ELECTRON PARAMETERS. C ***** GENERATE NEW VALUES OF R, R*R, AND SQRT(R) C RATIO = Z/ZZ SR = SQRT(RATIO) DO 1 J = 1,NO R(J) = R(J)*RATIO RR(J) = R(J)*R(J) 1 R2(J) = R2(J)*SR DO 2 I = 1,NWF SC = (ZZ-S(I))/(Z-S(I)) SS = SC*RATIO E(I,I) = E(I,I)*SC**2 a write(6,499) ss, sc, sr, ratio, zz, z 499 format(' ss, sc, sr, ratio, zz, z',6e10.3) DO 3 J = 1,NO RS(J) = R(J)/SS 3 PS(J) = P(I,J)*SC SC = (ZZ - D5*S(I))/(Z - D5*S(I)) AZ(I) = AZ(I)*SC**(L(I)+1)*SQRT(SC) a if (sc.lt.d0) write(6,500) sc,zz,z,s(i) 500 format(' test of sc line 2524 ',4f10.8) K = 3 C C ***** INTERPOLATE THE (RS,PS) FUNCTIONS FOR VALUES OF P AT THE SET C ***** OF POINTS R C DO 4 J = 1,NO C C ***** SEARCH FOR THE NEAREST ENTRIES IN THE (RS,PS) TABLE C 5 IF (K .EQ. ND) GO TO 7 IF (RS(K) .GT. R(J)) GO TO 6 K = K + 1 GO TO 5 C C ***** INTERPOLATE C 6 THETA = ALOG(R(J)/RS(K-1))/H F0 = PS(K-2) F1 = PS(K-1) F2 = PS(K) F3 = PS(K+1) P(I,J) = D5*(F1+F2) + (THETA -D5)*(F2 - F1) + 1 THETA*(THETA - D1)*(F0 - F1 - F2 + F3)/D4 GO TO 4 7 P(I,J) = D0 4 CONTINUE MAX(I) = NO C C *****NORMALIZE THE INTERPOLATED FUNCTION C PNORM = SQRT(QUADR(I,I,0)) a if (pnorm.le.0.d0) write(6,501) pnorm 501 format(' pnorm error ',f10.7) DO 10 J = 1,NO 10 P(I,J) = P(I,J)/PNORM C C ***** COMPUTE NEW VALUES OF Y0(I,I) AND STORE C CALL YKF(I,I,0) DO 11 J = 1,NO 11 Y(I,J) = YK(J) 2 CONTINUE Z = ZZ RETURN END C C ------------------------------------------------------------------ C 3-31 S C F C ----------------------------------------------------------------- C C THIS ROUTINE CONTROLS THE SCF PROCEDURE DESCRIBED IN CHAPTER C 7. IF CERTAIN INPUT PARAMETERS ARE ZERO (OR BLANK) THEY WILL BE C SET TO THEIR DEFAULT VALUE. C C PARAMETER DEFAULT VALUE C -------- ------------- C CFGTOL 1.E-10 C SCFTOL 1.E-7 C IC (NWF + 1 - IB)/4 + 3 C NSCF 12 C C THE SELF-CONSISTENCY CONVERGENCE CRITERION IS C C Z2 = SQRT( SCFTOL*(Z*NWF/2) ) C C IT IS INCREASED BY A FACTOR TWO AT THE END OF EACH ITERATION WHEREAS C CFGTOL IS INCREASED BY SQRT(2). C C SUBROUTINE SCF(ETOTAL,ACFG,SCFTOL,CFGTOL,LD,NEW) REAL EL LOGICAL FAIL,RSCAN(20),OMIT,ECONV,ORTHO,EZERO,LD,LAST,CONV,ALL COMMON /TEST/FAIL,RSCAN,ORTHO,OMIT,EZERO,ALL COMMON /LABEL/CONFIG(3,40),EL(20),ATOM,TERM COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR INTEGER OUC,OUD,OUF,OUH COMMON /INOUT/ IUC,IUD,IUF,IUH,OUC,OUD,OUF,OUH COMMON /HMATRX/ ET(40,40) C C ***** DETERMINE THE NUMBER OF NEW CONFIGURATION STATES C IF (NEW .EQ. 0) NEW = NCFG NC = NCFG - NEW +1 C C ***** READ HMATRIX FROM UNIT IUH , IF DIFFERENT FROM ZERO C IF ( IUH .EQ. 0 .OR. NC .LE. 1 ) GO TO 101 NCM = NC - 1 DO 102 I = 1,NCM READ (IUH,103) (ET(I,J),J=1,I) 103 FORMAT(5F14.7) C C ***** SYMMETRIZE THE MATRIX C DO 104 J = 1,I 104 ET(J,I) = ET(I,J) 102 CONTINUE C C ***** SET THE SCF CONVERGENCE PARAMETER TO AN OPTIMISTIC VALUE C c eq in next two statements corrected to le 101 IF ( CFGTOL .LE. D0) CFGTOL = .1E-9 IF ( SCFTOL .LE. D0) SCFTOL = 1.E-7 IF ( IC .EQ. 0 .AND. NCFG .EQ. 1 ) IC = 3 + (NWF + 1 - IB)/4 TOL = SQRT(Z)*1.E-10 Z2 = SCFTOL*SQRT(Z*NWF) WRITE (6,15) 15 FORMAT(//) WRITE (6,16) ORTHO,OMIT,ACFG,SCFTOL,NO 16 FORMAT(10X,44HORTHOGONALITY BETWEEN CONFIGURATIONS =,L4/ 1 10X,44HWEAK ORTHOGONALIZATION DURING THE SCF CYCLE=,L4/ 2 10X,44HACCELERATING PARAMETER FOR MCHF ITERATION =,F5.2/ 3 10X,44HSCF CONVERGENCE TOLERANCE (FUNCTIONS) =,1PE9.2 4 ,/10X,44HNUMBER OF POINTS IN THE MAXIMUM RANGE =,I4) C C ***** SET ITERATION PARAMETERS C IPR = 0 ECONV = .FALSE. LAST = .FALSE. IF (IB .GT. NWF ) LAST = .TRUE. DP1 = D0 ETOTAL = D0 IF (NSCF .EQ. 0) NSCF = 12 IF ( .NOT. LD ) GO TO 9 CALL DIAG(ETOTAL,ECONV,ACFG,CFGTOL,NC,LAST) IF (LAST) RETURN IF ( NCFG .GT. 1 .AND. ID .NE. 1) CALL ARRAY C C ***** PERFORM NSCF SELF-CONSISTENT FIELD ITERATIONS C 9 DO 100 I = 1,NSCF WRITE(6,7) I,CFGTOL,Z2 7 FORMAT(//10X,17HITERATION NUMBER ,I2/10X,16H----------------// 1 10X,50HCONVERGENCE CRITERIA:ENERGY (CFGTOL) =,1PE9.1/ 2 10X,50H :FUNCTION(SCFTOL*SQRT(Z*NWF))=,1PE9.1) DP1 = D0 IF (IB .GT. NWF) GO TO 12 CALL GRANGE C C ***** SOLVE EACH DIFFERENTIAL EQUATION IN TURN C WRITE(6,14) 14 FORMAT(/20X,3H EL,9X,2HED,13X,2HAZ,11X,4HNORM,7X,3HDPM) DO 2 J = IB,NWF CALL DE(J) IF ( FAIL ) GO TO 3 DP = DPM(J)*SQRT(SUM(J)) IF ( DP1 .GE. DP ) GO TO 2 DP1 = DP JJ = J 2 CONTINUE IF ((NCFG .EQ. 1 .OR. ID .EQ. 1) .AND. DP1 .LT. Z2) GO TO 6 IF ( IC .LE. 0) GO TO 6 C C ***** SOLVE IC DIFFERENTIAL EQUATIONS EACH TIME SELECTING THE C ***** ONE WITH THE LARGEST DPM C DO 4 II =1,IC CALL DE(JJ) IF ( FAIL ) GO TO 3 DP1 = D0 DO 5 J = IB,NWF DP = SQRT(SUM(J))*DPM(J) IF ( DP1 .GT. DP ) GO TO 5 JJ = J DP1 = DP 5 CONTINUE IF (DP1 .LT. Z2) GO TO 6 4 CONTINUE 6 CALL ORTHOG IF (.NOT.(NCFG .EQ. 1 .OR. ID .EQ. 1)) GO TO 12 IF (DP1 .GT. Z2) GO TO 1 IF (DP1 .LE. Z2 .AND. LAST ) GO TO 12 LAST = .TRUE. GO TO 1 12 CALL DIAG(ETOTAL,ECONV,ACFG,CFGTOL,NC,LAST) IF ( NCFG .GT. 1 .AND. ID .NE. 1) CALL ARRAY C C ***** IF FUNCTIONS APPEAR TO HAVE CONVERGED,SOLVE EACH AGAIN, IN C ***** TURN, AND TEST AGAIN C IF (IB .GT. NWF) RETURN CONV = ECONV .AND. DP1 .LE. Z2 IF (CONV .AND. LAST) RETURN IF (CONV) LAST =.TRUE. C C ***** INCREASE THE CONVERGENCE CRITERION FOR SELF-CONSISTENCY C 1 Z2 = D2*Z2 WRITE(6,8) EL(JJ),DP1 8 FORMAT(/10X,34HLEAST SELF-CONSISTENT FUNCTION IS ,A3, 1 27H (WEIGHTED MAXIMUM CHANGE =,1PE10.2,1H)) 100 CFGTOL = 1.4E0*CFGTOL WRITE (6,13) 13 FORMAT(10X,46HSCF ITERATIONS HAVE NOT CONVERGED TO REQUESTED 1 ,9H ACCURACY) FAIL = .TRUE. 3 RETURN END C C ------------------------------------------------------------------ C 3-32 S E A R C H C ------------------------------------------------------------------ C C THIS ROUTINE SEARCHES FOR THE NJ>70 SUCH THAT YR(J) > 0 FOR ALL C J > NJ. C C SUBROUTINE SEARCH(NJ,I) COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF IA = 70 IL = NO 4 IF (YR(IA) .LT. D0) GO TO 3 IA = IA + 2 IF (IA .LT. IL ) GO TO 4 NJ = MAX0(70,MAX(I)-100) RETURN 3 NK = (IA + IL)/2 IF (YR(NK) .LT. D0) GO TO 1 IL = NK GO TO 2 1 IA = NK 2 IF (IL - IA .GT. 1) GO TO 3 NJ = IL - 7 RETURN END C C ------------------------------------------------------------------ C 3-33 S M C ------------------------------------------------------------------ C C 3 K C EVALUATES THE INTEGRAL OF (1/R) P (R) P (R) Z (J, J; R) WITH C I I C RESPECT TO R. C C FUNCTION SM(I,J,K) CALL ZK(J,J,K) SM = QUADS(I,I,3)*2.921787 RETURN END C C ------------------------------------------------------------------ C 3-34 S N C ------------------------------------------------------------------ C C 3 K C EVALUATES THE INTEGRAL OF (1/R) P (R) P (R) Z (I, J; R) WITH C I J C RESPECT TO R. C FUNCTION SN(I,J,K) CALL ZK(I,J,K) SN = QUADS(I,J,3)*2.921787 RETURN END C C ------------------------------------------------------------------ C 3-35 S O L V E C ------------------------------------------------------------------ C C WHEN FIRST IS .TRUE., SOLVE COMPUTES THE POTENTIAL AND EXCHANGE C FUNCTION AND INITIALIZES VARIABLES FOR THE I'TH RADIAL EQUATION. C THE VECTOR P1 IS THE SOLUTION OF THE RADIAL EQUATION AND P2 THE C VARIATION OF THE SOLUTION WITH RESPECT TO THE ENERGY PARAMETER C E(I,I). C C SUBROUTINE SOLVE(I,FIRST) REAL EL LOGICAL ONE,FIRST COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON /TEMP/ P2(220),HQ(220),XX(220),AZZ,PP,FN,EM,FM,EU,FU, 1 DELTAE,M,NODE,MK,KK,NJ,IDUM(1980) COMMON /LABEL/CONFIG(3,40),EL(20),ATOM,TERM DIMENSION ZERO(220),P1(220) EQUIVALENCE (ZERO(1),XX(1)),(PDE(1),P1(1)) C C ***** IF FIRST IS 'TRUE', CALL POTL AND XCH AND SET UP ARRAYS C IF (.NOT. FIRST) GO TO 17 CALL POTL(I) CALL XCH(I,3) FN = N(I) FL = L(I) V = YR(1)/R(1) B4 = Z*(FL+1.3333333333)/((FL+D1)*(FL+D2)) CN = (D2*Z/FN)**(L(I) +1) C = D4*FL +D6 CD = (FL+D5)**2 XY = X(1) XP = X(2) ED = E(I,I) X1 = X(1) X2 = X(2) X3 = X(3) X4 = X(4) DO 1 J = 3,ND X5 = X(J+2) X(J) =CH*(-X5+24.E0*(X4+X2) + 194.E0*X3 - X1)/20.E0 X1 = X2 X2= X3 X3 = X4 1 X4 = X5 X(NO-1) = CH*(X4 + D10*X3 + X2) DO 4 J = 1,NO 4 YK(J) = -D2*(Z - YR(J))*R(J) + CD X1 = CH*P(I,1)*(YK(1)+ED*RR(1)) X2 = CH*P(I,2)*(YK(2)+ED*RR(2)) X3 = CH*P(I,3)*(YK(3)+ED*RR(3)) X4 = CH*P(I,4)*(YK(4)+ED*RR(4)) DO 7 J = 3,ND X5 = CH* P(I,J+2)*(YK(J+2)+ED*RR(J+2)) X(J) = X(J) - (X5 -D4*(X2 + X4) + D6*X3 +X1)/20.E0 X1 = X2 X2 = X3 X3 = X4 7 X4 = X5 RL = L(I) + 2.5 X(2) = R(2)**RL*(X(5)/R(5)**RL - D3*(X(4)/R(4)**RL - 1 X(3)/R(3)**RL)) C C ***** DETERMINE LOWER BOUND ON THE ENERGY PARAMETER C DO 11 JJ = 15,ND J = NO - JJ IF (YK(J) .LT. D0) GO TO 63 11 CONTINUE WRITE ( 6,12) 12 FORMAT(10X,49HPOTENTIAL FUNCTION TOO SMALL - 2R*(Z-Y)<(L+.5)**2) STOP 63 EM = -YK(J)/RR(J) FM = EM C C ***** DETERMINE DIAGONAL ENERGY PARAMETER C F1 = D0 C11 = D0 M = MIN0(MAX(I),NO-1) DO 5 J = 2,M FNUM = P(I,J+1) - P(I,J) - P(I,J) + P(I,J-1) -CH*( YK(J+1)* 1 P(I,J+1) + D10*YK(J)*P(I,J) + YK(J-1)*P(I,J-1))-X(J) DEL1 = RR(J+1)*P(I,J+1) + D10*RR(J)*P(I,J) + RR(J-1)*P(I,J-1) F1 = F1 +P(I,J)*FNUM C11 = C11 + P(I,J)*DEL1 5 CONTINUE ED = F1/(C11*CH) IF (ED .GT. EM) GO TO 19 C C ***** ERROR MESSAGE AND ENERGY ADJUSTMENT FOR AN ENERGY PARAMETER C ***** TOO SMALL FOR THE RANGE OF THE FUNCTION C WRITE (6,24) ED 24 FORMAT(10X,5HED = ,F10.6,36H; ADJUSTED TO ALLOWED MINIMUM ENERGY ) ED = EM IF ( ABS(FM - E(I,I)) .GT. 1.E-6 ) GO TO 19 WRITE (6,64) EL(I) 64 FORMAT(//10X,14HITERATION FOR ,A3,24H MAY BE CONVERGING TO A , 1 18HCONTINUUM FUNCTION/10X, 2 39HCHECK THAT E(CORE)-E(TOTAL) IS POSITIVE ) C C ***** CHECK IF UPPER BOUND IS CORRECT C 19 IF ( D10*ED .LT. EU) GO TO 18 EU = D10*ED FU = EU 18 AZD = AZ(I) 17 DO 26 J=1,NO YR(J) = (YK(J) + ED*RR(J))*CH 26 ZERO(J) = D0 C C ***** SEARCH FOR THE POINT AT WHICH YR BECOMES POSITIVE C CALL SEARCH(NJ,I) C C ***** COMPUTE STARTING VALUES FROM SERIES EXPANSION C B3 = (V + V + ED - (Z/FN)**2)/C DO 6 J = 1,2 HW = HWF(N(I),L(I),Z,R(J))/CN 6 HQ(J) = AZD*(HW + R(J)**(L(I)+3)*B3*(D1-R(J)*B4))/R2(J) C C ***** OBTAIN HOMOGENEOUS SOLUTION C CALL NMRVS(NJ,DELH,MH,HQ,ZERO) P1(1) = HQ(1) + XY/C P1(2) = HQ(2) + XP/C C C ***** OBTAIN PARTICULAR SOLUTION C CALL NMRVS(NJ,DEL1,M1,P1,X) C C ***** DETERMINE THE ENERGY ADJUSTMENT REQUIRED FOR A SOLUTION WITH C ***** GIVEN A0 C M = MAX0(M1,MH) PNORM = D0 DO 50 J = 1,M 50 PNORM = PNORM + RR(J)*HQ(J)*P1(J) Y1 = P1(NJ-1) Y2 = P1(NJ) Y3 = P1(NJ+1) DELTA = Y2 - Y1 + Y2 - Y3 +YR(NJ-1)*Y1 + D10*YR(NJ)*Y2 1 + YR(NJ+1)*Y3 + X(NJ) DELTAE = HQ(NJ)*DELTA/(H*H*PNORM) PP = -DEL1/DELH C C ***** MATCH AT THE JOIN FOR A SOLUTION OF THE DIFFERENTIAL EQUATION C DO 13 J = 1,NO 13 P1(J) = P1(J) + PP*HQ(J) C C ***** IF THE EQUATIONS APPEAR TO BE NEARLY C **** SINGULAR, SOLVE THE VARIATIONAL EQUATIONS C IF (KK .NE. 2) RETURN X1 = P(I,1)*RR(1) X2 = P(I,2)*RR(2) P2(1) = X1/C P2(2) = X2/C DO 8 J = 3,NO X3 = P(I,J)*RR(J) XX(J-1) = (D10*X2 + X1 + X3)*CH X1 = X2 8 X2 = X3 CALL NMRVS(NJ,DEL2,M2,P2,XX) AA = -DEL2/DELH M = MAX0(M,M2) DO 9 J = 1,NO 9 P2(J) = P2(J) + AA*HQ(J) A11 = QUAD(I,M,P2,P2) B11 = QUAD(I,M,P1,P2) C11 = QUAD(I,M,P1,P1) - D1 DISC = B11*B11 - A11*C11 IF ( DISC .LT. D0 ) GO TO 70 DE1 = -(B11+SQRT(DISC))/A11 DE2 = C11/A11/DE1 IF ( P1(3)+DE1*P2(3) .LT. D0) DE1 = DE2 GO TO 71 70 DE1 = C11/A11 71 DO 301 J = 1,NO P1(J) = P1(J) + DE1*P2(J) 301 CONTINUE PP = PP + DE1*AA RETURN END C C ------------------------------------------------------------------ C 3-36 S U M M R Y C ------------------------------------------------------------------ C C THE RESULTS OF A CALCULATION ARE SUMMARIZED. THESE INCLUDE C THE FOLLOWING FOR EACH ELECTRON: C C E(NL) - DIAGONAL ENERGY PARAMETER C AZ(NL) - STARTING PARAMETER, P(R)/R**(L+1) AS R -> 0. C SIGMA - SCREENING PARAMETER AS DEFINED BY EQ. (7-2) . C 1/R**3 - EXPECTED VALUE OF <1/R**3> C 1/R - EXPECTED VALUE OF <1/R> C R - EXPECTED MEAN RADIUS C R**2 - EXPECTED VALUE OF <R**2> C I(NL) - -(1/2)<NL!L!NL> C KE - I(NL) + Z <R> C C THESE RESULTS ARE FOLLOWED BY: C C TOTAL ENERGY (ET) C KINETIC ENERGY (EK) C POTENTIAL ENERGY (EP) = ET - EN C RATIO = - EP/EN C K K K C THE VALUES OF ALL F , G , R AND <NL!L!N'L> INTEGRALS WHICH ENTER C INTO THE CALCULATION ARE PRINTED, IF OUD > 0. C IF OUD > 0, THE SPIN-ORBIT PARAMETERS ZETA, AS DEFINED BY BLUME C AND WATSON (1962) ARE COMPUTED FOR EACH CONFIGURATION. C THIS CALCULATION AGREES WITH THEIR FORMULAS FOR CONFIGURATIONS C WITH ONLY ONE OPEN SHELL (THE ONLY CASE CONSIDERED IN THEIR C PAPER). WHEN MORE THAN ONE OPEN SHELL IS PRESENT, THE C "EXCHANGE PART" BETWEEN OPEN SHELLS IS IGNORED. THE SPIN-SPIN C PARAMETERS ARE ALSO PRINTED. C SUBROUTINE SUMMRY(ET) REAL EL,QC INTEGER OUC,OUD,OUF,OUH LONG D,F,G C DATA D/4H /,F/1HF/,G/1HG/ COMMON /INOUT/ IUC,IUD,IUF,IUH,OUC,OUD,OUF,OUH COMMON /LABEL/CONFIG(3,40),EL(20),ATOM,TERM COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR COMMON /STATE/WT(40),QC(20,40),CFG(200),CR(300),KFG(200),NF,NG,NR, 1 NL,IFG(200),NCI(200),JFG(200),NCJ(200),KR(300),I1R(300),I2R(300) 2 ,NCRI(300),J1R(300),J2R(300),NCRJ(300),IO(300),JO(300),IQ(300) 3 ,CL(20),ILI(20),NCLI(20),ILJ(20),NCLJ(20),ILO(20),JLO(20),LQ(20) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON /COEFF/A(20,20,5),B(20,20,5),CA(4,4),CB(5,5,5) COMMON /TEMP/R3(20),SS(3),R1,RM,RMM,RH,SC,QI,QJ,SP,C,CC,OUT(5), 1 EKINP,EN,EPOT,RATIO,LI,LJ,K,KF,I1,I2,J1,J2,I,J,MIN,IW(5), 2 IDUM(3221) COMMON /PRIVATE/ CV(3,4,3),CN(3,4,4) DATA CV/-1.0E0,-.6E0,0.E0,-.6E0,-.2E0,-.1714285714285714,.2E0, 1 2*-.08571428571428571,.2571428571428571,.08571428571428571, 2 -.028571428571428571,2*0.E0,-.4285714285714286,0.E0, 3 -.3428571428571428,-.2380952380952380,-.5142857142857143, 4 -.2857142857142857,-.08571428571428571,-.4761904761904762, 5 -.0571428571428571,-.0649350649350649,8*0.E0,-.1948051948051948 6 ,0.E0,-.2597402597402597,-.1748251748251748/ DATA CN/ 2.E0,1.8E0,0.E0,-1.E0,.8E0,.85714285714285714,.8E0,-.6E0, 1 .5142857142857143,1.285714285714286,.5142857142857143, 2 -.4285714285714286,-1.E0,-1.2E0,1.714285714285714,0.E0, 3 -.1428571428571428,-.04761904761904762,-1.6857142857142857, 4 .1714285714285714,-.2571428571428571,-2.476190476190476, 5 -.7142857142857142,-.1428571428571428,2*0.E0, 6 -1.285714285714286,0.E0,-.3428571428571428,-.4761904761904762, 7 .5142857142857143,0.E0,.03376623376623377,.9523809523809524, 8 -.3688311688311688,-.0649350649350649,8*0.E0,-.1948051948051948 9 ,0.E0,.2597402597402597,0.E0/ D=' ' F='F' G='G' WRITE (6,9) ATOM,TERM 9 FORMAT(/// 24X,5HATOM ,A6,3X,5HTERM ,A6//67X,13HMEAN VALUE OF,24X, 1 22HONE ELECTRON INTEGRALS /5X,2HNL,7X,5HE(NL),9X,6HAZ(NL), 2 5X,5HSIGMA,8X,6H1/R**3,8X,3H1/R,10X,1HR,13X,4HR**2,10X, 3 5HI(NL),9X,2HKE ) EN = D0 C C ***** COMPUTE AND PRINT ONE-ELECTRON PARAMETERS C DO 10 I = 1,NWF R1 = QUADR(I,I,-1) RM = QUADR(I,I,1) RMM = QUADR(I,I,2) EKINP = EK(I) + Z*R1 EN = EN+ SUM(I)*EKINP RH = 3*N(I)*N(I) - L(I)*(L(I) + 1) SC = Z - D5*RH/RM S(I) = SC R3(I) = D0 IF (L(I) .NE. 0) R3(I) = QUADR(I,I,-3) WRITE (6,15)EL(I),E(I,I),AZ(I),SC,R3(I),R1,RM,RMM,EK(I),EKINP 15 FORMAT( 4X,A3,F14.7,F15.7,F8.3,2F14.5,4F14.7) 10 CONTINUE IF ( NL .EQ. 0 ) GO TO 31 C C ***** ADD CONTRIBUTION FROM THE 'L' INTEGRALS C DO 32 I = 1,NL N1 = NCLI(I) N2 = NCLJ(I) CC = CL(I)*WT(N1)*WT(N2) IF (LQ(I) .NE. 0) CC = CC*QUADR(ILO(I),JLO(I),0)**LQ(I) CONT = CC*(HL(ILI(I),ILJ(I)) - D2*Z*QUADR(ILI(I),ILJ(I),-1)) 32 EN = EN + CONT 31 EPOTL = ET - EN RATIO =-EPOTL/EN WRITE (6,26) ET,EN,EPOTL,RATIO 26 FORMAT(/4X,15HTOTAL ENERGY = ,F14.7,4X,17HKINETIC ENERGY = ,F14.7, 1 4X,19HPOTENTIAL ENERGY = ,F14.7 ,4X,8HRATIO = ,F11.9) IF ( OUD .EQ. 0 ) RETURN WRITE (OUD,126) 126 FORMAT(/2X,27HVALUES OF F AND G INTEGRALS /) C C ***** PRINT TABLES OF 'FK' AND 'GK' INTEGRALS WHICH WERE USED IN C ***** DETERMINING THE ENERGY C DO 17 J = IB,NWF DO 20 I = 1,J KF = 0 MIN = 0 DO 16 K = 1,5 IF (A(I,J,K) .EQ. D0) GO TO 18 IW(K) = MIN OUT(K) = FK(I,J,MIN) MIN = MIN + 2 16 KF = KF + 1 18 IF (KF .NE. 0) WRITE(OUD,19) (D,F,IW(K),EL(I),EL(J),OUT(K),K=1,KF) 19 FORMAT( 2(2X,2A1,I1,1H(,A3,1H,,A3,4H ) =, F10.7,2X)) MIN = IABS(L(I) - L(J)) KF = 0 DO 24 K = 1,5 IF (B(I,J,K) .EQ. D0) GO TO 25 IW(K) = MIN OUT(K) = GK(I,J,MIN) MIN = MIN + 2 24 KF = KF + 1 25 IF (KF .NE. 0) WRITE(OUD,19) (D,G,IW(K),EL(I),EL(J),OUT(K),K=1,KF) 20 CONTINUE 17 CONTINUE IF (NR .EQ. 0) GO TO 27 C C ***** PRINT TABLES OF 'RK' INTEGRALS C WRITE (OUD,21) 21 FORMAT(//2X,21HVALUES OF R INTEGRALS //) DO 22 I = 1,NR I1 = I1R(I) I2 = I2R(I) J1 = J1R(I) J2 = J2R(I) OUT(1) = RK(I1,I2,J1,J2,KR(I)) 22 WRITE (OUD,23) KR(I),EL(I1),EL(I2),EL(J1),EL(J2),OUT(1) 23 FORMAT(2X,1HR,I1,2H (,2A3,1H,, 2A3,4H ) =, F10.7 ) 27 IF (NL .EQ. 0) GO TO 13 C C ***** PRINT TABLES OF 'L' INTEGRALS C WRITE (OUD,28) 28 FORMAT(2X,21HVALUES OF L INTEGRALS //) DO 29 I = 1,NL I1 = ILI(I) J1 = ILJ(I) OUT(1) = HL(I1,J1) 29 WRITE(OUD,30) EL(I1),EL(J1),OUT(1) 30 FORMAT(2X,2HL(,A3,1H,,A3,4H) = ,F16.7) 13 WRITE (OUD,1) 1 FORMAT(//3X,20HSPIN-ORBIT PARAMETER,10X,20HSPIN-SPIN PARAMETERS/) C C ***** COMPUTE AND PRINT SPIN-ORBIT AND SPIN-SPIN PARAMETERS C DO 2 K = 1,NCFG DO 7 I = 1,NWF QI = QC(I,K) LI = L(I) IF (QI .EQ. 4*LI+2 .OR. LI .EQ. 0 .OR. QI .EQ. D0) GO TO 7 IF (LI .EQ. 4) GO TO 7 SP = Z*R3(I)*5.843574 DO 4 J = 1,NWF IF (L(J) .EQ. 4) GO TO 4 QJ = QC(J,K) IF (QJ .EQ. D0 .OR. I .EQ. J) GO TO 4 LJ = L(J) + 1 C = QJ SP = SP - D2*C*SM(I,J,0) IF (QJ .NE. 4*LJ-2) GO TO 4 DO 5 KK = 1,3 CC = CV(LI,LJ ,KK) IF (CC .NE. D0) SP = SP - C*CC*V(I,J,(LI+LJ)+2*(KK-1-(LI+LJ)/2)) 5 CONTINUE DO 6 KK = 1,4 CC = CN(LI,LJ ,KK) IF (CC .NE. D0) SP = SP - C*CC*SN(I,J,(LI+LJ)-3+2*(KK -(LI+LJ)/2)) 6 CONTINUE 4 CONTINUE C= QI IF (C .EQ. D1) GO TO 8 SS(1) = SM(I,I,0) C = C + C - D3 SP = SP - C*SS(1) GO TO (3,11,12), LI 11 SS(2) = SM(I,I,2) SP = SP + .85714142857*SS(2) GO TO 3 12 SS(2) = SM(I,I,2) SS(3) = SM(I,I,4) SP = SP + SS(2) + .45454545455*SS(3) 3 WRITE (OUD,14) K,EL(I),SP,(D,EL(I),EL(I),SS(II),II=1,LI) 14 FORMAT( 1X,I3,6H ZETA(,A3,3H) =,F11.3,3X,A4,3HM0(,A3,1H,,A3, 1 4H) = , F7.4,A4/34X,3HM2(,A3,1H,,A3,4H) = ,F7.4 2 ,A4/34X,3HM4(,A3,1H,,A3,4H) = ,F7.4) GO TO 7 8 WRITE (OUD,14) K,EL(I),SP 7 CONTINUE 2 CONTINUE RETURN END C C ------------------------------------------------------------------ C 3-37 V C ------------------------------------------------------------------ C C K C EVALUATES V (I,J) AS DEFINED BY BLUME AND WATSON (1962). C FUNCTION V(I,J,K) CALL DYK(I,J,K) V = QUADS(I,J,2) CALL DYK(J,I,K) V = (V - QUADS(I,J,2))*2.921787 RETURN END C C ------------------------------------------------------------------ C 3-38 W A V E F N C ------------------------------------------------------------------ C C THIS ROUTINE INITIALIZES RADIAL FUNCTIONS BY THE PROCEDURE C INDICATED BY IND(I). C C VALUE OF IND(I) METHOD C --------------- ------ C -1 FUNCTIONS READ FROM UNIT IU2 C 0 SCREENED HYDROGENIC FUNCTIONS WITH ZZ=Z-S(I) C 1 FUNCTIONS IN MEMORY LEFT UNCHANGED C 0 C THE SET OF FUNCTIONS ARE THEN ORTHOGONALIZED, Y (I, I;R) AND THE C DIAGONAL ENERGY PARAMETERS COMPUTED, WHEN NECESSARY. C C SUBROUTINE WAVEFN REAL EL LOGICAL FAIL,RSCAN(20),OMIT,ECONV,ORTHO,EZERO,ALL INTEGER OUC,OUD,OUF,OUH COMMON /INOUT/ IUC,IUD,IUF,IUH,OUC,OUD,OUF,OUH COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON /TEST/FAIL,RSCAN,ORTHO,OMIT,EZERO,ALL COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR COMMON /TEMP/ATM(20),TRM(20),ZZ(20),IND(20),PN,Z2,FN,M,K,IDUM(3173) COMMON /LABEL/CONFIG(3,40),EL(20),ATOM,TERM COMMON /COEFF/A(20,20,5),B(20,20,5),CA(4,4),CB(5,5,5) LONG TITLE(3,3) C C ***** GENERATE ARRAYS FOR R,R*R AND SQRT(R) WITH A CONSTANT MESH C ***** SIZE IN THE LOG(Z*R) VARIABLE C DO 1 I=1,NO R(I)= EXP(RHO)/Z RR(I) = R(I)*R(I) R2(I) = SQRT(R(I)) 1 RHO = RHO + H RHO = RHO - NO*H C C ***** SET PARAMTERS FOR ELECTRONS AND INITIALIZE FUNCTIONS C DO 9 I = 1,NWF MAX(I) = NO PN = HNORM(N(I),L(I),Z-S(I)) IF (IND(I)) 7,8,9 C C ***** READ DATA CARDS FOR ELECTRON I IF IND=-1 ON 'ELECTRON' CARD C 7 READ(IUF,10) ATM(I),TRM(I),M,ZZ(I),E(I,I),EK(I),AZ(I), 1 (P(I,J),J=1,M) 10 FORMAT (6X,A6,6X,A6,11X,I6,F6.0/3(4X,E14.7)/(5(1PE14.7))) C C ***** SCALE RESULTS IF CARDS ARE FOR AN ATOM WITH A DIFFERENT Z C IF (Z .EQ. ZZ(I)) GO TO 20 Z2 = Z/ZZ(I) DO 11 J=1,M 11 P(I,J)= P(I,J)*Z2 20 IF (M .EQ. NO) GO TO 4 MAX(I) = M C C ***** SET REMAINING VALUES IN THE RANGE = 0. C M = M +1 DO 13 J=M,NO 13 P(I,J) = D0 GO TO 4 C C ***** DETERMINE ESTIMATES OF THE WAVE FUNCTIONS BY THE SCREENED C ***** HYDROGENIC APPROXIMATION C 8 DO 3 J=1,NO P(I,J) = PN*HWF(N(I),L(I),Z-S(I),R(J))/R2(J) 3 CONTINUE C C ***** IF AZ(I) WAS NOT SPECIFIED ON INPUT DATA, COMPUTE C AZ(I) = PN*(D2*(Z - D5*S(I))/N(I))**(L(I) + 1) C C ***** ORTHOGONALIZE TO INNER FUNCTIONS C 4 IF (I .EQ. 1 .OR. I .LT. IB) GO TO 5 IM = I - 1 DO 6 II =1,IM IF (L(I) .NE. L(II) .OR. N(I) .EQ. N(II) ) GO TO 6 IF (.NOT. ORTHO .AND. A(I,II,1) .EQ. D0 ) GO TO 6 PN = QUADR(I,II,0) PNN = SQRT(D1 - PN*PN) IF (P(I,1) - PN*P(II,1) .LT. D0) PNN = -PNN DO 25 J = 1,NO 25 P(I,J) =(P(I,J) - PN*P(II,J))/PNN EK(I) = -D5*HL(I,I) 6 CONTINUE C C ***** COMPUTE Y0(I,I) AND STORE C 5 CALL YKF(I,I,0) DO 2 J= 1,NO 2 Y(I,J) = YK(J) 9 CONTINUE WRITE(6,14) 14 FORMAT(/// 8X,18HINITIAL ESTIMATES //10X,2HNL, 1 4X,5HSIGMA,6X,5HE(NL),4X,6HEK(NL),4X,6HAZ(NL),4X,9HFUNCTIONS//) C C ***** COMPUTE ONE-ELECTRON ENERGY PARAMETERS IF THEY WERE NOT C ***** SPECIFIED ON INPUT. C DO 15 I = 1,NWF IF ( EK(I) .EQ. D0) EK(I) = -D5*HL(I,I) C IF (E(I,I) .EQ. D0) E(I,I) = HL(I,I) - EKIN(I,I) K = IND(I) + 2 IF (IND(I) .GE. 0 ) GO TO 17 TITLE(2,1) = ATM(I) TITLE(3,1) = TRM(I) 17 WRITE(6,19) EL(I),S(I),E(I,I),EK(I),AZ(I) 19 FORMATO(9X,A3,F9.2,F11.3,F10.3,F10.3) IF (K-1) 15,505,510 505 WRITE(6,500) ATM(I),TRM(I) 510 IF (K-2) 15,506,511 506 WRITE(6,501) ATM(I),TRM(I) 511 IF (K-3) 15,507,15 507 WRITE(6,502) ATM(I),TRM(I) 500 FORMAT('SCALED ',2A6) 501 FORMAT('SCREENED HYDROGENIC',2A6) 502 FORMAT('UNCHANGED ',2A6) 15 CONTINUE RETURN END C C ------------------------------------------------------------------ C 3-39 X C H C ------------------------------------------------------------------ C C THIS ROUTINE COMPUTES FUNCTIONS ASSOCIATED WITH THE EXCHANGE C FUNCTION FOR THE I'TH RADIAL EQUATION, INCLUDING CONTRIBUTIONS C FROM THE INTERACTIONS. THE EXACT FORM OF THE FUNCTION C DEPENDS ON THE VALUE OF IOPT. C C VALUE OF IOPT FUNCTION C ------------- -------- C 1 SQRT(R) X(R) C 2 X(R)/SQRT(R) C 3 R SQRT(R) ( X(R) + SUM E P ) C IJ J C SUBROUTINE XCH(I,IOPT) REAL QC LOGICAL FAIL,RSCAN(20),OMIT,ORTHO,EZERO,ALL COMMON /TEST/FAIL,RSCAN,ORTHO,OMIT,EZERO ,ALL COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF COMMON /WAVE/PDE(220),EK(20),E(20,20),ED,AZD,AZ(20),SUM(20),S(20), 1 DPM(20),ACC(20),METH(20),IPR COMMON /COEFF/A(20,20,5),B(20,20,5),CA(4,4),CB(5,5,5) COMMON /STATE/WT(40),QC(20,40),CFG(200),CR(300),KFG(200),NF,NG,NR, 1 NL,IFG(200),NCI(200),JFG(200),NCJ(200),KR(300),I1R(300),I2R(300) 2 ,NCRI(300),J1R(300),J2R(300),NCRJ(300),IO(300),JO(300),IQ(300) 3 ,CL(20),ILI(20),NCLI(20),ILJ(20),NCLJ(20),ILO(20),JLO(20),LQ(20) COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) DO 1 J=1,NO 1 X(J) = D0 DO 2 J=1,NWF DO 3 K=1,5 C = B(I,J,K)*D2 IF (ABS(C) .LE. 1.E-10) GO TO 3 CALL YKF(I,J,2*(K-1) + IABS(L(I) - L(J))) DO 6 JJ =1,NO 6 X(JJ) = X(JJ)+ C*YK(JJ)*P(J,JJ) 3 CONTINUE 2 CONTINUE IF (RSCAN(I)) GO TO 4 IF (NR .EQ. 0) GO TO 22 DO 10 II=1,NR N1 = NCRI(II) N2 = NCRJ(II) C = WT(N1)*WT(N2)*CR(II)/SUM(I) DO 11 I2=1,2 DO 12 I1=1,2 IF (I1R(II) .NE. I) GO TO 13 CC = C IF (IQ(II) .NE. 0) CC = CC*QUADR(IO(II),JO(II),0)**IQ(II) CALL YKF(I2R(II),J2R(II),KR(II)) M = J1R(II) DO 14 J=1,NO 14 X(J) = X(J) +CC*P(M,J)*YK(J) 13 III = I1R(II) I1R(II)= I2R(II) I2R(II)= III III = J1R(II) J1R(II) = J2R(II) 12 J2R(II) = III III = I1R(II) I1R(II) = J1R(II) J1R(II) = III III = I2R(II) I2R(II)= J2R(II) 11 J2R(II)= III IJ1 = IO(II) IJ2 = JO(II) K = 1 21 IF (IJ1 .NE. I) GO TO 19 CC = C*IQ(II)*RK(I1R(II),I2R(II),J1R(II),J2R(II),KR(II))* 1 QUADR(IO(II),JO(II),0)**(IQ(II)-1) DO 20 J = 1,NO 20 X(J) = X(J) + CC*R(J)*P(IJ2,J) 19 IJT = IJ1 IJ1 = IJ2 IJ2 = IJT K = K + 1 IF ( K .EQ. 2 ) GO TO 21 10 CONTINUE C C ***** ADD CONTRIBUTION FORM THE L INTEGRALS C 22 IF (NL .EQ. 0) GO TO 4 DO 30 II = 1,NL N1 = NCLI(II) N2 = NCLJ(II) C = WT(N1)*WT(N2)*CL(II)/SUM(I) DO 31 I1 = 1,2 IF (ILI(II) .NE. I) GO TO 32 CALL DIFF(ILJ(II)) CC = C IF (LQ(II) .NE. 0) CC = CC*QUADR(ILO(II),JLO(II),0)**LQ(II) DO 34 J = 1,NO 34 X(J) = X(J) + CC*YK(J)/R(J) 32 IF (ILO(II) .NE. I) GO TO 35 LJ = JLO(II) CC = C*LQ(II)*HL(ILI(II),ILJ(II)) IF (LQ(II) .GT. 1) CC = CC*QUADR(ILO(II),JLO(II),0)**(LQ(II)-1) DO 36 J = 1,NO 36 X(J) = X(J) + CC*R(J)*P(LJ,J) 35 III = ILI(II) ILI(II) = ILJ(II) ILJ(II) = III III = ILO(II) ILO(II) = JLO(II) 31 JLO(II) = III 30 CONTINUE 4 GO TO (15,16,17),IOPT 16 DO 18 J = 1,NO 18 X(J) = X(J)/R(J) GO TO 15 17 DO 5 J =1,NO 5 X(J) = R(J)*X(J) DO 7 J = 1,NWF C = E(I,J) IF (C .EQ. D0 .OR. (J .EQ. I)) GO TO 7 DO 9 JJ = 1,NO 9 X(JJ) = X(JJ) + C*P(J,JJ)*RR(JJ) 7 CONTINUE C C ***** CHECK IF EXCHANGE IS ZERO: IF SO, METHOD 2 SHOULD BE USED. C 15 IF (METH(I) .EQ. 2) RETURN IF ( ABS(X(1)) + ABS(X(2)) + ABS(X(3)) .EQ. D0 ) METH(I) = 2 RETURN END C C ------------------------------------------------------------------ C 3-40 Y K F C ------------------------------------------------------------------ C C K C STORES Y (I, J; R) IN THE ARRAY YK C C SUBROUTINE YKF(I,J,K) COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF CALL ZK(I,J,K) A = EH**(K+1) C = 2*K+1 A2 = A*A H90 = C*H3/D30 A3 = A2*A*H90 AI = H90/A AN = 114.E0*A*H90 A34 = 34.E0*H90 F1 = YK(NO)*EH**K F2 = YK(NO) F3 = YK(NO-1) F4 = YK(ND) DO 9 MM = 2,ND M = NO -MM F5 = YK(M-1) YK(M) = YK(M+2)*A2 + ( AN*F3 + A34*(F4+A2*F2)-F5*AI-F1*A3) F1 = F2 F2 = F3 F3 = F4 9 F4 = F5 YK(1) = YK(3)*A2+C*H3*(F4 + D4*A*F3 + A2*F2) RETURN END C C ------------------------------------------------------------------ C 3-41 Z K C ------------------------------------------------------------------ C C K C STORES Z (I, J; R) IN THE ARRAY YK. C C SUBROUTINE ZK(I,J,K) COMMON R(220),RR(220),R2(220),P(20,220),Y(20,220),YK(220),YR(220), 1 X(220),N(20),L(20),MAX(20) COMMON /PARAM/H,H1,H3,CH,EH,RHO,Z,TOL,NO,ND,NWF,NP,NCFG,IB,IC,ID 1 ,D0,D1,D2,D3,D4,D5,D6,D8,D10,D12,D16,D30,NSCF DEN = L(I) + L(J) + 3+ K FACT = (D1/(L(I)+1) + D1/(L(J)+1))/(DEN + D1) A = EH**K A2 = A*A H90 = H/90.E0 A3 = A2*A*H90 AI = H90/A AN = 114.E0*A*H90 A34 = 34.E0*H90 F1 = RR(1)*P(I,1)*P(J,1) F2 = RR(2)*P(I,2)*P(J,2) F3 = RR(3)*P(I,3)*P(J,3) F4 = RR(4)*P(I,4)*P(J,4) YK(1) = F1*(D1 + Z*R(1)*FACT)/DEN YK(2) = F2*(D1 + Z*R(2)*FACT)/DEN YK(3) = YK(1)*A2 + H3*(F3 + D4*A*F2 + A2*F1) DO 8 M = 5,NO F5 = RR(M)*P(I,M)*P(J,M) YK(M-1) = YK(M-3)*A2 + ( AN*F3 + A34*(F4+A2*F2)-F5*AI-F1*A3) F1 = F2 F2 = F3 F3 = F4 8 F4 = F5 YK(NO) = A*YK(NO-1) IF (IABS(I-J) + IABS(K) .NE. 0) GO TO 2 C C ***** FOR Y0(I,I) SET THE LIMIT TO 1 AND REMOVE OSCILLATIONS C ***** INTRODUCED BY THE USE OF SIMPSON'S RULE C M2 = (NO/2)*2 - 1 M1 = M2 - 1 C1 = D1 - YK(M1) C2 = D1 - YK(M2) DO 3 M = 1,M1,2 YK(M) = YK(M) + C1 3 YK(M+1) = YK(M+1) + C2 YK(NO) = D1 YK(NO-1) = D1 2 RETURN END C C ------------------------------------------------------------------ C 4 T E S T D A T A C ------------------------------------------------------------------ C C C / end of mchf77 ▶EOF◀