|
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: 30720 (0x7800) Types: TextFile Names: »per10«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ. └─⟦4334b4c0b⟧ └─⟦this⟧ »per10«
c program 10 acrz c c acrzgf values. oscillator strengths from nomerical mchf radial c funktions, with an adaption to calculate electric quadrupole c oscillator strengths. c.f.fischer, k.m.s.saxena, m.godefroid. c ref. in comp. phys. commun. 9 (1975) 381 and c comp. phys. commun. 15 (1978) 275 and comp. phys. commun. 17 (1979) 426. c C C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * C * * C * JULY 1974 * C * * C * PROGRAM TO EVALUATE LENGTH AND VELOCITY FORM OF 'GF' VALUES * C * USING NUMERICAL MCHF RADIAL FUNCTIONS. * 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 * * C * DESCRIPTION OF THE COMMON BLOCKS:- * C * ================================ * C * * C * (1) COMMON BLOCK /PARAM/. * C * -------------------- * C * * C * THIS COMMON BLOCK STORES SEVERAL NUMERICAL CONSTANTS * C * IN DOUBLE PRECISION AND VALUES OF CERTAIN PARAMETERS OF THE * C * CALCULATIONS. * C * * C * THE VARIABLES IN THIS COMMON BLOCK ARE AS FOLLOWS. * C * * C * D0 : DOUBLE PRECISION CONSTANT 0 * C * D1 : DOUBLE PRECISION CONSTANT 1 * C * D2 : DOUBLE PRECISION CONSTANT 2 * C * D3 : DOUBLE PRECISION CONSTANT 3 * C * D4 : DOUBLE PRECISION CONSTANT 4 * C * D5 : DOUBLE PRECISION CONSTANT 1/2 * C * D6 : DOUBLE PRECISION CONSTANT 6 * C * D10: DOUBLE PRECISION CONSTANT 10 * c * d15: double precision constant 15 * c * d30: double precision constant 30 * C * H : 0.0625, THE STEP-SIZE DELTA(RHO) * C * H1 : H/3 * C * Z : ATOMIC NUMBER * C * NO : MAXIMUM NUMBER OF POINTS IN THE RANGE OF THE FUNCTIONS * C * =220 * C * ND : NO-2 * C * * C * MOST OF THESE CONSTANTS ARE SET IN THE BLOCK DATA * C * SEGMENT. * C * * C * * C * (2) THE BLANK COMMON //. * C * ------------------- * C * * C * THIS COMMON SECTION STORES THE INFORMATION ABOUT * C * THE NUMERICAL MCHF WAVEFUNCTIONS. * C * * C * THE VARIABLES IN THIS COMMON BLOCK ARE AS FOLLOWS. * C * * C * R(220) : VALUES OF R(J)=EXP(RHO(J))/Z * C * RR(220) : VALUES OF R(J)**2 * C * R2(220) : VALUES OF DSQRT(R(J)) * C * P(50,220) : VALUES OF P(R(J))/R2(J) FOR ORBITALS I=1,50 * C * AZ(50) : A0=LIMIT OF ( P(R)/(R**(L+1)) ) AS R->0 FOR * C * ORBITALS I=1,50 * C * L(50) : L-QUANTUM NUMBERS FOR ORBITALS I=1,50 * C * MAX(50) : NUMBER OF MESH-POINTS IN THE NUMERICAL * C * ORBITALS I=1,50 * C * * C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * C C C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * C * * C * DESCRIPTION OF THE OTHER IMPORTANT VARIABLES:- * C * ============================================ * C * * C * ASTER : AN INTEGER VARIABLE READ IN FORMAT(A1). * C * BLANK : A BLANK CHARACTER ' ', DEFINED AS AN INTEGER * C * AND SET BY A DATA STATEMENT IN THE MAIN PROGRAM. * C * SYMM(5) : AN INTEGER VARIABLE STORING THE SPECTROSCOPIC * C * SYMBOLS 'S','P','D','F', AND 'G' IN FORMAT(A1). * C * SYMM(I) CORRESPONDS TO THE SYMMETRY WITH L=(I-1). * C * JREAD : GENERAL INPUT CHANNEL FOR A SET OF CALCULATIONS. * C * IREAD1 : INPUT CHANNEL FOR THE WAVEFUNCTIONS REQUIRED IN * C * A CASE. * C * IREAD2 : INPUT CHANNEL FOR THE TRANSITION INTEGRALS DATA * C * REQUIRED IN A CASE. * C * IWRITE : OUTPUT CHANNEL REQUIRED TO OUTPUT THE RESULTS OF * C * A CASE. * C * ATOM : ATOMIC SYMBOL/DESIGNATION IN FORMAT(A8). * C * IZ : ATOMIC NUMBER Z. * C * NWF : NUMBER OF ORBITALS INVOLVED. * C * TRMI : TERM SYMBOL FOR THE INITIAL STATE IN FORMAT(A8). * C * TRMF : TERM SYMBOL FOR THE FINAL STATE IN FORMAT(A8). * C * NCFGI : NUMBER OF CONFIGURATIONS IN THE INITIAL STATE. * C * NCFGF : NUMBER OF CONFIGURATIONS IN THE FINAL STATE. * C * MULT : MULTIPLICITY (2S+1) OF THE TWO STATES. * c * kctas : phase convention * c * = 0 fano and racah * c * = 1 condon and shortley * C * EL(50,3) : AN INTEGER VARIABLE STORING THE THREE CHARACTER * C * ALPHANUMERIC SYMBOL OF THE ORBITALS I=1,50 IN * C * FORMAT(3A1) FOR EACH OF THEM. * C * ETI : TOTAL ENERGY (IN A.U.) FOR THE INITIAL STATE. * C * ETF : TOTAL ENERGY (IN A.U.) FOR THE FINAL STATE. * C * CONFAI(30): CHARACTERS 01-08 (IN A8 FORMAT) OF THE ALPHA- * C * NUMERIC SYMBOL (IN TOTAL OF 24 CHARACTERS) OF * C * THE INITIAL STATE CONFIGURATIONS I=1,30. * C * CONFBI(30): CHARACTERS 09-16 (IN A8 FORMAT) OF THE ALPHA- * C * NUMERIC SYMBOL (IN TOTAL OF 24 CHARACTERS) OF * C * THE INITIAL STATE CONFIGURATIONS I=1,30. * C * CONFCI(30): CHARACTERS 17-24 (IN A8 FORMAT) OF THE ALPHA- * C * NUMERIC SYMBOL (IN TOTAL OF 24 CHARACTERS) OF * C * THE INITIAL STATE CONFIGURATIONS I=1,30. * C * CONFAF(30): CHARACTERS 01-08 (IN A8 FORMAT) OF THE ALPHA- * C * NUMERIC SYMBOL (IN TOTAL OF 24 CHARACTERS) OF * C * THE FINAL STATE CONFIGURATIONS I=1,30. * C * CONFBF(30): CHARACTERS 09-16 (IN A8 FORMAT) OF THE ALPHA- * C * NUMERIC SYMBOL (IN TOTAL OF 24 CHARACTERS) OF * C * THE FINAL STATE CONFIGURATIONS I=1,30. * C * CONFCF(30): CHARACTERS 17-24 (IN A8 FORMAT) OF THE ALPHA- * C * NUMERIC SYMBOL (IN TOTAL OF 24 CHARACTERS) OF * C * THE FINAL STATE CONFIGURATIONS I=1,30. * C * WTI(30) : WEIGHTS OF THE INITIAL STATE CONFIGURATIONS I=1,30* C * WTF(30) : WEIGHTS OF THE FINAL STATE CONFIGURATIONS I=1,30* C * COEF : MULTILPYING COEFFICIENT IN A TRANSITION INTEGRAL. * c * ktens : the order of the tensor * c * = 1 dipole transition * c * = 2 quadropol transition * C * KRHO : THE NUMBER INDICATING THE ORBITAL EL(KRHO) FROM * C * THE INITIAL STATE CONFIGURATION APPEARING IN A * C * TRANSITION INTEGRAL. * C * KSIG : THE NUMBER INDICATING THE ORBITAL EL(KSIG) FROM * C * THE FINAL STATE CONFIGURATION APPEARING IN A * C * TRANSITION INTEGRAL. * C * JI,JF : THE NUMBERS INDICATING THE INITIAL AND FINAL * C * STATE CONFIGURATIONS FOR A TRANSITION INTEGRAL. * C * II1,II2, : THE NUMBERS INDICATING THE ORBITALS EL(II1), * C * II3 EL(II2), AND EL(II3) FROM THE INITIAL STATE * C * CONFIGURATION JI APPEARING IN THE THREE OVERLAP * C * INTEGRALS IN A TRANSITION INTEGRAL CONTRIBUTION. * C * IF1,IF2, : THE NUMBERS INDICATING THE ORBITALS EL(IF1), * C * IF3 EL(IF2), AND EL(IF3) FROM THE FINAL STATE * C * CONFIGURATION JF APPEARING IN THE THREE OVERLAP * C * INTEGRALS IN A TRANSITION INTEGRAL CONTRIBUTION. * C * IP1,IP2, : THE NUMBERS INDICATING THE POWERS OF THE THREE * C * IP3 OVERLAP INTEGRALS IN A TRANSITION INTEGRAL * C * CONTRIBUTION. * C * * C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * C C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * C * * C * NON STANDARD FORTRAN:- * C * ==================== * C * * C * THIS PROGRAM IS WRITTEN AS A SYSTEM 360 DOUBLE PRE- * C * CISION PROGRAM. HOWEVER, ON COMPUTERS WITH A WORD LENGTH OF * C * 48 BITS OR MORE IT SHOULD BE USED IN SINGLE PRECISION ONLY. * C * IN ORDER TO CONVERT THIS PROGRAM TO A SINGLE PRECISION PROGRAM * C * 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 GRAD*8(I,J)' WILL BE REPLACED * C * BY 'REAL FUNCTION GRAD(I,J)' * C * (3) CHANGE SYSTEM FUNCTION NAMES 'DSQRT','DABS', ETC. TO * C * 'SQRT','ABS', ETC. * C * (4) CHANGE DOUBLE PRECISION CONSTANTS TO SINGLE PRECISION * C * CONTANTS. * C * (5) CHANGE D-FORMAT CODES TO E-FORMAT CODES. * C * * C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * C C ------------------------------------------------------------------ C *** M A I N C ------------------------------------------------------------------ C c implicit real*8(a-h,o-z) INTEGER ASTER,BLANK,SYMM(5),EL(50,3) COMMON /PARAM/D0,D1,D2,D3,D4,D5,D6,D10,d15,d30,H,H1,Z,NO,ND COMMON R(220),RR(220),R2(220),P(50,220),AZ(50),L(50),MAX(50) DIMENSION CONFAI(30),CONFBI(30),CONFCI(30),WTI(30), 1 CONFAF(30),CONFBF(30),CONFCF(30),WTF(30) DATA BLANK/1H / DATA SYMM(1),SYMM(2),SYMM(3),SYMM(4),SYMM(5)/1HS,1HP,1HD,1HF,1HG/ C C *** THE INPUT FORMATS. IT IS TO BE NOTED HERE THAT THE '102 FORMAT' C *** USED TO INPUT THE NUMERICAL MCHF RADIAL FUNCTION DATA IS NOT THE C *** SAME AS ACTUALLY USED IN THE MCHF PROGRAM TO PUNCH THESE RADIAL C *** FUNCTIONS. THIS HAS BEEN DONE IN ORDER TO KEEP THE DATA-FIELD C *** LIMITED TO COLUMNS 1-72 AND USE COLUMNS 73-80 OF THE CARDS FOR C *** IDENTIFICATION AND SEQUENCE NUMBERS ONLY. HOWEVER, ONE CAN USE C *** THE MCHF RADIAL FUNCTION DATA AS IT IS PUNCHED OUT IN THE MCHF C *** PROGRAM BY CHANGING THE '102 FORMAT' TO: C102 FORMAT(32X,3A1,I6,22X,D16.8/(7F11.7)) C 101 FORMAT(A1,3I4,A8,2I4,2A8,5I4) 102 FORMAT( 3A1,I6,22X,D16.8/(6F11.7)) 103 FORMAT(F16.8) 104 FORMAT(3A8,F12.8) 105 FORMAT(A1,F12.8,3HRI(,2I2,1H,,2I2,1H),9I4) 106 format(i4) C C *** THE OUTPUT FORMATS. C 200 FORMAT(5H1SET ,I3/5H CASE,I3/8H *******//) 201 FORMAT(23X37HOSCILLATOR STRENGTHS CALCULATION FOR , A8,4H (Z=,I3,2 1H) ,A8,2H->,A8,12H TRANSITION ) 202 FORMAT(1H ,22X,83(1H*)/) 203 FORMAT(/9H JREAD =,I3,38H (GENERAL DATA INPUT UNIT FOR THE SET) / 19H IREAD1 =,I3,45H (WAVEFUNCTION DATA INPUT UNIT FOR THIS CASE) / 29H IREAD2 =,I3,53H (TRANSITION INTEGRALS DATA INPUT UNIT FOR THIS 2CASE) / 39H IWRITE =,I3,36H (PRINTED OUTPUT UNIT FOR THIS CASE) / 49H NWF =,I3,35H (NUMBER OF WAVEFUNCTIONS INVOLVED) / 59H NCFGI =,I3,48H (NUMBER OF CONFIGURATIONS IN THE INITIAL STATE) 6/9H NCFGF =,I3,46H (NUMBER OF CONFIGURATIONS IN THE FINAL STATE)/ 79H MULT =,I3,40H (MULTIPLICITY (2S+1) OF THE TWO STATES) 8/9h ictas =,i3,20h (phase conventions) ) 204 FORMAT(//5H THE ,I2,28H ORBITALS ARE THE FOLLOWING:/) 205 FORMAT(2X,9(I1,3X),21(I2,2X)) 206 FORMAT(/2X,30(3A1,1X)/) 207 FORMAT(2X,30(I2,2X)) 208 FORMAT(//38H CONFIGURATIONS/WEIGHTS OF THE INITIAL,A8, 124HSTATE WITH TOTAL ENERGY= ,F16.8) 209 FORMAT( 86H ----------------------------------------------------- 1--------------------------------/) 210 FORMAT(I7,1H.,3A8,F12.7) 211 FORMAT(//38H CONFIGURATIONS/WEIGHTS OF THE FINAL,A8, 124HSTATE WITH TOTAL ENERGY= ,F16.8) 212 FORMAT(64H1TERM INITIAL STATE CONFIGURATION FINAL STATE CONFI 1GURATION11X12HCONTRIBUTION18X6HLENGTH8X8HVELOCITY) 213 FORMAT(128H ---- --------------------------- ---------------- 1--------- ------------------------- ---------- --- 2-------//) 214 FORMAT(//91H ERROR ( L(KRHO)-L(KSIG).NE.+1/-1 ) FOUND IN THE TRAN 1SITION INTEGRAL PART OF THE FOLLOWING,I4,32H-TH INPUT CARD FROM IR 2EAD2 FILE./) 215 FORMAT(//70H ERROR (DIFFERENT L VALUES) FOUND IN THE OVERLAP PART 1OF THE FOLLOWING,I4,32H-TH INPUT CARD FROM IREAD2 FILE./) 216 FORMAT( 2H (,I2,2H) ,I4,1H.,3A8,4H -> ,I2,1H.,3A8,4H : <,3A1,3H/O/ 1,3A1,1H>,17X,1H:,2X,F13.8,2X,F13.8) 217 FORMAT(1H+,79X,3H* <,3A1,1H/,3A1,3H>**,I1) 218 FORMAT(1H ,79X,3H* <,3A1,1H/,3A1,3H>**,I1) 219 FORMAT(/35X40HFINAL OSCILLATOR STRENGTHS (LENGTH) =,d14.8/ 1 63X12H(VELOCITY) =, d14.8) 220 FORMAT(/42X35HENERGY DIFFERENCE OF THE STATES = ,D16.8,5H CM-1/ 174X3H= ,D16.8,10H ANGSTROMS/74X3H= ,D16.8,6H A. U.) 221 FORMAT(//91H ERROR ( L(KRHO)-L(KSIG).NE.+2/-2/0) FOUND IN THE TRAN 1SITION INTEGRAL PART OF THE FOLLOWING,I4,32H-1H INPUT CARD FROM IR 1EAD2 FILE./) 222 FORMAT(//37H THE ORDER OF THE TENSOR OPERATOR IS ,I4,//) C C *** SET JREAD EQUAL TO THE CARD INPUT CHANNEL OF YOUR INSTALLATION C *** & NSET=0, AND START THE DATA READING FOR THE FISRT SET OF THE C *** CALCULATIONS. C JREAD=1 NSET=0 c* set input and output channels zone readf(1200,1,stderror) zone readf1(200,1,stderror) zone readf2(200,1,stderror) zone writef(200,1,stderror) call zassign(readf,1) call zassign(readf1,2) call zassign(readf2,3) call zassign(writef,7) call open(readf,4,'readfile',0) call open(readf1,4,'readfile1',0) call open(readf2,4,'readfile2',0) C C C *** START THE DATA READING FOR A NEW SET OF CALCULATIONS. C 1 READ(JREAD,101) ASTER, JREAD C C *** IF 'ASTER' IS NOT A BLANK CHARACTER, ALL SETS OF CALCULATIONS ARE C *** FINISHED AND THE PROGRAM STOPS. C *** IF 'ASTER' IS A BLANK CHARACTER, SET NSET=NSET+1 & NCASE=0, C *** AND START THE DATA READING FOR THE FIRST CASE OF THIS SET. C IF(ASTER.NE.BLANK) GO TO 15 NSET=NSET+1 NCASE=0 C C *** START THE DATA READING FOR A NEW CASE OF THE NSET-TH SET. C 2 READ(JREAD,101) ASTER,IREAD1,IREAD2,IWRITE,ATOM,IZ,NWF,TRMI,TRMF, 1 NCFGI,NCFGF,MULT,ISO,icstas C C *** IF 'ASTER' IS NOT A BLANK CHARACTER, ALL CASES OF CALCULATIONS ARE C *** FINISHED AND THE PROGRAM PROCEEDS TO TAKE THE NEXT SET OF CASES. C *** IF 'ASTER' IS A BLANK CHARACTER, SET NCASE=NCASE+1, AND PROCEED C *** FOR READING ADDITIONAL DATA, AND CALCULATIONS ETC. FOR THIS CASE. C IF(ASTER.NE.BLANK) GO TO 1 NCASE=NCASE+1 READ(JREAD,103) ETI READ(JREAD,104) (CONFAI(NC),CONFBI(NC), 1 CONFCI(NC),WTI(NC),NC=1,NCFGI) READ(JREAD,103) ETF READ(JREAD,104) (CONFAF(NC),CONFBF(NC), 1 CONFCF(NC),WTF(NC),NC=1,NCFGF) WRITE(IWRITE,200) NSET,NCASE Z=IZ WRITE(IWRITE,201) ATOM,IZ,TRMI,TRMF WRITE(IWRITE,202) WRITE(IWRITE,203) JREAD,IREAD1,IREAD2,IWRITE,NWF,NCFGI,NCFGF,MULT C C *** CALCULATE THE 'R' VARIABLE-MESH FOR THE NUMERICAL RADIAL ORBITALS C *** P(R). C RHO=-4.0 DO 3 J=1,NO R(J)=eXP(RHO)/Z RR(J)=R(J)*R(J) R2(J)=SQRT(R(J)) 3 RHO=RHO+H C C *** READ THE RADIAL ORBITALS AND CALCULATE THEIR L-QUANTUM NUMBERS. C DO 5 I=1,NWF READ(IREAD1,102) (EL(I,J),J=1,3),M,AZ(I),(P(I,J),J=1,M) J=3 IF(EL(I,1).NE.BLANK) J=2 IF(EL(I,J).EQ.SYMM(1)) L(I)=0 IF(EL(I,J).EQ.SYMM(2)) L(I)=1 IF(EL(I,J).EQ.SYMM(3)) L(I)=2 IF(EL(I,J).EQ.SYMM(4)) L(I)=3 IF(EL(I,J).EQ.SYMM(5)) L(I)=4 MAX(I)=M IF(M.EQ.NO) GO TO 5 M=M+1 DO 4 J=M,NO 4 P(I,J)=D0 5 CONTINUE read(iread2,106) ktens write(iwrite,222) ktens WRITE(IWRITE,204) NWF N30=MIN0(NWF,30) WRITE(IWRITE,205) (I,I=1,N30) WRITE(IWRITE,206) ((EL(I,J),J=1,3),I=1,N30) IF(NWF.LE.30) GO TO 6 WRITE(IWRITE,207) (I,I=31,NWF) WRITE(IWRITE,206) ((EL(I,J),J=1,3),I=31,NWF) 6 WRITE(IWRITE,208) TRMI,ETI WRITE(IWRITE,209) WRITE(IWRITE,210) (NC,CONFAI(NC),CONFBI(NC), 1 CONFCI(NC),WTI(NC),NC=1,NCFGI) WRITE(IWRITE,211) TRMF,ETF WRITE(IWRITE,209) WRITE(IWRITE,210) (NC,CONFAF(NC),CONFBF(NC), 1 CONFCF(NC),WTF(NC),NC=1,NCFGF) WRITE(IWRITE,212) WRITE(IWRITE,213) C C *** INITIALIZE THE TOTAL LENGTH (SL) AND THE TOTAL VELOCITY (SV) C *** 'GF' VALUES TO ZERO, SET NTERM=0, AND START READING THE TRANSITION C *** INTEGRALS DATA FOR THE CASE IN QUESTION. C SL = D0 SV = D0 NTERM=0 C C *** READ DATA FOR THE NEXT TRANSITION INTEGRAL TERM. C 7 READ(IREAD2,105) ASTER,COEF,KRHO,JI,KSIG,JF,II1,IF1,IP1, 1 II2,IF2,IP2, 2 II3,IF3,IP3 C C *** IF 'ASTER' IS NOT A BLANK CHARACTER, ALL TRANSITION INTEGRAL C *** TERMS HAVE BEEN READ AND USED. THEN THE PROGRAM PROCEEDS TO DO C *** THE CALCULATIONS OF THE FINAL RESULTS OF OSCILLATOR STRENGTHS C *** FOR THE CASE IN QUESTION. C *** IF 'ASTER' IS A BLANK CHARACTER, SET NTERM=NTERM+1, AND PROCEED C *** TO EVALUATE THE CONTRIBUTIONS TL AND TV OF THIS TERM TO THE C *** TOTAL 'GF' VALUES SL AND SV. C IF(ASTER.NE.BLANK) GO TO 14 NTERM=NTERM+1 C C *** BEFORE PROCEEDING TO USE THIS TRANSITION INTEGRAL INPUT DATA, C *** CHECK FOR ANY OBVIOUS ERROR IN IT. IF ERROR IS FOUND, IT IS C *** PRINTED AND THE PROGRAM STOPS. C go to (25,26),ktens 25 IF(IABS(L(KRHO)-L(KSIG)).EQ.1) GO TO 8 C C *** ERROR FOUND IN AN INPUT DATA FROM FILE IREAD2. C WRITE(IWRITE,214) NTERM GO TO 12 26 if(iabs(l(krho))-l(ksig)).eq.2.or.(l(krho)-l(ksig)).eq.0) go to 8 write(iwrite,221) nterm go to 12 8 IF(IP1.EQ.0) GO TO 9 IF(L(II1).EQ.L(IF1)) GO TO 9 C C *** ERROR FOUND IN AN INPUT DATA FROM FILE IREAD2. C GO TO 11 9 IF(IP2.EQ.0) GO TO 10 IF(L(II2).EQ.L(IF2)) GO TO 10 C C *** ERROR FOUND IN AN INPUT DATA FROM FILE IREAD2. C GO TO 11 10 IF(IP3.EQ.0) GO TO 13 IF(L(II3).EQ.L(IF3)) GO TO 13 C C *** ERROR FOUND IN AN INPUT DATA FROM FILE IREAD2. C 11 WRITE(IWRITE,215) NTERM 12 WRITE(IWRITE,105) ASTER,COEF,KRHO,JI,KSIG,JF,II1,IF1,IP1, 1 II2,IF2,IP2, 2 II3,IF3,IP3 CALL EXIT C C *** NO ERROR IN THE TRANSITION INTEGRAL DATA IS FOUND AND HENCE C *** PROCEED TO USE IT FOR EVALUATING TL AND TV VALUES. C 13 goto(27,28) ktens 27 k=2 l1=l(krho) L2 = L(KSIG) LL = MAX0(L1,L2) if(ictas.eq.1) k=ll-l1 d=(-1)**k*sqrt(ll*d1)*wti(ji)*wtf(jf)*coef goto 29 l1=l(krho) L2=L(KSIG) IF(L1.EQ.L2) GOTO 30 LL=MAX0(L1,L2) XX=D3*LL*(LL-D1) XX=XX/(D2*(D2*LL-D1)) d=sqrt(xx)*wti(ji)*wtf(jf)*coef GOTO 29 30 k=2 1 if(icstas.eq.1) k=1 xx=d1*l1*(l1+d1)*(d2*l1+d1) XX=XX/(D2*L1+D3)*(D2*L1-D1) D=(-1)**K*sqrt(XX)*WTI(JI)*WTF(JF)*COEF C c c*** multiply by the overlaps integral if any c 29 IF (IP1 .NE. 0) D = D*QUADR(II1,IF1,0)**IP1 IF (IP2 .NE. 0) D = D*QUADR(II2,IF2,0)**IP2 IF (IP3 .NE. 0) D = D*QUADR(II3,IF3,0)**IP3 goto(31,32),ktens 31 TL = D*QUADR(KRHO,KSIG,1) TV = D*GRAD(KRHO,KSIG) goto 33 32 tl=d*quadr(krho,ksig,2) tv=d*grad2(krho,ksig) C C *** OUTPUT THE CALCULATED TERM CONTRIBUTIONS TL AND TV. C 33 WRITE(IWRITE,216) NTERM,JI,CONFAI(JI),CONFBI(JI),CONFCI(JI), 1 JF,CONFAF(JF),CONFBF(JF),CONFCF(JF), 2 (EL(KRHO,J),J=1,3),(EL(KSIG,J),J=1,3),TL,TV IF(IP1.NE.0) WRITE(IWRITE,217) (EL(II1,J),J=1,3),(EL(IF1,J),J=1,3) 1 ,IP1 IF(IP2.NE.0) WRITE(IWRITE,218) (EL(II2,J),J=1,3),(EL(IF2,J),J=1,3) 1 ,IP2 IF(IP3.NE.0) WRITE(IWRITE,218) (EL(II3,J),J=1,3),(EL(IF3,J),J=1,3) 1 ,IP3 C C *** ADD THE EVALUATED TERM CONTRIBUTIONS TL AND TV TO THE TOTAL C *** 'GF' VALUES SL AND SV. C SL = SL + TL SV = SV + TV C C *** PROCEED TO TAKE THE NEXT TRANSITION INTEGRAL DATA. C GO TO 7 C C *** ALL TRANSITION INTEGRALS DATA HAVE BEEN USED AND HENCE PROCEED C *** TO DO THE FINAL CALCULATIONS AND OUTPUT THEM. C 14 D = abs(ETI-ETF) goto(34,35),ktens 34 CL = D2*D*abs(DFLOAT(MULT))/D3 CV = D2*abs(DFLOAT(MULT))/(D*D3) goto 36 35 cl=d1*d**3*abs(float(mult))/d30 cv=d2*d*abs(float(mult))/d15 36 gl=cl*sl**2 GV = CV*SV**2 if(ktens.ne.2) goto 37 gl=gl*5.325132272e-05 gv=gv*5.325132272e-05 37 write(iwrite,219) gl,gv DD = D*D2*109737.3e0 ANGS = D10**8/DD WRITE(IWRITE,220) DD,ANGS,D C C *** CALCULATIONS FOR THE PRESENT CASE ARE FINISHED AND THE FINAL C *** RESULTS HAVE ALSO BEEN OUTPUT. C *** IF THE NEXT CASE TO BE DONE IS A CASE ISO-ELECTRONIC TO THE ONE C *** JUST FINISHED, REWIND THE DEVICE 'IREAD2'. C *** THIS WILL ENABLE US TO REUSE THE TRANSITION INTEGRALS DATA. C *** PROCEED TO TAKE THE NEXT CASE. C if(iso.eq.1) call setposition(readf2,0,0) GO TO 2 15 STOP END C C ------------------------------------------------------------------ C *** B L O C K D A T A C ------------------------------------------------------------------ C subroutine bldata c IMPLICIT REAL*8(A-H,O-Z) COMMON /PARAM/D0,D1,D2,D3,D4,D5,D6,D10,d15,d30,H,H1,Z,NO,ND data d0,d1,d2,d3,d4,d5/0.e0,1.e0,2.e0,3.e0,4.e0,.5e0/ data d6,d10,d15,d30/6.e0,10.e0,15.e0,30.e0/ DATA H,H1/.0625e0,.4166666666666667e-01/ DATA NO,ND/220,218/ END C C ------------------------------------------------------------------ C *** Q U A D R C ------------------------------------------------------------------ C C *** QUADR INTEGRATES P(I)*P(J)*R**KK BY SIMPSON'S RULE C REAL FUNCTION QUADR(I,J,KK) c IMPLICIT REAL*8(A-H,O-Z) COMMON /PARAM/D0,D1,D2,D3,D4,D5,D6,D10,d15,d30,H,H1,Z,NO,ND COMMON R(220),RR(220),R2(220),P(50,220),AZ(50),L(50),MAX(50) K = KK + 2 LI = L(I) LJ = L(J) DEN = LI + LJ + 1 + K ZR = Z*R(4) BI = (P(I,4)/(AZ(I)*R2(4)*R(4)**LI) - D1+ZR/(LI+1) )/ZR**2 BJ = (P(J,4)/(AZ(J)*R2(4)*R(4)**LJ) - D1+ZR/(LJ+1) )/ZR**2 ALPHA= (D1/(LI + 1) + D1/(LJ + 1))/(DEN + D1) ZR = Z*R(1) BETA = (DEN+D1)*ALPHA**2 - D2*(BI+BJ+D1/((LI+1)*(LJ+1)))/(DEN+D2) D = P(I,1)*P(J,1)*R(1)**K*(((BETA*ZR+ALPHA)*ZR+D1)/(DEN*H1)+D5) M = MIN0(MAX(I),MAX(J)) - 1 DO 1 JJ = 2,M,2 JP = JJ + 1 1 D = D + D2*P(I,JJ)*P(J,JJ)*R(JJ)**K+P(I,JP)*P(J,JP)*R(JP)**K QUADR = D*H1 RETURN END C C ------------------------------------------------------------------ C *** G R A D C ------------------------------------------------------------------ C C *** THE GRAD FUNCTION SUBPROGRAM COMPUTES THE FOLLOWING DIRECTLY C *** <P(J)!D + L(I)/R !P(I)> WITH L(I) > L(J) C REAL FUNCTION GRAD(I,J) c IMPLICIT REAL*8(A-H,O-Z) COMMON /PARAM/D0,D1,D2,D3,D4,D5,D6,D10,d15,d30,H,H1,Z,NO,ND COMMON R(220),RR(220),R2(220),P(50,220),AZ(50),L(50),MAX(50) LL = MAX0(L(I),L(J)) II = I JJ = J IF ( L(I) .GT. L(J) ) GO TO 1 II = J JJ = I 1 A1 = (LL+D5)/(LL*(LL+1)*(2*LL+1)) GRAD = R(1)*P(I,1)*P(J,1)*(D1 + A1*Z*R(1)) DL = D5*P(I,1)*P(J,1)*R(1) MM = MIN0(MAX(I)+1,MAX(J)+1,ND) K = 2 F1 = D5*(P(II,K+1) - P(II,K-1)) F2 = P(II,K+1) - D2*P(II,K) + P(II,K-1) G0 = P(JJ,K)*R(K) G1 = D5*(P(JJ,K+1)*R(K+1) - P(JJ,K-1)*R(K-1)) G2 = P(JJ,K+1)*R(K+1) - D2*P(JJ,K)*R(K) + P(JJ,K-1)*R(K-1) GRAD = GRAD + D2*F1*G0 +(D2*F2*G1 + F1*G2)/D3 DL = DL + D2*P(II,K)*P(JJ,K)*R(K) + P(II,K+1)*P(JJ,K+1)*R(K+1) DO 2 K = 4,MM,2 F1 = D5*(P(II,K+1) - P(II,K-1)) F2 = P(II,K+1) - D2*P(II,K) + P(II,K-1) F3 = D5*(P(II,K+2) - P(II,K-2)) - D2*F1 F4 = P(II,K+2) + P(II,K-2) - D4*(P(II,K+1) + P(II,K-1)) 1 + D6*P(II,K) G0 = P(JJ,K)*R(K) G1 = D5*(P(JJ,K+1)*R(K+1) - P(JJ,K-1)*R(K-1)) G2 = P(JJ,K+1)*R(K+1) - D2*P(JJ,K)*R(K) + P(JJ,K-1)*R(K-1) G3 = D5*(P(JJ,K+2)*R(K+2) - P(JJ,K-2)*R(K-2)) -D2*G1 G4 = P(JJ,K+2)*R(K+2) + P(JJ,K-2)*R(K-2) - D4*(P(JJ,K+1)*R(K+1) 1 + P(JJ,K-1)*R(K-1)) + D6*P(JJ,K)*R(K) GRAD = GRAD + D2*F1*G0 +(D2*F2*G1 + F1*G2)/D3 1 - (F1*G4-F4*G1 + D4*(F2*G3-F3*G2))/90.D0 2 DL = DL + D2*P(II,K)*P(JJ,K)*R(K) + P(II,K+1)*P(JJ,K+1)*R(K+1) GRAD = GRAD + (LL+D5)*DL*H1 IF (II .EQ. I) GRAD = - GRAD RETURN END C C ------------------------------------------------------------------ C *** GRAD2 C ------------------------------------------------------------------ C C *** THE GRAD2 FUNCTION SUBPROGRAM COMPUTES THE FOLLOWING DIRECTLY C *** <P(I)!R.D + F(DELTA)! P(J)> C REAL FUNCTION GRAD2(I,J) c IMPLICIT REAL*8(A-H,O-Z) COMMON/PARAM/D0,D1,D2,D3,D4,D5,D6,D10,D15,D30,H,H1,Z,NO,ND COMMON R(220),RR(220),R2(220),P(50,220),AZ(50),L(50),MAX(50) DIMENSION Q(220) JJ=I II=J DO1K=1,NO 1 Q(K)=P(JJ,K)*R(K) LI=L(I) LJ=L(J) A1=(LI+LJ+D2)/((LI+D1)*(LJ+D1)) A2=((LJ+D5)*(LJ+D1)+(LJ+D1+D5)*(LI+D1))/((LI+D1)*(LJ+D1)) A=A1-A2*(LI+LJ+D3)/((LI+LJ+D4)*(LJ+D5)) FACT=(LJ+D5)/(LI+LJ+D3) G=R(1)**2*P(I,1)*P(J,1)*FACT*(1.+A*Z*R(1)) MM=MIN0(MAX(I)+1,MAX(J)+1,ND) K=2 F1=D5*(P(II,K+1)-P(II,K-1)) F2=P(II,K+1)-D2*P(II,K)+P(II,K-1) G0=Q(K)*R(K) G1=D5*(Q(K+1)*R(K+1)-Q(K-1)*R(K-1)) G2=Q(K+1)*R(K+1)-D2*Q(K)*R(K)+Q(K-1)*R(K-1) G=G+D2*F1*G0+(D2*F2*G1+F1*G2)/D3 DO2K=4,MM,2 F1=D5*(P(II,K+1)-P(II,K-1)) F2=P(II,K+1)-D2*P(II,K)+P(II,K-1) F3=D5*(P(II,K+2)-P(II,K-2))-D2*F1 F4=P(II,K+2)+P(II,K-2)-D4*(P(II,K+1)+P(II,K-1)) 1 +D6*P(II,K) G0=Q(K)*R(K) G1=D5*(Q(K+1)*R(K+1)-Q(K-1)*R(K-1)) G2=Q(K+1)*R(K+1)-D2*Q(K)*R(K)+Q(K-1)*R(K-1) G3=D5*(Q(K+2)*R(K+2)-Q(K-2)*R(K-2))-D2*G1 G4=Q(K+2)*R(K+2)+Q(K-2)*R(K-2)-D4*(Q(K+1)*R(K+1) 1 +Q(K-1)*R(K-1))+D6*Q(K)*R(K) G=G+D2*F1*G0+(D2*F2*G1+F1*G2)/D3 1 -(F1*G4-F4*G1+D4*(F2*G3-F3*G2))/90.D0 2 CONTINUE U=QUADR(JJ,II,0) G=G-D5*U DELTA=LJ-LI IF(DELTA)10,11,12 10 GRAD2=G-(LI-D2)*U RETURN 11 GRAD2=G+(D1+D5)*U RETURN 12 GRAD2=G+(LI+D3)*U RETURN END ▶EOF◀