Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- C Maybe we need a comment
- C
- PROGRAM STBRHY
- C
- C PROGRAM FOR CALCULATING THE STARKBROADENING OF HYDROGEN ON THE
- C BASIS OF THE UNIFIED THEORY INCLUDING LOWER STATE INTERACTION
- C
- C ALLOCATE ARRAYS AND MATRICIES
- DIMENSION DQQ(30),PFAC(6),STRONG(34),FF(1100),SJUU(136,31),
- & SJLL(6,5),RDM(16,3),SLUU(16),SLLL(3),NQUU(34,2),NQLL(34,2),
- & MMUU(34,2),MMLL(34,2),NQCU(30),NQCL(30),NXX(30),NST(30),
- & DST(30),W(300,5)
- C DEFINE VARIABLES WHICH CAN BE ACCESSED ANYWHERE IN THE PROGRAM
- COMMON /FDAT/ P1,P2,B1,A2,B2,PPFF,CCREAL,CCIMAG
- COMMON /PFW /FIELD(301)
- COMMON /11/ SLOP(595,22,2)
- COMMON /22/ DIPOL(34,2),NUR(2),IPI,NCQ,BET,FPAR(6,30),ADIFF(34,2),NSTEP
- COMMON /33/ AMATR(34,68), BMATR(34,34), CMATR(34,34)
- C DEFINE ALIASES FOR CONVENIENCE (Q: WHAT IS FF?)
- EQUIVALENCE (SJUU,AMATR),(FF(601),NQUU),(FF(669),NQLL),
- & (FF(737),MMUU),(FF(805),MMLL),(FF(873),NQCU),(FF(903),NQCL),
- & (FF(933),SJLL),(FF(963),RDM),(FF(1011),SLUU),(FF(1027),STRONG)
- FIELD(1) = 0.0
- C READ IN W AS A (300,5) MATRIX
- READ 100, ((W(I,J), J = 1,5), I = 1,300)
- 100 FORMAT (5E12.4)
- C
- C READ IN THE PHYSICAL PARAMETERS WE'RE INTERESTED IN
- 120 READ 150, DEN,TEMP,NNUU,NNLL,GIN,DGG,NTOT,NFAC,(PFAC(I), I=1,6)
- 150 FORMAT (2E10.2,I3,I2,2F10.2,2I5/6F10.5)
- IF (EOF,60) 577, 170
- C
- C CALCULATION OF MICROFIELD DISTRIBUTION FUNCTION
- 170 SHIELD = 0.0898 * DEN**(1./6.)/SQRT(TEMP)
- DO 161 J = 1,5
- 161 DST(J) = 0.2 * FLOAT(J-1)
- DO 163 I = 1,300
- DO 162 J = 1,5
- 162 DQQ(J) = W(I,J)
- CALL POLY5 (DST,DQQ,5,STRONG,SLUU,SHIELD,0.1,1)
- 163 FIELD(I+1) = SLUU(1)
- C
- C CALCULATION OF AVERAGE ION FIELD
- C
- DO 111 I = 1,300
- AM = I
- 111 FF(I) = FIELD(I+1) * AM/10.
- CALL WEDDLE (0.1,300,FF,BAV,0.)
- DY = 1./300.
- Y = 0.
- DO 113 I = 1,10
- Y = Y + DY
- B = 1./Y
- 113 FF(I) = WFLD(B) * B**3
- CALL WEDDLE (DY,10,FF,DB,0.)
- BAV = BAV + DB
- READ 175,NPUNCH,(NUR(I),I=1,2),IPI,NNCCQ
- 175 FORMAT (5I10)
- C
- C FOR NPUNCH > 1 K-MATRIX IS READ IN
- C FOR NPUNCH < 1 K-MATRIX IS CALCULATED
- C FOR NPUNCH = 1 K-MATRIX IS CALCULATED AND PUNCHED OUT
- C
- IF (NPUNCH.LE.1) GO TO 178
- DO 173 MBLOCK = 1,2
- NUPP = NUR(MBLOCK)
- NRRAB = (NUPP+1)*NUPP/2
- DO 174 J = IPI,NNCCQ
- READ 172, (FF(I),I=1,NRRAB)
- 172 FORMAT (5E16.9)
- DO 171 I = 1,NRRAB
- 171 SLOP(I,J,MBLOCK) = FF(I)
- 174 CONTINUE
- 173 CONTINUE
- C
- C CALCULATION OF WAVELENGTH IN STANDARD AIR
- C SOMETIMES I SERIOUSLY ASK MYSELF WHY I DO THESE THINGS
- C GENUINELY WHAT THE FUCK???
- C
- 178 AUU = NNUU
- ALL = NNLL
- SL1 = 109678.758 * (1./(ALL*ALL) - 1./(AUU*AUU))
- SL2 = SL1 * SL1
- ALDD = 1.000064328+2949810./(1.46E+10-SL2)+25540./(4.1E+9-SL2)
- ALAM = 1.E+8/(ALDD * SL1)
- PRINT 180, DEN, TEMP, NNUU, NNLL, ALAM, SHIELD
- 180 FORMAT /1H1,* DENSITY =* E10.2* TEMPERATURE =*E10.2,
- & * QUANTUMNUMBERS N UPPER =*I3* N LOWER =*I2* WAVELENGTH =*
- & F8.2* ANGSTROM*/10X,*SHIELDING PARAMETER =*F6.3,10X,
- & * INCLUDING LOWER STATE INTERACTION *//
- IF (NNUU.LE.5.AND.NNLL.LE.3) GO TO 200
- IF (NNUU.LE.8.AND.NNLL.LE.2) GO TO 200
- IF (NNUU.LE.16.AND.NNLL.EQ.1) GO TO 200
- PRINT 190
- 190 FORMAT (* OVERFLOW OF MATRICIES, PROGRAM NOT EXECUTED*)
- 577 CALL EXIT
- C
- C RADIAL MATRIXELEMENTS AND TOTAL LINESTRENGTH
- C
- 200 IPI = 2
- STOT = 0.
- DO 330 KLL = 1,NNLL
- LLL = KKL - 1
- ALL = LLL
- DO 310 KUU = 1,NNUU
- LUU = KUU - 1
- AUU = LUU
- RRMM = 0
- IF (IABS(KUU - KLL).NE.1) GO TO 310
- RRMM = RADMAT(NNUU,LUU,NNLL,LLL) * S3J(ALL,AUU,1.,0.,0.,0.)
- STOT = STOT + (2.*ALL+1.)*(2.*AUU+1.) * RRMM * RRMM
- 310 RDM(KUU,KLL) = RRMM
- 330 CONTINUE
- SQST = SQRT(STOT)
- C
- C TRANSFORMATION MATRICIES
- C
- DO 370 NKK = 1,2
- NN = NNLL
- IF (NKK.EQ.2) NN = NNUU
- ANN = NN
- AN1 = 0.5 * (ANN - 1.)
- KQQ = 2 * NN - 1
- NRUN = 0
- DO 370 KL = 1,NN
- AL = KL - 1
- FACC = SQRT(2.*AL+1.)
- IF(NKK.EQ.1) SLLL(KL) = FACC
- IF(NKK.EQ.2) SLUU(KL) = FACC
- DO 370 KM = 1,KL
- AM = KM - 1
- NRUN = NRUN + 1
- QQ = -ANN
- ALIM = ANN - 0.9 - AM
- DO 370 KQ = 1,KQQ
- QQ = QQ + 1.
- SIIJ = 0.
- ABQQ = ABS(QQ)
- IF (ABQQ.GT.ALIM) GO TO 360
- NQ = ABQQ + 0.1
- IF (MOD(NN+NQ+KM+1,2).NE.1) GO TO 360
- AMQ = 0.5 * (AM - QQ)
- APQ = 0.5 * (AM + QQ)
- SIIJ = FACC * S3J(AN1,AN1,AL,AMQ,APQ,-AM)
- 360 IF (NKK.EQ.1) SJLL(NRUN,KQ) = SIIJ
- IF (NKK.EQ.2) SJUU(NRUN,KQ) = SIIJ
- 370 CONTINUE
- C
- C DIPOLMATRIXELEMENTS IN PARABOLIC STATES AND MATRIX ORDERING
- C
- KQUU = 2 * NNUU - 1
- KQLL = 2 * NNLL - 1
- DO 500 MBLOCK = 1,2
- AMLCK = MBLOCK
- MBL = MBLOCK - 1
- AMBL = MBL
- NRUN = 0
- NCQ = 0
- NAQU = -NNUU
- DO 480 KUU = 1,KQUU
- NAQU = NAQU + 1
- KQU = NNUU + NAQU
- NAQL = -NNLL
- DO 480 KLL = 1,KQLL
- NAQL = NAQL + 1
- KQL = NNLL + NAQL
- NXDIFF = NNUU * NAQU - NNLL * NAQL
- AXDIF = NXDIFF
- IF (NXDIF.LT.0) GO TO 400
- NCQ = NCQ + 1
- IF (MBLOCK.EQ.2) GO TO 400
- NQCU(NCQ) = NAQU
- NQCL(NCQ) = NAQL
- NXX(NCQ) = NXDIF
- DQQ(NCQ) = 0.
- 400 NPHAS = (NNUU + NNLL + MBL - NAQU - NAQL - 2) / 2
- PHASE = (-1.)**MOD(NPHAS, 2)
- KMINL = NNLL - IABS(NAQL)
- KMINU = NNUU - IABS(NAQU)
- KML = -KMINL
- MKML = 2 * KMINL - 1
- DO 470 KAML = 1, MKML
- KML = KML + 1
- IF (MOD(NNLL+NAQL+KML,2).NE.1) GO TO 470
- KMU = KML + MBL
- IF (IABS(KMU).GE.KMINU) GO TO 470
- IF (MOD(NNUU+NAQU+KMU,2).NE.1) GO TO 470
- NRUN = NRUN + 1
- NQUU(NRUN,MBLOCK) = NAQU
- NQLL(NRUN,MBLOCK) = NAQL
- MMUU(NRUN,MBLOCK) = KMU
- MMLL(NRUN,MBLOCK) = KML
- ADIFF(NRUN,MBLOCK) = AXDIF
- AMU = KMU
- AML = KML
- KBBU = IABS(KMU) + 1
- KBBL = IABS(KML) + 1
- RESULT = 0.
- DO 450 KKLU = KBBU,NNUU
- ALU = KKLU - 1
- LLU = (KKLU - 1) * KKLU / 2 + KBBU
- FAC1 = SLUU(KKLU) * SJUU(LLU, KQU)
- DO 450 KKLL = KBBL, NNLL
- IF (IABS(KKLU - KKLL).NE.1) GO TO 450
- ALL = KKLL - 1
- LLL = (KKLL - 1) * KKLL / 2 + KBBL
- FAC2 = SLLL(KKLL) * SJLL(LLL, KQL)
- FACC = FAC2 * FAC1 * S3J(ALL, ALU, 1., AML, -AMU, AMBL)
- RESULT = RESULT + FACC * RDM(KKLU, KKLL)
- 450 CONTINUE
- SIIJ = RESULT * PHASE / SQST
- DIPOL(NRUN,MBLOCK) = SIIJ
- IF (NXDIF.GE.0) DQQ(NCQ) = DQQ(NCQ) + AMLCK * RESULT * RESULT / STOT
- PRINT 425, NAQU, KMU, NAQL, KML, SIIJ
- 425 FORMAT (16X,*(*,2I3,* I D I*,2I3,* ) =*E16.8)
- 470 CONTINUE
- 480 CONTINUE
- NUR(MBLOCK) = NRUN
- PRINT 393
- 393 FORMAT (/)
- 500 CONTINUE
- C
- C REORDERING OF THE STARK COMPONENTS
- C
- NCM1 = NCQ - 1
- DO 333 II = 1, NCM1
- IPP = II + 1
- DO 333 JJ = IPP, NCQ
- IF (NXX(II).LE.NXX(JJ)) GO TO 333
- TEMPP = NXX(II)
- NXX(II) = NXX(JJ)
- NXX(JJ) = TEMPP
- TEMPP = DQQ(II)
- DQQ(II) = DQQ(JJ)
- DQQ(JJ) = TEMPP
- TEMPP = NQCU(II)
- NQCU(II) = NQCU(JJ)
- NQCU(JJ) = TEMPP
- TEMPP = NQCL(II)
- NQCL(II) = NQCL(JJ)
- NQCL(JJ) = TEMPP
- 333 CONTINUE
- PRINT 410, (NQCU(I), NQCL(I), NXX(I), DQQ(I), I = 1, NCQ)
- 410 FORMAT(15X,* Q UPPER = *I3,* Q LOWER =*I3,* X =*I5,*
- & DIPOL=* E16.8)
- PRINT 393
- JJ = 1
- KMST = 0
- 315 KMST = KMST + 1
- DST(KMST) = 0.
- DO 325 II = JJ, NCQ
- IF (NXX(II) .NE. NXX(JJ)) GO TO 325
- NST(KMST) = NXX(II)
- DST(KMST) = DST(KMST) + DQQ(II)
- J = II
- 325 CONTINUE
- JJ = J + 1
- IF (JJ .GT. NCQ) GO TO 345
- GO TO 315
- 345 PRINT 355, (NST(I), DST(I), I = 1, KMST)
- 355 FORMAT (16X, *X =*I3,F20.10)
- PRINT 393
- C
- C K OPERATOR MATRIX
- C
- IF (NPUNCH - 1) 445, 455, 650
- 455 IPP = 2
- PUNCH 465, IPP, (NUR(I), I=1,2), IPI, NCQ, NNUU, NNLL
- 465 FORMAT (5I10, 15X, 2I5)
- 445 NTIME = KLOCK(0)
- DO 600 MBLOCK = 1, 2
- MBL = 1 - MBLOCK
- AMBL = MBL
- NUPP = NUR(MBLOCK)
- DO 600 NRC = IPI, NCQ
- NCQU = NQCU(NRC)
- NCQL = NQCL(NRC)
- KCQU = NNUU + NCQU
- KCQL = NNLL + NCQL
- IMULIM = NNUU - IABS(NCQU)
- IMLLIM = NNLL - IABS(NCQL)
- DO 590 NRA = 1, NUPP
- NAQU = NQUU(NRA, MBLOCK)
- KAMU = MMUU(NRA, MBLOCK)
- AMU = KAMU
- IABAMU = IABS(KAMU)
- NAQL = NQLL(NRA, MBLOCK)
- KAML = MMLL(NRA, MBLOCK)
- AML = KAML
- IABAML = IABS(KAML)
- KAQU = NNUU + NAQU
- KAQL = NNLL + NAQL
- KAAU = IABS(KAMU) + 1
- KAAL = IABS(KAML) + 1
- DO 580 NRB = 1, NRA
- NRRAB = (NRA - 1) * NRA / 2 + NRB
- NBQU = NQUU(NRB, MBLOCK)
- KBMU = MMUU(NRB, MBLOCK)
- BMU = KBMU
- IABBMU = IABS(KBMU)
- NBQL = NQLL(NRB, MBLOCK)
- KBML = MMLL(NRB, MBLOCK)
- BML = KBML
- IABBML = IABS(KBML)
- KBQU = NNUU + NBQU
- KBQL = NNLL + NBQL
- KBBU = IABS(KBMU) + 1
- KBBL = IABS(KBML) + 1
- NPHAS = MBL - NCQU - NCQL - (NAQU + NAQL + NBQU + NBQL) / 2
- SIIJ = 0.
- DO 540 JLAL = KAAL, NNLL
- ALL = JLAL - 1
- LALL = (JLAL - 1) * JLAL / 2 + IABAML + 1
- FAC1 = SJLL(LALL, KAQL)
- DO 540 JLAU = KAAU, NNUU
- ALU = JLAU - 1
- LALU = (JLAU - 1) * JLAU / 2 + IABAMU + 1
- FAC2 = SJUU(LALU, KAQU)
- FAC12 = FAC1 * FAC2
- DO 540 JLBL = KBBL, NNLL
- BLL = JLBL - 1
- LBLL = (JLBL - 1) * JLBL / 2 + IABBML + 1
- FAC3 = SJLL(LBLL, KBQL)
- FAC13 = FAC12 * FAC3
- MCLUP = MINO(JLBL, JLAL) - 1
- DO 540 JLBU = KBBU, NNUU
- BLU = JLBU - 1
- LBLU = (JLBU - 1) * JLBU / 2 + IABBMU + 1
- FAC4 = SJUU(LBLU, KBQU)
- FAC14 = FAC13 * FAC4
- MCUUP = MINO(JLBU, JLAU) - 1
- IUPP = MINO(IABS(JLAU + JLAL), IABS(JLBU + JLBL)) - 1
- MCL = -IMLLIM - 1
- DO 540 JMCLL = 1, IMLLIM
- MCL = MCL + 2
- IABCML = IABS(MCL)
- IF (IABCML .GT. MCLUP) GO TO 540
- AMCL = MCL
- LALL = (JLAL - 1) * JLAL / 2 + IABCML + 1
- LBLL = (JLBL - 1) * JLBL / 2 + IABCML + 1
- FAC5 = SJLL(LALL, KCQL) * SJLL(LBLL, KCQL)
- FAC15 = FAC14 * FAC5
- IF (ABS(FAC15) .LT. 1.E-8) GO TO 540
- MCU = -IMULIM - 1
- DO 535 JMCUU = 1, IMULIM
- MCU = MCU + 2
- IABCMU = IABS(MCU)
- IF (IABCMU .GT. MCUUP) GO TO 535
- AMCU = MCU
- LALU = (JLAU - 1) * JLAU / 2 + IABCMU + 1
- LBLU = (JLBU - 1) * JLBU / 2 + IABCMU + 1
- FAC6 = SJUU(LALU, KCQU) * SJUU(LBLU, KCQU)
- IF (ABS(FAC6) .LT. 1.E-8) GO TO 535
- MGGL = MCL - MCU
- AMGL = MGGL
- ILOW = MAXO(MBL, IABS(MGGL), IABS(JLAU - JLAL), IABS(JLBU - JLBL)) + 1
- IF (ILOW .GT. IUPP) GO TO 535
- FAC16 = FAC15 * FAC6 * ((-1.) ** MOD(NPHAS - MGGL, 2))
- DO 530 JLDD = ILOW, IUPP
- IF (MOD(JLAL + JLAU + JLDD, 2) .NE. 0) GO TO 515
- IF (KAMU .EQ. 0 .AND. KAML .EQ. 0) GO TO 530
- IF (MCL .EQ. 0 .AND. MCU .EQ. 0) GO TO 530
- 515 IF (MOD(JLBL + JLBU + JLDD, 2) .NE. 0) GO TO 520
- IF (KBMU .EQ. 0 .AND. KBML .EQ. 0) GO TO 530
- IF (MCL .EQ. 0 .AND. MCU .EQ. 0) GO TO 530
- 520 ALDD = JLDD - 1
- FAC7 = S3J(ALL, ALU, ALDD, -AMCL, AMCU, AMGL) * (2. * ALDD + 1.)
- FAC7 = FAC7 * S3J(ALL, ALU, ALDD, -AML, AMU, AMBL)
- FAC7 = FAC7 * S3J(BLL, BLU, ALDD, -AMCL, AMCU, AMGL)
- FACC = FAC7 * S3J(BLL, BLU, ALDD, -BML, BMU, AMBL) * FAC16
- SIIJ = SIIJ + FACC
- 530 CONTINUE
- 535 CONTINUE
- 540 CONTINUE
- SLOP(NRRAB, NRC, MBLOCK) = SIIJ
- 580 FF(NRRAB) = SIIJ
- 590 CONTINUE
- IF (NPUNCH .EQ. 1) PUNCH 630, (FF(I), I=1, NRRAB)
- 630 FORMAT (5E16.9)
- 600 CONTINUE
- NTIME = -NTIME + KLOCK(0)
- PRINT 617, NTIME
- 617 FORMAT (16X, *COMPUTER TIME FOR CALCULATING K-OPERATOR &
- & MATRIX =*I8/)
- C
- C BASIC CONSTANTS AND ARRAY FOR G-FUNCTION CONSTANTS
- C
- 650 SDEN = SQRT(DEN)
- FAC = 2064.936 * TEMP * SQRT(TEMP / DEN)
- CFAC = 4.5645E-7 * SDEN / TEMP
- DEBROG = 2.1027E-6 / SQRT(TEMP)
- ANN = NNUU
- RMIN = DEBROG + ANN * ANN * 7.9376E-9
- BET = 5.6558E-5 * DEN ** (1. / 6.)
- ASY = 0.0
- DO 270 NRC = IPI, NCQ
- QC = NXX(NRC)
- C = CFAC * QC
- P1 = -1.671086 * FAC * C * SQRT(C)
- BS = 3. * QC * DEBROG / RMIN
- STRONG(NRC) = 0.269-2. * (((1. - COSF(BS)) / BS + SINF(BS)) / BS
- & - COSINT(BS))
- PPFF = -1.128379 * FAC * C * C
- P2 = PPFF * (STRONG(NRC) - 2. * LOGF(2. * C))
- FPAR(1, NRC) = P1
- FPAR(2, NRC) = P2
- FPAR(3, NRC) = 0.5 * (P2 / P1) ** 2
- FIN = LOGF(QC)
- A2 = P2 * ((PFAC(3) * FIN * PFAC(2)) * FIN + PFAC(1))
- B2 = (PFAC(6) * FIN + PFAC(5)) * FIN + PFAC(4)
- IF (B2 .LT. 0.) A2 = 0.
- FPAR(4, NRC) = A2
- FPAR(5, NRC) = B2
- FPAR(6, NRC) = PPFF
- 270 ASY = ASY + 2. * P1 * DQQ(NRC)
- PRINT 220
- 220 FORMAT (/13X*P1*18X*P2*18X*B1*18X*A2*18X*B2*17X*STRONG*/)
- PRINT 240, ((FPAR(K, I), K = 1, 5), STRONG(I), I = IPI, NCQ)
- 240 FORMAT (6E20.4)
- PRINT 280, FAC, CFAC, BET, AST, DEBROG, BAV, NFAC
- 280 FORMAT /* FAC =*E11.4,* CFAC =*E11.4,* BET =*E11.4,* ASY =*E11.4,
- & * DEBROG =E11.4,* BAV =*F7.4,* INTEGRATIONFACTOR =*I2//
- & 5X*DOM*8X*DLAM*8X*ITOT*6X*IHOLTS*8X*ASY*10X*WING*7X*WHOLTS*7X
- & *WWOO*8X*WWBB*8X*WWNG*8X*TIME STEPS*/
- ADLFAC = 4.23538E-15 * SDEN * ALAM * ALAM
- C
- C CALCULATION OF THE IONFIELD INTEGRAL
- C
- N12 = 12 * NFAC
- AN12 = N12
- N30 = 30 * NFAC
- AN30 = N30
- DMCRT = BET * BAV * NXX(NCQ) * 5.
- G = GIN - DGG
- DO 950 MM = 1, NTOT
- NTIME = KLOCK(0)
- NSTEP = 0
- G = G + DGG
- DOM = 10. ** G
- DLAM = ADLFAC * DOM
- WING52 = -0.2992067103 * ASY / (SQRT(DOM) * DOM * DOM)
- FHOLTS = 0.
- AWING = 0.
- DO 815 NRC = IPI, NCQ
- P1 = FPAR(1, NRC)
- P2 = FPAR(2, NRC)
- B1 = FPAR(3, NRC)
- A2 = FPAR(4, NRC)
- B2 = FPAR(5, NRC)
- PPFF = FPAR(6, NRC)
- CALL FOUTR(DOM)
- AWING = AWING + DQQ(NRC) * CCIMAG * 2. / (DOM * DOM)
- QC = NXX(NRC)
- BETFAC = BET * QC
- BCRIT = DOM / BETFAC
- FHOLTS = FHOLTS + DQQ(NRC) * WFLD(BCRIT) / BETFAC
- IF (DOM .GT. DMCRT) GO TO 985
- AIRES = 0.
- IF (DOM .GT. (-3. * P2)) GO TO 840
- ANQ1 = NXX(NCQ)
- BCRIT = (DOM - P2) / (ANQ1 * BET)
- DB = BCRIT / AN12
- B = 0.
- DO 820 J = 1, N12
- B = B + DB
- 820 FF(J) = AIIM(DOM, B) * WFLD(B)
- CALL WEDDLE(DB, N12, FF, AIII, 0.)
- AIRES = AIII
- DY = 1. / (BCRIT * AN30)
- Y = 0.
- DO 830 J = 1, N30
- Y = Y + DY
- B = 1. / Y
- 830 FF(J) = B * B * AIIM(DOM, B) * WFLD(B)
- CALL WEDDLE(DY, N30, FF, AIII, 0.)
- AIRES = AIRES + AIII
- GO TO 980
- 840 BCRCR = DOM / BET
- EPSPS = -P2 / BET
- DO 957 NQ = IPI, KMST
- ANQ = NST(NQ)
- BCR = BCRCR / ANQ
- EPS = EPSPS / ANQ
- IF (NQ .EQ. IPI) GO TO 907
- SL1 = 1. / (GAM - BCR)
- GO TO 908
- 907 SL1 = 0.
- 908 SL2 = 1. / EPS
- SL3 = 1. / (BCR + EPS)
- SL4 = 1. / (BCR - EPS)
- IF (NQ .EQ. KMST) GO TO 911
- ANQ1 = NST(NQ + 1)
- GAM = 0.5 * (BCR - EPS + (BCRCR + EPSPS) / ANQ1)
- GO TO 912
- 911 GAM = 0.5 * (BCR - EPS)
- 912 SL5 = 1. / (BCR - GAM)
- CRIT = SL2 - SL5
- 904 Y = SL1
- IF (NQ .EQ. IPI) GO TO 913
- B = BCR + 1. / Y
- FA = AIIM(DOM, B) * WFLD(B) / (Y * Y)
- GO TO 914
- 913 FA = 0.
- 914 DY = (SL2 - SL1) / AN12
- DO 917 J = 1, N12
- Y = Y + DY
- Y1 = 1. / Y
- B = BCR + Y1
- 917 FF(J) = Y1 * Y1 * AIIM(DOM, B) * WFLD(B)
- CALL WEDDLE(DY, N12, FF, AIII, FA)
- AIRES = AIRES + AIII
- Y = SL3
- B = 1. / Y
- FA = B * B * AIIM(DOM, B) * WFLD(B)
- DY = (SL4 - SL3) / AN12
- DO 927 J = 1, N12
- Y = Y + DY
- B = 1. / Y
- 927 FF(J) = B * B * AIIM(DOM, B) * WFLD(B)
- CALL WEDDLE(DY, N12, FF, AIII, FA)
- AIRES = AIRES + AIII
- IF (CRIT .LE. 0.) GO TO 977
- Y = SL5
- B = BCR - 1. / Y
- FA = AIIM(DOM, B) * WFLD(B) / (Y * Y)
- DY = CRIT/AN12
- DO 937 J = 1, N12
- Y = Y + DY
- Y1 = 1. / Y
- B = BCR - Y1
- 937 FF(J) = Y1 * Y1 * AIIM(DOM, B) * WFLD(B)
- CALL WEDDLE(DY, N12, FF, AIII, FA)
- AIRES = AIRES + AIII
- 957 CONTINUE
- IF (GAM .LT. 5.) GO TO 968
- Y = 1. / GAM
- DY = (0.2 - Y) / AN12
- FA = GAM * GAM * AIIM(DOM, GAM) * WFLD(GAM)
- DO 967 J = 1, N12
- Y = Y + DY
- B = 1. / Y
- 967 FF(J) = B * B * AIIM(DOM, B) * WFLD(B)
- CALL WEDDLE(DY, N12, FF, AIII, FA)
- AIRES = AIRES + AIII
- SL4 = 0.2
- GO TO 977
- 968 SL4 = 1. / GAM
- 977 B = 0.
- DB = 1. / (SL4 * AN30)
- DO 947 J = 1, N30
- B = B + DB
- 947 FF(J) = AIIM(DOM, B) * WFLD(B)
- CALL WEDDLE(DB, N30, FF, AIII, 0.)
- AIRES = AIRES + AIII
- 980 WWBB = (AIIM(DOM, BAV) + FHOLTS) / WING52
- GO TO 990
- 985 AIRES = AIIM(DOM, BAV) + FHOLTS
- WWBB = 0.
- 990 WING = AIRES / WING52
- WINHOL = FHOLTS / WING52
- WWOO = (AIIM(DOM, 0.) + FHOLTS) / WING52
- WWNG = (AWING + FHOLTS) / WING52
- NTIME = -NTIME + KLOCK(0)
- 950 PRINT 978, /DOM, DLAM, AIRES, FHOLTS, WING52, WING, WINHOL, WWOO, WWBB,
- & WWNG, NTIME, NSTEP/
- 978 FORMAT (10E12.4, I10, I6)
- GO TO 120
- END
- C
- C
- FUNCTION AIIM(DOM, B)
- C
- C CALCULATION OF I(DOM,B) FOR THE GENERAL CASE INCLUDING LOWER
- C STATE INTERACTION
- DIMENSION DRRF(34), DIIF(34), FMATR(34,34)
- COMMON /FDAT/ P1, P2, B1, A2, B2, PPFF, CCREAL, CCIMAG
- COMMON /11/ SLOP(595,22,2)
- COMMON /22/ DIPOL(34,2), NUR(2), IPI, NCQ, BET, FPAR(6,30), &
- & ADIFF(34,2), NSTEP
- COMMON /33/ AMATR(34,68), BMATR(34,34), CMATR(34,34)
- AIIM = 0.0
- NSTEP = NSTEP + 1
- DO 800 MBL = 1, 2
- AML = MBL
- NUPP = NUR(MBL)
- DO 750 NRB = 1, NUPP
- DOMRB = DOM - BET * B * ADIFF(NRB, MBL)
- DO 220 NRC = IPI, NCQ
- P1 = FPAR(1, NRC)
- P2 = FPAR(2, NRC)
- B1 = FPAR(3, NRC)
- A2 = FPAR(4, NRC)
- B2 = FPAR(5, NRC)
- PPFF = FPAR(6, NRC)
- CALL FOUTR(DOMRB)
- DRRF(NRC) = CCREAL
- 220 DIIF(NRC) = CCIMAG
- DO 700 NRA = 1, NUPP
- IF (NRA .LE. NRB) NRRAB = (NRB - 1) * NRB / 2 + NRA
- IF (NRA .GT. NRB) NRRAB = (NRA - 1) * NRA / 2 + NRB
- ARRR = 0.0
- AIII = 0.0
- DO 600 NRC = IPI, NCQ
- TEMP = SLOP(NRRAB, NRC, MBL)
- ARRR = ARRR + TEMP * DRRF(NRC)
- 600 AIII = AIII + TEMP * DIIF(NRC)
- AIII = AIII * 6.2831853072
- AMATR(NRB, NRA) = AIII
- CMATR(NRB, NRA) = AIII
- 700 BMATR(NRB, NRA) = ARRR * 6.2831853072
- 750 BMATR(NRB, NRB) = BMATR(NRB, NRB) + DOMRB
- CALL ENVERS(NNUPP)
- DO 320 NRB = 1, NUPP
- DO 320 NRA = 1, NUPP
- TEMP = 0.
- DO 300 NRC = 1, NUPP
- 300 TEMP = TEMP + BMATR(NRB, NRC) * AMATR(NRC, NRA + NUPP)
- 320 FMATR(NRB, NRA) = TEMP
- DO 420 NRB = 1, NUPP
- DO 420 NRA = 1, NUPP
- TEMP = 0.
- DO 400 NRC = 1, NUPP
- 400 TEMP = TEMP + FMATR(NRB, NRC) * BMATR(NRC, NRA)
- 420 AMATR(NRB, NRA) = TEMP + CMATR(NRB, NRA)
- CALL ENVERS(NUPP)
- DO 795 NRB = 1, NUPP
- DO 795 NRA = 1, NUPP
- 795 AIIM = AIIM + AML * DIPOL(NRB, MBL) * DIPOL(NRA, MBL) &
- & * AMATR(NRB, NRA + NUPP)
- 800 CONTINUE
- AIIM = AIIM * 0.3183099
- RETURN
- END
- C
- C
- SUBROUTINE POLY5 (X,Y,NUMX,XN,YN,XNI,DX,NXNUM)
- C A 5 POINT POLYNOMIAL INTERPOLATION ROUTINE
- C FOR EACH POINT TO BE INTERPOLATED THE 5 NEAREST KNOWN POINTS
- C ARE CHOSEN, AND A 5TH DEGREE POLYNOMIAL IS FITTED TO THEM.
- C X AND Y ARE THE ARRAYS OF KNOWN POINTS ON THE CURVE
- C NUMX IS THE NUMBER OF KNOWN POINTS
- C TWO NEW ARRAYS, XN AND YN, WILL BE GENERATED FOR THE NXNUM
- C VALUES OF X AND F(X) STARTING WITH X=XNI IN INCREMENTS OF DX
- C
- DIMENSION X(5),Y(5),XN(5),YN(5)
- J=2
- DO 8 I=1,NXNUM
- EYE=I-1
- XN(I)=XNI+DX*EYE
- IF (XN(I)-X(1)).LT.0 GO TO 1
- IF (XN(I)-X(1)).EQ.0 GO TO 2
- IF (XN(I)-X(1)).GT.0 GO TO 3
- 2 YN(I)=Y(1)
- GO TO 8
- 3 IF (XN(I).LE.X(J)) GO TO 4
- IF (J.GE.NUMX) GO TO 7
- J = J + 1
- GO TO 3
- 1 L = 1
- GO TO 70
- 7 L = NUMX - 4
- GO TO 70
- 4 L = J - 1
- IF (J.GT.2) L = J - 2
- IF (J.GT.3) L = J - 3
- IF ((J+1).GT.NUMX) L = J - 4
- 70 YN(I)=0.0
- LLL=L+4
- DO 75 K=L,LLL
- TERM=1.0
- DO 74 M=L,LLL
- IF (K.EQ.M) GO TO 74
- TDEN=X(K)-X(M)
- TNUM=XN(I)-X(M)
- TERM=TERM*TNUM/TDEN
- 74 CONTINUE
- TERM = Y(K)*TERM
- 75 YN(I)=YN(I)+TERM
- 8 CONTINUE
- RETURN
- END
- C
- C
- SUBROUTINE FOUTR (DOM)
- C FOURIER TRANSFORM OF THERMAL AVERAGE FOR UNIFIED THEORY
- C
- COMMON /FDAT/ P1, P2, B1, A2, B2, PPFF, CCREAL, CCIMAG
- ARG = ABSF(DOM)
- Z = B1 * ARG
- IF (Z .LE. 0.001) GO TO 600
- AR2 = ARG * ARG
- IF (Z .LE. 40.) GO TO 300
- FAC1 = -0.2992067103 * P1 / (SQRT(ARG) * AR2)
- CC = FAC1 * ((1. - 1.3125 / Z) * 0.625 / Z + 1.)
- SS = CC - FAC1 * 1.25 / Z
- GO TO 500
- 300 CALL BSJY01(Z, AJ0, Y0, AJ1, Y1)
- FAC1 = Y1 / (2. * Z) + AJ1 - Y0
- FAC2 = AJ0 + Y1 - AJ1 / (2. * Z)
- CINE = COSF(Z)
- SINE = SINF(Z)
- FCC = P2 * B1 * B1
- CC = FCC * (CINE * FAC1 + SINE * FAC2)
- SS = FCC * (CINE * FAC2 - SINE * FAC1)
- IF (A2 .EQ. 0.) GO TO 500
- Z = B2 * ARG
- IF (Z .GT. 10.) GO TO 400
- CALL BSJY01(Z, AJ0, Y0, AJ1, Y1)
- FAC1 = ((AJ1 - Y0) * 16. * Z - 36. * AJ0 - 28. * Y1) * Z &
- & + 15. * Y0 - 3. * AJ1
- FAC2 = ((AJ0 + Y1) * 16. * Z - 36. * Y0 + 28. * AJ1) * Z &
- & - 15. * AJ0 - 3. * Y1
- CINE = COSF(Z)
- SINE = SINF(Z)
- FCC = A2 * B2 / 6.
- CC = CC + FCC * (CINE * FAC1 + SINE * FAC2)
- SS = SS + FCC * (CINE * FAC2 - SINE * FAC1)
- GO TO 500
- 400 FAC1 = 0.1322319336 * A2 * B2 * Z ** (-3.5)
- FCC = FAC1 * (1. - (3.9375 / Z + 1.) * 4.375 / Z)
- CC = CC + FCC
- SS = SS - FCC - FAC1 * 8.75 / Z
- 500 IF (DOM .LT. 0.) SS = -SS
- CCREAL = -AR2 * SS
- CCIMAG = AR2 * CC
- RETURN
- 600 CCREAL = 0.3183099 * (P2 * B1 - A2) * DOM
- CCIMAG = -0.3183099 * P2
- RETURN
- END
- C
- C
- SUBROUTINE ENVERS (NN)
- C
- COMMON /33/ C(34,68), BMATR(34,34), CMATR(34,34)
- N = NN
- IF (N .GT. 1) GO TO 10
- C(1,2) = 1.0 / C(1,1)
- RETURN
- 10 DO 300 K = 1, N
- KN = K + N
- NP = KN - 1
- KP1 = K + 1
- TEMP = 1. / C(K,K)
- DO 100 I = KP1, NP
- 100 C(K,I) = C(K,I) * TEMP
- C(K,KN) = TEMP
- DO 300 L = 1, N
- IF (K .EQ. L) GO TO 300
- TEMP = C(L,K)
- DO 200 I = KP1, NP
- 200 C(L,I) = C(L,I) - C(K,I) * TEMP
- C(L,KN) = -C(K,KN) * TEMP
- 300 CONTINUE
- RETURN
- END
- C
- C
- FUNCTION RADMAT(N1,L1,N2,L2)
- C
- C
- DIMENSION F(2)
- RADMAT = 0.0
- IF(IABS(L1 - L2).NE.1) RETURN
- NA = N1
- NB = N2
- L = L1
- IF(L1.GT.L2) GO TO 10
- NA = N2
- NB = N1
- L = L2
- 10 ANA = NA
- BNB = NB
- AL = L
- IF(N1.EQ.N2) GO TO 60
- RADMAT = FCTRL(ANA + AL) * FCTRL(BNB + AL - 1.)
- RADMAT = RADMAT/(FCTRL(ANA - AL - 1.) * FCTRL(BNB - AL))
- RADMAT = SQRT(RADMAT)
- I = BNB + AL
- AL = 2. * AL
- RADMAT = RADMAT * ((-1.0)**XMODF(I,2))/(4.*FCTRL(AL - 1.))
- ABAB = (ANA - BNB)/(ANA + BNB)
- AB2 = 1./(ANA - BNB)**2
- RADMAT = RADMAT * ABAB**(NA+NB)*(4.*ANA*BNB*AB2)**(L+1)
- Z = -4. * ANA * BNB * AB2
- NR = NA - L - 1
- NRP = NB - L
- ANRP = NRP
- DO 30 MM = 1,2
- F(MM) = 1.0
- IF(MM.EQ.2) NR = NR + 2
- K = MINO (NR,NRP)
- IF(K.EQ.0) GO TO 30
- ANR = NR
- PROD = 1.0
- DO 40 M = 1,K
- AM = M - 1
- PROD = PROD * (AM-ANR)*(AM-ANRP)*Z/((AL+AM)*(AM+1.))
- 40 F(MM) = F(MM) + PROD
- 30 CONTINUE
- RADMAT = RADMAT * (F(1) - ABAB * ABAB * F(2))
- RETURN
- 60 RADMAT = -1.5 * ANA * SQRT((ANA+AL)*(ANA-AL))
- RETURN
- END
- C
- C
- FUNCTION FCTRL(A)
- C
- C CALCULATION OF FACTORIALS
- DIMENSION FCTI(20)
- DATA (FCTI(I),I=1,20) / 1.0,2.0,6.0,24.0,120.0,720.0,5040.0,
- & 40320.0,362880.0,3628800.0,39916800.0,479001600.0,
- & 6227020800.0,87178291200.0,1307674368000.0,
- & 2.0922789888E13, 3.55687428096E14, 6.402373705728E15,
- & 1.2164510040883E17, 2.4329020081766E18/
- I = A + 0.1
- IF(I) 50,60,70
- 50 FCTRL = 0.0
- RETURN
- 60 FCTRL = 1.0
- RETURN
- 70 IF (I.GT.20) GO TO 130
- FCTRL=FCTI(I)
- RETURN
- 130 F=20.0
- FCTRL=FCTI(20)
- DO 131 J=21,I
- F=F+1.0
- 131 FCTRL=FCTRL*F
- RETURN
- END
- C
- C
- FUNCTION S3J (FJ1, FJ2, FJ3, FM1, FM2, FM3)
- C
- C CALCULATION OF THE 3J-SYMBOL, FJ1+FJ2+FJ3 HAS TO BE LESS THAN 38
- C
- DIMENSION GAM(39)
- DATA (GAM(I),I=1,39) / 1.,1.,2.,6.,24.,120.,720.,5040.,40320.,
- & 362880.,3628800.,39916800.,479001600.,6227020800.,87178291200.,
- & 1307674368000.,2.0922789888E+13,3.5568742810E+14,
- & 6.4023737057E+15,1.2164510041E+17,2.4329020082E+18,
- & 5.1090942172E+19,1.1240007278E+21,2.5852016739E+22,
- & 6.2044840173E+23,1.5511210043E+25,4.0329146113E+26,
- & 1.0888869450E+28,3.0488834461E+29,8.8417619937E+30,
- & 2.6525285981E+32,8.2228386542E+33,2.6313083693E+35,
- & 8.6833176188E+36,2.9523279904E+38,1.0333147966E+40,
- & 3.7199332679E+41,1.3763753091E+43,5.2302261747E+44/
- S3J=0.0
- FJA = FJ1+0.001
- FJB= FJ2+0.001
- FJC = FJ3+0.001
- IF (FJA.LT.0.0.OR.FJB.LT.0.0.OR.FJC.LT.0.0) RETURN
- IF (AMOD(FJA,0.5).GT.0.002) RETURN
- IF (AMOD(FJB,0.5).GT.0.002) RETURN
- IF (AMOD(FJC,0.5).GT.0.002) RETURN
- FMA = FM1
- FMB = FM2
- FMC = FM3
- IF (ABS(FMA).GT.FJA.OR.ABS(FMB).GT.FJB.OR.ABS(FMC).GT.FJC) RETURN
- B = FJA - FMA
- P = FJB - FMB
- D = FJC - FMC
- G = FJA + FJB - FJC
- IF ((ABS(FMA+FMB+FMC)+AMOD(B,1.)+AMOD(P,1.)+AMOD(D,1.)+DIM(0.,G)
- & +DIM(ABS(FJA-FJB),FJC)).GT.0.01) RETURN
- IHH = FJA + FJB + FJC + 2.
- IAA = FJB+FJC+FMA+1.
- ICC = -FJA+FJB+FJC+1.
- IFF = FJA-FJB+FJC+1.
- IGG = G+1.
- J1M = B+1.
- J2M = P+1.
- J3M = D+1.
- J1P = FJA+FMA+1.
- J2P = FJB+FMB+1.
- J3P = FJC+FMC+1.
- E2 = GAM(J1M)*GAM(J1P)*GAM(J2M)*GAM(J2P)
- E1 = (GAM(ICC)*GAM(IFF)/GAM(IHH))*GAM(IGG)*GAM(J3M)*GAM(J3P)
- E1 = SQRT(E2/E1)
- E = FJA - FJB + FMC
- IAEE = ABS(E) + 0.001
- IEE = IAEE + 1
- I1 = IAEE
- 100 I2 = ICC - 1
- IF (J3M.LT.ICC) I2 = J3M - 1
- DO 150 I=I1,I2
- E2 = GAM(I+1)*GAM(ICC-I)*GAM(J3M-I)/GAM(IAA-I)
- 150 S3J = S3J+(((-1.)**(I-(I/2)*2))/E2)*GAM(J1M+I)/GAM(IEE+I)
- I = ABS(FJA+FMB-FMC) + 0.01
- S3J = S3J * ((-1.)**(I-(I/2)*2))/E1
- RETURN
- END
- C
- C
- SUBROUTINE WEDDLE (DX,N,F,A,F0)
- C
- C INTEGRATION SUBROUTINE
- C
- DIMENSION F(N)
- A = 0.0
- K = N - 1
- DO 15 I = 1,6
- SM = 0.0
- DO 6 J = I,K,6
- 6 SM = SM + F(J)
- GO TO (8, 10, 12, 10, 8, 14), I
- 8 A = A + 5.0 * SM
- GO TO 15
- 10 A = A + SM
- GO TO 15
- 12 A = A + 6.0 * SM
- GO TO 15
- 14 A = A + 2.0 * SM
- 15 CONTINUE
- A = 0.3 * DX * (A + F0 + F(N))
- RETURN
- END
- C
- FUNCTION WFLD(B)
- C
- C CALCULATION OF THE ION MICROFIELD DISTRIBUTION FUNCTION USING
- C 5POINT INTERPOLATION FOR THE DATA READ INTO THE MAIN PROGRAM
- C
- COMMON /PFW/ FIELD(301)
- WFLD = 0.0
- IF (B.LE.30.0) GO TO 200
- SBS = 1./(B * SQRT(B))
- WFLD = ((21.6 * SBS + 7.639) * SBS + 1.496) * SBS/B
- RETURN
- 200 IF (B.LE.0.0) RETURN
- J = (B + 0.2) * 10.0
- L = J - 1
- IF (J.GT.2) L = J - 2
- IF (J.GT.3) L = J - 3
- IF (J.GT.300) L = 297
- 70 LLL = L + 4
- DO 75 K = L,LLL
- AK = K - 1
- TERM = 1.0
- DO 74 M = L,LLL
- IF (K.EQ.M) GO TO 74
- AM = M - 1
- TERM = TERM * (10.*B - AM)/(AK - AM)
- 74 CONTINUE
- TERM = TERM * FIELD(K)
- 75 WFLD = WFLD + TERM
- RETURN
- END
- C
- C
- FUNCTION COSINT(X)
- C
- C CALCULATION OF THE COSINE INTEGRAL
- C
- DOUBLE PRECISION Y2,PROD,SM,PT,DK
- IF(X.LE.0.) GO TO 50
- X2 = X * X
- IF(X.GT.20.) GO TO 30
- Y2 = DBLE(X2)
- PROD = -Y2 * 0.5
- SM = PROD * 0.5
- DO 10 K = 2,50
- DK = 2 * K
- PROD = -PROD * Y2/(DK*(DK - 1.))
- SM = SM + PROD/DK
- PT = ABS(PROD * 1.D+10)
- IF(ABS(SM).GT.PT) GO TO 20
- 10 CONTINUE
- 20 SS = SNGL(SM)
- COSINT = SS + 0.5772156649 + LOGF(X)
- RETURN
- 30 FA = 1.
- FB = 1.
- P0 = 1.
- X2 = 1./X2
- DO 40 K = 1,10
- AK = 2 * K
- P0 = -P0 * AK * X2
- FA = FA + P0
- P0 = P0 * (AK + 1.)
- FB = FB + P0
- PA = ABS(P0 + 1.E+10)
- IF(PA.LE.FB) GO TO 45
- 40 CONTINUE
- 45 FX = FA/X
- GX = FB * X2
- COSINT = FX * SIN(X) - GX * COS(X)
- RETURN
- 50 WRITE (61,100) X
- 100 FORMAT (* X LESS OR EQUAL TO ZERO, X = *E17.9)
- RETURN
- END
- C
- C
- SUBROUTINE BSJY01(X, AJ0, Y0, AJ1, Y1)
- C
- C CALCULATION OF THE BESSEL FUNCTIONS J0, Y0, J1, AND Y1 FOR AN
- C ARGUMENT X
- C
- DIMENSION A(7), B(7), C(7), D(7), E(7), F(7), G(7), H(7)
- DATA (A(I), I = 1,7) / 0.00021, -0.0039444, 0.0444479,
- & -0.3163866, 1.2656208, -2.2499997, 1.0/
- DATA (B(I), I = 1,7) / -0.00024846, 0.00427916, -0.04261214,
- & 0.25300117, -0.74350384, 0.60559366, 0.36746691/
- DATA (C(I), I = 1,7) / 0.00014476, -0.00072805, 0.00137237,
- & -0.00009512, -0.0055274, -0.00000077, 0.79788456/
- DATA (D(I), I = 1,7) / 0.00013558, -0.00029333, -0.00054125,
- & 0.00262573, -0.00003954, -0.04166397, -0.78539816/
- DATA (E(I), I = 1,7) / 0.00001109, -0.00031761, 0.00443319,
- & -0.03954289, 0.21093573, -0.56249985, 0.5/
- DATA (F(I), I = 1,7) / 0.0027873, -0.0400976, 0.3123951,
- & -1.3164827, 2.1682709, 0.2212091, -0.6366198
- DATA (G(I), I = 1,7) / -0.00020033, 0.00113653, -0.00249511,
- & 0.00017105, 0.01659667, 0.00000156, 0.79788456/
- DATA (H(I), I = 1,7) / -0.00029166, 0.00079824, 0.00074348,
- & -0.00637879, 0.0000565, 0.12499612, -2.35619449/
- AX = ABSF(X)
- IF (AX.GT.0.0) GO TO 10
- AJ0 = 1.
- Y0 = -1.E+30
- AJ1 = 0.
- Y1 = -1.E+30
- RETURN
- 10 IF (AX.GT.3.0) GO TO 50
- XX = (AX/3.0) ** 2
- AJ0 = A(1)
- Y0 = B(1)
- AJ1 = E(1)
- Y1 = F(1)
- DO 20 M = 2,7
- AJ0 = AJ0 * XX + A(M)
- Y0 = Y0 * XX + B(M)
- AJ1 = AJ1 * XX + E(M)
- 20 Y1 = Y1 * XX + F(M)
- AJ1 = AJ1 * X
- ALF = 0.6366197724 * LOGF(0.5 * AX)
- Y0 = Y0 + ALF * AJ0
- Y1 = Y1/X + ALF * AJ1
- RETURN
- 50 X3 = 3.0/AX
- F0 = C(1)
- TH0 = D(1)
- F1 = G(1)
- TH1 = H(1)
- DO 60 M = 2,7
- F0 = F0 * X3 + C(M)
- TH0 = TH0 * X3 + D(M)
- F1 = F1 * X3 + G(M)
- 60 TH1 = TH1 * X3 + H(M)
- TH0 = TH0 + AX
- TH1 = TH1 + AX
- XS = 1./SQRT(AX)
- AJ0= XS * F0 * COSF(TH0)
- Y0 = XS * F0 * SINF(TH0)
- AJ1= XS * F1 * COSF(TH1)
- Y1 = XS * F1 * SINF(TH1)
- RETURN
- END
- C
- C
Add Comment
Please, Sign In to add comment