|
|
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: 148992 (0x24600)
Types: TextFile
Names: »cpc6«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦this⟧ »cpc6«
c cpc6
c
c acqv weights new version. a new version af a general program
c to calculate angular momentum integrals in atomic structure.
c hibbert, a.
c ref. in comp. phys. commun. 2 (1971) 180 and
c comp. phys. commun. 6 (1973) 59 and
c comp. phys. commun. 7 (1974) 318 and
c comp. phys. commun. 8 (1974) 329
c
C
C JANUARY 1971
C
C GENERAL PROGRAM TO CALCULATE THE MATRIX ELEMENTS OF THE TWO-
C ELECTRON OPERATOR OF THE HAMILTONIAN AS A SUM OF SLATER INTEGRALS
C WRITTEN BY A. HIBBERT , DEPT. OF APPLIED MATHEMATICS AND
C THEORETICAL PHYSICS, THE QUEENS UNIVERSITY OF BELFAST.
C
C THE CODE USES THE RECOUPLING COEFFICIENT CODE OF P.G. BURKE ,
C AND THE COEFFICIENT OF FRACTIONAL PARENTAGE ROUTINES (CFPP AND
C CFPD) WRITTEN BY D.C.S. ALLISON , BOTH OF THE QUEENS UNIVERSITY
C OF BELFAST
C
C
C THREE DASHES (OR THREE EQUALS SIGNS) AT THE BEGINNING OF A COMMENT
C CARD INDICATE A NEW SECTION OF A SEGMENT
C
C
C ********** LISTING OF COMMON BLOCKS **********
C
C
C === INFORM
C IREAD - DEFINITION OF CARD INPUT CHANNEL
C IWRITE - DEFINITION OF LINE PRINTER OUTPUT CHANNEL
C IPUNCH - DEFINITION OF CARD PUNCH OUTPUT CHANNEL
C
C === DEBUG
C IBUG1 - DEFINES PRINTOUT FROM THIS PACKAGE
C = 0 - NO PRINT-OUT
C = 1 - FINAL RESULTS
C .GT. 1 - FULL RESULTS
C IBUG2 - DEFINES PRINT-OUT FROM PRNTWT
C IBUG3 - DEFINES PRINT-OUT FROM RECOUPLING COEFFICIENT PACKAGE
C ONLY PRINT-OUT WHEN =1
c ibug4 - defines printout from one-electron part cf. ibug1
c ibug5 to ibug9 are not used in this paskage
C
C === KRON
C IDEL(I,J),I,J=1,NHDEL - KRONECKER DELTA
C
C === STATES
C NCFG - NUMBER OF CONFIGURATIONS
C NOCCSH(I),I=1,NCFG - FOR EACH CONFIGURATION, THE NUMBER OF
C OCCUPIED SHELLS
C NOCORB(J,I),J=1,NOCCSH(I),I=1,NCFG - FOR EACH CONFIGURATION
C THE NUMBERS INDICATING WHICH SHELLS ARE OCCUPIED
C NELCSH(J,I),J=1,NOCCSH(I),I=1,NCFG - FOR EACH CONFIGURATION,
C THE NUMBER OF ELECTRONS IN EACH OCCUPIED SHELL
C J1QNRD(J,K,I),J=1,2*NOCCSH(I)-1,K=1,3,I=1,NCFG - ANGULAR
C MOMENTUM QUANTUM NUMBERS. K=1 IS SENIORITY, K=2 IS
C (2L+1), K=3 IS (2S+1). J=1,NOCCSH(I) IS THE SET OF
C QUANTUM NUMBERS FOR EACH SHELL. THE REMAINING
C NOCCSH(I)-1 ARE QUANTUM NUMBERS RESULTING FROM COUPLING
C OF THE SHELLS
C MAXORB - HIGHEST VALUE OF NOCORB(J,I)
C LJCOMP(I),I=1,MAXORB - L VALUES OF THE ORBITALS
C
C === TERMS
C NROWS - NUMBER OF ROWS OF TABLE OF TERMS, ACCORDING TO
C S,S**2,P,P**2,P**3,D,...D**5, ETC.
C ITAB(I),I=1,NROWS - NUMBER OF SETS OF 3 QUANTUM NUMBERS IN
C EACH ROW
C JTAB(I),I=1,NROWS - IF WE LIST ALL QUANTUM NUMBERS IN A SINGLE
C LINE, THIS MEASURES NUMBER OF QUANTUM NUMBERS OCCURRING
C BEFORE ROW I
C NTAB(J),J=1,(JTAB(I)+3*ITAB(I)) - LIST OF THE QUANTUM NUMBERS OF
C THE TERMS
C
C === FACT
C GAMMA(I),I=1,NFACT - FACTORIAL (OR GAMMA FUNCTION FOR INTEGER)
C
C === MEDEFN
C THIS LISTS THE QUANTUM NUMBERS NEEDED IN A SINGLE MATRIX
C ELEMENT (PSI/V/PSIP)
C IHSH - NUMBER OF SHELLS OCCUPIED (INCLUDING DUMMIES) IN PSI
C OR PSIP
C NJ(I),LJ(I),I=1,IHSH - N,L VALUES OF THE OCCUPIED SHELLS
C NOSH1(I),NOSH2(I),I=1,IHSH - NUMBER OF ORBITALS IN EACH SHELL,
C FOR PSI AND PSIP RESPECTIVELY
C J1QN1(J,K),J1QN2(J,K),J=1,2*IHSH-1,K=1,3 - K=1 IS SENIORITY ,
C K=2 IS 2L+1 , K=3 IS 2S+1 . THE FIRST IHSH VALUES
C OF J ARE THE QUANTUM NUMBERS OF THE SHELLS, THE
C REMAINING IHSH-1 ARE THE QUANTUM NUMBERS OBTAINED BY
C COUPLING THE SHELLS
C J1QN1 CORRESPONDS TO PSI, J1QN2 TO PSIP
C NOTICE THE DIFFERENT DEFINITION OF THIS BLOCK IN MUMDAD
C AND SETUP,
C
C === MVALUE
C M1,M2,.....M20
C M1=ISIG-IRHO, M2=ISIGP-IRHOP, M19=IRHO-IRHOP
C M20=ISIG-ISIGP . ALL THE REST OF THE M-VALUES ARE
C SIMPLY RELATED TO IHSH AND ARE AS DEFINED IN RKWTS
C
C === XATION
C KD1,KD2 - LIMITS ON K FOR DIRECT INTEGRALS
C KE1,KE2 - LIMITS ON K FOR EXCHANGE INTEGRALS
C AMULT(K),K=KD1,KD2,2 . BMULT(K),K=KE1,KE2,2 - THESE STORE THE
C MULTIPLYING FACTORS OF THE DIRECT AND EXCHANGE RK
C INTEGRALS
C MULTD,MULTE - ARE ZERO IF THERE ARE NO DIRECT/EXCHANGE INTEGRALS
C TO CALCULATE
C
C === NJLJ
C NRHO,LRHO,NSIG,LSIG,NRHOP,LRHOP,NSIGP,LSIGP
C N,L VALUES OF THE SHELLS RHO,SIG,RHOP,SIGP
C
C === INTERM
C INTERMEDIATE COUPLING QUANTUM NUMBERS
C J1BAR1(I,K),J1BAR2(I,K),J1TLD1(I,K),J1TLD2(I,K),I=1,IHSH,K=1,3
C K=1 IS SENIORITY, K=2 IS (2L+1), K=3 IS (2S+1)
C J1BAR1 AND J1BAR2 DEFINE QUANTUM NUMBERS OF SPECTATOR
C ELECTRONS IN EACH SHELLS OF PSI AND PSIP RESPECTIVELY
C J1TLD1 AND J1TLD2 ARE DEFINED ONLY IF RHO=SIG (OR
C RHOP=SIGP). THEN THESE ARE QUANTUM NUMBERS OBTAINED BY
C COUPLING ONE OF THE TWO INTERACTING ELECTRONS ONTO THE
C SPECTATOR ELECTRONS OF THE APPROPRIATE SHELLS
C NOTICE THE DIFFERENT DEFINITION IN MUMDAD AND SETUP
C
C === COUPLE
C THIS BLOCK HOLDS THE INPUT DATA FOR NJSYM
C MI - LENGTH OF J1 ARRAY
C MJ - NUMBER OF J2 OR J3 ROWS, PLUS 1
C J1(I),I=1,3*IHSH+4(7) - (2J+1) VALUES - SPIN(ANGULAR)
C J2(I),J),J3(I,J),I=1,IHSH+1(2),J=1,3 - DETERMINE COUPLING
C SCHEMES. I LIMIT IS IHSH+1 FOR SPIN, IHSH+2 FOR ANGULAR
C
C === HOLD
C STORAGE ARRAYS FOR SPIN AND ANGULAR COUPLING SCHEMES
C STORES J2 AND J3 ARRAYS ROW AFTER ROW
C J2SPIN(I),J3SPIN(I),I=1,3*(IHSH+1)
C J2ANG(I),J3ANG(I),I=1,3*(IHSH+2)
C
C === DIAGNL
C IDIAG = 0 FOR OFF-DIAGONAL MATRIX ELEMENT
C = 1 FOR DIAGONAL MATRIX ELEMENT
C
C === ENAV
C OUTPUT OF INFORMATION FROM INTERACTION ENERGY ROUTINE
C NINTS - NUMBER OF FK OR GK INTEGRALS OTHER THAN F0
C KVALUE(I),I=1,NINTS - THE K-VALUES OF THOSE INTEGRALS
C COEFCT(I),I=1,NINTS - THE COEFFICIENTS MULTIPLYING THOSE INTEGRALS
C
C === REMOVE
C ICHOP(I),I=1,IHSH -
C = 1 IF ALL INTERACTIONS INVOLVING SHELL I MAY BE
C TREATED PURELY BY AVERAGE ENERGY
C = 0 OTHERWISE
C
C === STORE
C USED AS A STORAGE AREA WHEN MEDEFN IS MODIFIED
C
C
C
C ********** END OF LIST OF COMMON BLOCKS **********
C
C
C
C
program wreigt
long IAJCMP
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6,IBUG7,IBUG8,IBUG9
COMMON/STATES/NCFG,NOCCSH(30),NOCORB(5,30),NELCSH(5,30),
1 j1qnrd(9,3,30),maxorb,njcomp(21),ljcomp(21),iajcmp(21)
COMMON/KRON/IDEL(10,10)
common/diagnl/idiag,ja,jb
common/comchf/locate(21)
common/punch1/yl(100),nl,jl1(100),jl2(100)
common/inf1/writef
common/inf2/punchf
C
1 FORMAT(4I5)
11 FORMAT(//,50H IN THIS CALCULATION, THE NUMBER OF STATES CONSIDE,
16hRED IS,I3,1H,,5X,31HTHE NUMBER OF FACTORIALS SET IS,I3/
239h AND THE SIZE OF THE KRONECKER DELTA IS,I3,14H. IPUNCH =,I3//)
12 FORMAT(10X,29H DEBUG IN TWO-ELECTRON PART =,I2/10X,30H DEBUG IN RE
1COUPLING PACKAGE =,I2/10X,29H DEBUG IN ONE-ELECTRON PART =,I2)
13 FORMAT(95H1PACKAGE - WEIGHTS - CALCULATION OF MATRIX ELEMENTS OF T
1HE TWO-ELECTRON PART OF THE HAMILTONIAN/31X,29H AS A SUM OF SLATER
2 INTEGRALS/25X,41H PLUS THE CORRESPONDING ONE-ELECTRON PART//////)
41 FORMAT(/40X,22H ---------------------/40X,22H ONE-ELECTRON INTEGRA
1L/40X,22H ---------------------)
42 FORMAT(/40X,22H ---------------------/40X,22H TWO-ELECTRON INTEGRA
1L/40X,22H ---------------------)
43 format(//,1x,' ipunch skal vaere enten 8 eller 0 ')
C
C
C --- THIS PROGRAMME CONSIDERS EITHER SUPERPOSITION OF CONFIGURATIONS OR
C MULTI-CONFIGURATIONAL HARTREE-FOCK WAVE FUNCTIONS. USING THE
C RESULT THAT THE TWO-ELECTRON HAMILTONIAN MATRIX ELEMENT
C (PSI/V/PSIP) CAN BE WRITTEN AS A SUM OF SLATER INTEGRALS, THE
C PRESENT CODE - WEIGHTS - CALCULATES THE COEFFICIENTS OF THESE
C INTEGRALS. PSI AND PSIP ARE ALLOWED TO RUN OVER NCFG CONFIGURATNS
C
C
C
C --- SET INPUT AND OUTPUT CHANNELS
C
zone readf(128,1,stderror)
zone writef(128,1,stderror)
zone punchf(128,1,stderror)
c
iread=1
call zassign(readf,iread)
call open(readf,4,'inf',0)
c
iwrite=7
call zassign(writef,iwrite)
call open(writef,4,'outf',0)
c
ipunch=8
call zassign(punchf,ipunch)
call open(punchf,4,'pchf',0)
c
WRITE(IWRITE,13)
c
c call bldata
c
call bldata
C
C --- PRINT-OUT OF TERMS FORMED FROM CONFIGURATIONS L**Q
C
CALL TMSOUT
C
C NSTATE IS THE NUMBER OF STATES (NOT CONFIGURATIONS) UNDER
C CONSIDERATION
C NFACT DEFINES THE NUMBER OF FACTORIALS CALCULATED
C NHDEL DEFINES THE DIMENSION OF THE KRONECKER DELTA
C IPUNCH IS ZERO IF THE WEIGHTS OF THE SLATER INTEGRALS ARE NOT TO
C BE PUNCHED ON CARDS. IF SUCH PUNCHING IS REQUIRED, IPUNCH IS
C TO BE GIVEN THE VALUE OF THE CARD PUNCH CHANNEL NUMBER
C ONLY PRINT-OUT OF COEFFICIENTS IN THE FOLLOWING CASES -
C IBUG1 = 1 - ONLY FINAL RESULTS FROM WEIGHTS
C IBUG1 .GE. 2 - FULL PRINT-OUT FROM WEIGHTS
C IBUG3 = 1 - FULL PRINT-OUT FROM RECOUPLING COEFFICIENT PACKAGE
c ibug4 similar to ibug1, except for one-electron part.
C IBUG5 TO IBUG9 ARE NOT USED IN THIS PACKAGE
C
READ(IREAD,1) NSTATE,NFACT,NHDEL,IPUNCH
WRITE(IWRITE,11) NSTATE,NFACT,NHDEL,IPUNCH
c
if (ipunch.eq.8.or.ipunch.eq.0) goto 112
write(6,43)
write(7,43)
goto 9
112 continue
c
READ(IREAD,1) IBUG1,IBUG3,ibug4
WRITE(IWRITE,12) IBUG1,IBUG3,ibug4
IBUG5=0
IBUG6=0
do 111 i=1,10
locate(i)=0
111 continue
nl=0
C
C --- SET FACTORIALS
C
CALL SHRIEK(NFACT)
C
C --- SET KRONECKER DELTA
C
DO 2 I=1,NHDEL
DO 3 J=1,I
IF(I-J) 4,5,4
5 IDEL(I,I)=1
GO TO 3
4 IDEL(I,J)=0
IDEL(J,I)=0
3 CONTINUE
2 CONTINUE
C
C --- READ IN (AND PRINT OUT) CONFIGURATIONS
C
10 CALL CFGIN
CALL CFGOUT
call cfgtst
C
C --- CONSIDER (PSI/V/PSIP) AS PSI AND PSIP RUN OVER ALL CONFIGURATIONS
C
DO 6 JA=1,NCFG
DO 7 JB=1,JA
IF(JA.EQ.JB) GO TO 20
IDIAG=0
GO TO 21
20 IDIAG=1
21 CONTINUE
C
C --- SET UP DEFINING QUANTUM NUMBERS FOR EACH MATRIX ELEMENT
C
CALL SETUP(JA,JB)
IF(IBUG1-1) 14,15,15
15 CALL VIJOUT(JA,JB)
C
C --- TEST ON POSSIBLE RECOUPLING ORTHOGONALITY
C
14 CALL ORTHOG(LET)
IF(LET.EQ.0) GO TO 7
IF(IBUG4.EQ.2) WRITE(IWRITE,41)
IF(IDIAG.EQ.0) GO TO 32
IF(IBUG4.NE.0) CALL DH0
GO TO 35
32 CALL H0WTS(ISIG,ISIGP,Y,ICAL)
C
C ICAL=0 UNLESS Y HAS BEEN CALCULATED
C
CALL ODH0(ISIG,ISIGP,Y,ICAL)
35 IF(IBUG1.EQ.2) WRITE(IWRITE,42)
C
C --- IF NO SUCH ORTHOGONALITY IS EXHIBITED, CALCULATE WEIGHTS OF SLATER
C INTEGRALS
C
CALL CHOP
CALL RKWTS
7 CONTINUE
6 CONTINUE
C
C --- ARE THERE ANY MORE STATES TO CONSIDER
C
NSTATE=NSTATE-1
IF(NSTATE) 9,9,10
9 call exit
END
c
c----------------------------------------------------------------------------
c e x i t
c----------------------------------------------------------------------------
c
subroutine exit
common/inf1/writef
common/inf2/punchf
zone writef(128,1,stderror)
zone punchf(128,1,stderror)
4 format(/,3a1)
eof=25.shift.16+25.shift.8+25
write(writef,4) eof,eof,eof
write(punchf,4) eof,eof,eof
call close(writef,.true.)
call close(punchf,.true.)
stop
return
end
c
c---------------------------------------------------------------------------
c t m s o u t
c---------------------------------------------------------------------------
c
SUBROUTINE TMSOUT
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/TERMS/NROWS,ITAB(12),JTAB(12),NTAB(171)
C
C --- PRINT-OUT OF TABLE OF TERMS, SET IN BLOCK DATA
C
1 FORMAT(40X,24H TABLE OF POSSIBLE TERMS//)
2 FORMAT(I3,91H ROWS OF THIS TABLE (NTAB) ARE DEFINED. THE LENGTHS
1 (ITAB) OF THE ROWS ARE, RESPECTIVELY,/30X,12I5)
3 FORMAT(/74H LIST OF NTAB. EACH TRIAD OF NUMBERS CORRESPONDS TO (S
1ENIORITY,2L+1,2S+1)/)
4 FORMAT(5H ROW ,I2,2H ,,8(I8,2I3)/I17,2I3,7(I8,2I3))
WRITE(IWRITE,1)
WRITE(IWRITE,2) NROWS,(ITAB(I),I=1,NROWS)
WRITE(IWRITE,3)
DO 5 I=1,NROWS
JI=JTAB(I)
JJ=3*ITAB(I)
WRITE(IWRITE,4) I,(NTAB(JI+J),J=1,JJ)
5 CONTINUE
RETURN
END
c
c-----------------------------------------------------------------------
c s h r i e k
c-----------------------------------------------------------------------
c
SUBROUTINE SHRIEK(NFACT)
C
C === EVALUATES FACTORIALS
C
COMMON/FACT/ GAMMA(20)
common/const/zero,tenth,half,one,two,three,four,seven,eleven,eps
GAMMA(1)=one
DO 1 I=2,NFACT
II=I-1
GAMMA(I)=II*GAMMA(II)
1 CONTINUE
RETURN
C
C GAMMA(I+1)=FACTORIAL I
C
END
c
c---------------------------------------------------------------------
c c f g i n
c---------------------------------------------------------------------
c
SUBROUTINE CFGIN
long IAJCMP
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/STATES/NCFG,NOCCSH(30),NOCORB(5,30),NELCSH(5,30),
1 j1qnrd(9,3,30),maxorb,njcomp(21),ljcomp(21),iajcmp(21)
C
C --- QUANTUM NUMBERS DEFINING THE CONFIGURATIONS ARE READ IN
C
1 FORMAT(12I5)
5 format(24a3)
MAXORB=0
READ(IREAD,1) NCFG
READ(IREAD,1)(NOCCSH(I),I=1,NCFG)
DO 2 I=1,NCFG
N=NOCCSH(I)
READ(IREAD,1) (NOCORB(J,I) ,J=1,N)
READ(IREAD,1) (NELCSH(J,I) ,J=1,N)
IF(MAXORB-NOCORB(N,I)) 3,4,4
3 MAXORB=NOCORB(N,I)
4 M=2*N-1
READ(IREAD,1) ((J1QNRD(J,K,I),K=1,3),J=1,M)
2 CONTINUE
READ(IREAD,1) (NJCOMP(I),LJCOMP(I),I=1,MAXORB)
read(iread,5) (iajcmp(i),i=1,maxorb)
RETURN
END
c
c---------------------------------------------------------------------
c c f g o u t
c---------------------------------------------------------------------
c
SUBROUTINE CFGOUT
long IAJCMP
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/STATES/NCFG,NOCCSH(30),NOCORB(5,30),NELCSH(5,30),
1 J1QNRD(9,3,30),MAXORB,NJCOMP(21),LJCOMP(21),IAJCMP(21)
C
C --- PRINT-OUT OF CONFIGURATIONS, BEING DATA READ IN CFGIN
C
1 FORMAT(27H1NUMBER OF CONFIGURATIONS =,I3/)
2 FORMAT(50H NUMBER OF OCCUPIED SHELLS IN THESE CONFIGURATIONS/30I3)
4 FORMAT(/,14H CONFIGURATION,I3,/,6X,21HOCCUPIED ORBITALS ARE,32X,10I3)
5 FORMAT(5X,16H COUPLING SCHEME)
6 FORMAT(5X,3I3,6(I10,2I3))
7 FORMAT(22X,6(I10,2I3))
8 FORMAT(/10H THERE ARE,I3,30H ORBITALS WHOSE N,L VALUES ARE/2I3,10(
1I8,I3))
9 FORMAT(5X,49H NUMBER OF ORBITALS IN RESPECTIVE OCCUPIED SHELLS,5X,
110I3)
WRITE(IWRITE,1) NCFG
WRITE(IWRITE,2) (NOCCSH(I),I=1,NCFG)
DO 3 I=1,NCFG
N=NOCCSH(I)
WRITE(IWRITE,4) I,(NOCORB(J,I),J=1,N)
M=2*N-1
WRITE(IWRITE,9) (NELCSH(J,I),J=1,N)
N1=N+1
WRITE(IWRITE,5)
WRITE(IWRITE,6) ((J1QNRD(J,K,I),K=1,3),J=1,N)
WRITE(IWRITE,7) ((J1QNRD(J,K,I),K=1,3),J=N1,M)
3 CONTINUE
WRITE(IWRITE,8) MAXORB,(NJCOMP(I),LJCOMP(I),I=1,MAXORB)
RETURN
END
c
c---------------------------------------------------------------------
c s e t u p
c---------------------------------------------------------------------
c
SUBROUTINE SETUP(JA,JB)
long IAJCMP
COMMON/STATES/NCFG,NOCCSH(30),NOCORB(5,30),NELCSH(5,30),
1 j1qnrd(9,3,30),maxorb,njcomp(21),ljcomp(21),iajcmp(21)
common/medefn/ihsh,nj(10),lj(10),nosh(10,2),j1qn(19,3,2),ijful(10)
C
C NOTICE THE DIFFERENT NAMES IN THE COMMON BLOCK MEDEFN - WE
C STORE NOSH1(I=1,10) AS NOSH((I=1,10),1) AND NOSH2(I=1,10) AS
C NOSH((I=1,10),2) AND USE THE FACT THAT NOSH1 AND NOSH2 WILL THEN
C BE EQUIVALENT TO THE SINGLE 2-DIMENSIONAL ARRAY NOSH. SIMILARLY
C FOR J1QN
C
C === GENERATES THE ARRAYS NJ,LJ - DEFINING THE QUANTUM NUMBERS OF THE
C SHELLS, NOSH - DEFINING THE OCCUPATION OF THE SHELLS, J1QN -
C DEFINING THE COUPLING OF THE SHELLS, FOR EACH OF THE TWO
C CONFIGURATIONS CONSIDERED. ONLY THOSE SHELLS OCCURRING IN AT
C LEAST ONE CONFIGURATION ARE INCLUDED.
C AT LEAST TWO SHELLS MUST BE CONSIDERED OCCUPIED.
C THUS (1S)**2 HELIUM MUST BE TREATED AS ,E.G., (1S)**2(2S)**0
C THE SIZE OF THE ARRAYS HERE CALCULATED IS ARRANGED TO BE NO
C GREATER THAN IS NECESSARY TO INCLUDE ALL ORBITALS WHICH ARE
C DEEMED TO BE OCCUPIED IN EITHER OR BOTH OF THE CONFIGURATIONS
C JA,JB
C
C --- INITIALIZE BASIC QUANTITIES - (I1+1) RUNS OVER 1,MAXORB, IHSH IS
C THE CURRENT VALUE OF THE HIGHEST OCCUPIED SHELL YET CONSIDERED,
C WHILE I2HSH=2*IHSH-1
C
I1=0
IHSH=0
I2HSH=-1
IA=NOCCSH(JA)
IB=NOCCSH(JB)
C
C --- TEST ON WHETHER LIMIT OF I1 HAS BEEN REACHED
C
1 IF(I1-MAXORB) 101,100,100
C
C --- INCREASE BASIC QUANTITIES
C
101 I1=I1+1
I3=IHSH+1
I5=I2HSH+I3
C
C --- IS THE SHELL I1 OCCUPIED IN JA
C
DO 2 J=1,IA
IF(I1-NOCORB(J,JA)) 2,3,2
2 CONTINUE
NA=1
GO TO 4
3 NA=2
J1=J
C
C --- IS THE SHELL I1 OCCUPIED IN JB
C
4 DO 5 J=1,IB
IF(I1-NOCORB(J,JB)) 5,6,5
5 CONTINUE
NB=1
GO TO 7
6 NB=2
J2=J
C
C IF THE SHELL I1 IS NOT OCCUPIED IN EITHER JA OR JB, IGNORE THE
C SHELL, DO NOT INCREASE IHSH, AND CONSIDER NEXT SHELL BY INCREASING
C I1
C
7 IF(NA-1) 8,8,9
8 IF(NB-1) 1,1,9
C
C --- IF THE SHELL I1 IS OCCUPIED IN EITHER JA OR JB -
C (1) IF IHSH.GT.1, THEN ALREADY AT LEAST TWO SHELLS AND THE
C RESULTING COUPLINGS HAVE BEEN STORED. WE MUST THUS MAKE ROOM FOR
C THE QUANTUM NUMBERS OF THIS NEW SHELL BETWEEN THE QUANTUM NUMBERS
C OF THE PREVIOUS SHELLS AND THE QUANTUM NUMBERS OF THE INTERMEDIATE
C COUPLINGS OF THE CONFIGURATIONS. THUS THE LATTER SET ARE =MOVED
C ALONG= TO MAKE ROOM FOR THE NEW SHELL
C (2) IF IHSH.LE.1, THERE ARE NO INTERMEDIATE COUPLING QUANTUM
C NUMBERS, AND SO THERE IS NOTHING TO MOVE
C
9 IF(IHSH-1) 11,11,10
10 DO 12 I=1,2
DO 13 J=I3,I2HSH
I4=I5-J
DO 14 K=1,3
J1QN(I4+1,K,I)=J1QN(I4,K,I)
14 CONTINUE
13 CONTINUE
12 CONTINUE
11 IHSH=I3
I2HSH=I2HSH+2
NC=NA
I=1
IC=J1
JC=JA
C
C --- FIRST CONSIDER THE L.H.S. (I=1) OF THE MATRIX ELEMENT. NC=1 MEANS
C UNOCCUPIED, REPRESENTED BY A DUMMY SINGLET S SHELL, AND THE
C ADDITIONAL SET OF COUPLING QUANTUM NUMBERS WILL BE THE SAME AS THE
C LAST SET OF COUPLING QUANTUM NUMBERS ALREADY OBTAINED.
C NC=2 MEANS OCCUPIED. THEN ALL THE NEW QUANTUM NUMBERS (BOTH FOR
C THE SHELL AND FOR THE COUPLING OF THIS SHELL TO THE RESULTANT OF
C THE PREVIOUS ONES) ARE DEFINED IN THE CORRESPONDING J1QNRD ARRAY.
C NOSH - THE NUMBER OF ELECTRONS IN THIS SHELL, IS DEFINED BY THE
C APPROPRIATE ENTRY IN NELCSH . THE R.H.S. IS THEN CONSIDERED
C SIMILARLY (I=2)
C
25 GO TO (15,16),NC
15 NOSH(IHSH,I)=0
J1QN(IHSH,1,I)=0
J1QN(IHSH,2,I)=1
J1QN(IHSH,3,I)=1
IF(IHSH-2) 22,18,19
18 J1QN(3,1,I)=0
J1QN(3,2,I)=J1QN(1,2,I)
J1QN(3,3,I)=J1QN(1,3,I)
GO TO 22
19 DO 27 K=1,3
J1QN(I2HSH,K,I)=J1QN(I2HSH-1,K,I)
27 CONTINUE
GO TO 22
16 NOSH(IHSH,I)=NELCSH(IC,JC)
DO 20 K=1,3
J1QN(IHSH,K,I)=J1QNRD(IC,K,JC)
C
C IS THIS THE FIRST OCCUPIED SHELL OF EITHER CONFIGURATION. IF SO,
C THEN THERE ARE NO INTERMEDIATE COUPLINGS TO CONSIDER AT THIS STAGE
C
IF(IHSH-1) 20,20,21
C
C IS THIS THE FIRST OCCUPIED SHELL OF THIS CONFIGURATION, THOUGH NOT
C THE FIRST OF THE OTHER CONFIGURATION. IF SO, THE INTERMEDIATE
C COUPLING FORMED HAS THE SAME L,S VALUES AS THIS OCCUPIED SHELL,
C SINCE WE COUPLE THE SHELL TO A DUMMY SINGLET S.
C
21 IF(IC-1) 26,26,29
26 I2=1
IF(K-1) 28,17,28
C
C SENIORITY SET (ARBITRARILY) ZERO FOR INTERMEDIATE COUPLING
C
17 J1QN(I2HSH,1,I)=0
GO TO 20
29 I2=NOCCSH(JC)+IC-1
28 J1QN(I2HSH,K,I)=J1QNRD(I2,K,JC)
20 CONTINUE
22 IF(I-2) 23,24,24
23 NC=NB
I=2
IC=J2
JC=JB
GO TO 25
C
C --- SET THE NJ AND LJ VALUES OF THE OCCUPIED SHELLS
C
24 NJ(IHSH)=NJCOMP(I1)
LJ(IHSH)=LJCOMP(I1)
ijful(ihsh)=i1
C
C --- RETURN TO 1 TO SEE IF MAXORB HAS BEEN REACHED
C
GO TO 1
100 RETURN
END
c
c--------------------------------------------------------------------
c v i j o u t
c--------------------------------------------------------------------
c
SUBROUTINE VIJOUT(JA,JB)
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6,IBUG7,IBUG8,IBUG9
COMMON/MEDEFN/IHSH,NJ(10),LJ(10),NOSH1(10),NOSH2(10),J1QN1(19,3),
1 j1qn2(19,3),ijful(10)
C
C THIS SUBROUTINE IS ENTERED ONLY IF IBUG1 IS GREATER THAN ZERO
C
C --- PRINT OUT OF QUANTUM NUMBERS AND COUPLING SCHEMES FOR EACH
C MATRIX ELEMENT AS DEFINED BY SETUP
C
5 FORMAT(//48H L.H.S. OF HAMILTONIAN MATRIX ELEMENT DEFINED BY)
6 FORMAT(//48H R.H.S. OF HAMILTONIAN MATRIX ELEMENT DEFINED BY)
7 FORMAT(9H1(CONFIG ,I2,10H/V/CONFIG ,I2,1H))
8 FORMAT(/7H NJ,LJ ,10(I6,I3))
9 FORMAT(/6H NOSH ,10I4)
10 FORMAT(6H J1QN ,10(I5,2I3))
I2HSH=2*IHSH-1
WRITE(IWRITE,7) JA,JB
WRITE(IWRITE,8) (NJ(I),LJ(I),I=1,IHSH)
IF(IBUG1-1) 1,1,2
2 WRITE(IWRITE,5)
WRITE(IWRITE,9) (NOSH1(J),J=1,IHSH)
WRITE(IWRITE,10) ((J1QN1(J,K),K=1,3),J=1,I2HSH)
WRITE(IWRITE,6)
WRITE(IWRITE,9) (NOSH2(J),J=1,IHSH)
WRITE(IWRITE,10) ((J1QN2(J,K),K=1,3),J=1,I2HSH)
1 RETURN
END
c
c----------------------------------------------------------------------
c o r t h o g
c----------------------------------------------------------------------
c
SUBROUTINE ORTHOG(LET)
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6,IBUG7,IBUG8,IBUG9
COMMON/MEDEFN/IHSH,NJ(10),LJ(10),NOSH1(10),NOSH2(10),J1QN1(19,3),
1 j1qn2(19,3),ijful(10)
C
C THIS SUBROUTINE CHECKS FOR POSSIBLE ORTHOGONALITY DUE TO
C COUPLING DIFFERENCES OR UNEVEN PARITY
C
101 FORMAT(37H DIFFERING RESULTANT ANGULAR MOMENTUM)
102 FORMAT(52H ORTHOGONALITY IN COUPLING SCHEMES OF CONFIGURATIONS)
103 FORMAT(59H THE TWO CONFIGURATIONS HAVE DIFFERING NUMBERS OF ELECTR
1ONS)
104 FORMAT(51H THE TWO CONFIGURATIONS HAVE DIFFERING TOTAL PARITY)
C
C --- DO PSI AND PSIP CONTAIN THE SAME NUMBERS OF ELECTRONS
C DO PSI AND PSIP HAVE THE SAME TOTAL PARITY
C
N5=0
N6=0
N7=0
DO 20 I=1,IHSH
L1=LJ(I)
L2=NOSH1(I)
L3=NOSH2(I)
N5=N5+L2
N6=N6+L3
N7=N7+L1*(L2-L3)
20 CONTINUE
C
C CHECK ON NUMBER OF ELECTRONS
C
IF (N5-N6) 21,22,21
21 IF(IBUG1-1) 11,28,28
28 WRITE(IWRITE,103)
GO TO 11
C
C CHECK ON PARITY
C
22 IF(N7-N7/2*2) 23,24,23
23 IF(IBUG1-1) 11,25,25
25 WRITE(IWRITE,104)
GO TO 11
24 N1=2*IHSH-1
N2=IHSH+1
N3=IHSH-1
N4=IHSH-2
C
C --- IS THE FINAL STATE THE SAME FOR PSI AND PSIP
C
DO 1 K=2,3
IF(J1QN1(N1,K)-J1QN2(N1,K))2,1,2
1 CONTINUE
GO TO 3
2 IF(IBUG1-1) 11,26,26
26 WRITE(IWRITE,101)
C
C --- THE TWO CONFIGURATIONS WILL HAVE ZERO HAMILTONIAN MATRIX ELEMENT
C
11 LET=0
RETURN
C
C --- COUPLING ORTHOGONALITY TEST FOR FIRST TWO SHELLS
C
3 write(iwrite,102)
C
C --- NO OBVIOUS ANGULAR MOMENTUM ORTHOGONALITY
C
LET=1
RETURN
END
c
c---------------------------------------------------------------------
c r k w t s
c---------------------------------------------------------------------
c
SUBROUTINE RKWTS
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6,IBUG7,IBUG8,IBUG9
COMMON/MEDEFN/IHSH,NJ(10),LJ(10),NOSH1(10),NOSH2(10),J1QN1(19,3),
1 j1qn2(19,3),ijful(10)
COMMON/MVALUE/M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,
1 M16,M17,M18,M19,M20
COMMON/REMOVE/ICHOP(10)
C
C THE MATRIX ELEMENT OF THE TWO-ELECTRON POTENTIAL BETWEEN TWO
C STATES (LABELLED 1 AND 2) MAY BE EXPRESSED AS A SUM OF WEIGHTED
C RK (SLATER) INTEGRALS. THIS SUBROUTINE, TOGETHER WITH THOSE
C CALLED BY IT, DETERMINES THESE WEIGHTS, WHICH ARISE FROM AN
C INTEGRATION OVER THE ANGULAR AND SPIN CO-ORDINATES
C FOR DETAILS, SEE U. FANO, PHYS. REV.,140,A67,(1965)
C
C THE =INTERACTING= SHELLS ARE DESIGNATED IRHO,ISIG,IRHOP,ISIGP.
C THE FIRST TWO REFER TO THE L.H.S. OF (PSI/V/PSIP) , WHILE
C THE SECOND TWO REFER TO THE R.H.S. FOR DIAGONAL AND CERTAIN OFF-
C DIAGONAL MATRIX ELEMENTS, THESE MAY NOT BE UNIQUE, AND EACH
C POSSIBILITY MUST BE CONSIDERED IN TURN
C THE CONDITION =IRHO .LE. ISIG , IRHOP .LE. ISIGP= IS TO BE
C SATISFIED
C
61 FORMAT(//10X,7H IRHO =,I3,4X,7H ISIG =,I3,4X,8H IRHOP =,I3,3X,8H I
1SIGP =,I3)
C
C === DETERMINE THE INTERACTING SHELLS AS FAR AS POSSIBLE BY
C CONSIDERING THE DIFFERENCES BETWEEN PSI AND PSIP
C
IBUG2=2
IX=0
IRHO=0
ISIG=0
IRHOP=0
ISIGP=0
DO 4 J=1,IHSH
N=NOSH1(J)-NOSH2(J)
IF(IABS(N)-2) 5,5,1
5 IF(N) 7,4,6
6 IF(N-1) 4,8,9
C
C --- TO SATISFY =IRHO.LE.ISIG= IRHO IS SET FIRST, ETC.
C
8 IF(IRHO) 10,10,11
10 IRHO = J
GO TO 12
11 ISIG=J
12 IX =IX+1
GO TO 4
9 IRHO=J
IX=IX+2
GO TO 4
7 IF(N+1) 13,14,4
14 IF(IRHOP) 15,15,16
15 IRHOP = J
GO TO 17
16 ISIGP=J
17 IX=IX+1
GO TO 4
13 IRHOP=J
IX=IX+2
4 CONTINUE
C
C IX MEASURES THE TOTAL NUMBER OF ELECTRONS IN EITHER CONFIGURATION
C WHICH DO NOT OCCUR IN THE OTHER. THEN IF IX IS GREATER THAN 4,
C ORTHOGONALITY OF THE ORBITALS PREVENTS A NON-ZERO MATRIX ELEMENT.
C IF IX IS LESS THAN 4, THEN WE DIVIDE IX BY 2 AND NOW IX MEASURES
C THE NUMBER OF ELECTRONS WHICH HAVE BEEN CHANGED IN GOING FROM PSI
C TO PSIP. IF NOW IX=0, WE HAVE A DIAGONAL MATRIX ELEMENT. RHO AND
C SIG MAY TAKE ON ANY VALUES LESS THAN IHSH. IF IX=1, ONE INTER-
C ACTING SHELL ON EACH SIDE IS FIXED, WHILE THE OTHER MAY VARY. IF
C IX=2, ALL INTERACTING SHELLS ARE DETERMINED
C
IF(IX-4) 18,18,1
18 IX=IX/2
IF(IX-1) 19,20,21
C
C === UNIQUE SPECIFICATION OF INTERACTING SHELLS
C
21 IF(ISIG) 22,23,22
23 ISIG=IRHO
22 IF(ISIGP) 24,25,24
25 ISIGP = IRHOP
24 IF(IBUG1.GT.1) WRITE(IWRITE,61) IRHO,ISIG,IRHOP,ISIGP
C
C --- CALCULATE COEFFICIENTS OF SLATER INTEGRALS
C
CALL REDUCE(IRHO,ISIG,IRHOP,ISIGP,LESSEN)
call setm
CALL FANO(IRHO,ISIG,IRHOP,ISIGP)
IF(LESSEN.NE.0) CALL MEREST(IRHO,ISIG,IRHOP,ISIGP)
CALL PRNTWT(IRHO,ISIG,IRHOP,ISIGP)
RETURN
C
C === ONE INTERACTING SHELL SPECIFIED ON EACH SIDE. SUMMATION OVER OTHER
C
20 IRSTO=IRHO
IRPSTO=IRHOP
DO 125 K1=1,IHSH
IF(NOSH1(K1)) 26,125,26
26 ISIG=K1
IF(NOSH2(K1)) 29,125,29
29 ISIGP = K1
IRHO=IRSTO
IRHOP=IRPSTO
C
C ORTHOGONALITY OF THE ORBITALS REQUIRES THAT THE VARYING INTER-
C ACTING SHELL BE THE SAME ON BOTH SIDES OF THE MATRIX ELEMENT
C
C --- IRHO.LE.ISIG, IRHOP.LE.ISIGP
C
IF(IRHO-ISIG) 27,127,227
227 ISTO=IRHO
IRHO=ISIG
ISIG = ISTO
GO TO 27
127 IF(NOSH1(ISIG)-1) 125,125,27
27 IF(IRHOP-ISIGP) 30,130,31
31 ISTO=IRHOP
IRHOP = ISIGP
ISIGP = ISTO
GO TO 30
130 IF(NOSH2(ISIGP)-1) 125,125,30
30 IF(IBUG1.GT.1) WRITE(IWRITE,61) IRHO,ISIG,IRHOP,ISIGP
C
C --- CALCULATE COEFFICIENTS OF SLATER INTEGRALS
C
CALL REDUCE(IRHO,ISIG,IRHOP,ISIGP,LESSEN)
call setm
CALL FANO(IRHO,ISIG,IRHOP,ISIGP)
IF(LESSEN.NE.0) CALL MEREST(IRHO,ISIG,IRHOP,ISIGP)
CALL PRNTWT(IRHO,ISIG,IRHOP,ISIGP)
125 CONTINUE
RETURN
C
C === NO INTERACTING SHELLS SPECIFIED
C SUMMATION OVER ALL POSSIBLE COMBINATIONS
C IN THIS CASE, ORTHOGONALITY OF ORBITALS PRECLUDES ALL CASES
C EXCEPT IRHO=IRHOP AND ISIG=ISIGP
C
19 DO 32 K1=1,IHSH
IF(NOSH1(K1)) 36,32,36
36 ISIG=K1
DO 33 K2=1,K1
IF(NOSH1(K2)) 37,33,37
37 IRHO=K2
IF(IRHO-ISIG) 50,51,50
51 IF(NOSH1(ISIG)-1) 33,33,50
50 IRHOP=IRHO
ISIGP=ISIG
IF(IBUG1.GT.1) WRITE(IWRITE,61) IRHO,ISIG,IRHOP,ISIGP
C
C --- CALCULATE COEFFICIENTS OF SLATER INTEGRALS
C
IF(ICHOP(K1).EQ.1.OR.ICHOP(K2).EQ.1) GO TO 34
CALL REDUCE(IRHO,ISIG,IRHOP,ISIGP,LESSEN)
call setm
CALL FANO(IRHO,ISIG,IRHOP,ISIGP)
IF(LESSEN.NE.0) CALL MEREST(IRHO,ISIG,IRHOP,ISIGP)
CALL PRNTWT(IRHO,ISIG,IRHOP,ISIGP)
GO TO 33
34 CALL USEEAV(IRHO,ISIG)
33 CONTINUE
32 CONTINUE
1 RETURN
C
C --- SET CONSTANTS USEFUL IN INNER SUBROUTINES
C
END
c
c-----------------------------------------------------------------------
c f a n o
c-----------------------------------------------------------------------
c
SUBROUTINE FANO(IRHO,ISIG,IRHOP,ISIGP)
DIMENSION RMEDIR(9),RMEEX(9),NBAR(10)
DIMENSION K6(40),K7(80),K8(40),KW(6,20)
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6,IBUG7,IBUG8,IBUG9
COMMON/KRON/IDEL(10,10)
COMMON/TERMS/NROWS,ITAB(12),JTAB(12),NTAB(171)
COMMON/MEDEFN/IHSH,NJ(10),LJ(10),NOSH1(10),NOSH2(10),J1QN1(19,3),
1 j1qn2(19,3),ijful(10)
COMMON/MVALUE/M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,
1 M16,M17,M18,M19,M20
common/xation/amult(9),bmult(9),kd1,kd2,ke1,ke2,multd,multe
COMMON/NJLJ/NRHO,LRHO,NSIG,LSIG,NRHOP,LRHOP,NSIGP,LSIGP
COMMON/INTERM/J1BAR1(10,3),J1BAR2(10,3),J1TLD1(3),J1TLD2(3)
COMMON/COUPLE/NJ1S,NJ23S,J1(40),J2(12,3),J3(12,3)
C
common/const/zero,tenth,half,one,two,three,four,seven,eleven,eps
C
C === DETERMINES POTENTIAL MATRIX ELEMENT FOR GIVEN RHO,SIG,RHOP,SIGP
C
C
301 FORMAT(21H NO POSSIBLE K-VALUES)
302 FORMAT(66H SPECTATOR QUANTUM NUMBERS NOT DIAGONAL FOR NON-INTERACT
1ING SHELLS)
305 FORMAT(23H DIRECT SPIN INTEGRAL =,F10.6)
306 FORMAT(25H EXCHANGE SPIN INTEGRAL =,F10.6)
307 FORMAT(6H NJ,LJ,4(I8,I4))
308 FORMAT(6H KD1 =,I4,6H KD2 =,I4,6H KE1 =,I4,6H KE2 =,I4)
309 FORMAT(56H ROWS OF TERM TABLE CONTAINING PARENTS ARE, RESPECTIVELY
1,2(I6,I3))
310 FORMAT(26H DIRECT ANGULAR INTEGRAL =,F10.6)
c 311 FORMAT(3H J1,I6,36I3)
312 FORMAT(28H EXCHANGE ANGULAR INTEGRAL =,F10.6)
C
C --- SET USEFUL CONSTANTS
C
M1=ISIG-IRHO
M2=ISIGP-IRHOP
M19=IRHO-IRHOP
M20=ISIG-ISIGP
MULTD=0
MULTE=0
C
C JSNDIR,JANGDI=0 IMPLIES APPROPRIATE J2,J3 ARRAYS FOR CALL OF
C NJSYM HAVE NOT BEEN SET
C
JSNDIR=0
JANGDI=0
C
C --- SET N,L VALUES OF INTERACTING SHELLS
C
NRHO=NJ(IRHO)
LRHO=LJ(IRHO)
NSIG=NJ(ISIG)
LSIG=LJ(ISIG)
NRHOP=NJ(IRHOP)
LRHOP=LJ(IRHOP)
NSIGP=NJ(ISIGP)
LSIGP=LJ(ISIGP)
IF(IBUG1-1) 160,160,161
161 WRITE(IWRITE,307) NRHO,LRHO,NSIG,LSIG,NRHOP,LRHOP,NSIGP,LSIGP
C
C --- EVALUATE MULTIPLICATIVE FACTORS
C
160 IL=IDEL(IRHO,ISIG)
IR=IDEL(IRHOP,ISIGP)
q=nosh1(irho)*(nosh1(isig)-il)*nosh2(irhop)*(nosh2(isigp)-ir)
xmult=sqrt(q)*half
adirct=(1+(1-il)*(1-ir))/sqrt((lsig+lsig+one)*(lrhop+lrhop+one))
IEXCHG=2-IL-IR
aexchg=iexchg/sqrt((lsig+lsig+one)*(lsig+lsig+one))
DO 13 J=1,IHSH
NBAR(J)=NOSH1(J)-IDEL(J,IRHO)-IDEL(J,ISIG)
13 CONTINUE
IDELP=0
IF(M1) 14,15,14
14 K1=IRHO+1
DO 16 J=K1,ISIG
IDELP=IDELP+NBAR(J)
16 CONTINUE
15 IF(M2) 17,18,17
17 K1=IRHOP+1
DO 19 J=K1,ISIGP
IDELP=IDELP+NBAR(J)
19 CONTINUE
18 xmult=xmult*(-one)**idelp
C
C --- DETERMINES RANGES OF K FOR DIRECT AND EXCHANGE INTEGRALS
C TRIANGULAR RELATIONS LIMIT (K+1) VALUES TO LIE BETWEEN KD1 AND KD2
C FOR =DIRECT= INTEGRALS, KE1 AND KE2 FOR =EXCHANGE= INTEGRALS
C
K1=IABS(LSIG-LSIGP)
K2=LSIG+LSIGP
K3=IABS(LRHO-LRHOP)
K4=LRHO+LRHOP
KD1=MAX0(K1,K3)+1
KD2=MIN0(K2,K4)+1
K1=IABS(LRHOP-LSIG)
K2=LRHOP+LSIG
K3=IABS(LRHO-LSIGP)
K4=LRHO+LSIGP
KE1=MAX0(K1,K3)+1
KE2=MIN0(K2,K4)+1
IF(IBUG1-1) 612,612,613
613 WRITE(IWRITE,308) KD1,KD2,KE1,KE2
612 IF(KD1-KD2) 213,213,211
211 IF(KE1-KE2) 213,213,212
212 IF(IBUG1-1) 400,400,401
401 WRITE(IWRITE,301)
400 RETURN
C
C --- ZEROIZE MULTIPLYING FACTORS FOR ALLOWED K-VALUES. THE LOWEST
C VALUES KD1 AND KD2 ARE ALWAYS ALLOWED (UNLESS THEY ARE
C GREATER THAN KD2 AND KE2 RESPECTIVELY). ALLOWED K-VALUES THEN
C STEP BY 2 TO SATISFY THE EVEN CONDITION OF THE REDUCED MATRIX
C ELEMENTS, WHICH ARE THEN CALCULATED AND STORED
C
213 IF(KD1-KD2) 231,231,232
231 DO 230 JK1=KD1,KD2,2
K=JK1-1
AMULT(JK1)=one
RMEDIR(JK1)=RME(LRHO,LRHOP,K)*RME(LSIG,LSIGP,K)
230 CONTINUE
232 IF(KE1-KE2) 233,233,241
233 DO 234 JK1=KE1,KE2,2
K=JK1-1
BMULT(JK1)=one
RMEEX(JK1)=RME(LRHO,LSIGP,K)*RME(LSIG,LRHOP,K)
234 CONTINUE
C
C --- SET SENIORITY, S AND L VALUES OF SPECTATOR SHELLS
C
241 DO 26 J=1,IHSH
IF(IRHO-J) 27,29,27
27 IF(ISIG-J) 28,29,28
28 DO 128 K=1,3
J1BAR1(J,K)=J1QN1(J,K)
128 CONTINUE
29 IF(IRHOP-J) 30,26,30
30 IF(ISIGP-J) 31,26,31
31 DO 181 K=1,3
J1BAR2(J,K)=J1QN2(J,K)
181 CONTINUE
IF(IRHO-J) 32,26,32
32 IF(ISIG-J) 33,26,33
C
C CHECK THAT SPECTATOR SHELLS HAVE SAME RESPECTIVE QUANTUM NUMBERS
C
33 DO 183 K=1,3
IF(J1BAR1(J,K)-J1BAR2(J,K)) 402,183,402
183 CONTINUE
26 CONTINUE
GO TO 405
402 IF(IBUG1-1) 404,404,403
403 WRITE(IWRITE,302)
404 RETURN
C
C --- FROM WHICH ROWS OF NTAB DO WE FIND THE QUANTUM NUMBERS WITH BARS
C OR TILDES
C
405 NELCTS=NOSH1(ISIG)
K2=NTAB1(NELCTS,LSIG+1)
IF(M1) 20,21,20
21 NELCTS=NOSH1(ISIG)-1
GO TO 22
20 NELCTS=NOSH1(IRHO)
22 K1=NTAB1(NELCTS,LRHO+1)
NELCTS=NOSH2(ISIGP)
K4=NTAB1(NELCTS,LSIGP+1)
IF(M2) 23,24,23
24 NELCTS=NOSH2(ISIGP)-1
GO TO 25
23 NELCTS=NOSH2(IRHOP)
25 K3=NTAB1(NELCTS,LRHOP+1)
IF(IBUG1-1) 59,59,49
49 WRITE(IWRITE,309) K1,K2,K3,K4
59 KK1=ITAB(K1)
KK2=ITAB(K2)
KK3=ITAB(K3)
KK4=ITAB(K4)
C
C === SUM OVER QUANTUM NUMBERS WITH BARS OR TILDES
C
DO 151 JJ2=1,KK2
C
C --- TEST TO SEE WHICH PARENT TERMS ARE ALLOWABLE. ONLY TEST THIS ON
C L AND S VALUES AT THIS STAGE, BY MEANS OF TRIANGULAR CONDITIONS
C FOR TWICE THE QUANTUM NUMBERS, IN ORDER TO USE ONLY INTEGER
C QUANTITIES
C
IN3=2*LSIG
IJK2=3*(JJ2-1)+JTAB(K2)
DO 131 K=2,3
IN1=NTAB(IJK2+K)-1
IN2=J1QN1(ISIG,K)-1
IF(IN1-IN2-IN3) 130,130,151
130 IF(IN1-IABS(IN2-IN3)) 151,140,140
140 IN3=1
131 CONTINUE
DO 152 JJ1=1,KK1
IN3=2*LRHO
IJK1=3*(JJ1-1)+JTAB(K1)
DO 132 K=2,3
IN1=NTAB(IJK1+K)-1
IF(M1) 141,142,141
141 IN2=J1QN1(IRHO,K)-1
GO TO 143
142 IN2=NTAB(IJK2+K)-1
143 IF(IN1-IN2-IN3) 144,144,152
144 IF(IN1-IABS(IN2-IN3)) 152,145,145
145 IN3=1
132 CONTINUE
DO 153 JJ4=1,KK4
IN3=2*LSIGP
IJK4=3*(JJ4-1)+JTAB(K4)
DO 133 K=2,3
IN1=NTAB(IJK4+K)-1
IN2=J1QN2(ISIGP,K)-1
IF(IN1-IN2-IN3) 146,146,153
146 IF(IN1-IABS(IN2-IN3)) 153,147,147
147 IN3=1
133 CONTINUE
DO 154 JJ3=1,KK3
IN3=2*LRHOP
IJK3=3*(JJ3-1)+JTAB(K3)
DO 134 K=2,3
IN1=NTAB(IJK3+K)-1
IF(M2) 138,139,138
138 IN2=J1QN2(IRHOP,K)-1
GO TO 148
139 IN2=NTAB(IJK4+K)-1
148 IF(IN1-IN2-IN3) 149,149,154
149 IF(IN1-IABS(IN2-IN3)) 154,150,150
150 IN3=1
134 CONTINUE
C
C SUMMATIONS NOW PERFORMED OVER ALLOWED QUANTUM NUMBERS
C THE TILDES CORRESPOND TO IRHO=ISIG AND/OR IRHOP=ISIGP
C
C --- SET THE REMAINING QUANTUM NUMBERS WITH BARS OR TILDES
C
DO 35 K=1,3
J1BAR1(IRHO,K)=NTAB(IJK1+K)
J1BAR2(IRHOP,K)=NTAB(IJK3+K)
IF(M1) 36,37,36
36 J1BAR1(ISIG,K)=NTAB(IJK2+K)
GO TO 38
37 J1TLD1(K)=NTAB(IJK2+K)
38 IF( M2) 39,40,39
39 J1BAR2(ISIGP,K)=NTAB(IJK4+K)
GO TO 35
40 J1TLD2(K)=NTAB(IJK4+K)
35 CONTINUE
C
C --- IS POTENTIAL DIAG. IN BARRED QU. NOS. FOR INTERACTING SHELLS
C
I5=0
I=ISIG
GO TO 50
42 I=IRHO
IF( M1) 43,44,43
43 GO TO 50
44 I5=I5+1
45 I=ISIGP
GO TO 50
46 I=IRHOP
IF(M2) 47,48,47
47 GO TO 50
50 I5=I5+1
DO 51 K=1,3
IF(J1BAR1(I,K)-J1BAR2(I,K)) 154,51,154
51 CONTINUE
GO TO (42,45,46,48),I5
48 PICFP=one
C
C --- EVALUATE FRACTIONAL PARENTAGE COEFFICIENTS
C
I=1
CALL MUMDAD (I,ISIG,IRHO,M1,CFPLHS)
PICFP=PICFP*CFPLHS
if(abs(picfp).lt.eps) go to 154
I=2
CALL MUMDAD(I,ISIGP,IRHOP,M2,CFPRHS)
PICFP=PICFP*CFPRHS
IF(ABS(PICFP).LT.eps) GO TO 154
C
C === SET UP J1,J2,J3 AND EVALUATE RECOUPLING COEFFICIENTS
C
C --- FIRST OF ALL, THE SPIN COEFFICIENTS
C
I=3
CALL SETJ1(I,IRHO,ISIG,IRHOP,ISIGP)
CALL J23SPN(IRHO,ISIG,IRHOP,ISIGP,JSNDIR)
C
C --- DIRECT SPIN INTEGRAL
C
IF(KD1-KD2) 89,89,90
90 SPINDT=zero
GO TO 78
89 CALL NJSYM(J6C,J7C,J8C,JWC,K6,K7,K8,KW,SPINDT)
78 IF(IBUG1-1) 91,91,170
170 WRITE(IWRITE,305) SPINDT
C
C IEXCHG IS ZERO WHENEVER M1=0=M2 , IN WHICH CASE THE EXCHANGE
C INTEGRAL HAS ZERO COEFFICIENT. THERE IS THEN NO POINT IN
C CALCULATING THIS INTEGRAL, AND SPINEX IS SET ZERO (AT STATEMENT
C 93) AS A MARKER OF THIS SITUATION
C
91 IF(IEXCHG.EQ.0) GO TO 93
C
C --- MODIFY J2 AND J3 TO CALCULATE THE EXCHANGE SPIN INTEGRAL
C
I=1
CALL MODJ23(I)
C
C --- EXCHANGE SPIN INTEGRAL
C
IF(KE1-KE2) 92,92,93
93 SPINEX=zero
GO TO 94
92 CALL NJSYM(J6C,J7C,J8C,JWC,K6,K7,K8,KW,SPINEX)
94 IF(IBUG1-1) 171,171,172
172 WRITE(IWRITE,306) SPINEX
C
C --- MULTIPLY SPIN INTEGRALS BY PRODUCT OF FRACTIONAL PARENTAGE COEFFS
C
171 BDIRCT=SPINDT*PICFP
BEXCHG=SPINEX*PICFP
C
C --- THE ANGULAR RECOUPLING COEFFICIENTS
C SET J1,J2,J3 (COMPARE SPIN INTEGRALS)
C
C IF BOTH SPIN INTEGRALS ARE ZERO, THERE IS NO PURPOSE IN
C CALCULATING THE ANGULAR INTEGRALS
C
if(abs(spindt).lt.eps.and.abs(spinex).lt.eps) go to 154
C
I=2
CALL SETJ1(I,IRHO,ISIG,IRHOP,ISIGP)
CALL J23ANG(IRHO,ISIG,IRHOP,ISIGP,JANGDI)
C
C IF THE DIRECT SPIN RECOUPLING COEFFICIENT IS ZERO, WE NEED NOT
C CALCULATE THE CORRESPONDING ORBITAL RECOUPLING COEFFICIENT
C
if(abs(spindt).lt.eps) go to 121
c
C --- DIRECT ANGULAR INTEGRAL
C
C CONSIDER ALL ALLOWED K-VALUES
C
DO 114 JK1=KD1,KD2,2
CALL J23ANG(IRHO,ISIG,IRHOP,ISIGP,JANGDI)
J1(NJ1S)=2*JK1-1
CALL NJSYM(J6C,J7C,J8C,JWC,K6,K7,K8,KW,ANGDIR)
C
C ADD INTO THE COEFFICIENT OF THE SLATER INTEGRAL
C
AMULT(JK1)=AMULT(JK1)+ANGDIR*BDIRCT
C
C MULTD=1 WHEN A DIRECT INTEGRAL COEFFICIENT HAS BEEN CALCULATED -
C FOR USE, SEE PRNTWT
C
MULTD=1
IF(IBUG1-1) 114,114,123
123 WRITE(IWRITE,310) ANGDIR
114 CONTINUE
C
C IF THE EXCHANGE SPIN RECOUPLING COEFFICIENT IS ZERO, WE NEED NOT
C CALCULATE THE CORRESPONDING ORBITAL RECOUPLING COEFFICIENT
C
121 if(abs(spinex).lt.eps) go to 154
C
C --- EXCHANGE ANGULAR INTEGRAL
C
C CONSIDER ALL ALLOWED K-VALUES
C
DO 115 JK1=KE1,KE2,2
C
C --- MODIFY J2 AND J3 ARRAYS TO CALCULATE EXCHANGE TERMS
C
I=2
CALL MODJ23(I)
J1(NJ1S) = 2*JK1-1
I=4
CALL NJSYM(J6C,J7C,J8C,JWC,K6,K7,K8,KW,ANGEX)
BMULT(JK1)=BMULT(JK1)-ANGEX*BEXCHG
C
C MULTE=1 WHEN AN EXCHANGE INTEGRAL COEFFICIENT HAS BEEN CALCULATED
C
MULTE=1
IF(IBUG1-1) 115,115,117
117 WRITE(IWRITE,312) ANGEX
115 CONTINUE
154 CONTINUE
153 CONTINUE
152 CONTINUE
151 CONTINUE
C
C === INCLUDE MULTIPLICATIVE FACTORS COMMON TO ALL TERMS WITHIN THIS
C FOUR-FOLD SUMMATION
C
IF(MULTD) 524,525,524
524 DO 518 JK1=KD1,KD2,2
AMULT(JK1)=AMULT(JK1)*XMULT*RMEDIR(JK1)*ADIRCT
518 CONTINUE
525 IF(MULTE) 526,527,526
526 DO 519 JK1=KE1,KE2,2
BMULT(JK1)=BMULT(JK1)*XMULT*RMEEX(JK1)*AEXCHG
519 CONTINUE
C
C --- PRINT OUT THE VALUES OF THE COEFFICIENTS OF THE SLATER INTEGRALS
C
C THE SUBROUTINE PRNTWT IS CALLED FROM RKWTS
C
527 RETURN
C
C *** DEFINITION OF DIMENSION LIST
C
C RMEDIR(K),K=KD1,KD2,2 - DIRECT REDUCED MATRIX ELEMENT PRODUCT
C RMEEX(K),K=KE1,KE2,2 - EXCHANGE REDUCED MATRIX ELEMENT PRODUCT
C KD1,KE1 ARE ALWAYS .GE. 1
C KD2,KE2 ARE .LE. 1+2*MAX(L-VALUE)
C NBAR(I), I=1,IHSH - NUMBER OF SPECTATOR ELECTRONS IN EACH SHELL
C THE K6,K7,K8,KW ARRAYS ARE DEFINED IN NJSYM
C
C
END
c
c-----------------------------------------------------------------------
c r m e
c-----------------------------------------------------------------------
c
FUNCTION RME(L,LP,K)
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6,IBUG7,IBUG8,IBUG9
COMMON/FACT/ GAMMA(20)
common/const/zero,tenth,half,one,two,three,four,seven,eleven,eps
C
C --- EVALUATES THE REDUCED MATRIX ELEMENT (L//C(K)//LP) - SEE FANO
C AND RACAH, IRREDUCIBLE TENSORIAL SETS, CHAP. 14, P. 81
C
200 format(//4h L =,i3,5h LP =,i3,4h K =,i3,
143h RME SET ZERO SINCE TRIANGEL DOES NOT MATCH)
if (k.gt.(l+lp).or.k.lt.iabs(l-lp)) goto 100
I2G=L+LP+K
IG=I2G/2
IF(I2G-2*IG) 1,2,1
1 RME=zero
RETURN
100 IF(IBUG1-1) 1,1,3
3 WRITE(IWRITE,200) L,LP,K
GO TO 1
2 IF(IG) 100,13,12
13 RME=one
RETURN
12 I1=IG-L
I2=IG-LP
I3=IG-K
AL1=GAMMA(I1+1)
AL2=GAMMA(2*I1+1)
ALP1=GAMMA(I2+1)
ALP2=GAMMA(2*I2+1)
AK1=GAMMA(I3+1)
AK2=GAMMA(2*I3+1)
QUSQRT=(2*L+1)*(2*LP+1)*AL2*ALP2*AK2/GAMMA(I2G+2)
RME=SQRT(QUSQRT)*GAMMA(IG+1)/(AL1*ALP1*AK1)
RETURN
END
c
c----------------------------------------------------------------------
c n t a b 1
c----------------------------------------------------------------------
c
FUNCTION NTAB1(NELCTS,K)
COMMON/INFORM/IREAD,IWRITE,IPUNCH
C
C THIS SUBROUTINE CALCULATES THE ROW OF NTAB CORRESPONDING TO THE
C PARENTS WHICH MAY GIVE RISE TO THE TERM ASSOCIATED WITH SHELL
C LAMBDA . E.G. IF WE SEEK THE ROW OF NTAB CONTAINING THE PARENTS
C OF ONE OF THE P**3 TERMS, THE ROW = VALUE OF NTAB1 IS THAT
C CONTAINING THE P**2 TERMS
C
C USE IS MADE OF THE FACT THAT THE LIST OF POSSIBLE PARENTS (SEE
C WHITE - ATOMIC SPECTRA - APPENDIX) IS SYMMETRICAL ABOUT THE
C CONFIGURATION L**(2L+1)
C
C
C --- FOR ONE ELECTRON IN A TERM, THE PARENT IS ALWAYS A SINGLET S TERM
C
IF(NELCTS-1) 1,2,1
2 NTAB1=2
RETURN
C
C OTHERWISE THE VALUE OF NTAB1 DEPENDS ON THE L VALUE OF THE
C ELECTRONS
C
1 GO TO (3,4,5,6,14),K
C
C --- FOR S ELECTRONS, THE ONLY OTHER POSSIBILITY IS THAT NELCTS=2
C
3 NTAB1=1
RETURN
C
C --- P ELECTRONS - ARE WE BEYOND P**4
C
4 IF(NELCTS-4) 7,7,8
8 NELCTS=8-NELCTS
7 NTAB1=1+NELCTS
RETURN
C
C --- D ELECTRONS - ARE WE BEYOND D**6
C
5 IF(NELCTS-6) 9,9,10
10 NELCTS=12-NELCTS
9 NTAB1=4+NELCTS
RETURN
C
C --- F ELECTRONS - ARE THERE MORE THAN TWO. IF SO, THE PROGRAMME NEEDS
C AN F-SHELL COEFFICIENT-OF-FRACTIONAL-PARENTAGE ROUTINE, AND THE
C ARRAYS IN /TERMS/ NEED EXTENDING
C
6 IF(NELCTS-2) 2,11,12
11 NTAB1 = 11
RETURN
C
C --- G ELECTRONS - ARE THERE MORE THAN TWO. IF SO, THE PROGRAMME
C NEEDS A G-SHELL COEFFICIENT-OF-FRACTIONAL-PARENTAGE ROUTINE, AND
C THE ARRAYS IN /TERMS/ NEED EXTENDING
C
14 IF(NELCTS-2) 2,15,16
15 NTAB1=12
RETURN
12 WRITE(IWRITE,13)
13 FORMAT(////67H STOP AND EXTEND THE NTAB AND ITAB ARRAYS TO ALLOW M
1ORE F-ELECTRONS/78H YOU WILL ALSO REQUIRE A COMPLETE FRACTIONAL PA
2RENTAGE ROUTINE FOR F-ELECTRONS//)
GO TO 17
16 WRITE(IWRITE,18)
18 FORMAT(////67H STOP AND EXTEND THE NTAB AND ITAB ARRAYS TO ALLOW M
1ORE G-ELECTRONS/78H YOU WILL ALSO REQUIRE A COMPLETE FRACTIONAL PA
2RENTAGE ROUTINE FOR G-ELECTRONS//)
17 CALL EXIT
END
c
c------------------------------------------------------------------------
c m u m d a d
c------------------------------------------------------------------------
c
SUBROUTINE MUMDAD(II,IJ,IK,M,X)
COMMON/MEDEFN/IHSH,NJ(10),LJ(10),NOSH(10,2),J1QN(19,3,2),IJFUL(10)
COMMON/INTERM/J1B(10,3,2),J1T(3,2)
common/const/zero,tenth,half,one,two,three,four,seven,eleven,eps
C
C NOTICE THE NAMES IN THE COMMON BLOCKS. SEE SETUP FOR DESCRIPTION
C
C --- CALLS AND EVALUATES FRACTIONAL PARENTAGE COEFFICIENTS
C
X=one
LIJ=LJ(IJ)
IF(LIJ) 12,12,11
12 IF(M)4,5,4
11 N=NOSH(IJ,II)
IVI=J1QN(IJ,1,II)
ILI=(J1QN(IJ,2,II)-1)/2
ISI=J1QN(IJ,3,II)
C
C IF M=0 THERE ARE QUANTUM NUMBERS WITH TILDES TO CONSIDER
C
IF(M) 1,2,1
1 IVJ=J1B(IJ,1,II)
ILJ=(J1B(IJ,2,II)-1)/2
ISJ= J1B(IJ,3,II)
GO TO 3
2 IVJ=J1T(1,II)
ILJ=(J1T(2,II)-1)/2
ISJ=J1T(3,II)
3 CALL CFP(LIJ,N,IVI,ILI,ISI,IVJ,ILJ,ISJ,COEFP)
X=X*COEFP
IF(ABS(X).LT.eps) GO TO 5
4 LIJ=LJ(IK)
IF(LIJ) 5,5,14
14 IF(M) 6,7,6
6 N=NOSH(IK,II)
IVI=J1QN(IK,1,II)
ILI=(J1QN(IK,2,II)-1)/2
ISI=J1QN(IK,3,II)
IVJ = J1B(IK,1,II)
ILJ =(J1B(IK,2,II)-1)/2
ISJ = J1B(IK,3,II)
GO TO 8
7 N=NOSH(IJ,II)-1
IVI=IVJ
ILI=ILJ
ISI=ISJ
IVJ=J1B(IJ,1,II)
ILJ=(J1B(IJ,2,II)-1)/2
ISJ = J1B(IJ,3,II)
8 CALL CFP(LIJ,N,IVI,ILI,ISI,IVJ,ILJ,ISJ,COEFP)
X=X*COEFP
5 CONTINUE
RETURN
END
c
c----------------------------------------------------------------------
c c f p
c----------------------------------------------------------------------
c
SUBROUTINE CFP(LIJ,N,IVI,ILI,ISI,IVJ,ILJ,ISJ,COEFP)
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6,IBUG7,IBUG8,IBUG9
C
C === CHOOSES APPROPRIATE FRACTIONAL PARENTAGE SUBROUTINE
C
9 FORMAT(' UNNECESSARY ATTEMT TO FORM CFP OF AN S-ELEKTRON - THERE'
1 ,' IS AN ERROR')
10 FORMAT(8H COEFP =,F15.9)
K=LIJ+1
C
C IF F-SHELL OR G-SHELL COEFFICIENT-OF-FRACTIONAL-PARENTAGE ROUTINES
C ARE INCLUDED, THIS COMPUTED GO TO NEEDS MODIFYING TO ACCOUNT FOR
C THIS
C
GO TO (1,2,3,4,4),K
C
C --- FALSE CALL FOR S-SHELLS
C
1 WRITE(IWRITE,9)
CALL EXIT
C
C --- P-SHELLS
C
2 CALL CFPP(N,ILI,ISI,ILJ,ISJ,COEFP)
GO TO 5
C
C --- D-SHELLS
C
3 CALL CFPD(N,IVI,ILI,ISI,IVJ,ILJ,ISJ,COEFP)
GO TO 5
C
C --- F-SHELLS, G-SHELLS ETC. WITH UP TO TWO ELECTRONS
C
4 CALL CFPF(N,IVI,ILI,ISI,IVJ,ILJ,ISJ,COEFP)
5 IF(IBUG1-1) 6,6,7
7 WRITE(IWRITE,10) COEFP
6 RETURN
END
c
c------------------------------------------------------------------------
c c f p f
c------------------------------------------------------------------------
c
SUBROUTINE CFPF(N,IVI,ILI,ISI,IVJ,ILJ,ISJ,COEFP)
C
C THIS IS A DUMMY SUBROUTINE TO CALCULATE CFP OF F-ELECTRONS. IT IS
C VALID ONLY FOR ONE OR TWO ELECTRONS IN THE F-SHELL UNDER
C CONSIDERATION.
C
COEFP=one
RETURN
END
c
c-------------------------------------------------------------------------
c s e t j 1
c-------------------------------------------------------------------------
c
SUBROUTINE SETJ1(K,IRHO,ISIG,IRHOP,ISIGP)
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6,IBUG7,IBUG8,IBUG9
COMMON/MEDEFN/IHSH,NJ(10),LJ(10),NOSH1(10),NOSH2(10),J1QN1(19,3),
1 j1qn2(19,3),ijful(10)
COMMON/MVALUE/M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,
1 M16,M17,M18,M19,M20
COMMON/NJLJ/NRHO,LRHO,NSIG,LSIG,NRHOP,LRHOP,NSIGP,LSIGP
COMMON/INTERM/J1BAR1(10,3),J1BAR2(10,3),J1TLD1(3),J1TLD2(3)
COMMON/COUPLE/NJ1S,NJ23S,J1(40),J2(12,3),J3(12,3)
common/const/zero,tenth,half,one,two,three,four,seven,eleven,eps
C
C === SETS J1 ARRAYS FOR DIRECT INTEGRAL CALLS OF NJSYM
C
15 FORMAT(3H J1,I6,36I3)
DO 1 J=1,IHSH
J1(J)=J1BAR1(J,K)
1 CONTINUE
DO 2 J=M4,M6
J1(J)=J1QN1(J,K)
2 CONTINUE
DO 3 J=M7,M8
J1(J)=J1QN2(J-M3,K)
3 CONTINUE
J1(M10)=J1QN1(ISIG,K)
J1(M12)=J1QN2(ISIGP,K)
IF(M1) 4,5,4
4 J1(M9)=J1QN1(IRHO,K)
GO TO 6
5 J1(M9)=J1TLD1(K)
6 IF(M2) 7,8,7
7 J1(M11)=J1QN2(IRHOP,K)
GO TO 9
8 J1(M11)=J1TLD2(K)
C
C K=2 IMPLIES ANGULAR TERMS , K=3 IMPLIES SPIN TERMS
C
9 IF(K-2) 11,11,10
10 J1(M13)=2
J1(M14)=2
MLIMIT=M14
NJ1S=M14
NJ23S=M5
GO TO 12
11 J1(M13)=2*LRHO+1
J1(M14)=2*LSIG+1
J1(M15)=2*LRHOP+1
J1(M16)=2*LSIGP+1
MLIMIT=M16
NJ1S=M17
NJ23S=M18
12 IF(IBUG1-1) 13,13,16
C
C PRINT-OUT OF VALUES IN NJSYM IF IBUG3=1
C
16 IF(IBUG3.NE.1) WRITE(IWRITE,15)(J1(J),J=1,MLIMIT)
13 RETURN
END
c
c-----------------------------------------------------------------------
c j 2 3 s p n
c-----------------------------------------------------------------------
c
SUBROUTINE J23SPN(IRHO,ISIG,IRHOP,ISIGP,JSNDIR)
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6,IBUG7,IBUG8,IBUG9
COMMON/MVALUE/M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,
1 M16,M17,M18,M19,M20
COMMON/COUPLE/NJ1S,NJ23S,J1(40),J2(12,3),J3(12,3)
COMMON/HOLD/J2SPIN(33),J3SPIN(33),J2ANG(36),J3ANG(36)
C
C === SET UP THE J2 AND J3 ARRAYS FOR THE DIRECT SPIN INTEGRAL CALL
C OF NJSYM
C
303 FORMAT(3H J2,18X,2HJ3)
304 FORMAT(3I5,I10,2I5)
C
C HAVE THE J2 AND J3 ARRAYS ALREADY BEEN SET. IF NOT, THEN GO TO 2
C
IF(JSNDIR) 2,2,1
C
C --- SET THIRD ROW OF J2 AND J3
C
2 IF(IRHO-1) 271,272,271
271 J2(3,1)=1
GO TO 273
272 IF(M1) 274,275,274
275 J2(3,1)=M10
GO TO 276
274 J2(3,1)=M9
GO TO 276
273 IF(IRHO-2) 277,278,277
277 J2(3,2)=2
GO TO 284
278 IF(M1) 280,281,280
280 J2(3,2)=M9
GO TO 284
281 J2(3,2)=M10
GO TO 284
276 IF(ISIG-2) 277,281,277
284 J2(3,3)=M4
IF(IRHOP-1) 285,286,285
285 J3(3,1)=1
GO TO 287
286 IF(M2) 288,289,288
288 J3(3,1)=M11
GO TO 290
289 J3(3,1)=M12
GO TO 290
287 IF(IRHOP-2) 291,292,291
291 J3(3,2)=2
GO TO 293
292 IF(M2) 294,295,294
295 J3(3,2)=M12
GO TO 293
294 J3(3,2)=M11
GO TO 293
290 IF(ISIGP-2) 291,295,291
293 J3(3,3)=M7
C
C --- SET ROWS 4,5,.. ETC.
C
IF(M4-4) 203,202,202
202 DO 470 J=4,M4
J2(J,1)=M4 +J-4
J2(J,3)=M4+J-3
IF(ISIG+1-J) 471,472,471
471 IF(M1) 473,474,473
473 IF(IRHO+1-J) 474,475,474
474 J2(J,2)=J-1
GO TO 476
472 J2(J,2)=M10
GO TO 476
475 J2(J,2)=M9
476 J3(J,1)=M7+J-4
IF(J-M4 ) 482,483,482
483 J3(J,3)=J2(J,3)
GO TO 484
482 J3(J,3)=M7+J-3
484 IF(ISIGP+1-J) 477,478,477
477 IF(M2) 479,480,479
479 IF(IRHOP+1-J) 480,481,480
480 J3(J,2)=J-1
GO TO 470
478 J3(J,2)=M12
GO TO 470
481 J3(J,2)=M11
470 CONTINUE
C
C --- SET FIRST TWO ROWS, CORRESPONDING TO COUPLING OF INTERACTING
C ELECTRONS WITHIN THEIR SHELLS
C
203 J2(2,3)=M10
J2(1,2) = M13
J2(2,2) = M14
J2(1,3) = M9
IF(M1) 82,83,82
82 J2(1,1) = IRHO
J2(2,1) = ISIG
GO TO 84
83 J2(1,1) = ISIG
J2(2,1) = M9
84 J3(2,3) = M12
J3(1,2) = M13
J3(2,2) = M14
J3(1,3) = M11
IF(M2) 85,86,85
85 J3(1,1) = IRHOP
J3(2,1) = ISIGP
GO TO 187
86 J3(1,1) = ISIGP
J3(2,1) = M11
C
C --- STORE J2,J3 ARRAYS FOR USE IN CALCULATING EXCHANGE INTEGRAL
C
187 I1=0
DO 451 J=1,M4
DO 452 K=1,3
I1=I1+1
J2SPIN(I1)=J2(J,K)
J3SPIN(I1)=J3(J,K)
452 CONTINUE
451 CONTINUE
JSNDIR=1
3 IF(IBUG1-1) 570,570,6
C
C PRINT-OUT OF VALUES IN NJSYM IF IBUG3=1
C
6 IF(IBUG3-1) 200,570,200
200 WRITE(IWRITE,303)
DO 201 J=1,M4
WRITE(IWRITE,304) (J2(J,K),K=1,3),(J3(J,K),K=1,3)
201 CONTINUE
570 RETURN
C
C --- SET J2 AND J3 ARRAYS FROM STORE OF PREVIOUS CALCULATIONS
C
1 I1=0
DO 4 J=1,M4
DO 5 K=1,3
I1=I1+1
J2(J,K)=J2SPIN(I1)
J3(J,K)=J3SPIN(I1)
5 CONTINUE
4 CONTINUE
GO TO 3
END
c
c------------------------------------------------------------------
c m o d j 2 3
c------------------------------------------------------------------
c
SUBROUTINE MODJ23(K)
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6,IBUG7,IBUG8,IBUG9
COMMON/MVALUE/M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,
1 M16,M17,M18,M19,M20
COMMON/COUPLE/NJ1S,NJ23S,J1(40),J2(12,3),J3(12,3)
COMMON/HOLD/J2SPIN(33),J3SPIN(33),J2ANG(36),J3ANG(36)
C
C === MODIFIES THE DIRECT J2 AND J3 ARRAYS FOR EXCHANGE CALL OF NJSYM
C
7 FORMAT(3H J2,18X,2HJ3)
8 FORMAT(3I5,I10,2I5)
GO TO (1,2),K
C
C --- K=1 - SPIN INTEGRALS
C
1 MK=M4
I1=0
DO 11 J=1,MK
DO 12 K=1,3
I1=I1+1
J2(J,K)=J2SPIN(I1)
J3(J,K)=J3SPIN(I1)
12 CONTINUE
11 CONTINUE
J3(1,2)=M14
J3(2,2)=M13
GO TO 3
C
C --- K=2 - ANGULAR INTEGRALS
C
2 MK=M5
I1=0
DO 21 J=1,MK
DO 22 K=1,3
I1=I1+1
J2(J,K)=J2ANG(I1)
J3(J,K)=J3ANG(I1)
22 CONTINUE
21 CONTINUE
J2(1,1)=M15
J3(1,3)=M16
3 IF(IBUG1-1) 4,4,9
C
C PRINT-OUT OF VALUES IN NJSYM IF IBUG3=1
C
9 IF(IBUG3-1 ) 5,4,5
5 WRITE(IWRITE,7)
DO 6 J=1,MK
WRITE(IWRITE,8) (J2(J,K),K=1,3),(J3(J,K),K=1,3)
6 CONTINUE
4 RETURN
END
c
c-------------------------------------------------------------------
c j 2 3 a n g
c-------------------------------------------------------------------
c
SUBROUTINE J23ANG(IRHO,ISIG,IRHOP,ISIGP,JANGDI)
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6,IBUG7,IBUG8,IBUG9
COMMON/MVALUE/M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,
1 M16,M17,M18,M19,M20
COMMON/COUPLE/NJ1S,NJ23S,J1(40),J2(12,3),J3(12,3)
COMMON/HOLD/J2SPIN(33),J3SPIN(33),J2ANG(36),J3ANG(36)
C
C === SETS UP J2 AND J3 ARRAYS FOR DIRECT ANGULAR INTEGRAL CALL OF NJSYM
C
303 FORMAT(3H J2,18X,2HJ3)
304 FORMAT(3I5,I10,2I5)
C
C HAVE THE J2 AND J3 ARRAYS ALREADY BEEN SET. IF NOT, THEN GO TO 2
C
IF(JANGDI) 2,2,1
C
C --- ROWS 3 TO M4 OF SPIN J2 AND J3 ARE SAME AS ROWS 4 TO (M4+1) OF
C ANGULAR J2 AND J3
C
2 I1=6
DO 103 J=3,M4
JP1=J+1
DO 104 K=1,3
I1=I1+1
J2(JP1,K)=J2SPIN(I1)
J3(JP1,K)=J3SPIN(I1)
104 CONTINUE
103 CONTINUE
C
C --- SET ROWS 1, 2 AND 3
C
IF(M1) 105,106,105
105 J2(3,1)=ISIG
GO TO 107
106 J2(3,1)=M9
107 IF(M2) 109,110,109
109 J3(3,1)=ISIGP
GO TO 111
110 J3(3,1)=M11
111 J2(2,3)=M9
J2(2,1)=IRHO
J2(2,2)=M13
J2(1,3)=M14
J2(3,2)=M14
J2(3,3)=M10
J2(1,1)=M16
J2(1,2)=M17
J3(3,2)=M16
J3(3,3)=M12
J3(1,2)=M13
J3(1,1)=M17
J3(1,3)=M15
J3(2,3)= M11
J3(2,1)=IRHOP
J3(2,2)=M15
C
C --- STORE J2 AND J3 FOR USE IN CALCULATING THE EXCHANGE TERM
C
I1=0
DO 535 J=1,M5
DO 536 K=1,3
I1=I1+1
J2ANG(I1)=J2(J,K)
J3ANG(I1)=J3(J,K)
536 CONTINUE
535 CONTINUE
JANGDI=1
3 IF(IBUG1-1) 209,209,206
C
C PRINT-OUT OF VALUES IN NJSYM IF IBUG3=1
C
206 IF(IBUG3-1) 207,209,207
207 WRITE(IWRITE,303)
DO 208 J=1,M5
WRITE(IWRITE,304) (J2(J,K),K=1,3),(J3(J,K),K=1,3)
208 CONTINUE
209 RETURN
C
C --- SET J2 AND J3 ARRAYS FROM STORE OF PREVIOUS CALCULATIONS
C
1 I1=0
DO 4 J=1,M5
DO 5 K=1,3
I1=I1+1
J2(J,K)=J2ANG(I1)
J3(J,K)=J3ANG(I1)
5 CONTINUE
4 CONTINUE
GO TO 3
END
c
c---------------------------------------------------------------------
c b l d a t a
c---------------------------------------------------------------------
c
subroutine bldata
COMMON/TERMS/NROWS,I(12),J(12),N(171)
common/const/zero,tenth,half,one,two,three,four,seven,eleven,eps
C
C --- READS IN QUANTUM NUMBERS OF TERMS WHICH CAN BE FORMED FROM
C CONFIGURATIONS L**Q . ONLY THE FIRST HALF OF THAT PART OF THE
C TABLE, CORRESPONDING TO A GIVEN L, IS INCLUDED, BECAUSE OF THE
C SYMMETRY OF THE TABLE. E.G. D**7 FORMS THE SAME TERMS AS D**3
C
C THE ARRAYS I,J,N CORRESPOND TO THE ARRAYS ITAB,JTAB,NTAB
C
DATA NROWS/12/
DATA I( 1),I( 2),I( 3),I( 4),I( 5),I( 6)/ 1, 1, 1, 3, 3, 1/
DATA I( 7),I( 8),I( 9),I(10),I(11),I(12)/ 5, 8,16,16, 1, 1/
DATA J( 1),J( 2),J( 3),J( 4),J( 5),J( 6)/ 0, 3, 6, 9, 18, 27/
DATA J( 7),J( 8),J( 9),J(10),J(11),J(12)/ 30, 45, 69,117,165,168/
DATA N( 1),N( 2),N( 3),N( 4),N( 5),N( 6)/ 1, 1, 2, 0, 1, 1/
DATA N( 7),N( 8),N( 9),N( 10),N( 11),N( 12)/ 1, 3, 2, 0, 1, 1/
DATA N( 13),N( 14),N( 15),N( 16),N( 17),N( 18)/ 2, 5, 1, 2, 3, 3/
DATA N( 19),N( 20),N( 21),N( 22),N( 23),N( 24)/ 1, 3, 2, 3, 5, 2/
DATA N( 25),N( 26),N( 27),N( 28),N( 29),N( 30)/ 3, 1, 4, 1, 5, 2/
DATA N( 31),N( 32),N( 33),N( 34),N( 35),N( 36)/ 0, 1, 1, 2, 5, 1/
DATA N( 37),N( 38),N( 39),N( 40),N( 41),N( 42)/ 2, 9, 1, 2, 3, 3/
DATA N( 43),N( 44),N( 45),N( 46),N( 47),N( 48)/ 2, 7, 3, 1, 5, 2/
DATA N( 49),N( 50),N( 51),N( 52),N( 53),N( 54)/ 3, 3, 2, 3, 5, 2/
DATA N( 55),N( 56),N( 57),N( 58),N( 59),N( 60)/ 3, 7, 2, 3, 9, 2/
DATA N( 61),N( 62),N( 63),N( 64),N( 65),N( 66)/ 3,11, 2, 3, 3, 4/
DATA N( 67),N( 68),N( 69),N( 70),N( 71),N( 72)/ 3, 7, 4, 0, 1, 1/
DATA N( 73),N( 74),N( 75),N( 76),N( 77),N( 78)/ 2, 5, 1, 2, 9, 1/
DATA N( 79),N( 80),N( 81),N( 82),N( 83),N( 84)/ 2, 3, 3, 2, 7, 3/
DATA N( 85),N( 86),N( 87),N( 88),N( 89),N( 90)/ 4, 1, 1, 4, 5, 1/
DATA N( 91),N( 92),N( 93),N( 94),N( 95),N( 96)/ 4, 7, 1, 4, 9, 1/
DATA N( 97),N( 98),N( 99),N(100),N(101),N(102)/ 4,13, 1, 4, 3, 3/
DATA N(103),N(104),N(105),N(106),N(107),N(108)/ 4, 5, 3, 4, 7, 3/
DATA N(109),N(110),N(111),N(112),N(113),N(114)/ 4, 9, 3, 4,11, 3/
DATA N(115),N(116),N(117),N(118),N(119),N(120)/ 4, 5, 5, 1, 5, 2/
DATA N(121),N(122),N(123),N(124),N(125),N(126)/ 3, 3, 2, 3, 5, 2/
DATA N(127),N(128),N(129),N(130),N(131),N(132)/ 3, 7, 2, 3, 9, 2/
DATA N(133),N(134),N(135),N(136),N(137),N(138)/ 3,11, 2, 3, 3, 4/
DATA N(139),N(140),N(141),N(142),N(143),N(144)/ 3, 7, 4, 5, 1, 2/
DATA N(145),N(146),N(147),N(148),N(149),N(150)/ 5, 5, 2, 5, 7, 2/
DATA N(151),N(152),N(153),N(154),N(155),N(156)/ 5, 9, 2, 5,13, 2/
DATA N(157),N(158),N(159),N(160),N(161),N(162)/ 5, 5, 4, 5, 9, 4/
DATA N(163),N(164),N(165),N(166),N(167),N(168)/ 5, 1, 6, 1, 7, 2/
DATA N(169),N(170),N(171) / 1, 9, 2/
c
c set global real constants
c
data zero,tenth,half,one,two,three,four,seven,eleven,eps/
1 0.0e 00,0.1e 00,0.5e 00,1.0e 00,2.0e 00,3.0e 00,4.0e 00,
2 7.0e 00,1.1e 01,1.0e-08/
c
c
c set constants to be used in cfpd
c
call cfpddata
return
end
c
c----------------------------------------------------------------------
c p r n t w t
c----------------------------------------------------------------------
c
SUBROUTINE PRNTWT(IRHO,ISIG,IRHOP,ISIGP)
C
long IAJCMP
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6,IBUG7,IBUG8,IBUG9
common/enav/coefct(5),nints,kvalue(5)
COMMON/MEDEFN/IHSH,NJ(10),LJ(10),NOSH1(10),NOSH2(10),J1QN(19,3,2),
1ijful(10)
common/diagnl/idiag,ja,jb
COMMON/MVALUE/M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,
1 M16,M17,M18,M19,M20
common/states/ncfg,noccsh(30),nocorb(5,30),nelcsh(5,30),
1 j1qnrd(9,3,30),maxorb,njcomp(21),ljcomp(21),iajcmp(21)
common/xation/amult(9),bmult(9),kd1,kd2,ke1,ke2,multd,multe
COMMON/NJLJ/NRHO,LRHO,NSIG,LSIG,NRHOP,LRHOP,NSIGP,LSIGP
C
C --- PRINTS OUT THE COEFFICIENTS OF SLATER INTEGRALS
C
1 FORMAT(//23H INTERACTING SHELLS ARE,6X,6H RHO =,a3,6X,6H SIG =,a3,
16X,7H RHOP =,a3,6X,7H SIGP =,a3//)
2 format(12x,f18.8,2f21.8,11x,1hF,i1,1h(,a3,1h,,a3,1h))
3 format(12x,f18.8,2f21.8,11x,1hG,i1,1h(,a3,1h,,a3,1h))
4 format(12x,f18.8,2f21.8,8x,1hR,i1,1h(,a3,1h,,a3,1h/,a3,1h,,a3,1h))
5 format(//30x,33h COEFFICIENTS OF SLATER INTEGRALS//16x,17h TOTAL E
1NERGY(ET),4x,19hAVERAGE ENERGY(EAV),6x,10h(ET - EAV),9x,16hTYPE OF
2 INTEGRAL/)
31 FORMAT(I5,F16.8,8I5)
32 FORMAT(6I5)
jrho=ijful(irho)
jsig=ijful(isig)
jrhop=ijful(irhop)
jsigp=ijful(isigp)
C
C --- DETERMINE THE AVERAGE ENERGY CONTRIBUTIONS IF IDIAG IS NON-ZERO
C
if((kd1.gt.kd2).and.(ke1.gt.ke2)) go to 41
IF(IDIAG.EQ.0) GO TO 50
LA=LJ(IRHO)
LB=LJ(ISIG)
IF(M1.EQ.0) GO TO 51
IEQUIV=2
NMULT=NOSH1(IRHO)*NOSH1(ISIG)
GO TO 52
51 IEQUIV=1
NA=NOSH1(IRHO)
NMULT=NA*(NA-1)/2
C
C CALCULATE THE INTERACTION ENERGY
C
52 CALL INTACT(LA,LB,IEQUIV)
INTS=1
50 IF(IBUG1-1) 41,6,7
7 write(iwrite,1) iajcmp(jrho),iajcmp(jsig),iajcmp(jrhop),
1 iajcmp(jsigp)
C
C DEFINITION OF IBUG2 - INITIALLY, IBUG2 IS SET EQUAL TO 2 IN RKWTS.
C THE FIRST TIME THE PRESENT SUBROUTINE IS ENTERED FOR EACH MATRIX
C ELEMENT, IBUG2 HAS THIS VALUE. ONCE FORMAT 5 HAS BEEN WRITTEN,
C IBUG2 ASSUMES THE VALUE OF IBUG1. IF IBUG1=0, THERE WILL BE NO
C PRINT-OUT AT ALL. IF IBUG1=1, FORMAT5 IS OUTPUT ONLY FOR THE
C FIRST ENTRY OF PRNTWT, AND THUS THE ONLY PRINT-OUT FOR THE MATRIX
C ELEMENT AFTER THE FIRST FORMAT 5 IS A LIST OF COEFFICIENTS, AND
C THE APPROPRIATE SLATER INTEGRALS - FK,GK,RK. IF IBUG1.GT.1,
C FORMAT 5 IS OUTPUT FOR EACH SET OF IRHO,ISIG,IRHOP,ISIGP
C
6 IF(IBUG2-1) 8,8,9
9 if(ibug.eq.2.or.(ibug1.eq.1.and.ibug4.eq.0)) write(iwrite,5)
IBUG2=IBUG1
C
C --- DIRECT INTEGRALS
C
8 if(kd1.gt.kd2) go to 20
do 11 jk1=kd1,kd2,2
K=JK1-1
A=AMULT(JK1)
C
C --- DIVIDE THE WEIGHTS INTO AVERAGE ENERGY AND NON-AVERAGE ENERGY
C PARTS
C
IF(IDIAG.NE.0) GO TO 53
C
C NON-DIAGONAL MATRIX ELEMENT
C
X=zero
Y=A
IF(M19.EQ.0.AND.M20.EQ.0) GO TO 15
IF((M1+M2).EQ.0) GO TO 16
GO TO 13
C
C DIAGONAL MATRIX ELEMENT. F0 TERM IS THE ONLY ONE WITH K=0
C
53 IF(K.NE.0) GO TO 57
X=FLOAT(NMULT)
Y=A-X
GO TO 15
C
C OTHER FK INTEGRALS, ONLY OCCUR IF RHO=SIG
C
57 IF(IEQUIV.EQ.1.AND.INTS.LE.NINTS) GO TO 58
59 X=zero
Y=A
GO TO 15
58 IF(K.NE.KVALUE(INTS)) GO TO 59
X=NMULT*COEFCT(INTS)
Y=A-X
INTS=INTS+1
15 if(abs(a).ge.eps.or.abs(x).ge.eps) write(iwrite,2) a,x,y,k,
1 iajcmp(jrho),iajcmp(jsig)
go to 11
16 if(abs(a).ge.eps) write(iwrite,3) a,x,y,k,iajcmp(jrho),
1 iajcmp(jrhop)
go to 11
13 if(abs(a).ge.eps) write(iwrite,4) a,x,y,k,iajcmp(jrho),
1 iajcmp(jsig),iajcmp(jrhop),iajcmp(jsigp)
11 continue
C
C --- EXCHANGE INTEGRALS
C
20 if(ke1.gt.ke2) go to 41
DO 21 JK1=KE1,KE2,2
K=JK1-1
B=BMULT(JK1)
C
C --- DIVIDE THE WEIGHTS INTO AVERAGE ENERGY AND NON-AVERAGE ENERGY
C PARTS
C
IF(IDIAG.NE.0) GO TO 60
C
C NON-DIAGONAL MATRIX ELEMENT
C
X=zero
Y=B
IF(M19.EQ.0.AND.M20.EQ.0) GO TO 25
GO TO 23
C
C DIAGONAL MATRIX ELEMENT
C
60 IF(INTS.LE.NINTS) GO TO 61
62 X=zero
Y=B
GO TO 25
61 IF(K.NE.KVALUE(INTS)) GO TO 62
X=NMULT*COEFCT(INTS)
Y=B-X
INTS=INTS+1
25 if(abs(b).ge.eps.or.abs(x).ge.eps) write(iwrite,3) b,x,y,k,
1 iajcmp(jrho),iajcmp(jsig)
go to 21
23 if(abs(b).ge.eps) write(iwrite,4) b,x,y,k,iajcmp(jrho),
1 iajcmp(jsig),iajcmp(jsigp),iajcmp(jrhop)
21 continue
41 IF(IPUNCH) 40,40,42
C
C --- PUNCH-OUT OF INFORMATION FROM PRNTWT
C
42 WRITE(IPUNCH,32) MULTD,MULTE,KD1,KD2,KE1,KE2
IF(MULTD) 44,43,44
44 DO 45 JK1=KD1,KD2,2
K=JK1-1
WRITE(IPUNCH,31) K,AMULT(JK1),NRHO,LRHO,NSIG,LSIG,NRHOP,LRHOP,
1 NSIGP,LSIGP
45 CONTINUE
43 IF(MULTE) 46,40,46
46 DO 47 JK1=KE1,KE2,2
K=JK1-1
WRITE(IPUNCH,31) K,BMULT(JK1),NRHO,LRHO,NSIG,LSIG,NSIGP,LSIGP,
1 NRHOP,LRHOP
47 CONTINUE
40 RETURN
END
c
c-------------------------------------------------------------------
c i n t a c t
c-------------------------------------------------------------------
c
c
c **************************************************************
c * *
c * this subroutine contains real constants in the text *
c * *
c **************************************************************
c
c
c
SUBROUTINE INTACT(L,LP,IEQUIV)
COMMON/INFORM/IREAD,IWRITE,IPUNCH
common/enav/coefct(5),nints,kvalue(5)
C
C THIS SUBROUTINE GIVES THE INTERACTION ENERGY BETWEEN TWO SHELLS,
C ONE WITH ORBITAL ANGULAR MOMENTUM L , THE OTHER WITH ORBITAL
C ANGULAR MOMENTUM LP . NOTICE THAT THE FIRST TERM OF THIS
C INTERACTION ENERGY IS ALWAYS F0(L,LP) AND THIS IS NOT GIVEN
C IN THIS SUBROUTINE. THUS ONLY THE EXTRA TERMS ARE HERE PRODUCED.
C FOR EQUIVALENT ELECTRONS (IEQUIV = 1) , THERE WILL BE FK
C INTEGRALS ONLY. FOR NON-EQUIVALENT ELECTRONS (IEQUIV = 2) ,
C THERE WILL BE GK INTEGRALS ONLY.
C
C THE EXPRESSIONS FOR THE INTERACTION ENERGIES INVOLVING SHELLS WITH
C L.LE.3 ARE GIVEN BY J.C. SLATER , QUANTUM THEORY OF ATOMIC
C STRUCTURE, VOL. I, EQUATIONS (14.20) AND (14.22). IN THE LAST
C OF HIS EQUATIONS (14.22) , A TERM -1/14 G0(F,FP) IS OMITTED.
C THIS IS INCLUDED BELOW. THE INTERACTION ENERGIES FOR G-ELECTRON
C SHELLS MAY BE EVALUATED USING HIS EQUATIONS (13.12), (13.17),
C (14.19), AND (14,21)
C
IF(L.GT.4.OR.LP.GT.4) GO TO 3
GO TO (1,2),IEQUIV
C
C === EQUIVALENT ELECTRONS
C
1 IF(L.NE.LP) GO TO 4
GO TO 5
4 WRITE(IWRITE,11)
11 FORMAT(85H ERROR IN INTACT - EQUIVALENT ELECTRONS CALLED FOR DIFFE
1RING ORBITAL ANGULAR MOMENTUM)
CALL EXIT
5 IF(L.GT.0) GO TO 12
C
C S ELECTRONS
C
NINTS=0
RETURN
12 GO TO (13,14,15,16),L
C
C P ELECTRONS
C
13 NINTS=1
KVALUE(1)=2
COEFCT(1)=-0.08
RETURN
C
C D ELECTRONS
C
14 NINTS=2
KVALUE(1)=2
KVALUE(2)=4
COEFCT(1)=-0.031746032
COEFCT(2)=-0.031746032
RETURN
C
C F ELECTRONS
C
15 NINTS=3
KVALUE(1)=2
KVALUE(2)=4
KVALUE(3)=6
COEFCT(1)=-0.020512821
COEFCT(2)=-0.013986014
COEFCT(3)=-0.017930787
RETURN
C
C G ELECTRONS
C
16 NINTS=4
KVALUE(1)=2
KVALUE(2)=4
KVALUE(3)=6
KVALUE(4)=8
COEFCT(1)=-0.015278839
COEFCT(2)=-0.009519892
COEFCT(3)=-0.008227067
COEFCT(4)=-0.011856655
RETURN
C
C --- NON-EQUIVALENT ELECTRONS
C
2 IF(L.GT.LP) GO TO 21
L1=L
L2=LP
GO TO 22
21 L1=LP
L2=L
22 L1D=L1+1
L2D=L2+1
GO TO (30,40,50,60,70),L1D
30 NINTS=1
KVALUE(1)=L2
GO TO (31,32,33,34,35),L2D
C
C S - S INTERACTION
C
31 COEFCT(1)=-0.5
RETURN
C
C S - P INTERACTION
C
32 COEFCT(1)=-0.166666667
RETURN
C
C S - D INTERACTION
C
33 COEFCT(1)=-0.1
RETURN
C
C S - F INTERACTION
C
34 COEFCT(1)=-0.071428571
RETURN
C
C S - G INTERACTION
C
35 COEFCT(1)=-0.055555556
RETURN
40 NINTS=2
KVALUE(1)=L2-1
KVALUE(2)=L2D
GO TO (41,42,43,44),L2
C
C P - P INTERACTION
C
41 COEFCT(1)=-0.166666667
COEFCT(2)=-0.066666667
RETURN
C
C P - D INTERACTION
C
42 COEFCT(1)=-0.066666667
COEFCT(2)=-0.042857143
RETURN
C
C P - F INTERACTION
C
43 COEFCT(1)=-0.042857143
COEFCT(2)=-0.031746032
RETURN
C
C P - G INTERACTION
C
44 COEFCT(1)=-0.031746032
COEFCT(2)=-0.025252525
RETURN
50 NINTS=3
KVALUE(1)=L2-2
KVALUE(2)=L2
KVALUE(3)=L2+2
L3=L2-1
GO TO (51,52,53),L3
C
C D - D INTERACTION
C
51 COEFCT(1)=-0.1
COEFCT(2)=-0.028571429
COEFCT(3)=-0.028571429
RETURN
C
C D - F INTERACTION
C
52 COEFCT(1)=-0.042857143
COEFCT(2)=-0.019047619
COEFCT(3)=-0.021645022
RETURN
C
C D - G INTERACTION
C
53 COEFCT(1)=-0.028571429
COEFCT(2)=-0.014430014
COEFCT(3)=-0.017482517
RETURN
60 NINTS=4
KVALUE(1)=L2-3
KVALUE(2)=L2-1
KVALUE(3)=L2+1
KVALUE(4)=L2+3
L3=L2-2
GO TO (61,62),L3
C
C F - F INTERACTION
C
61 COEFCT(1)=-0.071428571
COEFCT(2)=-0.019047619
COEFCT(3)=-0.012987013
COEFCT(4)=-0.016650017
RETURN
C
C F - G INTERACTION
C
62 COEFCT(1)=-0.031746032
COEFCT(2)=-0.012987013
COEFCT(3)=-0.009990010
COEFCT(4)=-0.013597514
RETURN
C
C G - G INTERACTION
C
70 NINTS=5
KVALUE(1)=0
KVALUE(2)=2
KVALUE(3)=4
KVALUE(4)=6
KVALUE(5)=8
COEFCT(1)=-0.055555556
COEFCT(2)=-0.014430014
COEFCT(3)=-0.008991009
COEFCT(4)=-0.007770008
COEFCT(5)=-0.011197952
RETURN
C
C --- IF ANGULAR MOMENTUM VALUES ARE TOO LARGE -----
C
3 WRITE(IWRITE,6) L,LP
6 FORMAT(//47H THE ORBITAL ANGULAR MOMENTUM VALUES, WHICH ARE,2I5,5X
1,39H ARE TOO LARGE FOR THE CODING OF INTACT//)
CALL EXIT
END
c
c-------------------------------------------------------------------
c u s e e a v
c-------------------------------------------------------------------
c
SUBROUTINE USEEAV(IRHO,ISIG)
long IAJCMP
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6,IBUG7,IBUG8,IBUG9
common/enav/coefct(5),nints,kvalue(5)
COMMON/MEDEFN/IHSH,NJ(10),LJ(10),NOSH1(10),NOSH2(10),J1QN1(19,3),
1 j1qn2(19,3),ijful(10)
common/states/ncfg,noccsh(30),nocorb(5,30),nelcsh(5,30),
1 j1qnrd(9,3,30),maxorb,njcomp(21),ljcomp(21),iajcmp(21)
common/const/zero,tenth,half,one,two,three,four,seven,eleven,eps
C
C DETERMINE THE INTERACTION ENERGY
C
N1=NOSH1(IRHO)
N2=NOSH2(ISIG)
jrho=ijful(irho)
jsig=ijful(isig)
M1=ISIG-IRHO
IZERO=0
ZERO=0.0
IF(M1.EQ.0) GO TO 1
IEQUIV=2
AC2=FLOAT(N1*N2)
GO TO 2
1 IEQUIV=1
AC2=FLOAT(N1*(N1-1)/2)
2 LA=LJ(IRHO)
LB=LJ(ISIG)
CALL INTACT(LA,LB,IEQUIV)
IF(IBUG1-1) 3,4,7
3 RETURN
C
C PRINT OUT RESULTS AS IN SUBROUTINE PRNTWT
C
7 write(iwrite,10) iajcmp(jrho),iajcmp(jsig),iajcmp(jrho),
1 iajcmp(jsig)
4 if(ibug2.gt.1.and.ibug4.eq.0) write(iwrite,5)
IBUG2=IBUG1
write(iwrite,6) ac2,ac2,zero,izero,iajcmp(jrho),iajcmp(jsig)
WRITE(IWRITE,6) IZERO,AC2,AC2,ZERO,IRHO,ISIG
IF(NINTS.EQ.0) RETURN
DO 8 N=1,NINTS
ZA=AC2*COEFCT(N)
K=KVALUE(N)
IF(IEQUIV.EQ.1) GO TO 9
write(iwrite,11) za,za,zero,k,iajcmp(jrho),iajcmp(jsig)
GO TO 8
9 write(iwrite,6) za,za,zero,k,iajcmp(jrho),iajcmp(jsig)
8 CONTINUE
5 format(//30x,33h COEFFICIENTS OF SLATER INTEGRALS//16x,17h TOTAL E
1NERGY(ET),4x,19hAVERAGE ENERGY(EAV),6x,10h(ET - EAV),9x,16hTYPE OF
2 INTEGRAL/)
6 format(12x,f18.8,2f21.8,11x,1hF,i1,1h(,a3,1h,,a3,1h))
10 format(//23h INTERACTING SHELLS ARE,6x,6h RHO =,a3,6x,6h SIG =,a3,
1 6x,7h RHOP =,a3,6x,7h SIGP =,a3//)
11 format(12x,f18.8,2f21.8,11x,1hG,i1,1h(,a3,1h,,a3,1h))
RETURN
END
c
c-----------------------------------------------------------------------
c c h o p
c-----------------------------------------------------------------------
c
SUBROUTINE CHOP
COMMON/MEDEFN/IHSH,NJ(10),LJ(10),NOSH1(10),NOSH2(10),J1QN1(19,3),
1 j1qn2(19,3),ijful(10)
COMMON/REMOVE/ICHOP(10)
common/diagnl/idiag,ja,jb
C
C --- ZEROIZE THE OUTPUT ARRAY
C
DO 1 I=1,IHSH
ICHOP(I)=0
1 CONTINUE
C
C NO AVERAGE ENERGY TERMS FOR OFF-DIAGONAL MATRIX ELEMENTS
C
IF(IDIAG.EQ.0) RETURN
JSTO=0
ICOUNT=0
DO 3 J=1,IHSH
NFULL=4*LJ(J)+2
I2=NOSH1(J)
C
C IS THE SHELL FULL OR EMPTY
C
IF(I2.EQ.NFULL.OR.I2.EQ.0) GO TO 4
C
C IF NOT, DOES IT CONTAIN ONLY ONE ELECTRON, OR ONLY ONE =HOLE=
C
IF(I2.EQ.1.OR.I2.EQ.(NFULL-1)) JSTO=J
GO TO 3
4 ICOUNT=ICOUNT+1
C
C ICHOP SET UNITY FOR CLOSED SHELLS
C
ICHOP(J)=1
3 CONTINUE
C
C IF ALL BUT ONE SHELL IS CLOSED, AND THIS CONTAINS ONE ELECTRON OR
C =HOLE= , THEN IT CAN BE TREATED PURELY BY AVERAGE ENERGY
C
IF(ICOUNT.NE.(IHSH-1).OR.JSTO.EQ.0) RETURN
ICHOP(JSTO)=1
RETURN
END
c
c----------------------------------------------------------------------
c r e d u c e
c----------------------------------------------------------------------
c
SUBROUTINE REDUCE(IRHO,ISIG,IRHOP,ISIGP,LESSEN)
DIMENSION LEAVE(10)
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6,IBUG7,IBUG8,IBUG9
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/MEDEFN/IHSH,NJ(10),LJ(10),NOSH1(10),NOSH2(10),J1QN1(19,3),
1 j1qn2(19,3),ijful(10)
C
C THIS SUBROUTINE REMOVES SPECTATOR SINGLET S SHELLS WHICH HAVE
C NO EFFECT IN ANGULAR OR SPIN INTEGRALS
C
C LMIN INITIALLY SET LARGE
C
LMIN=99
ICOUNT=0
DO 1 I=1,IHSH
C
C NO INTERACTING SHELL MAY BE REMOVED
C
IF(I.EQ.IRHO.OR.I.EQ.ISIG.OR.I.EQ.IRHOP.OR.I.EQ.ISIGP) GO TO 2
C
C IF A SPECTATOR SHELL HAS SINGLET S COUPLING ON BOTH SIDES OF
C THE MATRIX ELEMENT, IT MAY, IN GENERAL, BE REMOVED, AS IT HAS NO
C EFFECT IN FANO
C
IF(J1QN1(I,1).EQ.0.AND.J1QN2(I,1).EQ.0) GO TO 7
2 ICOUNT=ICOUNT+1
LEAVE(ICOUNT)=I
GO TO 1
7 IF(LJ(I).GE.LMIN) GO TO 1
LMIN=LJ(I)
ILMIN=I
1 CONTINUE
IF(ICOUNT.EQ.IHSH) GO TO 8
C
C IF A CHANGE IN THE COMMON BLOCK MEDEFN IS TO BE MADE,
C ITS PRESENT SITUATION MUST BE PRESERVED BY A CALL OF MEKEEP
C
CALL MEKEEP(IRHO,ISIG,IRHOP,ISIGP)
C
C IF ONLY ONE SHELL WOULD BE LEFT IN THIS WAY, THE ONE, DESTINED
C FOR REMOVAL, WITH THE LOWEST L-VALUE MUST BE RETAINED TO DEFINE A
C COUPLING
C
IF(ICOUNT.EQ.1) GO TO 10
C
C --- MODIFY THE COMMON BLOCK MEDEFN
C
continue
DO 3 I=1,ICOUNT
J=LEAVE(I)
IF(J.EQ.IRHO) IRHO=I
IF(J.EQ.ISIG) ISIG=I
IF(J.EQ.IRHOP) IRHOP=I
IF(J.EQ.ISIGP) ISIGP=I
NJ(I)=NJ(J)
LJ(I)=LJ(J)
NOSH1(I)=NOSH1(J)
NOSH2(I)=NOSH2(J)
DO 4 K=1,3
J1QN1(I,K)=J1QN1(J,K)
J1QN2(I,K)=J1QN2(J,K)
4 CONTINUE
3 CONTINUE
ISUBH=IHSH-1
DO 5 I=2,ICOUNT
J=LEAVE(I)
II=ICOUNT+I-1
IJ=ISUBH+J
DO 6 K=1,3
J1QN1(II,K)=J1QN1(IJ,K)
J1QN2(II,K)=J1QN2(IJ,K)
6 CONTINUE
5 CONTINUE
IHSH=ICOUNT
GO TO 9
C
C THIS SITUATION ONLY OCCURS IF IRHO=ISIG=IRHOP=ISIGP
C
10 J=LEAVE(1)
IRHO = 2
ISIG = 2
IRHOP = 2
ISIGP = 2
WRITE(IWRITE,35)
WRITE(IWRITE,40) ((J1QN1(J,K),K=1,3),J=1,I2HSH)
WRITE(IWRITE,36)
WRITE(IWRITE,40) ((J1QN2(J,K),K=1,3),J=1,I2HSH)
35 FORMAT(/35H NEW DEFINITION OF COUPLING SCHEMES/38H FOR THIS SET OF
1 RHO, SIG, RHOP, SIGP//10X,48H L.H.S. OF HAMILTONIAN MATRIX ELEME
2NT DEFINED BY)
36 FORMAT(10X,48H R.H.S. OF HAMILTONIAN MATRIX ELEMENT DEFINED BY)
40 FORMAT(10X,6H J1QN ,9(I5,2I3))
C
C LESSEN = 0 IF NO CHANGE IN MEDEFN
C = 1 OTHERWISE
C
9 LESSEN=1
RETURN
8 LESSEN=0
RETURN
END
c
c------------------------------------------------------------------------
c m e k e e p
c------------------------------------------------------------------------
c
SUBROUTINE MEKEEP(IRHO,ISIG,IRHOP,ISIGP)
COMMON/MEDEFN/J(165)
COMMON/STORE/I(165),I1,I2,I3,I4
C
C STORES THE COMMON BLOCK MEDEFN , AND IRHO,ISIG,IRHOP,ISIGP
C
DO 1 K=1,155
I(K)=J(K)
1 CONTINUE
I1=IRHO
I2=ISIG
I3=IRHOP
I4=ISIGP
RETURN
END
c
c-------------------------------------------------------------------
c m e r e s t
c-------------------------------------------------------------------
c
SUBROUTINE MEREST(IRHO,ISIG,IRHOP,ISIGP)
COMMON/MEDEFN/J(165)
COMMON/STORE/I(165),I1,I2,I3,I4
C
C RESTORES THE COMMON BLOCK MEDEFN, AND IRHO,ISIG,IRHOP,ISIGP
C
DO 1 K=1,155
J(K)=I(K)
1 CONTINUE
IRHO=I1
ISIG=I2
IRHOP=I3
ISIGP=I4
RETURN
END
c
c----------------------------------------------------------------------
c h o w t s
c----------------------------------------------------------------------
c
SUBROUTINE H0WTS(ISIG,ISIGP,TIMES,ICAL)
C
DIMENSION L6(40),L7(80),L8(40),LW(6,20)
COMMON/CONST/ZERO,TENTH,HALF,ONE,TWO,THREE,FOUR,SEVEN,ELEVEN,EPS
COMMON/COUPLE/NJ1S,NJ23S,J1(40),J2(12,3),J3(12,3)
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6,IBUG7,IBUG8,IBUG9
COMMON/HOLD/J2STO(33),J3STO(33),J2ANG(36),J3ANG(36)
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/MEDEFN/IHSH,NJ(10),LJ(10),NOSH1(10),NOSH2(10),J1QN1(19,3),
1 J1QN2(19,3),IJFUL(10)
COMMON/MVALUE/M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,
1 M16,M17,M18,M19,M20
303 FORMAT(7H ISIG =,I3,8H ISIGP =,I3)
306 FORMAT(5H J1 =,I8,36I3)
307 FORMAT(3H J2,18X,2HJ3)
308 FORMAT(3I5,I10,2I5)
309 FORMAT(8H TIMES =,F10.6,8H RECUP =,F10.6)
310 FORMAT(8H TIMES =,F10.6,8H IDELP =,I3)
C
C --- OFF-DIAGONAL ONE-ELECTRON HAMILTONIAN MATRIX ELEMENT
C
ICAL=0
CALL SETM
ICOUNT=0
C
C TEST THAT FINAL ANGULAR MOMENTA ARE EQUAL
C
DO 8 K=2,3
IF(J1QN1(M6,K).NE.J1QN2(M6,K)) GO TO 7
8 CONTINUE
C
C --- DETERMINE INTERACTING SHELLS, ISIG ON L.H.S., ISIGP ON R.H.S.,
C FOR NON-ZERO ONE-ELECTRON MATRIX ELEMENT, N-1 ELECTRONS MUST BE
C COMMON TO BOTH SIDES. THUS THE SUM OF N(I) = NOSH1(I)-NOSH2(I),
C I=1,IHSH MUST BE EQUAL TO 0 OR 2 . THUS AT NO STAGE CAN
C N(I) BE GREATER THAN 1 . IF THIS SUM IS ZERO, THE TWO
C CONFIGURATIONS ARE MADE UP FROM THE SAME ELECTRONS, WITH TWO
C DIFFERENT COUPLING SCHEMES. SINCE THE SPHERICAL HARMONICS ARE
C EIGENFUNCTIONS OF DEL**2 , THE ORTHOGONALITY OF THE TWO COUPLING
C SCHEMES WILL BE MAINTAINED AND ORTHOGONALITY GIVES A ZERO RESULT.
C
DO 9 I=1,IHSH
N=NOSH1(I)-NOSH2(I)
IF(IABS(N).GT.1) GO TO 7
IF(N) 11,9,12
11 ISIGP=I
GO TO 13
12 ISIG=I
13 ICOUNT=ICOUNT+1
9 CONTINUE
IF(ICOUNT.NE.2) GO TO 7
IF(IBUG4.LT.2) GO TO 92
WRITE(IWRITE,303) ISIG,ISIGP
92 LSIG=LJ(ISIG)
LSIGP=LJ(ISIGP)
C
C THE ANGULAR MOMENTUM OF THE INTERACTING ELECTRONS MUST BE EQUAL
C
IF(LSIG-LSIGP) 7,93,7
C
C THE SPECTATOR SHELLS MUST HAVE MATCHING QUANTUM NUMBERS
C
93 DO 16 J=1,IHSH
IF(J.EQ.ISIG.OR.J.EQ.ISIGP) GO TO 16
DO 19 K=1,3
IF(J1QN1(J,K).NE.J1QN2(J,K)) GO TO 7
19 CONTINUE
16 CONTINUE
C
C --- TEST ON TRIANGULAR CONDITIONS
C
IN3=2*LSIG
DO 20 K=2,3
IN1=J1QN1(ISIG,K)
IN2=J1QN2(ISIG,K)
IN4=J1QN1(ISIGP,K)
IN5=J1QN2(ISIGP,K)
IF(IN1.GT.(IN2+IN3).OR.IN1.LT.IABS(IN2-IN3)) GO TO 7
IF(IN4.GT.(IN5+IN3).OR.IN4.LT.IABS(IN5-IN3)) GO TO 7
IN3=1
20 CONTINUE
C
C --- CALCULATE FRACTIONAL PARENTAGE COEFFICIENTS
C
TIMES=ONE
IF(LSIG.EQ.0) GO TO 26
N=NOSH1(ISIG)
IVI=J1QN1(ISIG,1)
ILI=(J1QN1(ISIG,2)-1)/2
ISI=J1QN1(ISIG,3)
IVJ=J1QN2(ISIG,1)
ILJ=(J1QN2(ISIG,2)-1)/2
ISJ=J1QN2(ISIG,3)
CALL CFP(LSIG,N,IVI,ILI,ISI,IVJ,ILJ,ISJ,COEFP)
TIMES=TIMES*COEFP
IF(ABS(TIMES).LT.EPS) GO TO 7
N=NOSH2(ISIGP)
IVI=J1QN2(ISIGP,1)
ILI=(J1QN2(ISIGP,2)-1)/2
ISI=J1QN2(ISIGP,3)
IVJ=J1QN1(ISIGP,1)
ILJ=(J1QN1(ISIGP,2)-1)/2
ISJ=J1QN1(ISIGP,3)
CALL CFP(LSIG,N,IVI,ILI,ISI,IVJ,ILJ,ISJ,COEFP)
TIMES=TIMES*COEFP
IF(ABS(TIMES).LT.EPS) GO TO 7
C
C --- SET UP J2 AND J3 ARRAYS
C
26 M1=IHSH-2
M2=M6-2
J2(1,1)=ISIG
J2(1,2)=M11
J2(1,3)=M9
J3(1,1)=ISIGP
J3(1,2)=M11
J3(1,3)=M10
IF(ISIG.EQ.1) GO TO 29
J2(2,1)=1
GO TO 30
29 J2(2,1)=M9
30 IF(ISIG.EQ.2) GO TO 32
J2(2,2)=2
GO TO 33
32 J2(2,2)=M9
33 J2(2,3)=M4
IF(ISIGP.EQ.1) GO TO 35
J3(2,1)=1
GO TO 36
35 J3(2,1)=M10
36 IF(ISIGP.EQ.2) GO TO 38
J3(2,2)=2
GO TO 39
38 J3(2,2)=M10
39 J3(2,3)=M7
IF(IHSH.LT.3) GO TO 40
DO 42 J=3,IHSH
J2(J,1)=M1+J
J2(J,3)=M1+J+1
J3(J,1)=M2+J
IF(J.EQ.IHSH) GO TO 44
J3(J,3)=M2+J+1
GO TO 45
44 J3(J,3)=M1+J+1
45 IF(J.EQ.ISIG) GO TO 47
J2(J,2)=J
GO TO 48
47 J2(J,2)=M9
48 IF(J.EQ.ISIGP) GO TO 50
J3(J,2)=J
GO TO 42
50 J3(J,2)=M10
42 CONTINUE
C
C --- STORE J2 AND J3 ARRAYS FOR USE IN SPIN RECOUPLING COEFFICIENT
C
40 I1=0
DO 51 J=1,IHSH
DO 52 K=1,3
I1=I1+1
J2STO(I1)=J2(J,K)
J3STO(I1)=J3(J,K)
52 CONTINUE
51 CONTINUE
C
C --- ORBITAL RECOUPLING COEFFICIENT
C
J1(M11)=LSIG+LSIG+1
K=2
C
C --- SET J1 ARRAY
C
64 DO 53 J=1,IHSH
IF(ISIG.EQ.J) GO TO 55
J1(J)=J1QN1(J,K)
GO TO 53
55 J1(J)=J1QN2(ISIG,K)
53 CONTINUE
DO 56 J=M4,M6
J1(J)=J1QN1(J,K)
56 CONTINUE
DO 57 J=M7,M8
J1(J)=J1QN2(J-M3,K)
57 CONTINUE
J1(M9)=J1QN1(ISIG,K)
J1(M10)=J1QN2(ISIGP,K)
NJ1S=M11
NJ23S=M4
IF(IBUG4.LT.2.OR.IBUG3.EQ.1) GO TO 77
WRITE(IWRITE,306) (J1(J),J=1,M11)
WRITE(IWRITE,307)
DO 80 J=1,IHSH
WRITE(IWRITE,308) (J2(J,KL),KL=1,3),(J3(J,KL),KL=1,3)
80 CONTINUE
C
C --- CALCULATE RECOUPLING COEFFICIENT
C
77 CALL NJSYM(L6C,L7C,L8C,LWC,L6,L7,L8,LW,RECUP)
TIMES=TIMES*RECUP
IF(IBUG4.LT.2) GO TO 58
WRITE(IWRITE,309) TIMES,RECUP
58 IF(ABS(TIMES).LT.EPS) GO TO 7
C
C --- SPIN RECOUPLING COEFFICIENT
C
IF(K.EQ.3) GO TO 60
J1(M11 )=2
K=3
I1=0
DO 62 J=1,IHSH
DO 63 KK=1,3
I1=I1+1
J2(J,KK)=J2STO(I1)
J3(J,KK)=J3STO(I1)
63 CONTINUE
62 CONTINUE
GO TO 64
C
C --- INCLUDE MULTIPLICATIVE FACTORS
C
60 IDELP=0
IF(ISIG-ISIGP) 65,70,66
65 JSIG=ISIG+1
DO 67 J=JSIG,ISIGP
IDELP=IDELP+NOSH1(J)
67 CONTINUE
GO TO 70
66 JSIGP=ISIGP+1
DO 68 J=JSIGP,ISIG
IDELP=IDELP+NOSH2(J)
68 CONTINUE
70 TIMES=TIMES*(-ONE)**IDELP*SQRT(FLOAT(NOSH1(ISIG)*NOSH2(ISIGP)))
ICAL=1
IF(IBUG4.LT.2) GO TO 7
WRITE(IWRITE,310) TIMES,IDELP
7 RETURN
END
c
c----------------------------------------------------------------------
c s e t m
c----------------------------------------------------------------------
c
SUBROUTINE SETM
COMMON/MEDEFN/IHSH,NJ(10),LJ(10),NOSH1(10),NOSH2(10),J1QN1(19,3),
1 J1QN2(19,3),IJFUL(10)
COMMON/MVALUE/M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,
1 M16,M17,M18,M19,M20
C
C --- SET CONSTANTS USEFUL IN INNER SUBROUTINES
C
M3=IHSH-1
M4=IHSH+1
M5=IHSH+2
M6=2*IHSH-1
M7=M6+1
M8=M3+M6
M9=M8+1
M10=M8+2
M11=M8+3
M12=M8+4
M13=M8+5
M14=M8+6
M15=M8+7
M16=M8+8
M17=M8+9
M18=IHSH+3
RETURN
END
c
c-----------------------------------------------------------------------
c d h o
c-----------------------------------------------------------------------
c
SUBROUTINE DH0
long IAJCMP
COMMON/CONST/ZERO,TENTH,HALF,ONE,TWO,THREE,FOUR,SEVEN,ELEVEN,EPS
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6,IBUG7,IBUG8,IBUG9
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/MEDEFN/IHSH,NJ(10),LJ(10),NOSH1(10),NOSH2(10),J1QN1(19,3),
1 J1QN2(19,3),IJFUL(10)
COMMON/STATES/NCFG,NOCCSH(30),NOCORB(5,30),NELCSH(5,30),
1 J1QNRD(9,3,30),MAXORB,NJCOMP(21),LJCOMP(21),IAJCMP(21)
300 FORMAT(/35X,34H COEFFICIENTS OF VARIOUS INTEGRALS//16X,17H TOTAL E
1NERGY(ET),4X,19HAVERAGE ENERGY(EAV),6X,10H(ET - EAV),9X,16HTYPE OF
2 INTEGRAL/)
311 FORMAT(12X,F18.8,2F21.8,11X,3HI (,A3,1H,,A3,1H))
IF(IBUG4.NE.0) WRITE(IWRITE,300)
DO 302 J=1,IHSH
IF(NOSH1(J).EQ.0) GO TO 302
JSIG=IJFUL(J)
X=NOSH1(J)
WRITE(IWRITE,311) X,X,ZERO,IAJCMP(JSIG),IAJCMP(JSIG)
302 CONTINUE
RETURN
END
c
c-----------------------------------------------------------------------
c o d h o
c-----------------------------------------------------------------------
c
SUBROUTINE ODH0(ISIG,ISIGP,Y,ICAL)
long IAJCMP
COMMON/COMCHF/LOCATE(21)
COMMON/CONST/ZERO,TENTH,HALF,ONE,TWO,THREE,FOUR,SEVEN,ELEVEN,EPS
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6,IBUG7,IBUG8,IBUG9
COMMON/DIAGNL/IDIAG,JA,JB
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/MEDEFN/IHSH,NJ(10),LJ(10),NOSH1(10),NOSH2(10),J1QN1(19,3),
1 J1QN2(19,3),IJFUL(10)
COMMON/PUNCH1/YL(100),NL,JL1(100),JL2(100)
COMMON/STATES/NCFG,NOCCSH(30),NOCORB(5,30),NELCSH(5,30),
1 J1QNRD(9,3,30),MAXORB,NJCOMP(21),LJCOMP(21),IAJCMP(21)
300 FORMAT(/35X,34H COEFFICIENTS OF VARIOUS INTEGRALS//16X,17H TOTAL E
1NERGY(ET),4X,19HAVERAGE ENERGY(EAV),6X,10H(ET - EAV),9X,16HTYPE OF
2 INTEGRAL/)
311 FORMAT(12X,F18.8,2F21.8,11X,3HI (,A3,1H,,A3,1H))
IF(IBUG4.NE.0) WRITE(IWRITE,300)
IF(ICAL.EQ.0) RETURN
JSIG=IJFUL(ISIG)
JSIGP=IJFUL(ISIGP)
WRITE(IWRITE,311) Y,ZERO,Y,IAJCMP(JSIG),IAJCMP(JSIGP)
IF(IPUNCH.EQ.0) RETURN
KSIG=LOCATE(JSIG)
KSIGP=LOCATE(JSIGP)
NL=NL+1
YL(NL)=-Y
JL1(NL)=100*KSIG+JA
JL2(NL)=100*KSIGP+JB
RETURN
END
c
c---------------------------------------------------------------------
c c f g t s t
c---------------------------------------------------------------------
c
SUBROUTINE CFGTST
C
C THIS SUBROUTINE CHECKS ALL THE CONFIGURATION SET TO ENSURE THAT
C IT SATISFIES
C (1) THE SUBSHELLS ARE IN THE CORRECT ORDER
C (2) NO SUBSHELL HAS TOO MANY (.GT.2*(2*L+1)) ELECTRONS
C (3) THE ELECTRONS IN ANY ONE SUBSHELL ARE COUPLED TO FORM AN
C ALLOWED TRIAD OF QUANTUM NUMBERS
C (4) THE TRIADS COUPLE TOGETHER IN AN ALLOWED WAY
C
C IN THE EVENT OF AN ERROR, THE PROGRAM HALTS AT THE COMPLETION
C OF THE CHECKING. ANY NUMBER OF S, P, D ELECTRONS ARE ALLOWED,
C (BUT .LE.2*(2*L+1)), BUT ONLY UP TO TWO F OR G ELECTRONS.
C NO ELECTRONS FOR L.GT.4 ARE ALLOWED
C
long IAJCMP
common/dummy/itaba(2),jtaba(2),ntaba(48)
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/STATES/NCFG,NOCCSH(30),NOCORB(5,30),NELCSH(5,30),
1 J1QNRD(9,3,30),MAXORB,NJCOMP(21),LJCOMP(21),IAJCMP(21)
COMMON/TERMS/NROWS,ITAB(12),JTAB(12),NTAB(171)
DATA ITABA(1),ITABA(2)/7,9/
DATA JTABA(1),JTABA(2)/0,21/
DATA NTABA(1),NTABA(2),NTABA(3),NTABA(4),NTABA(5),NTABA(6),
1 NTABA(7),NTABA(8),NTABA(9),NTABA(10),NTABA(11),NTABA(12),
2 NTABA(13),NTABA(14),NTABA(15),NTABA(16),NTABA(17),NTABA(18),
3 NTABA(19),NTABA(20),NTABA(21),NTABA(22),NTABA(23),NTABA(24),
4 NTABA(25),NTABA(26),NTABA(27),NTABA(28),NTABA(29),NTABA(30),
5 NTABA(31),NTABA(32),NTABA(33),NTABA(34),NTABA(35),NTABA(36),
6 NTABA(37),NTABA(38),NTABA(39),NTABA(40),NTABA(41),NTABA(42),
7 NTABA(43),NTABA(44),NTABA(45),NTABA(46),NTABA(47),NTABA(48)/
8 2,3,3,2,7,3,2,11,3,0,1,1,2,5,1,2,9,1,2,13,1,
9 2,3,3,2,7,3,2,11,3,2,15,3,0,1,1,2,5,1,2,9,1,2,13,1,2,17,1/
5 FORMAT(/38H THE TRIAD OF QUANTUM NUMBERS OF SHELL,I3,17H IN CONFIG
1URATION,I3,24H IS NOT A RECOGNIZED SET)
7 FORMAT(/23H THE INCLUSION OF SHELL,I3,17H IN CONFIGURATION,I3,
1 38h RESULTS IN AN ILLEGAL COUPLING SCHEME)
9 FORMAT(/28H THE SHELLS IN CONFIGURATION,I3,24H ARE INCORRECTLY ORD
1ERED)
12 FORMAT(//41H CONFIGURATION DATA WRONG, PROGRAM HALTED//)
15 FORMAT(/17H IN CONFIGURATION,I3,7H, SHELL,I3,28H CONTAINS TOO MANY
1 ELECTRONS)
17 FORMAT(/14H CONFIGURATION,I3,81H INCLUDES A SHELL OF ANGULAR MOMEN
1TUM GREATER THAN 2 WITH MORE THAN TWO ELECTRONS)
C
IALLOW=1
DO 1 I=1,NCFG
N=NOCCSH(I)
DO 2 J=1,N
NA=NOCORB(J,I)
IF(J.EQ.1) GO TO 3
C
C CHECK THE ORDERING OF THE SUBSHELLS
C
IF(NA.GT.NB) GO TO 3
WRITE(IWRITE,9) I
IALLOW=0
3 NB=NA
LQU=LJCOMP(NA)
NC=NELCSH(J,I)
C
C CHECK THAT THERE ARE NO MORE THAN TWO F OR G ELECTRONS
C
IF(LQU.GT.2.AND.NC.GT.2) GO TO 16
C
C CHECK THAT THERE ARE NOT TOO MANY ELECTRONS IN EACH SUBSHELL
C
NQUMAX=4*LQU+2
IF(NC.GT.NQUMAX) GO TO 8
C
C CHECK THAT THE ELECTRONS IN EACH SUBSHELL ARE COUPLED TO
C ALLOWED TRIADS
C
JA=J1QNRD(J,1,I)
JB=J1QNRD(J,2,I)
JC=J1QNRD(J,3,I)
NROW=NTAB2(NC,LQU+1)
IF(NROW.EQ.0) GO TO 19
I1=ITAB(NROW)
I2=JTAB(NROW)
DO 4 IA=1,I1
I3=I2+3*IA-1
IF(JB.NE.NTAB(I3)) GO TO 4
I3=I3+1
IF(JC.NE.NTAB(I3)) GO TO 4
I3=I3-2
IF(JA.EQ.NTAB(I3)) GO TO 13
4 CONTINUE
14 WRITE(IWRITE,5) J,I
IALLOW=0
GO TO 13
C
C TWO ELECTRONS IN AN F- OR G-SHELL
C
19 I4=LQU-2
I1=ITABA(I4)
I2=JTABA(I4)
DO 20 IA=1,I1
I3=I2+3*IA-1
IF(JB.NE.NTABA(I3)) GO TO 20
I3=I3+1
IF(JC.NE.NTABA(I3)) GO TO 20
I3=I3-2
IF(JA.EQ.NTABA(I3)) GO TO 13
20 CONTINUE
GO TO 14
13 IF(J.EQ.1) GO TO 2
C
C CHECK ON COUPLING ON OF THIS TRIAD
C
J2=N+J-1
IF(J.EQ.2) GO TO 10
J1=J2-1
GO TO 11
10 J1=1
11 JD=J1QNRD(J1,2,I)
JE=J1QNRD(J1,3,I)
JF=J1QNRD(J2,2,I)
JG=J1QNRD(J2,3,I)
IF(JF.GT.(JB+JD).OR.JF.LT.IABS(JB-JD)) GO TO 6
IF(JG.GT.(JC+JE).OR.JG.LT.IABS(JC-JE)) GO TO 6
GO TO 2
16 WRITE(IWRITE,17) I
IALLOW=0
GO TO 13
8 WRITE(IWRITE,15) I,J
IALLOW=0
GO TO 13
6 WRITE(IWRITE,7) J,I
IALLOW=0
2 CONTINUE
1 CONTINUE
IF(IALLOW.EQ.1) RETURN
WRITE(IWRITE,12)
CALL EXIT
END
c
c----------------------------------------------------------------------
c n t a b s 2
c----------------------------------------------------------------------
c
FUNCTION NTAB2(NELCTS,K)
C
C THIS FUNCTION GIVES THE ROW OF NTAB FOR TERMS FORMED FROM
C (K-1)**NELCTS
C IF THERE IS MORE THAN ONE ELECTRON IN AN F OR G SHELL, THE VALUE
C OF THE FUNCTION IS ZERO
C
COMMON/INFORM/IREAD,IWRITE,IPUNCH
10 FORMAT(30H THE ANGULAR MOMENTUM VALUE IS,I3,45H WHICH IS LARGER TH
1AN THIS CODE CAN DEAL WITH//24H PROGRAM HALTED IN NTAB2///)
IF(K.LE.5) GO TO 1
K1=K-1
WRITE(IWRITE,10) K1
CALL EXIT
1 IF(NELCTS.GT.0) GO TO 2
8 NTAB2=2
RETURN
2 GO TO (3,4,5,6,7),K
C
C S ELECTRONS
C
3 NTAB2=NELCTS
RETURN
C
C P ELECTRONS
C
4 IF(NELCTS.GT.3) NELCTS=6-NELCTS
IF(NELCTS.EQ.0) GO TO 8
NTAB2=NELCTS+2
RETURN
C
C D ELECTRONS
C
5 IF(NELCTS.GT.5) NELCTS=10-NELCTS
IF(NELCTS.EQ.0) GO TO 8
NTAB2=NELCTS+5
RETURN
C
C F ELECTRONS
C
6 IF(NELCTS.GT.1) GO TO 9
IF(NELCTS.EQ.0) GO TO 8
NTAB2=11
RETURN
C
C G ELECTRONS
C
7 IF(NELCTS.GT.1) GO TO 9
IF(NELCTS.EQ.0) GO TO 8
NTAB2=12
RETURN
9 NTAB2=0
return
end
c
c-------------------------------------------------------------------
c n j s y m
c----------------------------------------------------------------------
c
SUBROUTINE NJSYM (J6C,J7C,J8C,JWC,K6,K7,K8,KW,RECUP)
C
C GENERAL RECOUPLING PROGRAMME
C EVALUATES THE RECOUPLING COEFFICIENT RECUP BETWEEN TWO COUPLING
C SCHEMES
C
C
C J6C THE NUMBER OF ELEMENTS IN THE K6 ARRAY
C J7C THE NUMBER OF ELEMENTS IN THE K7 ARRAY
C J8C THE NUMBER OF ELEMENTS IN THE K8 ARRAY
C JWC THE NUMBER OF COLUMNS IN THE KW ARRAY
C K6(I),I=1,J6C. EACH ENTRY CORRESPONDS TO A FACTOR SQRT(2J+1) IN
C RECUP. THE VALUE OF K6 GIVES POSITION IN J1 ARRAY
C WHERE J VALUE IS FOUND
C K7(I),I=1,J7C. EACH ENTRY CORRESPONDS TO A FACTOR (-1)**J IN
C RECUP
C K8(I),I=1,J8C. EACH ENTRY CORRESPONDS TO A FACTOR (-1)**(-J) IN
C RECUP
C KW(I,J),I=1,6,J=1,JWC. EACH COLUMN CORRESPONDS TO A RACAH
C COEFFICIENT IN RECUP
C RECUP THE RESULTANT RECOUPLING COEFFICIENT EVALUATED
C AND STORED IN RECUP
C
C
C THE ARRAYS K6,K7,K8 AND KW ARE EVALUATED BY NJSYM. THE ENTRY IN
C EACH CASE CORRESPONDS TO A POSITION IN THE J1 ARRAY WHERE THE
C 2J+1 VALUE IS FOUND IF LESS THAN OR EQUAL TO M,OR TO A SUMMATION
C VARIABLE IF GREATER THAN M
C
C THE SUMMATION OVER THE VARIABLES IN K6,K7,K8 AND KW AND THE
C EVALUATION OF RECUP IS CARRIED OUT IN GENSUM
C
C GENSUM CAN BE RE-ENTERED DIRECTLY TO EVALUATE DIFFERENT
C RECOUPLING COEFFICIENTS WITH THE SAME STRUCTURE BY JUST ALTERING
C THE NUMBERS IN THE J1 ARRAY
C
DIMENSION K6(40),K7(80),K8(40),KW(6,20)
COMMON/COUPLE/M,N,J1(40),J2(12,3),J3(12,3)
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6,IBUG7,IBUG8,IBUG9
COMMON/DEPTHS/J4(40),J5(40)
COMMON/DIMEN/KFL1,KFL2,KFL3,KFL4,KFL5,KFL6,KFL7
COMMON/INFORM/IREAD,IWRITE,IPUNCH
COMMON/WCOMI9/I3,I4,I5,I6,I7,I8,I9,I17,I18,I19,I20
common/const/zero,tenth,half,one,two,three,four,seven,eleven,eps
C
C FORMAT STATEMENTS USED IN NJSYM
C
50 FORMAT(59H RECOUPLING COEFFICIENT SET ZERO AS TRIANGLE DOES NOT MA
1TCH)
65 FORMAT(29H FAIL IN RECOUPLING PROGRAMME)
107 FORMAT(4H J1=,20I5)
108 FORMAT(23H J2 J3)
110 FORMAT(3I5,I10,2I5)
111 FORMAT(3H KW)
112 FORMAT(6I5)
113 FORMAT(4H K6=,38I3)
114 FORMAT(4H K7=,38I3)
115 FORMAT(4H K8=,38I3)
c 145 FORMAT(8H JWC = 0,8H J6C = 0,8H J7C = 0,8H J8C = 0)
204 FORMAT(23H KFL2 DIMENSION FAILURE)
207 FORMAT(23H KFL3 DIMENSION FAILURE)
208 FORMAT(23H KFL4 DIMENSION FAILURE)
209 FORMAT(23H KFL5 DIMENSION FAILURE)
221 FORMAT(17H NO KW ARRAYS SET)
226 FORMAT(17H NO K6 ARRAYS SET)
230 FORMAT(17H NO K7 ARRAYS SET)
233 FORMAT(17H NO K8 ARRAYS SET)
1208 FORMAT(23H KFL7 DIMENSION FAILURE)
C
C SET DIMENSIONVARIABLES AND TEST SOME OF DIMENSIONS
C
IF(KFL2-12) 200,201,200
200 KFL2=12
KFL3=20
KFL4=40
KFL5=80
KFL6=12
KFL7=40
C
C
201 IF(KFL2-N+1) 202,203,203
202 WRITE(IWRITE,204)
CALL EXIT
203 IF(KFL7-M)205,206,206
205 WRITE(IWRITE,1208)
CALL EXIT
C
C IP IS THE NUMBER OF INEQUIVALENT TRIADS WHICH HAVE TO BE
C RECOUPLED. IT IS SET INITIALLY TO THE TOTAL NUMBER OF TRIADS AND
C THEN DECREASED IN SECTION 1 BELOW AS THE RECOUPLING PROCEEDS
C UNTIL EVENTUALLY IT REACHES ZERO
C
206 IP=N-1
C
C DEBUG PRINTS
C
IF(IBUG3-1)124,123,124
123 WRITE(IWRITE,108)
DO 125 I=1,IP
WRITE(IWRITE,110) ((J2(I,J),J=1,3),(J3(I,J),J=1,3))
125 CONTINUE
C
C SET COUNTS ZERO. MP IS COUNT ON THE J VALUES WHICH ARE SUMMED
C OVER.
C
124 J6C=0
J7C=0
J8C=0
JWC=0
MP=M
C
C
C
C
C
C S E C T I O N 1
C
C THE FOLLOWING SECTION SEARCHES THE J2 AND J3 ARRAYS TO SEE IF
C ANY TRIADS ARE EQUIVALENT. IF SO IT PUTS THEM AT END OF J2 AND J3
C ARRAYS AND SETS IP EQUAL TO THE NUMBER OF INEQUIVALENT TRIADS
C REMAINING. IF IP=0 THEN THE RECOUPING HAS BEEN COMPLETED AND EXIT
C IS MADE TO GENSUM TO CARRY OUT THE SUMMATIONS
C
117 I1=1
16 DO 1 I2=1,IP
IF(J2(I2,1)-J3(I1,1)) 2,3,2
2 IF(J2(I2,2)-J3(I1,1))1,4,1
1 CONTINUE
C
C NO EQUIVALENT TRIADS WITH THIS VALUE OF I1. INCREASE I1 AND TRY
C AGAIN
C
GO TO 5
3 IF(J2(I2,2)-J3(I1,2))5,6,5
4 IF(J2(I2,1)-J3(I1,2))5,6,5
6 IF(I2-IP)7,8,8
C
C REARRANGE SO THAT EQUIVALENT TRIADS OCCUR AT THE END OF J2 AND
C J3 ARRAYS
C
7 I3=J2(I2,1)
I4=J2(I2,2)
I5=J2(I2,3)
I6=I2+1
DO 9 I7=I6,IP
DO 10 I8=1,3
J2(I7-1,I8)=J2(I7,I8)
10 CONTINUE
9 CONTINUE
J2(IP,1)=I3
J2(IP,2)=I4
J2(IP,3)=I5
8 IF(I1-IP)11,14,14
11 I3=J3(I1,1)
I4=J3(I1,2)
I5=J3(I1,3)
I6=I1+1
DO 12 I7=I6,IP
DO 13 I8=1,3
J3(I7-1,I8)=J3(I7,I8)
13 CONTINUE
12 CONTINUE
J3(IP,1)=I3
J3(IP,2)=I4
J3(IP,3)=I5
C
C IS THE THIRD ELEMENT IN J2 SUMMED OVER. IF SO REPLACE BY THIRD
C ELEMENT IN J3 ARRAY
C
14 IF(J2(IP,3)-M)47,47,44
44 J=J3(IP,3)
JP=J2(IP,3)
J2(IP,3)=J
IF(IP-2)101,18,18
C
C NOW REPLACE ALL OTHER ELEMENTS IN J2,KW,K7,K8 AND K6 WHICH ARE
C SUMMED OVER AT THE SAME TIME BY THE SAME QUANTITY J
C
18 IQ=IP-1
DO 19 I3=1,IQ
DO 20 I4=1,3
IF(J2(I3,I4)-JP) 20,21,20
21 J2(I3,I4)=J
20 CONTINUE
19 CONTINUE
101 IF(JWC)38,38,39
39 DO 23 I=1,6
DO 22 I3=1,JWC
IF(KW(I,I3)-JP) 22,25,22
25 KW(I,I3)=J
22 CONTINUE
23 CONTINUE
38 IF(J7C)87,87,41
41 DO 34 I3=1,J7C
IF(K7(I3)-JP)34,35,34
35 K7(I3)=J
34 CONTINUE
87 IF(J8C)40,40,86
86 DO 88 I3=1,J8C
IF(K8(I3)-JP)88,89,88
89 K8(I3)=J
88 CONTINUE
40 IF(J6C)42,42,43
43 DO 36 I3=1,J6C
IF(K6(I3)-JP)36,37,36
37 K6(I3)=J
36 CONTINUE
C
C SET I1 BACK TO 1 IN ORDER TO START SEARCH FOR EQUIVALENT TRIADS
C AGAIN SINCE SOME ELEMENTS MAY HAVE BEEN ALTERED
C
42 I1=1
C
C TEST WHETHER TRIANGLE MATCHES
C
47 JJ2=J2(IP,3)
JJ3=J3(IP,3)
IF(JJ2-JJ3) 148,49,148
148 IF(J1(JJ2)-J1(JJ3)) 48,44,48
C
C RECOUPLING COEFFICIENT SET ZERO WHEN TRIAD IN INITIAL AND FINAL
C STATES DO NOT MATCH. IN THIS CASE, GENSUM IS NOT CALLED AND THE
C ARRAYS K6,K7,K8,KW ARE NOT SET UP, READY FOR FURTHER DIRECT
C ENTRIES TO GENSUM.
C
48 IF(IBUG3-1) 150,151,150
151 WRITE(IWRITE,50)
150 RECUP=ZERO
RETURN
C
C IF J2 ANGULAR MOMENTA ARE IN OPPOSITE ORDER TO J3 ANGULAR
C MOMENTA INTERCHANGE THEM AND STORE SIGN CHANGES IN K7 AND K8.
C CHECK DIMENSIONS
C
49 IF(J2(IP,1)-J3(IP,1))100,99,100
100 J=J2(IP,1)
J2(IP,1)=J2(IP,2)
J2(IP,2)=J
K7(J7C+1)=J2(IP,1)
K7(J7C+2)=J2(IP,2)
J7C=J7C+2
K8(J8C+1)=J2(IP,3)
J8C=J8C+1
IF(KFL5-J7C) 210,220,220
220 IF(KFL4-J8C) 212,99,99
C
C DECREASE IP AND RETURN TO LOOK FOR FURTHER EQUIVALENT TRIADS
C
99 IP=IP-1
GO TO 15
5 I1=I1+1
15 IF(I1-IP)16,16,17
C
C IF IP = 0 THIS MEANS THAT ALL TRIADS HAVE BEEN TRANSFORMED TO BE
C EQUIVALENT. NOW EXIT TO SUM OVER RACAH COEFFICIENTS
C
17 IF(IP)126,126,46
C
C
C
C
C
C S E C T I O N 2
C
C ITEST = 0 DETERMINES THE MIMIMUM RECOUPLING OF J2 ARRAY TO
C OBTAIN AN EQUIVALENT TRIAD TO ONE IN J3 ARRAY. STORE ROW OF J3
C ARRAY IN ITEST1.
C ITEST = 1 DETERMINE RECOUPLING OF J2 ARRAY TO OBTAIN AN
C EQUIVALENT TRIAD OF ITEST1 ROW OF J3 ARRAY.
C IN BOTH CASES STORE INFORMATION ON RECOUPLING
C
46 I10=9999
ITEST=0
I1=1
C
C GENJ45 DETERMINES THE LEVEL OF EACH J IN THE COUPLING TREE OF J2
C AND J3 AND STORES THE RESULT IN THE J4 AND J5 ARRAYS RESPECTIVELY
C
96 CALL GENJ45(IP)
C
C LOOK FOR J IN J2 ARRAY WHICH IS SAME AS FIRST ELEMENT IN J3 ARRAY
C
95 DO 52 I2=1,IP
IF(J2(I2,1)-J3(I1,1))53,54,53
53 IF(J2(I2,2)-J3(I1,1))52,55,52
52 CONTINUE
GO TO 51
C
C I3 AND I5 DENOTES POSITION IN J2 ARRAY OF COMMON J
C
54 I3=1
GO TO 60
55 I3=2
60 I5=I2
C
C NOW LOOK FOR J IN J2 ARRAY WHICH IS SAME AS OTHER ELEMENT IN J3
C ARRAY
C
DO 56 I2=1,IP
IF(J2(I2,1)-J3(I1,2))57,58,57
57 IF(J2(I2,2)-J3(I1,2))56,59,56
56 CONTINUE
GO TO 51
C
C I4 AND I6 DENOTES POSITION IN J2 ARRAY OF COMMON J
C
58 I4=1
GO TO 61
59 I4=2
61 I6=I2
C
C I7 AND I8 DENOTE THE POSITION IN THE J1 ARRAY OF THE TWO COMMON J
C VALUES IN J2 AND J3
C
I7=J2(I5,I3)
I8=J2(I6,I4)
C
C GENI9 DETERMINES THE NUMBER OF RECOUPLINGS OF TWO ELEMENTS OF J2
C NECESSARY TO OBTAIN IDENTICAL TRIADS IN J2 AND J3 ARRAYS. THIS
C NUMBER PLUS TWO IS STORED IN I9
C
CALL GENI9(IP)
IF(I9-I10)62,51,51
C
C A SMALLER RECOUPLING PAIR FOUND. STORE LOWEST AS J2(I13,I14) AND
C HIGHEST AS J2(I11,I12). I15 AND I16 CONTAIN LEVEL OF THESE BELOW
C COMMON TRIADS. FINALLY ITEST1 DENOTES TRIAD IN J3 FOR NEXT ENTRY
C TO SECTION 2 AND IS REQUIRED IF MORE THAN ONE RECOUPLING
C
62 I10=I9
I11 = I17
I12 = I19
I13 = I18
I14 = I20
I15=I7
I16=I8
ITEST1=I1
51 IF(ITEST) 98,97,98
C
C I1 IS ONLY INCREASED IF SEARCHING FOR SMALLEST RECOUPLING PAIR
C
97 I1=I1+1
IF(I1-IP)95,95,98
98 IF(I10-9999)63,64,64
C
C FAIL BECAUSE NO PAIR IN J2 AND J3 FOUND WHICH COULD BE RECOUPLED
C
64 WRITE(IWRITE,65)
CALL EXIT
C
C
C
C
C
C S E C T I O N 3
C
C THE PAIR OF J VALUES THAT REQUIRE THE SMALLEST NUMBER OF
C RECOUPLINGS OF J2 TO BRING INTO THE SAME ORDER AS J3 HAS NOW
C BEEN FOUND. THIS SECTION NOW CARRIES OUT ONE RECOUPLING
C
63 IF(I15-I16) 67,68,68
C
C I1 AND I2 DENOTES THE LEVEL ABOVE THE GIVEN LEVELS OF THE TRIAD
C OF ELEMENTS TO BE RECOUPLED
C
67 I1=I15-1
I2=I16-2
GO TO 69
68 I1=I16-1
I2=I15-2
69 I3 = I11
I4 = I13
I5 = I12
I6 = I14
IF(I1)70,70,71
C
C FIND FIRST ELEMENT TO BE RECOUPLED
C
71 DO 72 I=1,I1
DO 73 I7=1,IP
IF(J2(I7,1)-J2(I3,3))74,75,74
74 IF(J2(I7,2)-J2(I3,3)) 73,76,73
73 CONTINUE
75 I5=1
GO TO 77
76 I5=2
77 I3=I7
72 CONTINUE
C
C FIRST ELEMENT TO BE RECOUPLED IS J2(I3,I5)
C NOW FIND SECOND ELEMENT TO BE RECOUPLED
C
70 IF(I2)78,78,79
79 DO 80 I=1,I2
DO 81 I7=1,IP
IF(J2(I7,1)-J2(I4,3))82,83,82
82 IF(J2(I7,2)-J2(I4,3))81,84,81
81 CONTINUE
83 I6=1
GO TO 85
84 I6=2
85 I4=I7
80 CONTINUE
C
C SECOND ELEMENT TO BE RECOUPLED IS J2(I4,I6)
C
78 IF(I6-1)90,90,91
C
C INTERCHANGE ELEMENTS OF I4 ROW OF J2 IF NECESSARY AND INCLUDE
C SIGNS IN K7 AND K8 ARRAYS
C
90 K7(J7C+1)=J2(I4,1)
K7(J7C+2)=J2(I4,2)
J7C=J7C+2
K8(J8C+1)=J2(I4,3)
J8C=J8C+1
I=J2(I4,1)
J2(I4,1)=J2(I4,2)
J2(I4,2)=I
91 IF(I5-1) 92,92,93
C
C INTERCHANGE ELEMENTS OF I3 ROW OF J2 IF NECESSARY AND STORE SIGNS
C IN K7 AND K8 ARRAYS
C
92 K7(J7C+1)=J2(I3,1)
K7(J7C+2)=J2(I3,2)
J7C=J7C+2
K8(J8C+1)=J2(I3,3)
J8C=J8C+1
I=J2(I3,1)
J2(I3,1)=J2(I3,2)
J2(I3,2)=I
C
C NOW RECOUPLE THE TWO ELEMENTS OF J2 AND STORE SQUARE ROOTS IN K6
C AND RACAH COEFFICIENT IN KW ARRAYS. MP DENOTES A J WHICH WILL BE
C SUMMED OVER
C
93 K6(J6C+1)=J2(I4,3)
MP=MP+1
K6(J6C+2)=MP
J6C=J6C+2
JWC=JWC+1
KW(1,JWC)=J2(I4,1)
KW(2,JWC)=J2(I4,2)
KW(3,JWC)=J2(I3,3)
KW(4,JWC)=J2(I3,2)
KW(5,JWC)=J2(I3,1)
KW(6,JWC)=MP
J2(I3,1)=J2(I4,1)
J2(I4,1)=J2(I4,2)
J2(I4,2)=J2(I3,2)
J2(I4,3)=MP
J2(I3,2)=MP
C
C TEST DIMENSIONS AND EXIT IF FAILURE
C
IF(KFL5-J7C)210,211,211
210 WRITE(IWRITE,209)
CALL EXIT
211 IF(KFL4-J8C) 212,213,213
212 WRITE(IWRITE,208)
CALL EXIT
213 IF(KFL7-MP)212,215,215
215 IF(KFL4-J6C) 212,217,217
217 IF(KFL3-JWC) 218,219,219
218 WRITE(IWRITE,207)
CALL EXIT
219 IF(I1+I2) 117,117,94
C
C MORE THAN ONE RECOUPLING REQUIRED. RETURN TO SECTION 2 TO DECIDE
C WHICH ELEMENTS OF J2 TO RECOUPLE IN NEXT STEP. IF ALL RECOUPLINGS
C OF A PARTICULAR PAIR HAVE BEEN CARRIED OUT THEN IDENTICAL PAIRS
C ARE NOW PRESENT IN J2 AND J3 ARRAYS. RETURN TO SECTION 1 TO SEE
C IF ANY MORE RECOUPLING REQUIRED
C
94 ITEST=1
I1=ITEST1
I10=9999
GO TO 96
C
C DEBUG PRINTS
C
126 IF(IBUG3-1) 105,104,105
104 WRITE(IWRITE,107) (J1(I),I=1,M)
WRITE(IWRITE,111)
IF(JWC) 127,127,128
128 DO 116 J=1,JWC
WRITE(IWRITE,112) (KW(I,J),I=1,6)
116 CONTINUE
GO TO 224
127 WRITE(IWRITE,221)
224 IF(J6C) 222,222,223
223 WRITE(IWRITE,113) (K6(J),J=1,J6C)
GO TO 225
222 WRITE(IWRITE,226)
225 IF(J7C) 227,227,228
228 WRITE(IWRITE,114) (K7(J),J=1,J7C)
GO TO 229
227 WRITE(IWRITE,230)
229 IF(J8C) 231,231,232
232 WRITE(IWRITE,115) (K8(J),J=1,J8C)
GO TO 105
231 WRITE(IWRITE,233)
C
C CARRY OUT SUMMATIONS
C
105 CALL GENSUM(J6C,J7C,J8C,JWC,K6,K7,K8,KW,RECUP)
RETURN
END
c
c----------------------------------------------------------------
c g e n j 4 5
c----------------------------------------------------------------
c
SUBROUTINE GENJ45(IP)
C
C FIND THE LEVEL OF EACH J IN THE COUPLING TREES OF J2 AND J3 AND
C STORE IN THE J4 AND J5 ARRAYS RESPECTIVELY. IF AN ELEMENT OF J1
C DOES NOT OCCUR IN J2 THE J4 ENTRY IS -1 AND IF AN ELEMENT DOES
C NOT OCCUR IN J3 THE J5 ENTRY IS -1
C
COMMON/COUPLE/M,N,J1(40),J2(12,3),J3(12,3)
COMMON/DEPTHS/J4(40),J5(40)
C
C
C
DO 1 I=1,M
DO 2 I2=1,IP
C
C STORE LEVEL OF EACH J IN J2 ARRAY IN J4
C
IF (J2(I2,1)-I) 3,4,3
3 IF (J2(I2,2)-I) 2,4,2
2 CONTINUE
DO 17 I2 = 1,IP
IF (J2(I2,3)-I) 17,18,17
17 CONTINUE
J4(I) = -1
GO TO 5
18 J4(I) = 0
GO TO 5
4 I3 = 1
9 DO 6 I4 = 1,IP
IF (J2(I4,1)-J2(I2,3)) 7,8,7
7 IF (J2(I4,2)-J2(I2,3)) 6,8,6
6 CONTINUE
J4(I) = I3
GO TO 5
8 I3 = I3+1
I2 = I4
GO TO 9
C
C STORE LEVEL OF EACH J IN J3 ARRAY IN J5
C
5 DO 10 I2 = 1,IP
IF (J3(I2,1)-I) 11,12,11
11 IF (J3(I2,2)-I) 10,12,10
10 CONTINUE
DO 19 I2 = 1,IP
IF (J3(I2,3)-I) 19,20,19
19 CONTINUE
J5(I) = -1
GO TO 1
20 J5(I) = 0
GO TO 1
12 I3 = 1
16 DO 13 I4 = 1,IP
IF (J3(I4,1)-J3(I2,3)) 14,15,14
14 IF (J3(I4,2)-J3(I2,3)) 13,15,13
13 CONTINUE
J5(I) = I3
GO TO 1
15 I3 = I3+1
I2 = I4
GO TO 16
1 CONTINUE
RETURN
END
c
c----------------------------------------------------------------
c g e n i 9
c----------------------------------------------------------------
c
SUBROUTINE GENI9(IP)
C
C DETERMINES THE NUMBER OF RECOUPLING NECESSARY TO BRING J2(I5,I3)
C AND J2(I6,I4) INTO THE SAME TRIAD. THIS WILL GIVE A TRIAD
C IDENTICAL WITH ONE IN J3. ON EXIT I9 CONTAINS THE NUMBER OF
C RECOUPLINGS PLUS TWO,I7 CONTAINS THE LEVEL OF THE I5 TRIAD BELOW
C THE COMMON TRIAD AND I8 CONTAINS THE LEVEL OF THE I6 TRIAD BELOW
C THE COMMON TRIADS
C SEE DESCRIPTION OF COMMON BLOCK WCOMI9 FOR FURTHER DETAILS
C
COMMON/COUPLE/M,N,J1(40),J2(12,3),J3(12,3)
COMMON/DEPTHS/J4(40),J5(40)
COMMON/WCOMI9/I3,I4,I5,I6,I7,I8,I9,I17,I18,I19,I20
C
C
C
I1 = J4(I7)
I2 = J4(I8)
C
C DETERMINES WHICH J OF J2(I5,I3) AND J2(I6,I4) LIES LOWEST, STORE
C LOWEST AS J2(I18,I20) AND HIGHEST AS J2(I17,I19)
C
IF (I1-I2) 1,1,3
1 I17 = I5
I18 = I6
I19 = I3
I20 = I4
I3 = I2-I1
I7 = 0
I8 = I3
I4 = I1
IF (I3) 8,8,2
C
C I6 DENOTES THE LOWEST TRIAD,SCAN TRIADS TO FIND NEW TRIAD I6 AT
C SAME LEVEL AS I5
C
2 DO 4 I = 1,I3
DO 5 J = 1,IP
IF (J2(J,1)-J2(I6,3)) 7,6,7
7 IF (J2(J,2)-J2(I6,3)) 5,6,5
5 CONTINUE
J=IP
6 I6 = J
4 CONTINUE
GO TO 8
3 I17 = I6
I18 = I5
I19 = I4
I20 = I3
I3 = I1-I2
I7 = I3
I8 = 0
C
C I5 DENOTES THE LOWEST TRIADS. SCAN TRIADS TO FIND NEW TRIAD I6 AT
C SAME LEVEL I5
C
DO 9 I = 1,I3
DO 12 J = 1,IP
IF (J2(J,1)-J2(I5,3)) 10,11,10
10 IF (J2(J,2)-J2(I5,3)) 12,11,12
12 CONTINUE
J=IP
11 I5 = J
9 CONTINUE
I4 = I2
C
C I5 AND I6 NOW DENOTES TRIADS AT SAME LEVEL. I4 CONTAINS THE
C COMMON LEVEL
C
8 DO 13 I = 1,I4
I1 = I
IF (I5-I6) 14,21,14
C
C I5 AND I6 DENOTE DIFFERENT TRIADS SCAN TO FIND TRIADS AT NEXT
C LEVEL WHICH REPLACE I5 AND I6
C
14 DO 15 J = 1,IP
IF (J2(J,1)-J2(I5,3)) 16,17,16
16 IF (J2(J,2)-J2(I5,3)) 15,17,15
15 CONTINUE
J=IP
17 I5 = J
DO 18 J = 1,IP
IF (J2(J,1)-J2(I6,3)) 19,20,19
19 IF (J2(J,2)-J2(I6,3)) 18,20,18
18 CONTINUE
J=IP
20 I6 = J
13 CONTINUE
C
C I5 AND I6 NOW BOTH DENOTE THE COMMON TRIAD
C
21 I9 = I3+2*I1
I8 = I8+I1
I7 = I7+I1
RETURN
END
c
c--------------------------------------------------------------------
c g e n s u m
c--------------------------------------------------------------------
c
SUBROUTINE GENSUM(J6C,J7C,J8C,JWC,J6,J7,J8,JW,RECUP)
C
C CARRIES OUT THE SUMMATION OVER COEFFICIENTS DEFINED BY THE ARRAYS
C J6,J7,J8 AND JW TO GIVE RECUP
C THE ENTRY IS EITHER MADE FROM NJSYM OR DIRECTLY ASSUMING THAT THE
C ARRAYS J6,J7,J8 AND JW HAVE ALREADY BEEN DETERMINED BY A PREVIOUS
C ENTRY TO NJSYM AND THAT THE SUMMATION IS REQUIRED FOR ANOTHER SET
C OF J VALUES DEFINED BY THE ARRAY J1
C THE DEFINITION OF THE ARGUMENT LIST IS GIVEN AT BEGINNING OF
C NJSYM
C
DIMENSION IST(6),JWORD(6,20),J6P(40),J7P(80),J8P(40),JSUM1(12),
1JSUM2(12),JSUM4(12,20),JSUM5(12,20),JSUM3(12),JSUM6(12)
2,JSUM7(12),JSUM8(12),JSUM(2,20),JWTEST(20),WSTOR(20),IPAIR(2,2)
DIMENSION J6(40),J7(80),J8(40),JW(6,20)
COMMON/COUPLE/M,N,J1(40),J2(12,3),J3(12,3)
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6,IBUG7,IBUG8,IBUG9
COMMON/DIMEN/KFL1,KFL2,KFL3,KFL4,KFL5,KFL6,KFL7
COMMON/INFORM/IREAD,IWRITE,IPUNCH
common/const/zero,tenth,half,one,two,three,four,seven,eleven,eps
C
C FORMAT STATEMENTS USED IN GENSUM
C
35 FORMAT (21H FAIL IN GENSUM AT 35)
36 FORMAT (21H FAIL IN GENSUM AT 36)
42 FORMAT (21H FAIL IN GENSUM AT 42)
63 FORMAT (21H FAIL IN GENSUM AT 63)
169 FORMAT(22H 169... RECUP =,F12.8,7H STOR =,F12.8,8H STOR1 =,
1F12.8)
170 FORMAT(18H 170... IST ,6I4)
190 FORMAT(8H WSTOR =,10F10.6)
308 FORMAT(23H KFL6 DIMENSION FAILURE)
311 FORMAT(22H FAIL IN GENSUM AT 310)
C
C
C
C
C
C S E C T I O N 1
C
C EVALUATES ALL TERMS IN J6,J7,J8 AND JW WHICH DO NOT INVOLVE A
C SUMMATION AND FORM MODIFIED ARRAYS J6P,J7P,J8P AND JWORD WHICH DO
C THE RESULT OF THE EVALUATION IS STORED IN RECUP AND AISTOR
C
RECUP=ONE
MAXJWE=M
JWRD = 0
IF(JWC)302,302,185
C
C MULTIPLY RECUP BY ALL RACAH COEFFICIENTS WHICH DO NOT INVOLVE A
C SUMMATION
C
185 DO 1 I=1,JWC
DO 2 J=1,6
IF(JW(J,I)-M) 2,2,3
2 CONTINUE
DO 4 J=1,6
I1=JW(J,I)
IST(J) = J1(I1) - 1
4 CONTINUE
CALL DRACAH(IST(1),IST(2),IST(3),IST(4),IST(5),IST(6),X1)
RECUP = RECUP*X1
GO TO 1
C
C JWRD IS THE NUMBER OF RACAH COEFFICIENTS WHICH INVOLVE A
C SUMMATION
C JWORD(I,J),I=1,6,J=1,JWRD CONTAINS THE NUMBER WHICH GIVE THE
C LOCATION OF THE J VALUES FOR THE RACAH COEFFICIENTS EITHER IN THE
C J1 LIST OR IN THE JSUM1 LIST
C
3 JWRD = JWRD+1
DO 5 J=1,6
JWORD(J,JWRD)=JW(J,I)
C
C MAXJWE CONTAINS THE MAXIMUM J IN THE LIST OF VARIABLES TO BE
C SUMMED OVER
C
IF(MAXJWE-JW(J,I)) 215,5,5
215 MAXJWE=JW(J,I)
5 CONTINUE
1 CONTINUE
302 J6CP=0
IF(J6C)300,300,301
C
C J6P(I),I=1,J6CP CONTAINS ALL J6 WHICH INVOLVE A SUMMATION
C MULTIPLY RECUP BY ALL THOSE WHICH DO NOT
C
301 DO 6 I=1,J6C
IF(J6(I)-M) 7,7,21
7 I1=J6(I)
RECUP = RECUP*SQRT(FLOAT(J1(I1)))
GO TO 6
21 J6CP = J6CP+1
J6P(J6CP)=J6(I)
6 CONTINUE
300 IASTOR = 0
J7CP = 0
IF(J7C) 303,303,304
C
C J7P(I),I=1,J7CP CONTAINS ALL J7 WHICH INVOLVE A SUMMATION.
C MULTIPLY RECUP BY ALL THOSE WHICH DO NOT
C
304 DO 8 I=1,J7C
IF(J7(I)-M) 9,9,22
9 I1=J7(I)
IASTOR = IASTOR + J1(I1) -1
GO TO 8
22 J7CP = J7CP+1
J7P(J7CP)=J7(I)
8 CONTINUE
303 J8CP=0
IF(J8C) 305,305,306
C
C J8CP(I),I=1,J8CP CONTAINS ALL J8 WHICH INVOLVE A SUMMATION
C MULTIPLY RECUP BY ALL THOSE WHICH DO NOT
C
306 DO 10 I=1,J8C
IF(J8(I)-M) 11,11,23
11 I1=J8(I)
IASTOR = IASTOR - J1(I1) + 1
GO TO 10
23 J8CP=J8CP+1
J8P(J8CP)=J8(I)
10 CONTINUE
C
C NO RACAH COEFFICIENTS REMAINING AND THUS NO SUMMATIONS TO BE
C CARRIED OUT IF JWRD=0. JUMP TO END TO INCLUDE (-1) FACTORS IN
C RECUP AND THEN EXIT
C
305 IF(JWRD) 12,12,13
C
C
C
C
C
C S E C T I O N 2
C
C SEARCH THROUGH THE JWORD LIST TO FIND ALL THE SUMMATION VARIABLES
C NSUM IS THE NUMBER OF SUMMATION VARIABLES
C JSUM1(I),I=1,NSUM CONTAINS A LIST OF ALL SUMMATION VARIABLES IN
C THE SAME NOTATION AS IN JW LIST
C
13 NSUM=0
MAXSUM=MAXJWE-M
DO 24 I=1,MAXSUM
JSUM6(I)=0
JSUM7(I)=0
24 CONTINUE
C
C FIND SUMMATION VARIABLES
C
DO 14 I=1,JWRD
DO 15 J=1,6
IF(JWORD(J,I)-M) 15,15,16
16 NSUM=NSUM+1
IF(NSUM-1) 17,17,18
C
C HAS THE SUMMATION VARIABLE OCCURED BEFORE. IF NOT INCLUDE IN
C JSUM1 LIST
C
18 NSUM1 = NSUM-1
DO 19 I1=1,NSUM1
IF(JWORD(J,I)-JSUM1(I1)) 19,20,19
19 CONTINUE
17 JSUM1(NSUM)=JWORD(J,I)
I1=NSUM
GO TO 25
20 NSUM =NSUM1
C
C JSUM6(I),I=1,NSUM IS THE NUMBER OF TIMES EACH SUMMATION VARIABLE
C OCCURS IN JWORD
C
25 JSUM6(I1)=JSUM6(I1)+1
I2=JSUM6(I1)
C
C JSUM4(I,J),JSUM5(I,J),I=1,NSUM,J=1,JSUM6(I) IS THE POSITION IN
C THE JWORD LIST WHERE THE JSUM1 ELEMENT OCCURS
C
JSUM4(I1,I2)=J
JSUM5(I1,I2)=I
C
C (JWORD-M) GIVES LOCATION IN JSUM1 LIST IF A SUMMATION VARIABLE
C
JWORD(J,I)=M+I1
15 CONTINUE
14 CONTINUE
IF(KFL6-NSUM) 312,307,307
312 WRITE(IWRITE,308)
CALL EXIT
307 IF(J6CP) 26,26,27
C
C CHECK THAT NO EXTRA SUMMATION VARIABLES OCCUR IN J6P. SET J6P
C EQUAL TO THE LOCATION IN JSUM1 LIST OF SUMMATION VARIABLE
C
27 DO 28 I=1,J6CP
DO 29 J=1,NSUM
IF(J6P(I)-JSUM1(J)) 29,30,29
29 CONTINUE
WRITE(IWRITE,35)
CALL EXIT
30 J6P(I)=J
28 CONTINUE
26 IF(J7CP) 130,130,31
C
C CHECK THAT NO EXTRA SUMMATION VARIABLES OCCUR IN J7P, SET J7P
C EQUAL TO THE LOCATION IN JSUM1 LIST OF SUMMATION VARIABLE
C
31 DO 32 I=1,J7CP
DO 33 J=1,NSUM
IF(J7P(I)-JSUM1(J)) 33,34,33
33 CONTINUE
WRITE(IWRITE,36)
CALL EXIT
34 J7P(I)=J
32 CONTINUE
130 IF(J8CP) 37,37,38
C
C CHECK THAT NO EXTRA SUMMATION VARIABLES OCCUR IN J8P. SET J8P
C EQUAL TO THE LOCATION IN JSUM1 LIST OF SUMMATION VARIABLE
C
38 DO 39 I=1,J8CP
DO 40 J=1,NSUM
IF(J8P(I)-JSUM1(J)) 40,41,40
40 CONTINUE
WRITE(IWRITE,42)
CALL EXIT
41 J8P(I)=J
39 CONTINUE
C
C
C
C
C
C S E C T I O N 3
C
C ORDERS THE SUMMATION VARIABLES SO THAT THE RANGE OF EACH
C SUMMATION HAS BEEN PREVIOUSLY DEFINED
C
37 NCT =0
NCT1 = 0
64 DO 43 I=1,JWRD
DO 44 J=1,6
I1=JWORD(J,I)-M
IF(I1) 44,44,45
C
C JSUM7(I),I=1,NSUM IS THE ORDER OF THE SUMMATIONS OVER THE J
C VARIABLES. INITIALLY THIS ARRAY IS ZERO
C
45 IF(JSUM7(I1)) 46,46,44
46 GO TO (47,48,49,50,51,52),J
C
C THE ROWS OF THE IPAIR ARRAYS GIVE LIMITS OF SUMMATION IMPOSED
C BY THE TRIANGULAR CONDITION
C
47 IPAIR(1,1) = JWORD(2,I)
IPAIR(1,2) = JWORD(5,I)
IPAIR(2,1) = JWORD(3,I)
IPAIR(2,2) = JWORD(6,I)
GO TO 53
48 IPAIR(1,1) = JWORD(1,I)
IPAIR(1,2) = JWORD(5,I)
IPAIR(2,1) = JWORD(4,I)
IPAIR(2,2) = JWORD(6,I)
GO TO 53
49 IPAIR(1,1) = JWORD(1,I)
IPAIR(1,2) = JWORD(6,I)
IPAIR(2,1) = JWORD(4,I)
IPAIR(2,2) = JWORD(5,I)
GO TO 53
50 IPAIR(1,1) = JWORD(2,I)
IPAIR(1,2) = JWORD(6,I)
IPAIR(2,1) = JWORD(3,I)
IPAIR(2,2) = JWORD(5,I)
GO TO 53
51 IPAIR(1,1)= JWORD(1,I)
IPAIR(1,2) = JWORD(2,I)
IPAIR(2,1) = JWORD(3,I)
IPAIR(2,2) = JWORD(4,I)
GO TO 53
52 IPAIR(1,1) = JWORD(1,I)
IPAIR(1,2) = JWORD(3,I)
IPAIR(2,1) = JWORD(2,I)
IPAIR(2,2) = JWORD(4,I)
C
C TEST WHETHER RANGE OF SUMMATION HAS BEEN DEFINED. WE CHOOSE THE
C FIRST PAIR OF J VALUES THAT DEFINE THE RANGE AND STORE IN JSUM
C
53 DO 54 I2=1,2
DO 55 I3=1,2
IF(IPAIR(I2,I3)-M) 55,55,56
56 I4 = IPAIR(I2,I3)-M
C
C JSUM7 GREATER THAN ZERO MEANS THAT LIMIT IS DEFINED PREVIOUSLY
C
IF(JSUM7(I4)) 54,54,55
55 CONTINUE
GO TO 57
54 CONTINUE
GO TO 44
C
C NCT IS COUNT ON ORDER OF SUMMATION
C
57 NCT = NCT+1
JSUM7(I1)=NCT
C
C JSUM(I,J),I=1,2,J=1,NSUM CONTAINS THE POSITION OF THE J VALUES
C THAT DEFINE THE RANGE OF EACH VARIABLE. THE FIRST ROW CORRESPONDS
C TO THE FIRST J AND THE SECOND ROW TO THE SECOND J DEFINING RANGE.
C IF VALUE IN RANGE 1 TO M THEN CORRESPONDS TO AN ELEMENT IN J1.
C IF VALUE GREATER THAN M THEN CORRESPONDS TO A SUMMATION VARIABLE
C IN JSUM1 LIST. NOTE THAT JSUM DOES NOT NECESSARILY CONTAIN THE
C MOST RESTRICTIVE RANGES SINCE ONLY ONE OF TWO POSSIBLE PAIRS FROM
C THE RACAH COEFFICIENT IS TAKEN
C
DO 58 I3=1,2
JSUM(I3,I1)=IPAIR(I2,I3)
58 CONTINUE
44 CONTINUE
43 CONTINUE
C
C CHECK WHETHER THE RANGE OF ALL SUMMATIONS SET. FAIL IF NOT
C POSSIBLE TO SET ALL RANGES
C
IF(NCT-NSUM) 59,60,60
59 IF(NCT-NCT1) 61,61,62
61 WRITE(IWRITE,63)
CALL EXIT
62 NCT1=NCT
GO TO 64
C
C JSUM8(I),I=1,NSUM IS THE POSITION IN THE JSUM7 LIST WHERE THE ITH
C SUMMATION IS FOUND
C
60 DO 65 J=1,NSUM
DO 66 I1=1,NSUM
IF(JSUM7(I1)-J) 66,67,66
66 CONTINUE
I1=NSUM
67 JSUM8(J)=I1
65 CONTINUE
C
C
C
C
C
C S E C T I O N 4
C
C CARRY OUT THE SUMMATIONS.
C I6 DENOTES THE FIRST J THAT REQUIRES TO BE SET TO THE LOWEST
C VALUE IN THE RANGE
C I7 = 0 THE FIRST TIME THE JS ARE SET BUT BUT IS SET EQUAL TO 1
C ON SUBSEQUENT TIMES
C
I6=1
I7=0
100 IF(I6-NSUM) 105,105,104
C
C JSUM2(I),I=1,NSUM CONTAINS CURRENT VALUE OF (2J+1) IN THE SAME
C ORDER AS JSUM1 LIST. SET JSUM2 EQUAL TO LOWEST VALUE IN EACH
C RANGE
C
105 DO 68 J=I6,NSUM
I1=JSUM8(J)
IF(JSUM(1,I1)-M) 69,69,70
C
C FIRST J DEFINING RANGE FIXED
C
69 I2=JSUM(1,I1)
I3=J1(I2)
GO TO 71
C
C FIRST J DEFINING RANGE VARIABLE
C
70 I2=JSUM(1,I1)-M
I3=JSUM2(I2)
71 IF(JSUM(2,I1)-M) 72,72,73
C
C SECOND J DEFINING RANGE FIXED
C
72 I2=JSUM(2,I1)
I4=J1(I2)
GO TO 74
C
C SECOND J DEFINING RANGE VARIABLE
C
73 I2=JSUM(2,I1)-M
I4=JSUM2(I2)
C
C SET LOWER LIMIT OF RANGE IN JSUM2
C
74 JSUM2(I1)=IABS(I3-I4)+1
68 CONTINUE
C
C JSUM3(I),I=1,NSUM IS 1 IF J HAS ALTERED FROM ITS PREVIOUS VALUE
C AND IS 0 IF IT IS STILL THE SAME
C
DO 77 I=I6,NSUM
JSUM3(I)=1
77 CONTINUE
IF(I7) 103,103,104
103 I7=1
C
C JWTEST(I),I=1,JWRD IS 1 IF REQUIRED TO EVALUATE RACAH COEFFICIENT
C AND IS 0 IF VALUE THE SAME AS BEFORE.JWTEST IS SET ZERO THE FIRST
C TIME THROUGH AND LATER SET 1 IF NECESSARY
C
DO 78 I=1,JWRD
JWTEST(I)=0
78 CONTINUE
C
C STOR1 WILL CONTAIN THE PRODUCT OF RACAH COEFFICIENTS TIMES
C (2J+1) FACTORS
C STOR WILL CONTAIN SUMS OF THE STOR1
C
STOR1=ONE
STOR=ZERO
C
C CHECK THE TRIANGULAR RELATION FOR ALL J VALUES IN JWORD LIST. IF
C A SUMMATION VARIABLE THEN VALUE TAKEN FROM JSUM2 LIST
C
104 DO 79 J=1,JWRD
DO 80 I=1,6
IF(JWORD(I,J)-M) 81,81,82
81 I1=JWORD(I,J)
IST(I) = J1(I1) - 1
GO TO 80
82 I1=JWORD(I,J)-M
IST(I) = JSUM2(I1) - 1
80 CONTINUE
IF(IST(1)+IST(2)-IST(5)) 83,84,84
84 IF(IABS(IST(1)-IST(2))-IST(5)) 85,85,83
85 IF(IST(3)+IST(4)-IST(5)) 83,86,86
86 IF(IABS(IST(3)-IST(4))-IST(5)) 87,87,83
87 IF(IST(1)+IST(3)-IST(6)) 83,88,88
90 IF(IABS(IST(2)-IST(4))-IST(6)) 79,79,83
89 IF(IST(2)+IST(4)-IST(6)) 83,90,90
88 IF(IABS(IST(1)-IST(3))-IST(6))89,89,83
79 CONTINUE
GO TO 91
C
C FAIL ONE OF THE TRIANGULAR RELATIONS. INCREASE THE J VALUES
C
83 I2=NSUM
203 I1 = JSUM8(I2)
C
C INCREASE A SUMMATION J VALUE WHICH IS IN JSUM2 AND SET JSUM3 TO
C SHOW VALUE CHANGED
C
JSUM2(I1)=JSUM2(I1)+2
JSUM3(I1)=1
C
C NOW STORE J VALUE DEFINING RANGE OF THIS J IN I3 AND I4.
C
IF(JSUM(1,I1)-M) 92,92,93
92 I20 = JSUM(1,I1)
I3 = J1(I20)
GO TO 94
93 I20 = JSUM(1,I1)-M
I3 = JSUM2(I20)
94 IF(JSUM(2,I1)-M)95,95,96
95 I20 = JSUM(2,I1)
I4 = J1(I20)
GO TO 97
96 I20 = JSUM(2,I1)-M
I4 = JSUM2(I20)
97 I5=I3+I4-1
I6=I2+1
C
C NOW TEST J VALUES AGAINST MAXIMUM IN RANGE. IF SATISFIED RETURN
C TO SET REMAINING J VALUES WHICH DEPEND ON THIS J TO THEIR
C LOWEST VALUES. IF NOT RETURN TO INCREASE PRECEDING J VALUE
C
IF(JSUM2(I1)-I5) 100,100,101
101 I2=I2-1
IF(I2) 102,102,203
C
C NO MORE J VALUES TO SUM OVER. THE SUMMATION IS THEREFORE COMPLETE
C MULTIPLY BY COMMON FACTOR AND EXIT
C
102 RECUP=RECUP*STOR
IF(IBUG3-1) 131,230,131
230 WRITE(IWRITE,169) RECUP,STOR,STOR1
131 RETURN
C
C SEE TRIANGULAR RELATIONS ARE SATISFIED. NOW PROCEED TO EVALUATE
C RACAH COEFFICIENTS
C FIRST DETERMINE WHICH RACAH COEFFICIENTS NEED RE-EVALUATING AND
C SET JWTEST APPROPRIATELY
C
91 DO 106 J=1,NSUM
IF(JSUM3(J)) 106,106,107
107 I2=JSUM6(J)
DO 108 I1=1,I2
I3=JSUM5(J,I1)
JWTEST(I3)=1
108 CONTINUE
106 CONTINUE
C
C NOW EVALUATE ALL JWRD RACAH COEFFICIENTS WHICH HAVE NOT ALREADY
C BEEN EVALUATED
C
DO 109 I=1,JWRD
IF(JWTEST(I)) 109,109,110
110 DO 111 I1=1,6
IF(JWORD(I1,I)-M) 112,112,113
112 I2=JWORD(I1,I)
IST(I1) = J1(I2) - 1
GO TO 111
113 I2=JWORD(I1,I)-M
IST(I1) = JSUM2(I2) - 1
111 CONTINUE
IF(IBUG3-1) 132,133,132
133 WRITE (IWRITE,170) (IST(J), J=1,6)
132 CALL DRACAH(IST(1),IST(2),IST(3),IST(4),IST(5),IST(6),X1)
WSTOR(I)=X1
109 CONTINUE
C
C WSTOR(I),I=1,JWRD CONTAINS THE EVALUATED RACAH COEFFICIENTS
C
IF(IBUG3-1) 134,135,134
135 WRITE(IWRITE,190) (WSTOR(J),J=1,JWRD)
C
C SET JSUM3 AND JWTEST TO ZERO TO INDICATE THAT RACAH COEFFICIENTS
C NEED NOT BE EVALUATED UNLESS J VALUE CHANGES
C
134 DO 114 J=1,NSUM
JSUM3(J)=0
114 CONTINUE
DO 115 J=1,JWRD
JWTEST(J)=0
115 CONTINUE
C
C FORM PRODUCT OF RACAH COEFFICIENTS,(2J+1) FACTORS AND (-1)
C FACTORS IN STOR1
C
DO 116 I=1,JWRD
STOR1 = STOR1*WSTOR(I)
116 CONTINUE
C
C IASTOR CONTAINS THE POWER OF (-1)WHICH IS COMMON TO ALL TERMS
C
IX2 = IASTOR
IF(J6CP) 117,117,118
118 DO 119 I=1,J6CP
I1=J6P(I)
STOR1 = STOR1*SQRT(FLOAT(JSUM2(I1)))
119 CONTINUE
117 IF(J7CP) 120,120,121
121 DO 122 I=1,J7CP
I1=J7P(I)
IX2 = IX2 + JSUM2(I1) - 1
122 CONTINUE
120 IF(J8CP) 123,123,124
124 DO 125 I=1,J8CP
I1=J8P(I)
IX2 = IX2 - JSUM2(I1) + 1
125 CONTINUE
123 IX2 = IX2/2
C
C ADD TERM INTO STOR AND RESET STOR1 TO 1 READY FOR NEXT TERM
C
IF (MOD(IX2,2) .EQ. 1) STOR1 = -STOR1
STOR = STOR + STOR1
STOR1=ONE
GO TO 83
C
C NO SUMMATIONS. CHECK THAT THERE ARE NO INCONSISTENCIES. THEN
C MULTIPLY BY (-1) FACTOR AND EXIT
C
12 IF(J6CP+J7CP+J8CP) 309,309,310
310 WRITE(IWRITE,311)
CALL EXIT
309 IX2 = IASTOR/2
IF (MOD(IX2,2) .EQ. 1) RECUP = -RECUP
RETURN
END
c
c------------------------------------------------------------------
c d r a c a h
c------------------------------------------------------------------
c
SUBROUTINE DRACAH (J1,J2,L2,L1,J3,L3,D6J)
C THIS SUBROUTINE WAS ORIGINALLY WRITTEN BY G.BESSIS TO COMPUTE
C 6-J SYMBOLS. THIS VERSION HAS BEEN SLIGHTLY MODIFIED TO GIVE
C RACAH COEFFICENTS WITH A CALL COMPATIBLE WITH AAGD
C ARGUMENTS ARE DOUBLE THE ACTUAL QUANTUM NUMBERS
DIMENSION KC(11),NA(31),MC(23),NC(7),NB(31)
COMMON/INFORM/IREAD,IWRITE,IPUNCH
common/const/zero,tenth,half,one,two,three,four,seven,eleven,eps
kc(1)=2
kc(2)=3
kc(3)=5
kc(4)=7
kc(5)=11
kc(6)=13
kc(7)=17
kc(8)=19
kc(9)=23
kc(10)=29
kc(11)=31
D6J=ZERO
IF(IABS(L1-J2).GT.L3.OR.IABS(J2-L3).GT.L1.OR.IABS(L1-L3).GT.J2) GO
1TO 99
IF(IABS(J1-J2).GT.J3.OR.IABS(J2-J3).GT.J1.OR.IABS(J1-J3).GT.J2) GO
1TO 99
IF(IABS(L1-L2).GT.J3.OR.IABS(L2-J3).GT.L1.OR.IABS(L1-J3).GT.L2) GO
1TO 99
IF(IABS(J1-L2).GT.L3.OR.IABS(L2-L3).GT.J1.OR.IABS(J1-L3).GT.L2) GO
1TO 99
DO 5 I=1,31
5 NA(I)=0
MC(1)=J1+J2-J3
MC(2)=J1-J2+J3
MC(3)=-J1+J2+J3
MC(4)=J1+L2-L3
MC(5)=J1-L2+L3
MC(6)=-J1+L2+L3
MC(7)=L1+J2-L3
MC(8)=L1-J2+L3
MC(9)=-L1+J2+L3
MC(10)=L1+L2-J3
MC(11)=L1-L2+J3
MC(12)=-L1+L2+J3
MC(13)=J1+J2+J3+2
MC(14)=J1+L2+L3+2
MC(15)=L1+J2+L3+2
MC(16)=L1+L2+J3+2
MC(17)=J1+J2+J3
MC(18)=J1+L2+L3
MC(19)=L1+J2+L3
MC(20)=L1+L2+J3
MC(21)=J1+J2+L1+L2
MC(22)=J2+J3+L2+L3
MC(23)=J3+J1+L3+L1
DO 6 I=1,23
IF (MOD(MC(I),2).NE.0) GO TO 98
MC(I)=MC(I)/2
IF(MC(I).LT.0) GO TO 99
IF(MC(I).GT.31) GO TO 98
6 CONTINUE
DO 20 I=1,12
N=MC(I)
DO 15 J=1,N
15 NA(J)=NA(J)+1
20 CONTINUE
DO 17 I=13,16
N=MC(I)
DO 16 J=1,N
16 NA(J)=NA(J)-1
17 CONTINUE
DO 26 I=1,31
26 NB(I)=NA(I)
IZM=MIN0(MC(21),MC(22),MC(23))
IZD=MAX0(MC(17),MC(18),MC(19),MC(20))
ISIG=1
IF (MOD(IZD,2).NE.0) ISIG=-ISIG
DO 60 IZ=IZD,IZM
NC(1)=IZ-MC(17)
NC(2)=IZ-MC(18)
NC(3)=IZ-MC(19)
NC(4)=IZ-MC(20)
NC(5)=MC(21)-IZ
NC(6)=MC(22)-IZ
NC(7)=MC(23)-IZ
DO 28 I=1,31
28 NA(I)=NB(I)
N=IZ+1
DO 29 I=1,N
29 NA(I)=NA(I)+2
DO 40 I=1,7
N=NC(I)
DO 35 J=1,N
35 NA(J)=NA(J)-2
40 CONTINUE
NA(2)=NA(2)+2*NA(4)+NA(6)+3*NA(8)+NA(10)+2*NA(12)+NA(14)+4*NA(16)+
1NA(18)+2*NA(20)+NA(22)+3*NA(24)+NA(26)+2*NA(28)+NA(30)
NA(3)=NA(3)+NA(6)+2*NA(9)+NA(12)+NA(15)+2*NA(18)+NA(21)+NA(24)+3*N
1A(27)+NA(30)
NA(5)=NA(5)+NA(10)+NA(15)+NA(20)+2*NA(25)+NA(30)
NA(7)=NA(7)+NA(14)+NA(21)+NA(28)
NA(11)=NA(11)+NA(22)
NA(13)=NA(13)+NA(26)
DRA=ONE
DAX=ONE
DNR=ONE
DO 50 K=1,11
I=KC(K)
N=NA(I)
IF(N.EQ.0) GO TO 50
IF(MOD(N,2)) 41,42,41
41 N=N-1
DRA=DRA*I
42 N=N/2
IF(N) 43,50,45
43 N=-N
DO 44 IN=1,N
44 DNR=DNR*I
GO TO 50
45 DO 46 IN=1,N
46 DAX=DAX*I
50 CONTINUE
DRA = SQRT(DRA)
D6J=D6J+(DAX*DRA*ISIG)/DNR
ISIG=-ISIG
60 CONTINUE
IF( MOD( (J1+J2+L1+L2)/2,2) .EQ. 0) GO TO 99
D6J = -D6J
GO TO 99
98 WRITE (IWRITE,101) J1,J2,L1,L2,J3,L3
101 FORMAT(44H FAILURE IN CALCULATING RACAH COEFFICIENT W(,3(I3,1H,),I
13,1H$,I3,1H,,I3,1H))
CALL EXIT
99 RETURN
END
c
c------------------------------------------------------------------------
c c f p p
c-------------------------------------------------------------------------
c
SUBROUTINE CFPP(N,LI,ISI,LJ,ISJ,COEFP)
C
C THIS SUBROUTINE EVALUATES THE COEFFICIENTS OF FRACTIONAL PARENTAGE
C FOR EQUIVALENT P SHELL ELECTRONS FROM TABLES GIVEN IN J.C.SLATER
C QUANTUM THEORY OF ATOMIC STRUCTURE,VOLUME2,P350(1960)
C IN THE SUBROUTINE LIST N,THE NO. OF ELECTRONS,L THE ANGULAR
C MOMENTUM QUANTUM NO.,(2S+1) THE SPIN QUANTUM NO. OF BOTH THE STATE
C IN QUESTION AND ITS PARENT STATE ARE INPUT PARAMETERS.THE RESULT
C IS OUTPUT AS COEFP
C
integer IL(3,3),IS(3,3),ITAB1(3,1),ITAB2(3,3),NORM1(3),NORM2(3)
common/inform/iread,iwrite,ipunch
C
C
C SET UP P SHELL PARAMETERS AND TABLES
C
il(1,1)=1
il(2,1)=1
il(2,2)=2
il(2,3)=0
il(3,1)=0
il(3,2)=2
il(3,3)=1
is(1,1)=2
is(2,1)=3
is(2,2)=1
is(2,3)=1
is(3,1)=4
is(3,2)=2
is(3,3)=2
itab1(1,1)=1
itab1(2,1)=1
itab1(3,1)=1
itab2(1,1)=1
itab2(1,2)=0
itab2(1,3)=0
itab2(2,1)=1
itab2(2,2)=-1
itab2(2,3)=0
itab2(3,1)=-9
itab2(3,2)=-5
itab2(3,3)=4
norm1(1)=1
norm1(2)=1
norm1(3)=1
norm2(1)=1
norm2(2)=2
norm2(3)=18
C
C TEST IF N IS IN THE FIRST HALF OF SHELL
C
IF(N-4) 40,103,103
C
C TEST IF STATE IN QUESTION IS ALLOWED
C IF IT IS, IDENTIFY THE ROW OF THE TABLE BY J1
C
40 J = 0
101 J = J+1
IF(J-4) 41,8,8
41 IF(IL(N,J)-LI) 101,42,101
42 IF(IS(N,J)-ISI) 101,43,101
43 J1 = J
C
C TEST IF PARENT STATE IS ALLOWED
C IF IT IS, IDENTIFY THE COLUMN OF THE TABLE BY J2
C
IF(N-1) 44,70,44
70 IF(LJ) 8,71,8
71 IF(ISJ-1) 8,1,8
44 J = 0
102 J = J+1
IF(J-4) 45,8,8
45 IF(IL(N-1,J)-LJ) 102,46,102
46 IF(IS(N-1,J)-ISJ) 102,47,102
47 J2 = J
GO TO 100
C
C SIMILAR SETTING OF J1 AND J2 IF N IS IN SECOND HALF OF SHELL
C
103 M =6-N
IF(M) 72,73,72
73 IF(LI) 8,74,8
74 IF(ISI-1) 8,75,8
72 J = 0
104 J = J+1
IF(J-4) 48,8,8
48 IF(IL(M,J)-LI) 104,49,104
49 IF(IS(M,J)-ISI) 104,50,104
50 J1 = J
75 J = 0
105 J = J+1
IF(J-4) 51,8,8
51 IF(IL(M+1,J)-LJ) 105,52,105
52 IF(IS(M+1,J)-ISJ) 105,53,105
53 J2 = J
C
C
C IDENTIFY THE F.P.C AS A UNIQUE ELEMENT OF ITABN(J1,J2)
C
100 GO TO (1,2,3,4,4,1),N
1 COEFP = 1.0
GO TO 10
2 COEFP = ITAB1(J1,J2)
IF(COEFP) 54,10,31
54 COEFP = -SQRT(-COEFP/NORM1(J1))
GO TO 10
31 COEFP = SQRT(COEFP/NORM1(J1))
GO TO 10
3 COEFP = ITAB2(J1,J2)
IF(COEFP) 55,10,32
55 COEFP = -SQRT(-COEFP/NORM2(J1))
GO TO 10
32 COEFP =SQRT(COEFP/NORM2(J1))
GO TO 10
C
C USE RECURRENCE RELATION EQUATION (19) OF RACAH FOR SECOND HALF OF
C SHELL
C
4 ISIGN = (-1)**((ISI+ISJ-5)/2+LI+LJ)
FACTOR = ((7.0-N)*ISJ*(2*LJ+1.0))/(N*ISI*(2*LI+1.0))
IF(N-5) 56,5,8
56 COEFP = ITAB2(J2,J1)
IF(COEFP) 57,10,33
57 COEFP = -SQRT(-COEFP/NORM2(J2))
GO TO 34
33 COEFP = SQRT(COEFP/NORM2(J2))
34 COEFP = COEFP * ISIGN * SQRT(FACTOR)
IF(LJ-1) 35,10,35
35 COEFP = -COEFP
GO TO 10
5 COEFP = ITAB1(J2,J1)
IF(COEFP) 58,10,36
58 COEFP = -SQRT(-COEFP/NORM1(J2))
GO TO 37
36 COEFP = SQRT(COEFP/NORM1(J2))
37 COEFP = COEFP * ISIGN * SQRT(FACTOR)
GO TO 10
C
8 continue
c16 format(37h fail in coefp at 8 unallowed state)
c write(iwrite,16)
coefp=9.9
10 CONTINUE
RETURN
END
c
c------------------------------------------------------------------------
c c f p d d a t a
c-------------------------------------------------------------------------
c
subroutine cfpddata
C
COMMON/FRPAR2/I(719)
C
C BLOCK DATA FOR CFPD SUBROUTINE
C
DATA I( 1),I( 2),I( 3),I( 4),I( 5),I( 6),I( 7),I( 8),
1 I( 9),I( 10),I( 11),I( 12),I( 13),I( 14),I( 15),I( 16),
1 I( 17),I( 18),I( 19),I( 20),I( 21),I( 22),I( 23),I( 24),
2 I( 25),I( 26),I( 27),I( 28),I( 29),I( 30),I( 31),I( 32),
3 I( 33),I( 34),I( 35),I( 36),I( 37),I( 38),I( 39),I( 40),
4 I( 41),I( 42),I( 43),I( 44),I( 45),I( 46),I( 47),I( 48),
5 I( 49),I( 50),I( 51),I( 52),I( 53),I( 54),I( 55),I( 56),
6 I( 57),I( 58),I( 59),I( 60),I( 61),I( 62),I( 63),I( 64),
7 I( 65),I( 66),I( 67),I( 68),I( 69),I( 70),I( 71),I( 72),
8 I( 73),I( 74),I( 75),I( 76),I( 77),I( 78),I( 79),I( 80)/
1 1, 5, 8, 16, 16, 1, 2, 3,
1 4, 5, 0, 2, 3, 4, 5, 0,
1 2, 3, 4, 3, 0, 2, 3, 2,
2 5, 0, 0, 3, 4, 3, 0, 0,
3 1, 4, 5, 0, 0, 3, 2, 3,
4 0, 0, 3, 4, 3, 0, 0, 0,
5 4, 5, 0, 0, 0, 2, 3, 0,
6 0, 0, 4, 5, 0, 0, 0, 4,
7 1, 0, 0, 0, 2, 3, 0, 0,
8 0, 4, 5, 0, 0, 0, 0, 3/
DATA I( 81),I( 82),I( 83),I( 84),I( 85),I( 86),I( 87),I( 88),
1 I( 89),I( 90),I( 91),I( 92),I( 93),I( 94),I( 95),I( 96),
1 I( 97),I( 98),I( 99),I(100),I(101),I(102),I(103),I(104),
2 I(105),I(106),I(107),I(108),I(109),I(110),I(111),I(112),
3 I(113),I(114),I(115),I(116),I(117),I(118),I(119),I(120),
4 I(121),I(122),I(123),I(124),I(125),I(126),I(127),I(128),
5 I(129),I(130),I(131),I(132),I(133),I(134),I(135),I(136),
6 I(137),I(138),I(139),I(140),I(141),I(142),I(143),I(144),
7 I(145)/
1 0, 0, 0, 4, 5, 2, 3, 3,
1 2, 0, 0, 1, 1, 5, 4, 0,
1 4, 5, 4, 3, 0, 2, 4, 3,
2 2, 0, 0, 3, 3, 1, 0, 0,
3 2, 2, 6, 0, 0, 2, 1, 5,
4 0, 0, 1, 1, 4, 0, 0, 0,
5 6, 4, 0, 0, 0, 4, 3, 0,
6 0, 0, 4, 3, 0, 0, 0, 3,
7 2/
DATA I(146),I(147),I(148),I(149),I(150),I(151),I(152),I(153),
1 I(154),I(155),I(156),I(157),I(158),I(159),I(160),I(161),
1 I(162),I(163),I(164),I(165),I(166),I(167),I(168),I(169),
2 I(170),I(171),I(172),I(173),I(174),I(175),I(176),I(177),
3 I(178),I(179),I(180),I(181),I(182),I(183),I(184),I(185),
4 I(186),I(187),I(188),I(189),I(190),I(191),I(192),I(193),
5 I(194),I(195),I(196),I(197),I(198),I(199),I(200),I(201),
6 I(202),I(203),I(204),I(205),I(206),I(207),I(208),I(209),
7 I(210),I(211),I(212),I(213),I(214),I(215),I(216),I(217),
8 I(218),I(219),I(220),I(221),I(222),I(223),I(224),I(225)/
1 0, 0, 0, 2, 2, 0, 0, 0,
1 2, 2, 0, 0, 0, 0, 1, 0,
1 0, 0, 0, 0, 2, 3, 4, 5,
2 6, 0, 3, 4, 3, 4, 0, 1,
3 2, 3, 4, 0, 1, 2, 3, 4,
4 0, 1, 2, 3, 4, 0, 0, 2,
5 3, 2, 0, 0, 2, 3, 2, 0,
6 0, 2, 3, 2, 0, 0, 0, 1,
7 2, 0, 0, 0, 1, 2, 0, 0,
8 0, 1, 2, 0, 0, 0, 1, 2/
DATA I(226),I(227),I(228),I(229),I(230),I(231),I(232),I(233),
1 I(234),I(235),I(236),I(237),I(238),I(239),I(240),I(241),
1 I(242),I(243),I(244),I(245),I(246),I(247),I(248),I(249),
2 I(250),I(251),I(252),I(253),I(254),I(255),I(256),I(257),
3 I(258),I(259),I(260),I(261),I(262),I(263),I(264),I(265),
4 I(266),I(267),I(268),I(269),I(270),I(271),I(272),I(273),
5 I(274),I(275),I(276),I(277),I(278),I(279),I(280),I(281),
6 I(282),I(283),I(284),I(285),I(286),I(287),I(288),I(289),
7 I(290)/
1 0, 0, 0, 1, 2, 0, 0, 0,
1 1, 2, 0, 0, 0, 1, 2, 0,
1 0, 0, 1, 2, 1, 1, 1, 1,
2 1, 4, -7, -1, 21, 7, -21, 21,
3 -8, -1, -8, 0, 0, 28, -9, -49,
4 7, 0, 0, 1, 11, -25, -9, -25,
5 0, 0, 0, 0, -10, -10, -5, 45,
6 15, 0, 0, 0, 0, 0, 16, 0,
7 0/
DATA I(291),I(292),I(293),I(294),I(295),I(296),I(297),I(298),
1 I(299),I(300),I(301),I(302),I(303),I(304),I(305),I(306),
1 I(307),I(308),I(309),I(310),I(311),I(312),I(313),I(314),
2 I(315),I(316),I(317),I(318),I(319),I(320),I(321),I(322),
3 I(323),I(324),I(325),I(326),I(327),I(328),I(329),I(330),
4 I(331),I(332),I(333),I(334),I(335),I(336),I(337),I(338),
5 I(339),I(340),I(341),I(342),I(343),I(344),I(345),I(346),
6 I(347),I(348),I(349),I(350),I(351),I(352),I(353),I(354),
7 I(355),I(356),I(357),I(358),I(359),I(360),I(361),I(362),
8 I(363),I(364),I(365),I(366),I(367),I(368),I(369),I(370)/
1 7, 20, -560, 224, -112, -21, -56, 16,
1 0, 0, 0, 0, 0, 0, 0, 0,
1 3, 0, 0, -56, -448, 49, -64, -14,
2 0, 0, 0, 0, 0, 0, 0, 0,
3 0, 26, 308, 110, 220, 0, 0, 0,
4 7, -154, -28, -132, 0, 0, 0, 0,
5 0, -9, 297, 90, -405, 45, 0, 0,
6 3, 66, -507, -3, -60, 15, 0, 0,
7 0, 5, 315, -14, -175, -21, -56, -25,
8 0, 70, 385, -105, 28, 63, 0, 0/
DATA I(371),I(372),I(373),I(374),I(375),I(376),I(377),I(378),
1 I(379),I(380),I(381),I(382),I(383),I(384),I(385),I(386),
1 I(387),I(388),I(389),I(390),I(391),I(392),I(393),I(394),
2 I(395),I(396),I(397),I(398),I(399),I(400),I(401),I(402),
3 I(403),I(404),I(405),I(406),I(407),I(408),I(409),I(410),
4 I(411),I(412),I(413),I(414),I(415),I(416),I(417),I(418),
5 I(419),I(420),I(421),I(422),I(423),I(424),I(425),I(426),
6 I(427),I(428),I(429),I(430),I(431),I(432),I(433),I(434),
7 I(435)/
1 0, 0, 0, 315, 0, 0, 135, 0,
1 0, 189, 0, 0, 105, 0, 1, 0,
1 0, 0, 200, 15, 120, 60, -35, 10,
2 0, -25, 88, 200, 45, 20, 0, 1,
3 0, 0, 0, 16, -200, -14, -14, 25,
4 0, 0, 0, 120, -42, 42, 0, 0,
5 1, -105, -175, -175, -75, 0, 0, 0,
6 0, 0, 0, 0, 0, 0, 0, 0,
7 0/
DATA I(436),I(437),I(438),I(439),I(440),I(441),I(442),I(443),
1 I(444),I(445),I(446),I(447),I(448),I(449),I(450),I(451),
1 I(452),I(453),I(454),I(455),I(456),I(457),I(458),I(459),
2 I(460),I(461),I(462),I(463),I(464),I(465),I(466),I(467),
3 I(468),I(469),I(470),I(471),I(472),I(473),I(474),I(475),
4 I(476),I(477),I(478),I(479),I(480),I(481),I(482),I(483),
5 I(484),I(485),I(486),I(487),I(488),I(489),I(490),I(491),
6 I(492),I(493),I(494),I(495),I(496),I(497),I(498),I(499),
7 I(500),I(501),I(502),I(503),I(504),I(505),I(506),I(507),
8 I(508),I(509),I(510),I(511),I(512),I(513),I(514),I(515)/
1 154, -110, 0, 0, 231, 286, 924, -308,
1 220, -396, 0, 0, 0, 0, 0, 0,
1 -66, -90, 180, 0, 99, -99, 891,-5577,
2 -405, -9, 0, 45, 45, 0, 0, 0,
3 0, 224, 0, -56, 0, -220, 1680, 0,
4 112, 0, -21, 21, 0, -16, 0, 0,
5 -70, 14, -84, 56, 0, 55, 945, 4235,
6 -175, -315, 0, -21, 189, -25, 0, 0,
7 25, -15, -135, 35, 0, 0, 600, 968,
8 120, 600, 0, 60, 60, 10, 3, 0/
DATA I(516),I(517),I(518),I(519),I(520),I(521),I(522),I(523),
1 I(524),I(525),I(526),I(527),I(528),I(529),I(530),I(531),
1 I(532),I(533),I(534),I(535),I(536),I(537),I(538),I(539),
2 I(540),I(541),I(542),I(543),I(544),I(545),I(546),I(547),
3 I(548),I(549),I(550),I(551),I(552),I(553),I(554),I(555),
4 I(556),I(557),I(558),I(559),I(560),I(561),I(562),I(563),
5 I(564),I(565),I(566),I(567),I(568),I(569),I(570),I(571),
6 I(572),I(573),I(574),I(575),I(576),I(577),I(578),I(579),
7 I(580)/
1 0, -56, 0, -64, 0, 0, 0, 0,
1 448, 0, -9, -49, 0, 14, 0, 0,
1 0, -16, 126, 14, 0, 0, 0, 0,
2 -200, 360, 0, -14, 126, 25, 0, 0,
3 0, 0, 0, 0, -175, 182, -728,-2184,
4 0, 0, 0, 0, 0, 0, 0, 0,
5 0, 0, 0, 0, 0, 220, 880, 0,
6 -400, 0, -9, -25, 0, 0, 0, 0,
7 0/
DATA I(581),I(582),I(583),I(584),I(585),I(586),I(587),I(588),
1 I(589),I(590),I(591),I(592),I(593),I(594),I(595),I(596),
1 I(597),I(598),I(599),I(600),I(601),I(602),I(603),I(604),
2 I(605),I(606),I(607),I(608),I(609),I(610),I(611),I(612),
3 I(613),I(614),I(615),I(616),I(617),I(618),I(619),I(620),
4 I(621),I(622),I(623),I(624),I(625),I(626),I(627),I(628),
5 I(629),I(630),I(631),I(632),I(633),I(634),I(635),I(636),
6 I(637),I(638),I(639),I(640),I(641),I(642),I(643),I(644),
7 I(645),I(646),I(647),I(648),I(649),I(650),I(651),I(652),
8 I(653),I(654),I(655),I(656),I(657),I(658),I(659),I(660)/
1 0, 0, 0, -45, -5, 845,-1215, 275,
1 495, 0, -11, 99, 0, 0, 0, 0,
1 0, 0, 0, 0, 33, -7,-2541, 105,
2 -525, 0, 35, 35, -15, 0, 0, 0,
3 0, 0, 0, 0, 0, -800, 0, -160,
4 0, -5, 45, 0, 30, 0, 0, 0,
5 0, 0, 0, 0, 0, -100, 1452, 180,
6 -100, 0, -10, 90, 15, -2, 0, 0,
7 0, 0, 0, 0, 0, 0, 0, 0,
8 0, 6, 0, 0, 0, 0, 0, 0/
DATA I(661),I(662),I(663),I(664),I(665),I(666),I(667),I(668),
1 I(669),I(670),I(671),I(672),I(673),I(674),I(675),I(676),
1 I(677),I(678),I(679),I(680),I(681),I(682),I(683),I(684),
2 I(685),I(686),I(687),I(688),I(689),I(690),I(691),I(692),
3 I(693),I(694),I(695),I(696),I(697),I(698),I(699),I(700),
4 I(701),I(702),I(703),I(704),I(705),I(706),I(707),I(708),
5 I(709),I(710),I(711),I(712),I(713),I(714),I(715),I(716),
6 I(717),I(718),I(719)/
1 0, 0, 0, 0, 0, 0, 0, 0,
1 0, 0, -14, -56, 0, 0, 1, 1,
1 1, 1, 1, 5, 15, 2, 42, 70,
2 60, 140, 30, 10, 60, 1680, 840, 1680,
3 210, 360, 90, 10, 504, 1008, 560, 280,
4 140, 1, 1, 1, 420, 700, 700, 300,
5 550, 1100, 8400,18480, 2800, 2800, 50, 350,
6 700, 150, 5/
C
return
END
c
c----------------------------------------------------------------------
c cfpd
c-----------------------------------------------------------------------
c
SUBROUTINE CFPD(N,IVI,LI,ISI,IVJ,LJ,ISJ,COEFP)
C
C
C THIS SUBROUTINE EVALUATES THE COEFFICIENTS OF FRACTIONAL PARENTAGE
C FOR EQUIVALENT D SHELL ELECTRONS FROM TABLES GIVEN IN J.C.SLATER
C QUANTUM THEORY OF ATOMIC STRUCTURE,VOLUME2,P350(1960)
C IN THE SUBROUTINE LIST N,THE NO.OF ELECTRONS,V THE SENIORITY QUAN
C TUM NO.,L THE ANGULAR MOMENTUM QUANTUM NO.,(2S+1) THE SPIN QUANTUM
C NO. OF BOTH THE STATE IN QUESTION AND ITS PARENT STATE ARE INPUT
C PARAMETERS THE RESULT IS OUTPUT AS COEFP
C
COMMON/FRPAR2/K(5),IV(5,16),IL(5,16),IS(5,16),ITAB1(5,1),ITAB2(8,5
1 ),ITAB3(16,8),ITAB4(16,16),NORM1(5),NORM2(8),NORM3(16),NORM4(16)
COMMON/INFORM/IREAD,IWRITE,IPUNCH
C
C
C TEST IF N IS IN THE FIRST HALF OF SHELL
C
IF(N-6) 40,103,103
C
C TEST IF STATE IN QUESTION IS ALLOWED
C IF IT IS, IDENTIFY THE ROW OF THE TABLE BY J1
C
40 J = 0
101 J = J+1
IF(J-17) 41,11,11
41 IF(IV(N,J)-IVI) 101,42,101
42 IF(IL(N,J)-LI) 101,43,101
43 IF(IS(N,J)-ISI) 101,44,101
44 J1=J
C
C TEST IF PARENT STATE IS ALLOWED
C IF IT IS, IDENTIFY THE COLUMN OF THE TABLE BY J2
C
IF(N-1) 45,30,45
30 IF(IVJ) 11,31,11
31 IF(LJ) 11,32,11
32 IF(ISJ-1) 11,1,11
45 J = 0
102 J = J+1
IF(J-17) 46,11,11
46 IF(IV(N-1,J)-IVJ) 102,47,102
47 IF(IL(N-1,J)-LJ) 102,48,102
48 IF(IS(N-1,J)-ISJ) 102,49,102
49 J2=J
GO TO 100
C
C SIMILAR SETTING OF J1 AND J2 IF N IS IN SECOND HALF OF SHELL
C
103 M = 10-N
IF(M) 36,33,36
33 IF(IVI) 11,34,11
34 IF(LI) 11,35,11
35 IF(ISI-1) 11,37,11
36 J = 0
104 J = J+1
IF(J-17) 50,11,11
50 IF(IV(M,J)-IVI) 104,51,104
51 IF(IL(M,J)-LI) 104,52,104
52 IF(IS(M,J)-ISI) 104,53,104
53 J1=J
37 J = 0
105 J = J+1
IF(J-17) 54,11,11
54 IF(IV(M+1,J)-IVJ) 105,55,105
55 IF(IL(M+1,J)-LJ) 105,56,105
56 IF(IS(M+1,J)-ISJ) 105,57,105
57 J2=J
C
C IDENTIFY THE F.P.C AS A UNIQUE ELEMENT OF ITABN(J1,J2)
C
100 GO TO (1,2,3,4,5,12,12,12,12,1),N
1 COEFP = 1.0
GO TO 10
2 COEFP = ITAB1(J1,J2)
IF(COEFP) 60,10,81
60 COEFP = - SQRT(-COEFP/NORM1(J1))
GO TO 10
81 COEFP = SQRT(COEFP/NORM1(J1))
GO TO 10
3 COEFP = ITAB2(J1,J2)
IF(COEFP) 61,10,82
61 COEFP = -SQRT(-COEFP/NORM2(J1))
GO TO 10
82 COEFP = SQRT(COEFP/NORM2(J1))
GO TO 10
4 COEFP = ITAB3(J1,J2)
IF(COEFP) 62,10,83
62 COEFP = -SQRT(-COEFP/NORM3(J1))
GO TO 10
83 COEFP = SQRT(COEFP/NORM3(J1))
GO TO 10
5 COEFP = ITAB4(J1,J2)
IF(COEFP) 63,10,84
63 COEFP = -SQRT(-COEFP/NORM4(J1))
GO TO 10
84 COEFP = SQRT(COEFP/NORM4(J1))
GO TO 10
C
C USE RECURRENCE RELATION EQUATION (19) OF RACAH FOR SECOND HALF OF
C SHELL
C
12 ISIGN = (-1)**((ISI+ISJ-7)/2 +LI +LJ)
FACTOR = SQRT(((11.0-N)*ISJ*(2*LJ+1.0))/(N*ISI*(2*LI+1.0)))
M1 =N-5
GO TO(6,7,8,9),M1
6 COEFP = ITAB4(J2,J1)
IF(COEFP) 64,10,85
64 COEFP = -SQRT(-COEFP/NORM4(J2))
GO TO 86
85 COEFP = SQRT(COEFP/NORM4(J2))
86 COEFP = COEFP*ISIGN*FACTOR
IF(MOD((IVJ-1)/2,2)) 87,10,87
87 COEFP = -COEFP
GO TO 10
7 COEFP = ITAB3(J2,J1)
IF(COEFP) 65,10,88
65 COEFP = -SQRT(-COEFP/NORM3(J2))
GO TO 89
88 COEFP = SQRT(COEFP/NORM3(J2))
89 COEFP = COEFP * ISIGN * FACTOR
GO TO 10
8 COEFP = ITAB2(J2,J1)
IF(COEFP) 66,10,90
66 COEFP = -SQRT(-COEFP/NORM2(J2))
GO TO 91
90 COEFP = SQRT(COEFP/NORM2(J2))
91 COEFP = COEFP * ISIGN * FACTOR
GO TO 10
9 COEFP = ITAB1(J2,J1)
IF(COEFP) 67,10,92
67 COEFP = -SQRT(-COEFP/NORM1(J2))
GO TO 93
92 COEFP = SQRT(COEFP/NORM1(J2))
93 COEFP = COEFP * ISIGN * FACTOR
GO TO 10
C
11 continue
c 106 FORMAT(37H FAIL IN CFPD AT 11 UNALLOWED STATE)
c 11 WRITE(IWRITE,106)
coefp=9.9
10 CONTINUE
RETURN
END
▶EOF◀