|
|
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: 71424 (0x11700)
Types: TextFile
Names: »per«, »per11«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
└─⟦b2ec5d50f⟧
└─⟦this⟧ »per«
└─⟦this⟧ »per11«
c program 11 aakp
c
c aakpreduced tensor matrix elements 2. a new version af aakf (reduced
c tensor matrix elements) adapted to spectroscopic notation, with
c inclusion of the evaluation of matrix elements of tensor products,
c and checking of the input data. k.m.s. saxena
c ref. in comp. phys. commun. 9 (1975) 370 and
c comp. phys. commun. 13 (1977) 231 and
c comp. phys. commun. 13 (1977) 289 and
c comp. phys. commun. 16 (1978) 57.
c
C
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C * *
C * FABUARY 1975 *
C * *
C * A NEW VERSION OF THE PROGRAM (ORIGIONALLY WRITTEN BY ROBB, *
C * W.D.) TO EVALUATE THE REDUCED MATRIX ELEMENTS OF SUMMATIONS *
C * OF ONE-PARTICLE TENSOR OPERATORS. *
C * *
C * *
C * BY *
C * *
C * *
C * C. FROESE FISCHER AND K.M.S. SAXENA *
C * *
C * DEPARTMENT OF APPLIED MATHEMATICS *
C * UNIVERSITY OF WATERLOO, WATERLOO, ONTARIO N2L 3G1 *
C * C A N A D A. *
C * *
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C * *
C * THE PURPOSE OF THE PRESENT VERSION IS TWO-FOLD. FIRSTLY *
C * THE FORMATS OF THE INPUT-DATA AND THE PRINTED-OUTPUT ARE CHANGED *
C * TO MORE READABLE AND COMPACT SPECTROSCOPIC NOTATION. SECONDLY, IT *
C * MODIFIES THE PUNCHED-OUTPUT FORMATS SO THAT THE PUNCHED RESULTS *
C * CAN BE DIRECTLY READ AND USED BY OTHER PROGRAMS SUCH AS A TRANSI- *
C * TION PROBABILITY PROGRAM. *
C * *
C * THE PRESENT VERSION IS AN IBM S360 DOUBLE-PRECISION *
C * PROGRAM AND USES THE FOLLOWING CPC LIBRARY PROGRAMS, WHICH, FOR *
C * THE PRESENT USE, HAVE ALL BEEN CONVERTED TO DOUBLE-PRECISION *
C * PROGRAMS. *
C * *
C * (1) ACQB, THE P-SHELL CFP PROGRAM: ALLISON (CPC V1(1969)15). *
C * (2) ACRN, THE NEW D-SHELL CFP PROGRAM: CHIVERS (CPC V6(1973)88). *
C * (3) AAGD, THE NJSYM PROGRAM: BURKE (CPC V1(1970)241), ADAPTED *
C * FOR WEIGHTS USING AAGD0001: HIBBERT (CPC V2(1971)180), *
C * WITH AAGD0002: GRANT (CPC V5(1973)161) FOR IMPROVED *
C * RACAH COEFFICIENT ROUTINE, AND WITH THE CORRECTION *
C * AAGD000A: CPC V2(1971)173. *
C * *
C * IT IS TO BE NOTED HERE THAT THE ORIGIONAL VERSION OF *
C * THIS PROGRAM DUE TO ROBB DID NOT USE THE ADAPTATION AAGD0002 OF *
C * GRANT FOR AN IMPROVED RACAH COEFFICIENT ROUTINE. *
C * *
C * IT MAY ALSO BE NOTED HERE THAT THE RECENTLY PUBLISHED *
C * CORRECTIONS (DUE TO HIBBERT, 1975) TO THE ROBB'S PROGRAM HAVE *
C * BEEN INCLUDED IN THIS PRESENT VERSION. *
C * *
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C * *
C * CONVERSION TO SINGLE-PRECISION:- *
C * ============================== *
C * *
C * AS HAS BEEN SAID ABOVE THIS PROGRAM IS AN IBM S360 *
C * DOUBLE-PRECISION PROGRAM. HOWEVER, ON COMPUTERS WITH A WORD *
C * LENGTH OF 48 BITS OR MORE IT SHOULD BE USED IN SINGLE-PRECISION *
C * ONLY. IN ORDER TO CONVERT THIS PROGRAM TO A SINGLE-PRECISION *
C * PROGRAM THE FOLLOWING SHOULD BE DONE: *
C * *
C * (1) REMOVE ALL 'IMPLICIT REAL*8(A-H,O-Z)' CARDS. *
C * (2) REMOVE '*8' FROM THE FUNCTION DEFINITION CARDS, FOR *
C * EXAMPLE, 'REAL FUNCTION TRITST*8(I,J)' WILL BE REPLACED *
C * BY 'REAL FUNCTION TRITST(I,J)' *
C * (3) CHANGE SYSTEM FUNCTION NAMES 'DSQRT','DABS','DFLOAT', ETC. *
C * TO 'SQRT','ABS','FLOAT', ETC. *
C * (4) CHANGE DOUBLE PRECISION CONSTANTS TO SINGLE PRECISION *
C * CONTANTS. *
C * (5) CHANGE D-FORMAT CODES TO E-FORMAT CODES. *
C * (6) WHEN USING THE SINGLE-PRECISION VERSION OF THIS PROGRAM, *
C * THE OTHER CPC LIBRARY PROGRAMS (ACQB,ACRN, AND AAGD ETC.) *
C * USED, OBVIOUSLY, NEED NOT BE CONVERTED TO DOUBLE-PRECISION *
C * PROGRAMS. *
C * *
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C * *
C * THE PROGRAM STRUCTURE:- *
C * ===================== *
C * *
C * THE PROGRAM STRUCTURE REMAINS ESSENTIALLY THE SAME AS *
C * IN THE ORIGIONAL VERSION OF THE PROGRAM EXCEPT FOR THE FACT THAT *
C * THE SUBROUTINE 'PRTCON' HAS BEEN PULLED OUT AND THE INPUT-DATA *
C * READ FOR THE INITIAL- AND THE FINAL-STATE IN THE SUBROUTINES *
C * 'GSTATE' AND 'ESTATE' RESPECTIVELY IS NOW PRINTED IN THESE VERY *
C * SUBROUTINES IMMEDIATELY AFTER IT IS READ. *
C * *
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C * *
C * MODIFICATIONS TO THE COMMON BLOCKS:- *
C * ================================== *
C * *
C * THE COMMON BLOCK /STATEM/ HAS BEEN ENLARGED TO INCLUDE *
C * THE FOLLOWING FIVE ADDITIONAL VARIABLES. *
C * *
C * (1) MMCORB(J,I),J=1,MOCCSH(I),I=1,MCFG, WHICH CONTAINS THE 3 *
C * CHARACTER ALPHANUMERIC *
C * LABELS SUCH AS '1S ', *
C * '2P ','2P1', ETC. FOR *
C * THE OCCUPIED SHELLS IN *
C * THE MCFG INITIAL-STATE *
C * CONFIGURATIONS. *
C * (2) KKCORB(J,I),J=1,KOCCSH(I),I=1,KCFG, WHICH CONTAINS THE 3 *
C * CHARACTER ALPHANUMERIC *
C * LABELS SUCH AS '1S ', *
C * '2P ','2P1', ETC. FOR *
C * THE OCCUPIED SHELLS IN *
C * THE KCFG FINAL-STATE *
C * CONFIGURATIONS. *
C * (3) IAJCMP(I),I=1,MAXOR, WHICH CONTAINS THE THREE CHARACTER *
C * ALPHANUMERIC LABELS SUCH AS '1S ', *
C * '2P ','2P1', ETC. OF ALL THE MAXOR *
C * SHELLS INVOLVED IN THE INITIAL- AND *
C * FINAL-STATES. *
C * (4) LOCATE(I),I=1,MAXOR, WHICH CONTAINS THE EXTERNAL INDICES, *
C * IF ANY, OF THE MAXOR SHELLS WHICH *
C * ARE STORED IN IAJCMP. THESE INDICES *
C * ARE USED ONLY WHEN THE PUNCHED OUTPUT *
C * IS PRODUCED. *
C * (5) JAJCMP(I,J),I=1,MAXOR,J=1,3, WHICH CONTAINS THE INDIVIDUAL *
C * THREE CHARACTERS OF EACH OF *
C * THE MAXOR LABELS OF THE SHELLS *
C * STORED IN IAJCMP(I),I=1,MAXOR. *
C * *
C * THE COMMON BLOCK /MEDFN/ HAS BEEN ENLARGED TO INCLUDE *
C * THE FOLLOWING TWO ADDITIONAL VARIABLES. *
C * *
C * (1) IJFUL(I),I=1,IHSH, AND *
C * (2) JIFUL(I),I=1,IHSH, WHICH FOR A PARTICULAR MATRIX ELEMENT *
C * CORRESPONDING TO A PAIR OF CONFIGU- *
C * RATIONS (ONE FROM THE INITIAL-STATE *
C * AND THE OTHER FROM THE FINAL-STATE) *
C * STORE THE INDICES OF THE IHSH OCCUPIED *
C * SHELLS, IN IJFUL ARRAY ACCORDING TO *
C * THE NATURAL ORDERING OF THE MAXOR *
C * SHELLS AND IN JIFUL ARRAY ACCORDING *
C * TO THE EXTERNAL ORDERING(GIVEN BY THE *
C * VARIABLE LOCATE) OF THE MAXOR SHELLS. *
C * *
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C * *
C * NEW COMMON BLOCKS:- *
C * ================= *
C * *
C * THE FOLLOWING NEW COMMON BLOCKS HAVE BEEN ADDED IN *
C * THE PRESENT NEW VERSION. *
C * *
C * (1) /SYMM/LANK,LSYM(10) *
C * *
C * THIS CONTAINS A BLANK CHARACTER ' ' (LANK) AND THE *
C * CHARACTERS 'S','P',..,'M' (LSYM), WHICH REPRESENT THE SPEC- *
C * TROSCOPIC SYMMETRY SYMBOLS, ALL IN A1 FORMAT. *
C * *
C * (2) /NVALUE/NVAL(9) *
C * *
C * THIS CONTAINS THE CHARACTERS '1','2',..,'9', ALL IN *
C * A1 FORMAT, REPRESENTING THE NATURAL NUMBERS ONE TO NINE. *
C * *
C * (3) /SPINP/ISPINT,ISPINS *
C * *
C * THIS CONTAINS THE CHARACTERS 'T' (ISPINT) AND 'S' *
C * (ISPINS), BOTH IN A1 FORMAT, REPRESENTING THE SPIN- *
C * INDEPENDENT AND SPIN-DEPENDENT TENSOR OPERATORS. *
C * *
C * (4) /ACFG/ICFG(12) *
C * *
C * THIS CONTAINS THE FOUR CHARACTER STRINGS SUCH AS *
C * 'S(1)','P(3)','D(5)', ETC., ALL IN A4 FORMAT,REPRESENTING *
C * THE VARIOUS BASIC SINGLE-SHELL CONFIGURATIONS. *
C * *
C * (5) /PARAM/ZERO,EPSILO,HALF,ONE *
C * *
C * THIS CONTAINS THE FLOATING POINT DOUBLE-PRECISION *
C * CONSTANTS 0.D0(ZERO), 1.D-08(EPSILO), 0.5D0(HALF), AND *
C * 1.D0(ONE). *
C * *
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C * *
C * NEW ARRAYS:- *
C * ========== *
C * *
C * THE FOLLOWING NEW ARRAYS HAVE BEEN ADDED IN THE *
C * PRESENT NEW VERSION. *
C * *
C * (1) ARRAY M1QN(19) IN SUBROUTINE 'GSTATE':- *
C * *
C * THIS ARRAY TEMPORARILY STORES THE SYMMETRY SYMBOLS *
C * (SUCH AS 'S','P','D', ETC.) FOR THE INTERMEDIATE STATES *
C * OF THE COUPLING SCHEME OF ONE INITIAL-STATE CONFIGURA- *
C * TION AT A TIME. *
C * *
C * (2) ARRAY K1QN(19) IN SUBROUTINE 'ESTATE':- *
C * *
C * THIS IS AN ARRAY FOR THE FINAL-STATE AND IS SIMILAR *
C * TO THE ARRAY M1QN DESCRIBED ABOVE. *
C * *
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C * *
C * INPUT DATA ORGANIZATION FOR THE PRESENT NEW VERSION:- *
C * =================================================== *
C * *
C * FOR EACH RUN CONSISTING OF SEVERAL CASES THE INPUT *
C * DATA (THE DEFINITION OF THE VARIABLES BEING THE SAME AS IN THE *
C * ORIGIONAL VERSION, UNLESS OTHERWISE STATED) IS ORGANIZED AS *
C * FOLLOWS: *
C * *
C * (1) NCASES,IREAD,IWRITE *
C * IN FORMAT(18(1X,I3)). *
C * *
C * THIS DATA CARD IS READ FROM THE CARD-INPUT CHANNEL OF *
C * THE INSTALLATION WHICH IS SET IN THE MAIN PROGRAM BY A FOR- *
C * TRAN STATEMENT(CARD AAKP0431) OF THE TYPE 'IREAD=5'. *
C * *
C * NOTE THAT THE VALUE OF 'IREAD' READ HERE REDEFINES THE *
C * INPUT CHANNEL FOR THE REST OF THE INPUT DATA WHICH FOLLOWS. *
C * *
C * (2) FOR EACH CASE(ICASE=1,NCASES) THE FOLLOWING IS READ NOW. *
C * : *
C * :..(A) KA,ISPIN,MAXOR,IPUNCH,IBUG1,IBUG3,NBUG6 *
C * : IN FORMAT(18(1X,I3)). *
C * : *
C * : HERE 'MAXOR' IS THE TOTAL NUMBER OF THE SHELLS *
C * : INVOLVED IN CONFIGURATIONS DEFINING BOTH THE INITIAL- *
C * : AND/OR THE FINAL-STATES. THE MAXIMUM ALLOWED VALUE *
C * : OF MAXOR IS 21. *
C * : *
C * : THE VALUES FOR NO PUNCHING AND NO DEBUGGING ARE *
C * : A ZERO FOR EACH OF IPUNCH,IBIG1,IBUG3, AND NBUG6. *
C * : THUS, WHEN THESE ZERO VALUES APPLY, ONLY THE FIRST *
C * : THREE VARIABLES NEED BE PUNCHED, BECAUSE A BLANK CHAR- *
C * : ACTER IS READ AS A ZERO. *
C * : *
C * :..(B) IAJCMP(I),I=1,MAXOR *
C * : IN FORMAT(18(1X,A3)). *
C * : *
C * : HERE IAJCMP(I) IS THE THREE CHARACTER ALPHANUMERIC *
C * : LABEL (SUCH AS 2P1, WHERE '1' IS JUST AS A SUBSCRIPT) *
C * : OF THE I-TH SHELL. *
C * : *
C * : IT MAY BE NOTED HERE THAT THESE LABELS NEED NOT *
C * : ALWAYS HAVE A THIRD CHARACTER, DENOTING THE SUBSCRIPT *
C * : OF THE SHELL, AS A NON-BLANK CHARACTER. IF FOR A SHELL *
C * : A SUBSCRIPT IS REDUNDANT, IT MAY BE A BLANK CHARACTER, *
C * : SUCH AS IN '2P '. ALTERNATIVELY, IN A CASE LIKE THIS, *
C * : ONE CAN ASWELL RIGHT-ADJUST THE LABEL AS ' 2P'. *
C * : *
C * :..(C) JAJCMP(I,1),JAJCMP(I,2),JAJCMP(I,3),I=1,MAXOR *
C * : IN FORMAT(18(1X,3A1)). *
C * : *
C * : HERE JAJCMP(I,1),JAJCMP(I,2),AND JAJCMP(I,3) ARE *
C * : THE INDIVIDUAL CHARACTERS (SUCH AS '2', 'P', AND '1' *
C * : IN 2P1) OF THE THREE CHARACTER LABEL OF THE I-TH SHELL. *
C * : THESE ARE USED TO DETERMINE THE ARRAY NJCOMP(I) AND THE *
C * : ARRAY LJCOMP(I). *
C * : *
C * : IT MAY BE NOTED HERE THAT IN (C) WE ACTUALLY READ *
C * : A DUPLICATE OF THE CARD READ IN (B) ABOVE. SUCH A DUP- *
C * : LICATION CAN BE AVOIDED BY USING A FEATURE LIKE REREAD *
C * : OR BACKSPACE, IF THAT IS AVAILABLE AT THE INSTALLATION *
C * : WHERE THIS PROGRAM IS USED. *
C * : *
C * :..(D) LOCATE(I),I=1,MAXOR *
C * : IN FORMAT(18(1X,I3)). *
C * : *
C * : THIS CARD IS READ ONLY IF 'IPUNCH' READ ABOVE IN *
C * : (A) IS NOT ZERO, LOCATE(I) DENOTING THE EXTERNAL INDEX *
C * : OF THE I-TH SHELL WITH WHICH IT WILL BE REFERRED TO *
C * : IN THE PUNCHED INFORMATION. *
C * : *
C * :..(E) WE NOW READ THE FOLLOWING (IN THE SUBROUTINE *
C * : : GSTATE) FOR THE INITIAL-STATE CONSIDERED. *
C * : : *
C * : :..(E1) MCFG *
C * : : IN FORMAT(18(1X,I3)). *
C * : : *
C * : : 'MCFG' IS THE TOTAL NUMBER OF CONFIGURATIONS *
C * : : IN THE INITIAL-STATE, ITS MAXIMUM ALLOWED VALUE *
C * : : BEING 30. *
C * : : *
C * : :..(E2) MOCCSH(I),I=1,MCFG *
C * : : IN FORMAT(18(1X,I3)). *
C * : : *
C * : : MOCCSH(I) IS THE NUMBER OF OCCUPIED SHELLS IN *
C * : : THE I-TH INITIAL-STATE CONFIGURATION. THE MAXIMUM *
C * : : ALLOWED VALUE OF ANY MOCCSH(I) IS 10. *
C * : : *
C * : :..(E3) FOR EACH OF THE INITIAL-STATE CONFIGURATIONS *
C * : : : (I=1,MCFG) WE NOW READ THE FOLLOWING: *
C * : : : *
C * : : :...(E3.1) MMCORB(J,I),MELCSH(J,I),J=1,MOCCSH(I) *
C * : : : IN FORMAT(5(1X,A3,1H(,I2,1H))). *
C * : : : *
C * : : : HERE MMCORB(J,I) IS THE LABEL (SUCH *
C * : : : AS 2P1) OF THE J-TH OCCUPIED SHELL IN *
C * : : : THE I-TH INITIAL-STATE CONFIGURATION AND *
C * : : : MELCSH(J,I) IS THE NUMBER OF ELECTRONS *
C * : : : IN THIS SHELL. *
C * : : : *
C * : : : THE ARRAY MMCORB(J,I) IS USED IN THE *
C * : : : PROGRAM TO DETERMINE THE ARRAY MOCORB(J,I). *
C * : : : *
C * : : :...(E3.2) M1QNRD(J,3,I),M1QN(J),M1QNRD(J,1,I),J=1,M *
C * : : : IN FORMAT(9(1X,4X,I1,A1,I1)), *
C * : : : WHERE M=2*MOCCSH(I)-1 *
C * : : : *
C * : : : HERE WE READ THE COUPLING OF THE CON- *
C * : : : FIGURATION JUST READ ABOVE IN (E3.1). FIRST *
C * : : : THE STATES OF THE EACH OCCUPIED SHELLS AND *
C * : : : THEN THE STATES ARISING OUT OF THE COUPL- *
C * : : : ING OF THESE SHELL-STATES FROM LEFT TO *
C * : : : RIGHT ARE READ, EACH IN TERMS OF THREE VA- *
C * : : : RIABLES: INTEGER M1QNRD(J,3,I), ALPHAMERIC *
C * : : : M1QN(J), AND INTEGER M1QNRD(J,1,I). *
C * : : : *
C * : : : M1QNRD(J,3,I) REPRESENTS THE MULTIPLI- *
C * : : : CITY (2S+1 VALUE, S BEING THE SPIN QUANTUM *
C * : : : NUMBER), M1QNRD(J,1,I) REPRESENTS THE SENI- *
C * : : : ORITY, AND M1QN(J) REPRESENTS THE SYMMETRY *
C * : : : (SUCH AS 'S','P', ETC.) OF THE J-TH INTER- *
C * : : : MEDIATE STATE OF THE COUPLING SCHEME READ. *
C * : : : THE VALUES OF THE L QUANTUM NUMBER OF THESE *
C * : : : INDIVIDUAL STATES ARE EVALUATED FROM THE *
C * : : : THE SYMBOL M1QN OF THE STATES AND THESE *
C * : : : ARE STORED IN M1QNRD(J,2,I). *
C * : : : *
C * : : :..................................................... *
C * : : *
C * : :......................................................... *
C * : *
C * : *
C * :..(F) WE NOW READ (IN THE SUBROUTINE ESTATE) THE DATA *
C * : : AS BELOW FOR THE FINAL-STATE CONSIDERED. THIS DATA IS *
C * : : SIMILAR TO THE ONE READ IN (E) ABOVE FOR THE INITIAL *
C * : : STATE AND THEREFORE THE FULL EXPLANATION IS NOT RE- *
C * : : PEATED BELOW. HOWEVER, IT MAY BE REMARKED HERE THAT *
C * : : THE VARIABLES KCFG, KOCCSH, KKCORB, KELCSH, KOCORB, *
C * : : K1QNRD, AND K1QN DEALT BELOW HAVE THE SIMILAR MEANING *
C * : : AND USEFULNESS AS THE VARIABLES MCFG, MOCCSH, MMCORB, *
C * : : MELCSH, MOCORB, M1QNRD, AND M1QN FOR THE INITIAL *
C * : : STATE CONSIDERED IN (E) ABOVE. IT MAY ALSO BE NOTED *
C * : : THAT THE MAXIMIM VALUES ALLOWED FOR KCFG AND ANY OF *
C * : : OF KOCCSH(I)'S ARE SAME AS THOSE OF MCFG AND ANY OF *
C * : : MOCCSH(I)'S IN (E) ABOVE. *
C * : : *
C * : :..(F1) KCFG *
C * : : IN FORMAT(18(1X,I3)). *
C * : : *
C * : :..(F2) KOCCSH(I),I=1,KCFG *
C * : : IN FORMAT(18(1X,I3)). *
C * : : *
C * : :..(F3) FOR EACH OF THE FINAL-STATE CONFIGURATIONS *
C * : : : (I=1,KCFG) WE NOW READ THE FOLLOWING: *
C * : : : *
C * : : :...(F3.1) KKCORB(J,I),KELCSH(J,I),J=1,KOCCSH(I) *
C * : : : IN FORMAT(5(1X,A3,1H(,I2,1H))). *
C * : : : *
C * : : :...(F3.2) K1QNRD(J,3,I),K1QN(J),K1QNRD(J,1,I),J=1,M *
C * : : : IN FORMAT(9(1X,4X,I1,A1,I1)), *
C * : : : WHERE M=2*KOCCSH(I)-1 *
C * : : : *
C * : : :..................................................... *
C * : : *
C * : :......................................................... *
C * : *
C * :............................................................. *
C * *
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C
C-----------------------------------------------------------------------
C
C *** M A I N
C
C-----------------------------------------------------------------------
C
c
program main external bldata
c
c IMPLICIT REAL*8(A-H,O-Z)
DIMENSION NJCOMP(21),LJCOMP(21),VSHELL(20)
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6,IBUG7,IBUG8,IBUG9
COMMON/DIMEN/KFL1,KFL2,KFL3,KFL4,KFL5,KFL6
COMMON/INFORM/ IREAD,IWRITE,IPUNCH,icheck
COMMON/MEDEFN/IHSH,NJ(10),LJ(10),NOSH1(10),NOSH2(10),J1QN1(19,3),
1J1QN2(19,3),IJFUL(10),JIFUL(10)
COMMON/NBUG/NBUG1,NBUG2,NBUG3,NBUG4,NBUG5,NBUG6,NBUG7,NBUG8,NBUG9
COMMON/STATEM/MOCCSH(30),KOCCSH(30),MOCORB(10,30),KOCORB(10,30),
1MELCSH(10,30),KELCSH(10,30),M1QNRD(19,3,30),K1QNRD(19,3,30),MAXOR
2,MMCORB(10,30),KKCORB(10,30),IAJCMP(21),LOCATE(21),JAJCMP(21,3)
COMMON/SYMM/LANK,LSYM(10)
COMMON/NVALUE/NVAL(9)
COMMON/SPINP/ISPINT,ISPINS
COMMON/PARAM/ZERO,EPSILO,HALF,ONE
615 format(/16h DATA CHECKING: ,
1/16H DATA CHECKING: ,23HTOTAL NUMBER OF ERRORS=,I3,
2/16H DATA CHECKING: /16H DATA CHECKING:
3,27HPROCEEDING TO THE NEXT CASE/16H DATA CHECKING: )
1 FORMAT(18(1X,I3))
3 FORMAT(31X,F12.8,I5,I5,5X,1H<,A3,2H//,A1,1H(,I1,3H)//,A3,2H >)
5 FORMAT(F13.8,3HRI(,2I2,1H,,2I2,1H))
55 FORMAT(1H*)
555 FORMAT( ///32X,40HNUMBER OF TERMS IN THE ABOVE SUMMATIONS=,I3)
6 FORMAT(//9H KA =,I3,38H (ORDER OF SPACE DEPENDENT TENSOR) /
1 9H KB =,I3,38H (ORDER OF SPIN DEPENDENT TENSOR) /
1 9H ISPIN =,I3,38H (=0 ,SPACE-DEPENDENT SINGLE TENSOR /
1 9H ,3X,38H =1 ,SPIN- DEPENDENT SINGLE TENSOR /
1 9H ,3X,38H =2 ,SIMPLE PRODUCT OF ABOVE TENSORS)/
2 9H IPUNCH =,I3,38H (PUNCHED OUTPUT UNIT) /
3 9H IBUG1 =,I3,38H (DEBUG FOR COEFF. OF FP IN CFP PROG.)/
4 9H IBUG3 =,I3,38H (DEBUG IN RECOUPLING PACKAGE) /
5 9H NBUG6 =,I3,38H (DEBUG IN TENSOR PACKAGE) )
7 FORMAT(1H1,37X,29H ******************** CASE,I2,25H ********
1*************)
8 FORMAT(/////9H NCASES =,I3,33H (THE NUMBER OF CASES CONSIDERED)/
1 9H IREAD =,I3,33H (DATA INPUT UNIT) /
2 9H IWRITE =,I3,33H (PRINTED OUTPUT UNIT) //)
9 FORMAT(18(1X,A3))
23 FORMAT(/10H THERE ARE,I3,21H ORBITALS AS FOLLOWS://5X,9HORBITALS:,
1 20X,21(1X,A3))
11 FORMAT(18(1X,3A1))
24 FORMAT(5X,11HN,L VALUES: ,18X,21(2X,2I1))
241 FORMAT(5X,29HORDER USED IN PUNCHED OUTPUT: ,21(1X,I3))
2 FORMAT(1H1,41X,3HSUM/19H < INITIAL STATE //,A1,1H(,I1,78H)// FINAL
1 STATE > = OVER COEFF * WEIGHT(INITIAL,I) * WEIGHT(FINAL,J) * < N
2L//,A1,1H(,I1,8H)//N'L'>)
4 FORMAT( 42X,3HI,J///36X,28HCOEFF I J < NL//
1,A1,1H(,I1,8H)//N'L'>//)
33 FORMAT(31X,F12.8,I5,I5,5X,1H<,A3,1H/,A1,1H(,I1,2H).,A1,1H(,I1,2H)/
1,A3,2H >)
22 FORMAT(1H1,44X,3HSUM/18H < INITIAL STATE /,A1,1H(,I1,2H).,A1,1H(,
1I1,76H)/ FINAL STATE > = OVER COEFF * WEIGHT(INITIAL,I) * WEIGHT(
2FINAL,J) * < NL/,A1,1H(,I1,2H).,A1,1H(,I1,7H)/N'L'>)
44 FORMAT( 45X,3HI,J///36X,27HCOEFF I J < NL/
1,A1,1H(,I1,2H).,A1,1H(,I1,7H)/N'L'>//)
c
c set input and output channels
c
zone readf(150,1,stderror)
zone writef(150,1,stderror)
zone punchf(150,1,stderror)
call zassign(readf,1)
call zassign(writef,7)
call zassign(punchf,8)
call open(readf,4,'readf',0)
call open(writef,4,'writef',0)
call open(punchf,4,'punchf',0)
iread=1
c
KFL1=0
READ(IREAD,1) NCASES,IREAD,IWRITE
C
C PRINT OUT TABLE OF TERMS
C
CALL TMSOUT
C
C READ IN THE NUMBER OF DATA SETS AND THE GENERAL DATA
C
WRITE(IWRITE,8) NCASES,IREAD,IWRITE
DO 1000 ICASE=1,NCASES
WRITE(IWRITE,7) ICASE
READ(IREAD,1) KA,kb,ISPIN,MAXOR,IPUNCH,IBUG1,IBUG3,NBUG6
WRITE(IWRITE,6) KA,kb,ISPIN,IPUNCH,IBUG1,IBUG3,NBUG6
READ(IREAD,9) (IAJCMP(I),I=1,MAXOR)
WRITE(IWRITE,23) MAXOR ,(IAJCMP(I),I=1,MAXOR )
READ(IREAD,11)((JAJCMP(I,J),J=1,3),I=1,MAXOR )
DO 60 I=1,MAXOR
J=3
IF(JAJCMP(I,1).NE.LANK) J=2
DO 59 JJ=1,9
IF(JAJCMP(I,J) .EQ.LSYM(JJ)) LJCOMP(I)=JJ-1
59 IF(JAJCMP(I,J-1).EQ.NVAL(JJ)) NJCOMP(I)=JJ
60 CONTINUE
WRITE(IWRITE,24) (NJCOMP(I),LJCOMP(I),I=1,MAXOR)
IF(IPUNCH.EQ.0) GO TO 65
READ(IREAD,1) (LOCATE(I),I=1,MAXOR)
WRITE(IWRITE,241)(LOCATE(I),I=1,MAXOR)
65 CONTINUE
C
C READ IN INITIAL STATE CONFIGURATIONS ETC. AND PRINT THEM.
C
CALL GSTATE(MCFG)
C
C READ IN FINAL STATE CONFIGURATIONS ETC. AND PRINT THEM.
C
CALL ESTATE(KCFG)
C
C IF ERROR WAS FOUND IN THE INPUT DATA, JUMP TO THE NEXT CASE
C
IF(ICHECK.EQ.0) GO TO 616
WRITE(IWRITE,615) ICHECK
GO TO 1000
C
C CALCULATE THE ELEMENTS OF VSHELL
C
615 IF(ISPIN.EQ.0) WRITE(IWRITE,2) ISPINT,KA,ISPINT,KA
IF(ISPIN.EQ.0) WRITE(IWRITE,4) ISPINT,KA
IF(ISPIN.EQ.1) WRITE(IWRITE,2) ISPINS,KB,ISPINS,KB
IF(ISPIN.EQ.1) WRITE(IWRITE,4) ISPINS,KB
IF(ISPIN.EQ.2)WRITE(IWRITE,22) ISPINT,KA,ISPINS,KB
1 ,ISPINT,KA,ISPINS,KB
IF(ISPIN.EQ.2)WRITE(IWRITE,44) ISPINT,KA,ISPINS,KB
NTERMS=0
DO 10 JI=1,MCFG
DO 20 JF=1,KCFG
C
C SET UP THE OCCUPATION AND COUPLING ARRAYS
C
CALL SETUPE(JI,JF,NJCOMP,LJCOMP)
C
C CALL THE MAIN ROUTINE - TENSOR
C
CALL TENSOR(KA,kb,ISPIN,IRHO,ISIG,VSHELL)
IF(IRHO.EQ.ISIG) GO TO 30
IF(abs(VSHELL(1)).LE.EPSILO) GO TO 20
JRHO=IJFUL(IRHO)
JSIG=IJFUL(ISIG)
KRHO=JIFUL(IRHO)
KSIG=JIFUL(ISIG)
IF(ISPIN.EQ.0) WRITE(IWRITE,3) VSHELL(1),JI,JF,IAJCMP(JRHO),ISPINT
1,ka,IAJCMP(JSIG)
IF(ISPIN.NE.1) WRITE(IWRITE,3) VSHELL(1),JI,JF,IAJCMP(JRHO),ISPINS
1,kb,IAJCMP(JSIG)
if(ispin.eq.2)write(iwrite,33) vshell(1),j1,jf,iajcmp(jrho),ispint
1,ka,ispins,kb,iajcmp(jsig)
C
C PRINT OUT THE RESULTS AND OUTPUT THEM ON CHANNEL IPUNCH IF IPUNCH
C IS NOT EQUAL TO ZERO.
C
NTERMS=NTERMS+1
IF(IPUNCH.NE.0) WRITE(IPUNCH,5) VSHELL(1),KRHO,JI,KSIG,JF
GO TO 20
30 DO 40 IS=1,IHSH
IF(abs(VSHELL(IS)).LE.EPSILO)GO TO 40
JRHO=IJFUL(IS)
KRHO=JIFUL(IS)
IF(ISPIN.EQ.0) WRITE(IWRITE,3)VSHELL(IS),JI,JF,IAJCMP(JRHO),ISPINT
1,KA,IAJCMP(JRHO)
IF(ISPIN.NE.1) WRITE(IWRITE,3)VSHELL(IS),JI,JF,IAJCMP(JRHO),ISPINS
1,kb,IAJCMP(JRHO)
if(ispin.eq.2)write(iwrite,33)vshell(is),j1,jf,iajcmp(jrho),ispint
1,ka,ispins,kb,iajcmp(jrho)
NTERMS=NTERMS+1
IF(IPUNCH.NE.0) WRITE(IPUNCH,5) VSHELL(IS),KRHO,JI,KRHO,JF
40 CONTINUE
20 CONTINUE
10 CONTINUE
WRITE(IWRITE,555) NTERMS
IF(IPUNCH.NE.0) WRITE(IPUNCH,55)
1000 CONTINUE
RETURN
END
c
c-------------------------------------------------------------------
c t e n s o r
c-------------------------------------------------------------------
c
SUBROUTINE TENSOR(KA,kb,ISPIN,IRHO,ISIG,VSHELL)
C
C W. D. ROBB - NOVEMBER 1971
C
C **********************************************************************
C
C A ROUTINE FOR THE EVALUATION OF ANGULAR AND SPIN FACTORS IN THE
C REDUCED MATRIX ELEMENT OF ANY ONE-ELECTRON TENSOR OPERATOR BETWEEN
C ARBITRARILY COUPLED L-S CONFIGURATIONS
C
C***********************************************************************
C
C ** NOTE THAT THE DEFINITIONS OF TENSOR OPERATORS USED ARE THOSE
C OF FANO AND RACAH, IRREDUCIBLE TENSORIAL SETS, ACADEMIC PRESS 1959
C
C***********************************************************************
C
C DIMENSION STATEMENTS
C
c IMPLICIT REAL*8(A-H,O-Z)
DIMENSION L6(40),L7(80),L8(40),LW(6,20),J2STO(10,3),J3STO(10,3),JM
1EM(5),VSHELL(20)
C
C COMMON BLOCKS
C
COMMON/COUPLE/MN1,M0,J1(40),J2(12,3),J3(12,3)
COMMON/INFORM/IREAD,IWRITE,IPUNCH,icheck
COMMON/MEDEFN/IHSH,NJ(10),LJ(10),NOSH1(10),NOSH2(10),J1QN1(19,3)
1,J1QN2(19,3),IJFUL(10),JIFUL(10)
COMMON/NBUG/NBUG1,NBUG2,NBUG3,NBUG4,NBUG5,NBUG6,NBUG7,NBUG8,NBUG9
common/terms/nrows,itab(14),jtab(14),ntab(219),ntab1(10,5),
1 ntab2(11,5)
COMMON/PARAM/ZERO,EPSILO,HALF,ONE
C
203 FORMAT(//7H NJ,LJ ,10(I6,I3))
204 FORMAT(//6H NOSH ,10I4)
205 FORMAT(//6H J1QN ,30I3)
208 FORMAT(// 23H PARENT TERMS NOT FOUND//)
209 FORMAT(//3H J1)
210 FORMAT(24I5)
211 FORMAT(24H J2 J3)
212 FORMAT(3I5,I10,2I5)
213 FORMAT(///26H ORBITAL RECOUPLING COEFF=,E20.8)
214 FORMAT(///23H SPIN RECOUPLING COEFF=,E20.8//)
215 FORMAT(/28H THE CONTRIBUTION FROM SHELL,I2,3H IS,F15.8)
216 FORMAT(//21H THIS IS NOT A PARENT)
217 FORMAT(///8H VSHELL=,8F15.8)
218 FORMAT(//24H FRACTIONAL PARENT TERMS,I2)
219 FORMAT(//49H THE CONTRIBUTION FROM FRACTIONAL PARENTAGE TERMS,I2,
1 3H IS,F15.8)
220 FORMAT(//6H SHELL,I2)
313 FORMAT(19H SPECTATOR SUBSHELL,I3,69H HAS DIFFERENT QUANTUM NUMBERS
1 ON THE TWO SIDES OF THE MATRIX ELEMENT/)
C
AJF=ONE
RML = ZERO
RPL = ZERO
NTOT=0
DO 100 IS=1,IHSH
VSHELL(IS)=ZERO
100 CONTINUE
IHSHP1=IHSH+1
I2HSH=IHSH*2-1
C
C PRINT OUT THE OCCUPATION AND COUPLING ARRAYS
C
IF(NBUG6-1) 101,2,101
2 WRITE(IWRITE,203) (NJ(I),LJ(I),I=1,IHSH)
WRITE(IWRITE,204)(NOSH1(J),J=1,IHSH)
WRITE(IWRITE,204)(NOSH2(J),J=1,IHSH)
WRITE(IWRITE,205) ((J1QN1(J,K),K=1,3),J=1,I2HSH)
WRITE(IWRITE,205) ((J1QN2(J,K),K=1,3),J=1,I2HSH)
C
C TEST FOR AT MOST ONE ELECTRON DIFFERENCE IN CONFIGURATIONS
C
101 NOSHUM=0
DO 102 K=1,IHSH
NOSHUM=NOSHUM+IABS(NOSH1(K)-NOSH2(K))
102 CONTINUE
IF(NOSHUM-2) 103,103,183
C
C TEST FOR TRIANGLE RELATION BETWEEN KA AND TOTAL ANGULAR MOMENTA
C
103 IF(ISPIN.EQ.0) GO TO 198
K=3
kc=kb
if(ispin.eq.2) goto 199
IF(J1QN1(I2HSH,2).NE.J1QN2(I2HSH,2)) GO TO 183
GO TO 199
198 K=2
kc=ka
IF(J1QN1(I2HSH,3).NE.J1QN2(I2HSH,3)) GO TO 183
199 LB=J1QN1(I2HSH,K)-1
NB=J1QN2(I2HSH,K)-1
mb=kc+kc
BTST=TRITST(MB,LB,NB)
IF(BTST.GT.EPSILO) GO TO 183
if(k.eq.2.or.ispin.lt.2) goto 104
k=2
kc=ka
goto 199
104 continue
C
C DETERMINE IRHO AND ISIGMA, THE NUMBERS OF THE OCCUPIED SHELLS
C
IRHO=0
ISIG=0
DO 105 J=1,IHSH
NX=NOSH1(J)-NOSH2(J)+2
GO TO (107,105,106),NX
107 ISIG=J
GO TO 105
106 IRHO=J
105 CONTINUE
IF(IRHO.NE.0 ) GO TO 108
IRHO=1
ISIG=1
108 MEMR = IRHO
C
C THE BEGINNING OF THE LOOP OVER ALL SHELLS
C
109 IF(IRHO.NE.ISIG) GO TO 309
IF(NBUG6-1) 309,4,309
4 WRITE(IWRITE,220) IRHO
309 NTOT=NTOT+1
L1=LJ(IRHO)+1
L2=LJ(ISIG)+1
AJF=DFLOAT(J1QN1(I2HSH,2))/DFLOAT(2*LJ(IRHO)+1)
if(ispin.eq.1) ajf=float(j1qn1(i2hsh,3))*half
if(ispin.eq.2) ajf=ajf*float(j1qn1(i2hsh,3))*half
C
C CHECK THE DIAGONAL CHARACTER OF THE QUANTUM NUMBERS OF SPACTATOR
C SHELLS
C
DO 255 J=1,IHSH
IF(J.EQ.IRHO.OR.J.EQ.ISIG) GO TO 255
DO 256 KK=1,3
IF(J1QN1(J,KK).NE.J1QN2(J,KK)) GO TO 257
256 CONTINUE
255 CONTINUE
GO TO 258
257 IF(NBUG6.EQ.1) WRITE(IWRITE,313) J
IF(IRHO.NE.ISIG) GO TO 190
GO TO 189
258 IF(IRHO-ISIG) 120,111,120
C
C FIND THE PARENT TERMS GIVEN BY ALLOWED J VALUES IN NTAB WITH IRHO
C
111 NELCTS=NOSH1(IRHO)
K1=NTAB1(NELCTS,L1)
KK1=ITAB(K1)
DO 112 JJ1=1,KK1
IJK1=3*(JJ1-1)+JTAB(K1)
DO 113 K=2,3
IJKK=IJK1+K
IF(K.EQ.3) GO TO 114
LA=NTAB(IJKK)
MA=2*LJ(IRHO)+1
NA=J1QN1(IRHO,K)
GO TO 115
114 LA=NTAB(IJKK)-1
MA=1
NA=J1QN1(IRHO,K)-1
115 ATST=TRITST(LA,MA,NA)
IF(ATST.GT.EPSILO) GO TO 116
IF(K-3) 113,118,113
116 JMEM(JJ1)=0
GO TO 112
118 JMEM(JJ1)=1
113 CONTINUE
112 CONTINUE
C
C PARENTAGE CHECK
C
120 IF(IRHO-ISIG) 121,127,121
121 NELCTS=NOSH1(IRHO)
K1=NTAB1(NELCTS,L1)
NELCTS=NOSH2(ISIG)
K2=NTAB1(NELCTS,L2)
KK1=ITAB(K1)
KK2=ITAB(K2)
DO 122 JJ1=1,KK1
IJK1=3*(JJ1-1)+JTAB(K1)
DO 123 K=2,3
IJKK=IJK1+K
MSAM1=NTAB(IJKK)-J1QN2(IRHO,K)
IF(MSAM1.NE.0) GO TO 122
IF(K.EQ.3) GO TO 124
123 CONTINUE
122 CONTINUE
IF(NBUG6-1) 192,7,192
7 WRITE(IWRITE,208)
GO TO 192
124 DO 125 JJ2=1,KK2
IJK2=3*(JJ2-1)+JTAB(K2)
DO 126 K=2,3
IJKK=IJK2+K
MSAM2=NTAB(IJKK)-J1QN1(ISIG,K)
IF(MSAM2.NE.0) GO TO 125
IF(K.EQ.3) GO TO 127
126 CONTINUE
125 CONTINUE
IF(NBUG6-1) 192,8,192
8 WRITE(IWRITE,208)
GO TO 192
C
C SET J2 AND J3 . SAME FOR L AND S
C
127 M1=IHSH-2
M2=2*M1+1
M3=3*IHSH-1
M4=M3+1
M5=M3+2
M10=M5+1
MN1=M10+1
J2(1,1)=M10
J2(1,2)=MN1
J2(1,3)=M5
J2(2,1)=IRHO
J2(2,2)=M5
J2(2,3)=M3
J3(1,1)=ISIG
J3(1,2)=M10
J3(1,3)=M4
IF(IRHO-1) 128,129,128
129 J2(3,1)=M3
GO TO 130
128 J2(3,1)=1
130 IF(IRHO-2) 131,132,131
132 J2(3,2)=M3
GO TO 133
131 J2(3,2)=2
133 J2(3,3)=IHSHP1
IF(ISIG-1) 134,135,134
135 J3(2,1)=M4
GO TO 136
134 J3(2,1) = 1
136 IF(ISIG-2) 137,138,137
138 J3(2,2)=M4
GO TO 139
137 J3(2,2)=2
139 J3(2,3)=2*IHSH
IF(IHSH-3) 149,140,140
140 DO 148 J=4,IHSHP1
L=J-1
J2(J,1)=M1+L
J2(J,3)=M1+J
J3(L,1)=M2+L
J3(L,3)=M2+J
IF(IRHO-L) 142,143,142
143 J2(J,2)=M3
GO TO 144
142 J2(J,2)=L
144 IF(ISIG-L) 145,146,145
146 J3(L,2)=M4
GO TO 148
145 J3(L,2)=L
148 CONTINUE
149 M6=IHSHP1
J3(M6,1)=M3-1
J3(M6,2)=MN1
J3(M6,3)=I2HSH
IF(IHSH-1) 450,451,450
451 J3(M6,1) = M4
J3(M6,3) = M3
450 DO 150 J=1,IHSHP1
DO 151 K=1,3
J2STO(J,K)=J2(J,K)
J3STO(J,K)=J3(J,K)
151 CONTINUE
150 CONTINUE
C
C RECOUPLING COEFFICIENTS
C
JMEM1=J1QN1(IRHO,1)
JMEM2=J1QN1(IRHO,2)
JMEM3=J1QN1(IRHO,3)
JMEM4=J1QN2(ISIG,1)
JMEM5=J1QN2(ISIG,2)
JMEM6=J1QN2(ISIG,3)
IF(IRHO-ISIG) 154,152,154
C
C BEGINNING OF LOOP OVER ALL PARENT TERMS
C
152 JJ1=1
1152 IF(NBUG6-1) 12,11,12
11 WRITE(IWRITE,218) JJ1
12 IF(JMEM(JJ1).EQ.1) GO TO 153
IF(NBUG6-1) 186,16,186
16 WRITE(IWRITE,216)
GO TO 186
153 IJK1=3*(JJ1-1)+JTAB(K1)
NI1=NTAB(IJK1+1)
NI2=NTAB(IJK1+2)
NI3=NTAB(IJK1+3)
J1QN2(IRHO,1)=NI1
J1QN1(ISIG,1)=NI1
J1QN2(IRHO,2)=NI2
J1QN1(ISIG,2)=NI2
J1QN2(IRHO,3)=NI3
J1QN1(ISIG,3)=NI3
154 K=2
M7=M3-IHSH
M9=M7+1
M11=M3-1
M12=IHSH-1
RECUPS=ONE
M0=M6+1
C
C SET UP THE J1 ARRAY FOR THE ANGULAR AND SPIN RECOUPLING
C COEFFICIENTS
C
155 IF(K-3) 156,157,157
156 J1(M5)=2*LJ(IRHO)+1
J1(M10)=2*LJ(ISIG)+1
J1(MN1)=2*KA+1
IF(ISPIN.eq.1) J1(MN1)=1
J1(M3)=JMEM2
J1(M4)=JMEM5
IF(IRHO.EQ.ISIG) GO TO 158
J1(M3)=J1QN1(IRHO,K)
J1(M4)=J1QN2(ISIG,K)
GO TO 158
157 J1(M5)=2
J1(M10)=2
j1(mn1)=kb+kb+1
if(ispin.eq.1) j1(mn1)=1
J1(M3)=JMEM3
J1(M4)=JMEM6
IF(IRHO.EQ.ISIG) GO TO 158
J1(M3)=J1QN1(IRHO,K)
J1(M4)=J1QN2(ISIG,K)
158 DO 161 J=1,IHSH
IF(IRHO-J) 160,159,160
159 J1(J)=J1QN2(IRHO,K )
GO TO 161
160 J1(J)=J1QN1(J,K)
161 CONTINUE
IF(IHSH.EQ.1) GO TO 197
DO 162 J=M6,M7
J1(J)=J1QN1(J,K)
162 CONTINUE
DO 163 J=M9,M11
JM12=J-M12
J1(J)=J1QN2(JM12,K)
163 CONTINUE
C
C PRINT OUT THE J1,J2 AND J3 ARRAYS
C
197 IF(NBUG6-1) 304,9,304
9 IF(K-3) 165,164,164
165 IF(NBUG6-1) 304,17,304
17 WRITE(IWRITE,209)
WRITE(IWRITE,210) (J1(J),J=1,MN1)
WRITE(IWRITE,211)
DO 166 I=1,IHSHP1
WRITE(IWRITE,212) ((J2(I,J),J=1,3),(J3(I,J),J=1,3))
166 CONTINUE
304 CONTINUE
C
C EVALUATE ORBITAL AND SPIN RECOUPLING COEFFICIENTS
C
164 CALL NJSYM(J6C,J7C,J8C,JWC,L6,L7,L8,LW,RECUP)
RECUPS=RECUPS*RECUP
IF(K-3) 167,170,170
167 IF(NBUG6-1) 305,18,305
18 WRITE(IWRITE,213) RECUP
305 CONTINUE
170 K=K+1
DO 168 J=1,IHSHP1
DO 169 KK=1,3
J2(J,KK)=J2STO(J,KK)
J3(J,KK)=J3STO(J,KK)
169 CONTINUE
168 CONTINUE
IF(K.EQ.3) GO TO 155
IF(NBUG6-1) 306,19,306
19 WRITE(IWRITE,214) RECUP
C
C FIRST FRACTIONAL PARENTAGE COEFFICIENT
C
306 LIJ=LJ(IRHO)
COEFP=ONE
IF(LIJ) 171,272,171
171 N=NOSH1(IRHO)
IV1=JMEM1
IL1=(JMEM2-1)/2
IS1= JMEM3
IV2=J1QN2(IRHO,1)
IL2=(J1QN2(IRHO,2)-1 )/2
IS2=J1QN2(IRHO,3)
CALL CFP(LIJ,N,IV1,IL1,IS1,IV2,IL2,IS2,COEFP)
RECUPS=RECUPS*COEFP
272 IF(IRHO-ISIG) 172,173,172
172 IF(abs(RECUPS).LT.EPSILO)GO TO 183
C
C SECOND FRACTIONAL PARENTAGE COEFFICIENT
C
173 LIJ=LJ(ISIG)
COEFP=ONE
IF(LIJ) 176,176,174
174 N=NOSH2(ISIG)
IV1=JMEM4
IL1=(JMEM5-1)/2
IS1=JMEM6
IV2=J1QN1(ISIG,1)
IL2=(J1QN1(ISIG,2)-1)/2
IS2=J1QN1(ISIG,3)
CALL CFP(LIJ,N,IV1,IL1,IS1,IV2,IL2,IS2,COEFP)
176 RECUPS=RECUPS*COEFP
IF(abs(RECUPS).LT.EPSILO.AND.IRHO.NE.ISIG)GO TO 183
C
C PERMUTATION FACTOR
C
IDELP=2
IF(IRHO-ISIG) 177,181,179
177 JRHO = IRHO+1
DO 178 J=JRHO,ISIG
178 IDELP=IDELP+NOSH1(J)
GO TO 181
179 JSIG = ISIG+1
DO 180 J=JSIG,IRHO
180 IDELP = IDELP+NOSH2(J)
181 MINUS=(-1)**IDELP
C
C MULTIPLICATIVE FACTOR
C
IF(IRHO-ISIG) 182,185,182
182 SQRN=sqrt(float(NOSH1(IRHO)*NOSH2(ISIG)))
VALML=SQRN*RECUPS*float(MINUS)
GO TO 184
183 VALML = ZERO
184 RML = RML+VALML
C
C RESULT STORED IN VSHELL
C
IF(NTOT.EQ.0) NTOT=1
VSHELL(NTOT)=RML*sqrt(AJF)
GO TO 190
185 VALUML=RECUPS
IF(NBUG6.NE.0) WRITE(IWRITE,219) JJ1,VALUML
RPL = RPL+VALUML
186 IF(IRHO.NE.ISIG)GO TO 1186
JJ1=JJ1+1
IF(JJ1.LE.KK1)GO TO 1152
1186 J1QN1(IRHO,1)=JMEM1
J1QN1(IRHO,2)=JMEM2
J1QN1(IRHO,3)=JMEM3
J1QN2(ISIG,1)=JMEM4
J1QN2(ISIG,2)=JMEM5
J1QN2(ISIG,3)=JMEM6
ANL=float(NOSH1(IRHO))*RPL
C
C RESULTS STORED IN VSHELL
C
IF(NTOT.EQ.0) NTOT=1
VSHELL(NTOT)=ANL*sqrt(AJF)
IF(NBUG6-1) 189,196,189
196 WRITE(IWRITE,215) IRHO,ANL
189 IRHO=IRHO+1
ISIG=ISIG+1
RPL=ZERO
IF(IRHO-IHSH) 109,109,190
190 IF(NBUG6-1) 192,13,192
13 WRITE(IWRITE,217) (VSHELL(N),N=1,NTOT)
192 RETURN
END
c
c---------------------------------------------------------------------
c e s t a t e
c---------------------------------------------------------------------
c
SUBROUTINE ESTATE(KCFG)
C
COMMON/INFORM/ IREAD,IWRITE,IPUNCH,icheck
COMMON/STATEM/MOCCSH(30),KOCCSH(30),MOCORB(10,30),KOCORB(10,30),
1MELCSH(10,30),KELCSH(10,30),M1QNRD(19,3,30),K1QNRD(19,3,30),MAXOR
2,MMCORB(10,30),KKCORB(10,30),IAJCMP(21),LOCATE(21),JAJCMP(21,3)
DIMENSION K1QN(19)
COMMON/SYMM/LANK,LSYM(10)
COMMON/TERMS/NROWS,ITAB(14),JTAB(14),NTAB(219),NTAB1(10,5),
1 NTAB2(11,5)
DIMENSION LJCOMP(21)
C
C DATA DEFINING THE EXCITED STATE IS READ IN AND PRINTED OUT.
C
611 format(/16h DATA CHECKING: ,
1/16H DATA CHECKING: ,12HERROR NUMBER,I2,15H, CONFIGURATION,I3,7H,
2SHELL,A3,54H : WRONG ORDERING OF SHELLS
3/16H DATA CHECKING: )
612 format(/16h DATA CHECKING: ,
1/16H DATA CHECKING: ,12HERROR NUMBER,I2,15H, CONFIGURATION,I3,7H,
2SHELL,A3,54H : NUMBER OF ELECTRONS MORE THAN ALLOWED
3/16H DATA CHECKING: )
613 format(/16h DATA CHECKING: ,
1/16H DATA CHECKING: ,12HERROR NUMBER,I2,15H, CONFIGURATION,I3,7H,
2SHELL,A3,54H : STATE GENERATED IS WRONG
3/16H DATA CHECKING: )
614 FORMAT(/16H DATA CHECKING:
1/16H DATA CHECKING: ,12HERROR NUMBER,I2,15H, CONFIGURATION,I3,7H,
2SHELL,A3,54H : COUPLING ON THIS SHELL IS WRONG
3/16H DATA CHECKING: )
1 FORMAT(18(1X,I3))
5 FORMAT(5(1X,A3,1H(,I2,1H)))
6 FORMAT(9(1X,4X,I1,A1,I1))
24 FORMAT(//29H FINAL STATE CONFIGURATIONS:-)
25 FORMAT(/5H ,I3,3H. ,10(1X,A3,1H(,I2,1H)))
26 FORMAT(11X,10(1X,4X,I1,A1,I1))
27 FORMAT(22X,9(1X,4X,I1,A1,I1))
29 FORMAT( 29H -------------------------- /)
WRITE(IWRITE,24)
WRITE(IWRITE,29)
READ(IREAD,1) KCFG
READ(IREAD,1) (KOCCSH(I),I=1,KCFG)
DO 2 I=1,KCFG
N=KOCCSH(I)
READ(IREAD,5) (KKCORB(J,I),KELCSH(J,I),J=1,N)
WRITE(IWRITE,25) I,(KKCORB(J,I),KELCSH(J,I),J=1,N)
DO 61 J=1,N
DO 61 JJ=1,MAXOR
61 IF(KKCORB(J,I).EQ.IAJCMP(JJ)) KOCORB(J,I)=JJ
M=2*N-1
N1=N+1
READ(IREAD,6) (K1QNRD(J,3,I),K1QN(J),K1QNRD(J,1,I),J=1,M)
WRITE(IWRITE,26) (K1QNRD(J,3,I),K1QN(J),K1QNRD(J,1,I),J=1,N)
IF(N.EQ.1) GO TO 64
WRITE(IWRITE,27) (K1QNRD(J,3,I),K1QN(J),K1QNRD(J,1,I),J=N1,M)
64 CONTINUE
DO 62 J=1,M
DO 62 JJ=1,10
62 IF(K1QN(J).EQ.LSYM(JJ)) K1QNRD(J,2,I)=2*JJ-1
C
C --- CHECK THE INPUT DATA OF THE CONFIGURATIONS(COUPLINGS) FOR ERRORS,
C --- IF ANY. ICHECK = THE NUMBER OF THE ERRORS FOUND IN THE DATA.
C
DO 1013 I=1,MAXOR
J=3
IF(JAJCMP(I,1).NE.LANK) J=2
DO 1012 JJ=1,9
1012 IF(JAJCMP(I,J).EQ.LSYM(JJ)) LJCOMP(I)=JJ-1
1013 CONTINUE
DO 1021 I=1,KCFG
N=KOCCSH(I)
JORB0=0
DO 1020 J=1,N
JORB=KOCORB(J,I)
LORB=LJCOMP(JORB)
NELACT=KELCSH(J,I)
NELMAX=4*LORB+2
IF(LORB.GE.3) NELMAX=2
NROW=NTAB2(NELACT+1,LORB+1)
NST=ITAB(NROW)
JT1=JTAB(NROW)
IS1=K1QNRD(J,3,I)
IL1=K1QNRD(J,2,I)
IV1=K1QNRD(J,1,I)
IF(J.EQ.1) GO TO 1014
J2=1
J3=N+1
IF(J.EQ.2) GO TO 1014
J2=N+J-2
J3=J2+1
C
C --- CHECKING THE ORDERING OF THE J-TH SHELL
C
1014 IF(JORB.GT.JORB0) GO TO 1015
ICHECK=ICHECK+1
WRITE(IWRITE,611) ICHECK,I,IAJCMP(JORB)
C
C ---- CHECKING THE NUMBER OF ELECTRONS IN THE J-TH SHELL
C
1015 IF(NELACT.LE.NELMAX) GO TO 1016
ICHECK=ICHECK+1
WRITE(IWRITE,612) ICHECK,I,IAJCMP(JORB)
GO TO 1018
C
C --- CHECKING THE STATE PRODUCED BY THE J-TH SHELL
C
1016 DO 1017 IST=1,NST
IF(IS1.NE.NTAB(JT1+3)) GO TO 1017
IF(IL1.NE.NTAB(JT1+2)) GO TO 1017
IF(IV1.EQ.NTAB(JT1+1)) GO TO 1018
1017 JT1=JT1+3
ICHECK=ICHECK+1
WRITE(IWRITE,613) ICHECK,I,IAJCMP(JORB)
C
C --- CHECK THE COUPLING ON THE J-TH SHELL
C
1018 IF(J.EQ.1) GO TO 1020
IS2=K1QNRD(J2,3,I)
IL2=K1QNRD(J2,2,I)
IS3=K1QNRD(J3,3,I)-1
IL3=K1QNRD(J3,2,I)-1
IF(IS3.GT.(IS1+IS2-2).OR.IS3.LT.(IABS(IS1-IS2))) GO TO 1019
IF(IL3.GT.(IL1+IL2-2).OR.IL3.LT.(IABS(IL1-IL2))) GO TO 1019
GO TO 1020
1019 ICHECK=ICHECK+1
WRITE(IWRITE,614) ICHECK,I,IAJCMP(JORB)
1020 JORB0=JORB
1021 CONTINUE
2 CONTINUE
RETURN
END
c
c----------------------------------------------------------------------
c g s t a t e
c----------------------------------------------------------------------
c
SUBROUTINE GSTATE(MCFG)
C
COMMON/INFORM/ IREAD,IWRITE,IPUNCH,icheck
COMMON/STATEM/MOCCSH(30),KOCCSH(30),MOCORB(10,30),KOCORB(10,30),
1MELCSH(10,30),KELCSH(10,30),M1QNRD(19,3,30),K1QNRD(19,3,30),MAXOR
2,MMCORB(10,30),KKCORB(10,30),IAJCMP(21),LOCATE(21),JAJCMP(21,3)
DIMENSION M1QN(19)
COMMON/SYMM/LANK,LSYM(10)
COMMON/TERMS/NROWS,ITAB(14),JTAB(14),NTAB(219),NTAB1(10,5),
1 NTAB2(11,5)
DIMENSION LJCOMP(21)
c
c data defining the ground state is read in and printed out.
c
611 format(/16h DATA CHECKING: ,
1/16H DATA CHECKING: ,12HERROR NUMBER,I2,15H, CONFIGURATION,I3,7H,
2SHELL,A3,54H : WRONG ORDERING OF SHELLS
3/16H DATA CHECKING: )
612 format(/16h DATA CHECKING: ,
1/16H DATA CHECKING: ,12HERROR NUMBER,I2,15H, CONFIGURATION,I3,7H,
2SHELL,A3,54H : NUMBER OF ELECTRONS MORE THAN ALLOWED
3/16H DATA CHECKING: )
613 format(/16h DATA CHECKING: ,
1/16H DATA CHECKING: ,12HERROR NUMBER,I2,15H, CONFIGURATION,I3,7H,
2SHELL,A3,54H : STATE GENERATED IS WRONG
3/16H DATA CHECKING: )
614 format(/16h DATA CHECKING: ,
1/16H DATA CHECKING: ,12HERROR NUMBER,I2,15H, CONFIGURATION,I3,7H,
2SHELL,A3,54H : COUPLING ON THIS SHELL IS WRONG
3/16H DATA CHECKING: )
1 FORMAT(18(1X,I3))
5 FORMAT(5(1X,A3,1H(,I2,1H)))
6 FORMAT(9(1X,4X,I1,A1,I1))
24 FORMAT(//31H INITIAL STATE CONFIGURATIONS:-)
25 FORMAT(/5H ,I3,3H. ,10(1X,A3,1H(,I2,1H)))
26 FORMAT(11X,10(1X,4X,I1,A1,I1))
27 FORMAT(22X,9(1X,4X,I1,A1,I1))
28 FORMAT( 31H ---------------------------- /)
WRITE(IWRITE,24)
WRITE(IWRITE,28)
READ(IREAD,1) MCFG
READ(IREAD,1) (MOCCSH(I),I=1,MCFG)
DO 2 I=1,MCFG
N=MOCCSH(I)
READ(IREAD,5) (MMCORB(J,I),MELCSH(J,I),J=1,N)
WRITE(IWRITE,25) I,(MMCORB(J,I),MELCSH(J,I),J=1,N)
DO 61 J=1,N
DO 61 JJ=1,MAXOR
61 IF(MMCORB(J,I).EQ.IAJCMP(JJ)) MOCORB(J,I)=JJ
M=2*N-1
N1=N+1
READ(IREAD,6) (M1QNRD(J,3,I),M1QN(J),M1QNRD(J,1,I),J=1,M)
WRITE(IWRITE,26) (M1QNRD(J,3,I),M1QN(J),M1QNRD(J,1,I),J=1,N)
IF(N.EQ.1) GO TO 64
WRITE(IWRITE,27) (M1QNRD(J,3,I),M1QN(J),M1QNRD(J,1,I),J=N1,M)
64 CONTINUE
DO 62 J=1,M
DO 62 JJ=1,10
62 IF(M1QN(J).EQ.LSYM(JJ)) M1QNRD(J,2,I)=2*JJ-1
C
C --- CHECK THE INPUT DATA OF THE CONFIGURATIONS(COUPLINGS) FOR ERRORS,
C --- IF ANY. ICHECK = THE NUMBER OF THE ERRORS FOUND IN THE DATA.
C
DO 1013 I=1,MAXOR
J=3
IF(JAJCMP(I,1).NE.LANK) J=2
DO 1012 JJ=1,9
1012 IF(JAJCMP(I,J).EQ.LSYM(JJ)) LJCOMP(I)=JJ-1
1013 CONTINUE
ICHECK=0
DO 1021 I=1,MCFG
N=MOCCSH(I)
JORB0=0
DO 1020 J=1,N
JORB=MOCORB(J,I)
LORB=LJCOMP(JORB)
NELACT=MELCSH(J,I)
NELMAX=4*LORB+2
IF(LORB.GE.3) NELMAX=2
NROW=NTAB2(NELACT+1,LORB+1)
NST=ITAB(NROW)
JT1=JTAB(NROW)
IS1=M1QNRD(J,3,I)
IL1=M1QNRD(J,2,I)
IV1=M1QNRD(J,1,I)
IF(J.EQ.1) GO TO 1014
J2=1
J3=N+1
IF(J.EQ.2) GO TO 1014
J2=N+J-2
J3=J2+1
C
C --- CHECKING THE ORDERING OF THE J-TH SHELL
C
1014 IF(JORB.GT.JORB0) GO TO 1015
ICHECK=ICHECK+1
WRITE(IWRITE,611) ICHECK,I,IAJCMP(JORB)
C
C ---- CHECKING THE NUMBER OF ELECTRONS IN THE J-TH SHELL
C
1015 IF(NELACT.LE.NELMAX) GO TO 1016
ICHECK=ICHECK+1
WRITE(IWRITE,612) ICHECK,I,IAJCMP(JORB)
GO TO 1018
C
C --- CHECKING THE STATE PRODUCED BY THE J-TH SHELL
C
1016 DO 1017 IST=1,NST
IF(IS1.NE.NTAB(JT1+3)) GO TO 1017
IF(IL1.NE.NTAB(JT1+2)) GO TO 1017
IF(IV1.EQ.NTAB(JT1+1)) GO TO 1018
1017 JT1=JT1+3
ICHECK=ICHECK+1
WRITE(IWRITE,613) ICHECK,I,IAJCMP(JORB)
C
C --- CHECK THE COUPLING ON THE J-TH SHELL
C
1018 IF(J.EQ.1) GO TO 1020
IS2=M1QNRD(J2,3,I)
IL2=M1QNRD(J2,2,I)
IS3=M1QNRD(J3,3,I)-1
IL3=M1QNRD(J3,2,I)-1
IF(IS3.GT.(IS1+IS2-2).OR.IS3.LT.(IABS(IS1-IS2))) GO TO 1019
IF(IL3.GT.(IL1+IL2-2).OR.IL3.LT.(IABS(IL1-IL2))) GO TO 1019
GO TO 1020
1019 ICHECK=ICHECK+1
WRITE(IWRITE,614) ICHECK,I,IAJCMP(JORB)
1020 JORB0=JORB
1021 CONTINUE
2 CONTINUE
RETURN
END
c
c-------------------------------------------------------------------
c s e t u p e
c-------------------------------------------------------------------
c
SUBROUTINE SETUPE(JA,JB,NJCOMP,LJCOMP)
C
DIMENSION NJCOMP(21),LJCOMP(21)
COMMON/MEDEFN/IHSH,NJ(10),LJ(10),NOSH(10,2),J1QN(19,3,2),IJFUL(10)
1,JIFUL(10)
COMMON/STATEM/MOCCSH(30),KOCCSH(30),MOCORB(10,30),KOCORB(10,30),
1MELCSH(10,30),KELCSH(10,30),M1QNRD(19,3,30),K1QNRD(19,3,30),MAXOR
2,MMCORB(10,30),KKCORB(10,30),IAJCMP(21),LOCATE(21),JAJCMP(21,3)
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
J1=0
J2=0
IHSH=0
I2HSH=-1
IA=MOCCSH(JA)
IB=KOCCSH(JB)
C
C --- TEST ON WHETHER LIMIT OF I1 HAS BEEN REACHED
C
1 IF(I1-MAXOR ) 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-MOCORB(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-KOCORB(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 IF(I.GE.2) GO TO 38
NOSH(IHSH,I)=MELCSH(IC,JC)
DO 20 K=1,3
J1QN(IHSH,K,I)=M1QNRD(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=MOCCSH(JC)+IC-1
28 J1QN(I2HSH,K,I)=M1QNRD(I2,K,JC)
20 CONTINUE
GO TO 22
38 NOSH(IHSH,I)=KELCSH(ICE,JCE)
DO 30 K=1,3
J1QN(IHSH,K,I)=K1QNRD(ICE,K,JCE)
IF(IHSH.LE.1) GO TO 30
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
IF(ICE.GT.1) GO TO 31
I2=1
IF(K.NE.1) GO TO 32
J1QN(I2HSH,1,I)=0
GO TO 30
31 I2=KOCCSH(JCE)+ICE-1
32 J1QN(I2HSH,K,I)=K1QNRD(I2,K,JCE)
30 CONTINUE
22 IF(I-2) 23,24,24
23 NC=NB
I=2
ICE=J2
JCE=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
JIFUL(IHSH)=LOCATE(I1)
C
C --- RETURN TO 1 TO SEE IF MAXORB HAS BEEN REACHED
C
GO TO 1
100 RETURN
END
c
c--------------------------------------------------------------------
c t r i t s t
c--------------------------------------------------------------------
c
REAL FUNCTION TRITST(L,M,N)
c IMPLICIT REAL*8(A-H,O-Z)
COMMON/PARAM/ZERO,EPSILO,HALF,ONE
C
C IF TRITST=ONE THE TRIANGLE RELATION IS NOT SATISFIED
C IF TRITST=ZERO THE TRIANGLE RELATION IS SATISFIED
C
LMN=IABS(L-M)
LM=L+M
IF(N-LMN) 1,2,2
2 IF(LM-N) 1,3,3
3 TRITST=ZERO
RETURN
1 TRITST=ONE
RETURN
END
c
c---------------------------------------------------------------------
c t m s o u t
c---------------------------------------------------------------------
c
SUBROUTINE TMSOUT
COMMON/INFORM/IREAD,IWRITE,IPUNCH,icheck
common/terms/nrows,itab(14),jtabs(14),ntabs(219),ntab1(10,5),
1 ntab2(11,5)
DIMENSION LLSYM(46)
COMMON/SYMM/LANK,LSYM(10)
COMMON/ACFG/ICFG(14)
C
C --- PRINT-OUT OF TABLE OF TERMS, SET IN BLOCK DATA
C
1 FORMAT(1H1,41X23HTABLE OF POSSIBLE TERMS //4x,62H CONFIGURATION
1N TERMS(MULTIPLICITY,SYMMETRY, AND SENIORITY) /)
4 FORMAT(/9X,A4,10X,16(I1,A1,I1,2X))
WRITE(IWRITE,1)
DO 5 I=1,NROWS
JI=JTAB(I)
JJ=3*ITAB(I)
JI1=JI+1
JI2=JI1+1
DO 2 J=1,JJ,3
LP=(NTAB(JI1+J )+1)/2
2 LLSYM(J)=LSYM(LP)
WRITE(IWRITE,4)ICFG(I),(NTAB(JI2+J),LLSYM(J),NTAB(JI+J),J=1,JJ,3)
5 CONTINUE
RETURN
END
c
c-----------------------------------------------------------------
c c f p
c-----------------------------------------------------------------
SUBROUTINE CFP(LIJ,N,IVI,ILI,ISI,IVJ,ILJ,ISJ,COEFP)
c IMPLICIT REAL*8(A-H,O-Z)
COMMON/INFORM/IREAD,IWRITE,IPUNCH,icheck
COMMON/DEBUG/IBUG1,IBUG2,IBUG3,IBUG4,IBUG5,IBUG6
C
C === CHOOSES APPROPRIATE FRACTIONAL PARENTAGE SUBROUTINE
C
9 FORMAT(69H UNNECESSARY ATTEMPT TO FORM CFP OF AN S-ELECTRON - THER
1E 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,7,6
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 IMPLICIT REAL*8(A-H,O-Z)
COMMON/PARAM/ZERO,EPSILO,HALF,ONE
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 b l d a t a
c----------------------------------------------------------------
subroutine bldata
c
c IMPLICIT REAL*8(A-H,O-Z)
common/terms/nrows,i(14),j(14),n(219),n1(10,5),n2(11,5)
COMMON/SYMM/LANK,LSYM(10)
COMMON/NVALUE/NVAL(9)
COMMON/SPINP/ISPINT,ISPINS
COMMON/ACFG/ICFG(14)
COMMON/PARAM/ZERO,EPSILO,HALF,ONE
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/14/
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, 7/
data i(13),i(14)/ 1, 9/
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 j(13),j(14)/ 189, 192/
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),N(172),N(173),N(174)/ 2, 3, 3, 2, 7, 3/
DATA N(175),N(176),N(177),N(178),N(179),N(180)/ 2,11, 3, 0, 1, 1/
DATA N(181),N(182),N(183),N(184),N(185),N(186)/ 2, 5, 1, 2, 9, 1/
DATA N(187),N(188),N(189),N(190),N(191),N(192)/ 2,13, 1, 1, 9, 2/
DATA N(193),N(194),N(195),N(196),N(197),N(198)/ 2, 3, 3, 2, 7, 3/
DATA N(199),N(200),N(201),N(202),N(203),N(204)/ 2,11, 3, 2,15, 3/
DATA N(205),N(206),N(207),N(208),N(209),N(210)/ 0, 1, 1, 2, 5, 1/
DATA N(211),N(212),N(213),N(214),N(215),N(216)/ 2, 9, 1, 2,13, 1/
DATA N(217),N(218),N(219) / 2,17, 1 /
DATA N1( 1,1),N1( 1,2),N1( 1,3),N1( 1,4),N1( 1,5)/2,2, 2, 2, 2/
DATA N1( 2,1),N1( 2,2),N1( 2,3),N1( 2,4),N1( 2,5)/1,3, 6,11,13/
DATA N1( 3,1),N1( 3,2),N1( 3,3),N1( 3,4),N1( 3,5)/0,4, 7, 0, 0/
DATA N1( 4,1),N1( 4,2),N1( 4,3),N1( 4,4),N1( 4,5)/0,5, 8, 0, 0/
DATA N1( 5,1),N1( 5,2),N1( 5,3),N1( 5,4),N1( 5,5)/0,4, 9, 0, 0/
DATA N1( 6,1),N1( 6,2),N1( 6,3),N1( 6,4),N1( 6,5)/0,3,10, 0, 0/
DATA N1( 7,1),N1( 7,2),N1( 7,3),N1( 7,4),N1( 7,5)/0,0, 9, 0, 0/
DATA N1( 8,1),N1( 8,2),N1( 8,3),N1( 8,4),N1( 8,5)/0,0, 8, 0, 0/
DATA N1( 9,1),N1( 9,2),N1( 9,3),N1( 9,4),N1( 9,5)/0,0, 7, 0, 0/
DATA N1(10,1),N1(10,2),N1(10,3),N1(10,4),N1(10,5)/0,0, 6, 0, 0/
DATA N2( 1,1),N2( 1,2),N2( 1,3),N2( 1,4),N2( 1,5)/2,2, 2, 2, 2/
DATA N2( 2,1),N2( 2,2),N2( 2,3),N2( 2,4),N2( 2,5)/1,3, 6,11,13/
DATA N2( 3,1),N2( 3,2),N2( 3,3),N2( 3,4),N2( 3,5)/2,4, 7,12,14/
DATA N2( 4,1),N2( 4,2),N2( 4,3),N2( 4,4),N2( 4,5)/0,5, 8, 0, 0/
DATA N2( 5,1),N2( 5,2),N2( 5,3),N2( 5,4),N2( 5,5)/0,4, 9, 0, 0/
DATA N2( 6,1),N2( 6,2),N2( 6,3),N2( 6,4),N2( 6,5)/0,3,10, 0, 0/
DATA N2( 7,1),N2( 7,2),N2( 7,3),N2( 7,4),N2( 7,5)/0,2, 9, 0, 0/
DATA N2( 8,1),N2( 8,2),N2( 8,3),N2( 8,4),N2( 8,5)/0,0, 8, 0, 0/
DATA N2( 9,1),N2( 9,2),N2( 9,3),N2( 9,4),N2( 9,5)/0,0, 7, 0, 0/
DATA N2(10,1),N2(10,2),N2(10,3),N2(10,4),N2(10,5)/0,0, 6, 0, 0/
DATA N2(11,1),N2(11,2),N2(11,3),N2(11,4),N2(11,5)/0,0, 2, 0, 0/
DATA LANK,ISPINT,ISPINS/1H ,1HT,1HS/
DATA LSYM(1),LSYM(2),LSYM(3),LSYM(4),LSYM(5),LSYM(6),LSYM(7)
1 ,LSYM(8),LSYM(9),LSYM(10)/1HS,1HP,1HD,1HF,1HG,1HH,1HI,1HK,1HL
2 ,1HM/
DATA NVAL(1),NVAL(2),NVAL(3),NVAL(4),NVAL(5),NVAL(6),NVAL(7)
1 ,NVAL(8),NVAL(9)/1H1,1H2,1H3,1H4,1H5,1H6,1H7,1H8,1H9/
DATA ICFG(1),ICFG(2),ICFG(3),ICFG(4),ICFG(5),ICFG(6),ICFG(7)
1 ,ICFG(8),ICFG(9),ICFG(10),ICFG(11),ICFG(12),ICFG(13),ICFG(14)/
2 4HS(1),4HS(2),4HP(1),4HP(2),4HP(3),4HD(1),4HD(2),4HD(3),
3 4HD(4),4HD(5),4HF(1),4HF(2),4HG(1),4HG(2)/
data zero,epsilo,half,one/0.e0,1.e-08,0.5e0,1.e0/
END
C
C --- INSERT HERE THE FOLLOWING CPC LIBRARY PROGRAMS WITH APPROPRIATE
C CHANGES TO DOUBLE PRECISION FOR IBM S360 COMPUTER.
C
C (1) ACQB, THE P-SHELL CFP PROGRAM: ALLISON (CPC V1(1969)15).
C (2) ACRN, THE NEW D-SHELL CFP PROGRAM: CHIVERS (CPC V6(1973)88).
C (3) AAGD, THE NJSYM PROGRAM: BURKE (CPC V1(1970)241), ADAPTED
C FOR WEIGHTS USING AAGD0001: HIBBERT (CPC V2(1971)180)
C WITH AAGD0002: GRANT (CPC V5(1973)161) FOR IMPROVED
C RACAH COEFFICIENT ROUTINE.
C
C --- NOTE THAT THE CORRECTION AAGD000A: CPC V2(1971)173 IS ALSO
C TO BE APPLIED TO AAGD. ALSO NOTE THE THE ADAPTATION
C AAGD0002 OF GRANT WAS NOT APPLIED TO AAGD WHEN IT WAS
C USED BY ROBB IN THE PREVIOUS VERSION OF THIS PROGRAM.
▶EOF◀