PtolemyGUI/dwuck4/culib8/SLATER.FOR

138 lines
3.0 KiB
Plaintext
Raw Permalink Normal View History

c***********************************************************************
SUBROUTINE SLATR (KT,KMAX,DRF,VB,MINL,FMU,ICODE)
c
c computes the slater integrals for the microscopic inelastic cases.
c***********************************************************************
IMPLICIT REAL*8(A-H,O-Z)
DIMENSION VB(800)
C
C YUKAWA SLATER EXPANSION
C
KM =KMAX
R=0.0
IF(ICODE.EQ.2) GO TO 101
C
C HANKEL FUNCTION*EXP(+FMU*R)
C
F1=1.0
F2=EXP(-FMU*DRF)
DO 100 M=1,KT
R=R+DRF
X=FMU*R
F1=F1*F2
AZ=(1.0-F1*F1)/(2.0*X)
B2=1.0/X
B1=B2*(1.0+B2)
FL=-1.0
DO 50 LL=1,MINL
B3=FL*B2/X+B1
B1=B2
B2=B3
FL=FL+2.0
50 CONTINUE
VB(M+KM )=B2
C
C BESSEL FUNCTION*EXP(-FMU*R)
C
MAX=2.0*X+10.0
MAX=MAX0(MAX,MINL+5)
A3=0.0
A2=1.0
FL=MAX+MAX+3
DO 70 LL=1,MAX
N=MAX+1-LL
FL=FL-2.0
A1=A3+FL*A2/X
IF(N.LT.MINL) GO TO 69
IF(ABS(A1).LT.1.0E+20) GO TO 69
A1=A1*1.0E-20
A2=A2*1.0E-20
69 CONTINUE
IF(N.EQ.MINL) TEMP=A1
A3=A2
A2=A1
70 CONTINUE
VB(M )=TEMP*AZ/A1
100 CONTINUE
RETURN
C
C COULOMB SLATER EXPANSION
C
101 CONTINUE
FL=MINL+MINL-1
DO 200 M=1,KT
R=R+DRF
A2=1.0
DO 105 LL=1,MINL
A2=A2*R
105 CONTINUE
VB(M )=A2/(R*FL)
VB(M+KM )=1.0/A2
200 CONTINUE
RETURN
END
CDWK407
SUBROUTINE RADIN(KT,KMAX,DRF,FMU,VB,UB,UC,SL,OPT,SI,KMT,SK)
IMPLICIT REAL*8(A-H,O-Z)
DIMENSION UB(400),UC(400),VB(800),SI(800),DG(2)
DATA XRHO/80./
FLOAT(III)=DFLOAT(III)
C
KM =KMAX
KM2=KMAX*2
KM3=KMAX*3
DG(1)=2.0*DRF/3.0
DG(2)=2.0*DG(1)
F0=EXP( FMU*DRF)
MMAX=XRHO/FMU/DRF
R2=0.0
SUMA=0.0
SUMB=0.0
SUMC=0.0
SUMD=0.0
DO 200 M=1,KT
MK=M+M-1
R2=R2+DRF
F2=EXP(-FLOAT(MIN0(MMAX,M)-1)*FMU*DRF)
SLL=0.0
MX=1
R1=0.0
DO 100 MM=1,KT
R1=R1+DRF
MX=3-MX
IF(IABS(M-MM).GT.MMAX) GO TO 100
F1=DG(MX)*UB(MM)*UC(MM)*R1**2
IF(M.GT.MM) GO TO 80
IF(M.EQ.MM) GO TO 90
F2=F2/F0
TEMP=VB(M)*VB(MM+KM3)*F2
GO TO 95
80 CONTINUE
TEMP=VB(MM+KM2)*VB(M+KM )*F2
F2=F2*F0
GO TO 95
90 TEMP=0.5*(VB(M)*VB(M+KM3)+VB(M+KM2)*VB(M+KM ))
95 CONTINUE
SLL=SLL+F1*TEMP
100 CONTINUE
SLL=SLL*OPT
R22=R2**2
IF(M.EQ.KMT) SK=SLL
SI(MK)=SI(MK)+SLL
SUMA=SUMA+UB(M)*UC(M)*R22
SUMB=SUMB+UB(M)*UC(M)*R22**2
SUMC=SUMC+SLL*R22
SUMD=SUMD+SLL*R22**2
200 CONTINUE
SUMA=SUMA*DRF
SUMB=SUMB*DRF
SUMC=SUMC*DRF
SUMD=SUMD*DRF
SL=SUMC
WRITE(6,9100)SUMA,SUMB,SUMC,SUMD
RETURN
9100 FORMAT(13H0 J0 =,F11.4,7H J1 =,F11.4,7H K0 =,F11.4
1 ,7H K1 =,F11.4)
END