|
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◀