|
|
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: 9984 (0x2700)
Types: TextFile
Names: »cpc2«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦this⟧ »cpc2«
c
c cpc2
c
c abwahydrogenic interaction integral. a program to calkulate
c the radial parts of the interaktion matrix elements between
c two hydrogen matrix elements between two hydrogenic wave
c functions as power series. jamieson, m.j.
c ref. in comp. phys. commun. 1 (1970) 437.
C
program hydr
C THIS PROGRAM TESTS SUBROUTINE HYD FOR HYDROGENIC WAVE FUNCTION
C INTEGRAL.
C
C THE PURPOSE OF SUBROUTINE HYD IS EXPLAINED AT THE BEGINNING OF IT'S
C LISTING.
C
C READS NA,LA,ZA,NB,LB,ZB,LAMBDA,IPRINT IN FORMAT(2I5,F5.1,2I5,F5.1,2I5)
C
C THE POWERS AND COEFFICIENTS IN THE HYDROGENIC WAVE FUNCTIONS AND IN
C THE INTEGRAL ARE PRINTED IF AND ONLY IF IPRINT = 1.
C
C THE PROGRAM HYDR CALLS SUBROUTINE HYD.
C THE SUBROUTINE HYD CALLS THE SUBROUTINE HYDRO.
C
C ATOMIC UNITS ARE USED THROUGHOUT.
C
C iread, iwrite ARE INPUT AND OUTPUT CHANNEL NUMBERS RESPECTIVELY
C
DIMENSION F(100),IPOWER(100)
COMMON/INPOUT/iread,iwrite
common/inf/writef
C
C SET INPUT, OUTPUT CHANNEL NUMBERS
C
zone readf(128,1,stderror)
zone writef(128,1,stderror)
call zassign(readf,1)
call zassign(writef,7)
call open(readf,4,'inf',0)
call open(writef,4,'outf',0)
iread=1
iwrite=7
WRITE(iwrite,98)
READ(iread,99) NA,LA,ZA,NB,LB,ZB,LAMBDA,IPRINT
CALL HYD(NA,LA,ZA,NB,LB,ZB,LAMBDA,IPRINT,FNOUT,LAM1,GAMMA,F,IPOWER
1)
98 FORMAT(1H1,116(1H*))
99 FORMAT(2I5,F5.1,2I5,F5.1,2I5)
CALL EXIT
END
c
c------------------------------------------------------------------
c e x i t
c------------------------------------------------------------------
c
subroutine exit
common/inf/writef
zone writef(128,1,stderror)
4 format(/a3)
j=25.shift.16+25.shift.8+25
write(writef,4) j
call close(writef,.true.)
stop
return
end
c
c------------------------------------------------------------------
c h y d
c------------------------------------------------------------------
c
SUBROUTINE HYD(NA,LA,ZA,NB,LB,ZB,LAMBDA,IPRINT,FNOUT,LAM1,GAMMA,F,
1POWER)
C
C THE INTEGRAL
C
C I = INTEGRAL(DX)*RAD(NA,LA,ZA/X)*((X1**LAMBDA)/(X2**(LAMBDA+1)))*
C RAD(NB,LB,ZB/X)*(X**2)
C
C WHERE X1 AND X2 ARE THE SMALLER AND LARGER OF X AND R, AND
C RAD(N,L,Z/X) DENOTES THE RADIAL PART OF THE HYDROGENIC WAVE FUNCTION
C (NLM) FOR NUCLEAR CHARGE Z, X BEING THE RADIAL COORDINATE, MAY BE
C WRITTEN IN THE FORM
C
C I = SUM(J)(F(J)*(R**(J-LAMBDA-2)*EXP(-R/GAMMA))
C + FNOUT*(R**(-LAMBDA-1))
C
C WHERE THE SUM OVER J RUNS FROM 1 TO (NA+NB+LAMBDA+1). THIS ROUTINE
C CALCULATES THE COEFFICIENTS F, FNOUT AND GAMMA.
C AT THE COMPLETION OF THIS ROUTINE
C FNOUT WILL BE IN STORE FNOUT
C -LAMBDA-1 WILL BE IN STORE LAM1
C GAMMA WILL BE IN STORE GAMMA
C F WILL BE IN STORE F(J)
C J-LAMBDA-2 WILL BE IN STORE IPOWER(J)
C
C THE INTEGRAL IS NEEDED IN THE CALCULATION OF THE MATRIX ELEMENT
C
C ((NA,LA,MA,ZA/X)/(1/MOD(X-R))/(NB,LB,MB,ZB/X))
C
C WHERE (N,L,M/R) DENOTES A HYDROGENIC WAVE FUNCTION. 1/MOD(X-R) MAY BE
C EXPANDED IN TERMS OF THE SPHERICAL HARMONICS OF THE VECTORS X AND R
C AND THE RADIAL COORDINATES X AND R.
C
C THE PROGRAM IS SET UP FOR A MAXIMUM VALUE FOR NA+NB+LAMBDA+1 OF 100
C IN IT'S DIMENSION STATEMENTS. FOR LARGER VALUES OF THIS INCREASE THE
C DIMENSIONS OF A, B, C, D, E, F, FAC, GAM AND IPOWER.
C
C THE POWERS AND COEFFICIENTS IN THE HYDROGENIC WAVE FUNCTIONS AND IN
C THE INTEGRAL ARE PRINTED IF AND ONLY IF IPRINT = 1.
C
C THE SUBROUTINE HYD CALLS THE SUBROUTINE HYDRO.
C
C ATOMIC UNITS ARE USED THROUGHOUT.
C
C iread, iwrite ARE INPUT AND OUTPUT CHANNEL NUMBERS RESPECTIVELY
C
DIMENSION A(100),B(100),C(100),D(100),E(100),F(100),GAM(100),
1IPOWER(100)
COMMON/FACT/FAC(100)
COMMON/INPOUT/iread,iwrite
c set eps=1.0e-12
eps=1.0e-12
C
C CALCULATE FACTORIALS. FAC(N) IS FACTORIAL(N-1)
C
NN3 = 3*(NA+NB)
FAC(1) = 1.0
DO 10 I = 2,NN3
10 FAC(I) = FAC(I-1)*FLOAT(I-1)
C
C CALCULATE COEFFICIENTS IN HYDROGENIC WAVE FUNCTIONS.
C A AND B ARE COEFFICIENTS IN THE HYDROGENIC WAVE FUNCTIONS.
C
CALL HYDRO(NA,LA,ZA,ALPHA,A,AA,IPRINT)
CALL HYDRO(NB,LB,ZB,BETA,B,BB,IPRINT)
C
C CALCULATE MISCELLANEOUS CONSTANTS
C
LAM = LAMBDA
NAB = NA+NB
LAM1 = -LAM-1
LL1 = LA+LB+1
LL2 = LA+LB+2
NLAM1 = NA+NB+LAM+1
NLAM2 = NA+NB-LAM
LA1 = LA-1
I2LAM1 = 2*LAM+1
I2LAM2 = 2*LAM+2
GAMMA = ALPHA*BETA/(ALPHA+BETA)
C
C CALCULATE POWERS OF GAMMA
C
GAM(1) = GAMMA
DO 9 I = 2,NN3
9 GAM(I) = GAM(I-1)*GAMMA
C
C CALCULATE C
C C, D, AND E ARE INTERMEDIATE QUANTITIES IN THE CALCULATION.
C
DO 30 IT = 1,LL1
30 C(IT) = 0.0
DO 11 IT = LL2,NAB
C(IT) = 0.0
IR1 = MAX0(LA+1,IT-NB)
IR2 = MIN0(NA,IT-LB-1)
DO 12 IX = IR1,IR2
12 C(IT) = C(IT)+A(IX)*B(IT-IX)
11 CONTINUE
C
C CALCULATE FNOUT
C
FNOUT = 0.0
DO 13 IT = LL2,NAB
13 FNOUT = FNOUT+C(IT)*FAC(IT+LAM+1)*GAM(IT+LAM+1)
FNOUT = FNOUT*AA*BB
goto (1,2), (eps-abs(fnout))
1 FNOUT = 0.0
2 CONTINUE
C
C CALCULATE D
C
DO 14 IU = 1,NLAM1
D(IU) = 0.0
IU1 = IU-1-LAM
IUM = MAX0(LL2,IU1)
DO 15 IT = IUM,NAB
15 D(IU)=D(IU)-C(IT)*FAC(1+IT+LAM)*GAM(IT+LAM+2)/(FAC(IU)*GAM(IU))
14 CONTINUE
C
C CALCULATE E
C
DO 16 IU = 1,NLAM2
E(IU) = 0.0
IU1 = IU+LAM
IUM = MAX0(LL2,IU1)
DO 17 IT = IUM,NAB
17 E(IU) = E(IU)+C(IT)*FAC(IT-LAM)*GAM(IT+1)/(FAC(IU)*GAM(IU+LAM))
16 CONTINUE
C
C CALCULATE F AND SET UP TABLE OF POWERS OF R
C
DO 18 IV = 1,I2LAM1
IPOWER(IV) = IV-LAM-2
F(IV) = D(IV)*AA*BB
goto (3,4), (eps-abs(f(iv)))
3 F(IV) = 0.0
4 CONTINUE
18 CONTINUE
DO 19 IV = I2LAM2,NLAM1
IPOWER(IV) = IV-LAM-2
F(IV) = (D(IV)+E(IV-2*LAM-1))*AA*BB
goto (5,6), (eps-abs(f(iv)))
5 F(IV) = 0.0
6 CONTINUE
19 CONTINUE
C
C OUTPUT OF COEFFICIENTS, POWERS AND EXPONENTIAL COEFFICIENT
C
if(iprint.ne.1) goto 8
WRITE(iwrite,100) NA,LA,ZA,NB,LB,ZB,LAM,GAMMA,LAM1,FNOUT,(IPOWER
1(IV),F(IV),IV = 1,NLAM1)
WRITE(iwrite,101)
8 RETURN
100 FORMAT(/84H INTEGRAL(DX)*RAD(NA,LA,ZA/X)*((X1**LAMBDA)/(X2**(LAMBD
1A+1)))*RAD(NB,LB,ZB/X)*(X**2),//118H WHERE RAD(N,L,Z/X) DENOTES TH
2E RADIAL PART OF A HYDROGENIC WAVE FUNCTION, AND X1 AND X2 ARE THE
3 SMALLER AND LARGER OF,/36H X AND R, MAY BE WRITTEN IN THE FORM,//
470H INTEGRAL = SUM(J)(F(J)*(R**IPOWER(J)))*EXP(-R/GAMMA))+FNOUT*(R
5**LAM1)//51H WHERE IPOWER(J) = J-LAMBDA-1 AND LAM1 = -LAMBDA-1.//
652H QUANTUM NUMBERS, NUCLEAR CHARGES AND LAMBDA FOLLOW./24H QUA
7NTUM NUMBER NA = ,I2/24H QUANTUM NUMBER LA = ,I2/24H NUCLEAR
8 CHARGE ZA = ,F4.1/24H QUANTUM NUMBER NB = ,I2/24H QUANTUM N
9UMBER LB = ,I2/24H NUCLEAR CHARGE ZB = ,F4.1/15X,9HLAMBDA = ,I2
1 //50H EXPONENTIAL FACTOR IS EXP(-R/GAMMA) WITH GAMMA = ,E13.6/47H
2 POWER OF R (LAM1) IN NON EXPONENTIAL TERM = , I3/48H COEFFICIEN
3T (FNOUT) OF NON EXPONENTIAL TERM = ,E13.6// 61H THE OTHER POWER
4S (IPOWER(J)) AND COEFFICIENTS (F(J)) FOLLOW./2X,5HPOWER,4X,11HCOE
5FFICIENT/(2X,I3,5X,E13.6)/)
101 FORMAT(/1X,116(1H*)/)
END
c
c-----------------------------------------------------------------
c h y d r o
c-----------------------------------------------------------------
c
SUBROUTINE HYDRO(N,L,Z,ALPHA,A,AA,IPRINT)
C
C THIS ROUTINE CACULATES POWERS OF R, THE RADIAL COORDINATE, THEIR
C COEFFICIENTS AND THE COEFFICIENT IN THE EXPONENTIAL TERM FOR THE
C RADIAL PART OF A HYDROGENIC WAVE FUNCTION (NLM) WITH NUCLEAR CHARGE Z.
C
C THE WAVE FUNCTION, RAD(N,L,Z/R) (R(N,L/R) IN EYRING, WALTER AND
C KIMBALL'S NOTATION HAS THE FORM
C
C AA*(SUM(J)(A(J)*(R**J)))*EXP(-R/ALPHA)/R WHERE AA IS SUCH THAT
C A(N) = 1.0, AND ALPHA = N/Z.
C
C THE A'S ARE PROPORTIONAL TO THE LAGUERRE POLYNOMIAL COEFFICIENTS.
C
C THIS ROUTINE COULD BE USED BY ITSELF IF A LINE TO CALCULATE FAC(N) =
C FACTORIAL(N-1) WERE ADDED.
C
C THE POWERS AND COEFFICIENTS ARE PRINTED IF AND ONLY IF IPRINT = 1.
C
C ATOMIC UNITS ARE USED THROUGHOUT.
C
C iread,iwrite ARE INPUT AND OUTPUT CHANNEL NUMBERS RESPECTIVELY
C
DIMENSION A(100)
COMMON/INPOUT/iread,iwrite
COMMON/FACT/FAC(100)
A(N) = 1.0
IF(N-L-1) 1,3,2
1 WRITE(iwrite,99)
99 FORMAT(34H ERROR. N WAS LESS THAN L+1. EXIT.)
CALL EXIT
2 NL1 = N-L-1
DO 20 I = 1,NL1
20 A(N-I) = -A(N-I+1)*FLOAT((L+N+1-I)*(N-L-I)*N)/FLOAT(2*I)
3 IF(L.EQ.0) goto 6
DO 21 I = 1,L
21 A(I) = 0.0
6 CONTINUE
C
C CALCULATE OUTSIDE FACTOR AA
C
AA = -SQRT((Z)/((FAC(N+L+1)*FAC(N-L))))*((2.0*Z/FLOAT(N))**N)/FLOA
1T(N)
NA = (N-L)/2
IF(2*NA+L-N) 4,5,4
4 AA = -AA
5 CONTINUE
C
C EXPONENTIAL COEFFICIENT
C
ALPHA = FLOAT(N)/Z
C
C OUTPUT OF COEFFICIENTS, POWERS AND EXPONENTIAL COEFFICIENT
C
if(iprint.ne.1) goto 9
WRITE(iwrite,101) Z,N,L,ALPHA,AA,(I,A(I),I = 1,N)
WRITE(iwrite,102)
101 FORMAT(/45H HYDROGEN WAVE FUNCTION --- NUCLEAR CHARGE = ,F4.1/
129H QUANTUM NUMBERS N AND L ARE ,2I3//99H THE INFORMATION GIVEN RE
2FERS TO R*RADIAL PART OF THE WAVE FUNCTION, R BEING THE RADIAL COO
3RDINATE.//48H THE EXPONENTIAL FACTOR IS R/ALPHA WITH ALPHA = ,E13.
46//76H THE OUTSIDE CONSTANT (ARRANGED SO THAT THE COEFFICIENT OF R
5**N IS UNITY) = , E13.6/78H I.E. ALL COEFFICIENTS SHOULD BE MULTIP
6LIED BY THIS CONSTANT IN A CALCULATION./90H THE WAVE FUNCTION HAS
7THE FORM (OUTSIDE FACTOR)*(POWER SERIES IN R)*(EXPONENTIAL FACTOR)
8.//36H THE POWERS AND COEFFICIENTS FOLLOW./2X,5HPOWER,4X,11HCOEFFI
9CIENT/(2X,I3,5X,E13.6)/)
102 FORMAT(/1X,116(1H-))
9 RETURN
END
▶EOF◀