123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- SUBROUTINE ZUNI1 (ZR, ZI, FNU, KODE, N, YR, YI, NZ, NLAST, FNUL,
- + TOL, ELIM, ALIM)
- C***BEGIN PROLOGUE ZUNI1
- C***SUBSIDIARY
- C***PURPOSE Subsidiary to ZBESI and ZBESK
- C***LIBRARY SLATEC
- C***TYPE ALL (CUNI1-A, ZUNI1-A)
- C***AUTHOR Amos, D. E., (SNL)
- C***DESCRIPTION
- C
- C ZUNI1 COMPUTES I(FNU,Z) BY MEANS OF THE UNIFORM ASYMPTOTIC
- C EXPANSION FOR I(FNU,Z) IN -PI/3.LE.ARG Z.LE.PI/3.
- C
- C FNUL IS THE SMALLEST ORDER PERMITTED FOR THE ASYMPTOTIC
- C EXPANSION. NLAST=0 MEANS ALL OF THE Y VALUES WERE SET.
- C
- C
- C
- C
- C***SEE
- C***ROUTINES
- C***REVISION
- C
- C
- C***END
- C
- C
- DOUBLE
- * CSCL, CSRR, CSSR, CWRKI, CWRKR, C1R, C2I, C2M, C2R, ELIM, FN,
- * FNU, FNUL, PHII, PHIR, RAST, RS1, RZI, RZR, STI, STR, SUMI,
- * SUMR, S1I, S1R, S2I, S2R, TOL, YI, YR, ZEROI, ZEROR, ZETA1I,
- * ZETA1R, ZETA2I, ZETA2R, ZI, ZR, CYR, CYI, D1MACH, ZABS
- INTEGER
- DIMENSION
- * CSRR(3), CYR(2), CYI(2)
- EXTERNAL
- DATA / 0.0D0, 0.0D0, 1.0D0 /
- C***FIRST
- NZ
- ND
- NLAST
- C-----------------------------------------------------------------------
- C
- C
- C
- C-----------------------------------------------------------------------
- CSCL /TOL
- CRSC = TOL
- CSSR(1) = CSCL
- CSSR(2) = CONER
- CSSR(3) = CRSC
- CSRR(1) = CRSC
- CSRR(2) = CONER
- CSRR(3) = CSCL
- BRY(1) = 1.0D+3*D1MACH(1)/
- C-----------------------------------------------------------------------
- C
- C-----------------------------------------------------------------------
- FN
- INIT
- CALL
- * ZETA1I, ZETA2R, ZETA2I, SUMR, SUMI, CWRKR, CWRKI)
- IF
- STR
- STI
- RAST /ZABS(STR,STI)
- STR = STR*RAST*RAST
- STI = -STI*RAST*RAST
- S1R = -ZETA1R + STR
- S1I = -ZETA1I + STI
- GO TO 20
- 10 CONTINUE
- S1R = -ZETA1R + ZETA2R
- S1I = -ZETA1I + ZETA2I
- 20 CONTINUE
- RS1 = S1R
- IF (ABS(RS1).GT.ELIM) GO TO 130
- 30 CONTINUE
- NN = MIN(2,ND)
- DO 80 I=1,NN
- FN = FNU + (ND-I)
- INIT = 0
- CALL ZUNIK(ZR, ZI, FN, 1, 0, TOL, INIT, PHIR, PHII, ZETA1R,
- * ZETA1I, ZETA2R, ZETA2I, SUMR, SUMI, CWRKR, CWRKI)
- IF (KODE.EQ.1) GO TO 40
- STR = ZR + ZETA2R
- STI = ZI + ZETA2I
- RAST = FN/
- STR
- STI
- S1R
- S1I
- GO
- 40 CONTINUE
- S1R
- S1I
- 50 CONTINUE
- C-----------------------------------------------------------------------
- C
- C-----------------------------------------------------------------------
- RS1
- IF
- IF
- IF
- C-----------------------------------------------------------------------
- C
- C-----------------------------------------------------------------------
- APHI
- RS1
- IF
- IF
- IF
- IF
- 60 CONTINUE
- C-----------------------------------------------------------------------
- C
- C-----------------------------------------------------------------------
- S2R
- S2I
- STR
- S1R
- S1I
- STR
- S2I
- S2R
- IF
- CALL
- IF
- 70 CONTINUE
- CYR(I)
- CYI(I)
- M
- YR(M)
- YI(M)
- 80 CONTINUE
- IF
- RAST /ZABS(ZR,ZI)
- STR = ZR*RAST
- STI = -ZI*RAST
- RZR = (STR+STR)*RAST
- RZI = (STI+STI)*RAST
- BRY(2) = 1.0D0/
- BRY(3)
- S1R
- S1I
- S2R
- S2I
- C1R
- ASCLE
- K
- FN
- DO
- C2R
- C2I
- S2R
- S2I
- S1R
- S1I
- C2R
- C2I
- YR(K)
- YI(K)
- K
- FN
- IF
- STR
- STI
- C2M
- IF
- IFLAG
- ASCLE
- S1R
- S1I
- S2R
- S2I
- S1R
- S1I
- S2R
- S2I
- C1R
- 90 CONTINUE
- 100 CONTINUE
- RETURN
- C-----------------------------------------------------------------------
- C
- C-----------------------------------------------------------------------
- 110 CONTINUE
- IF
- YR(ND)
- YI(ND)
- NZ
- ND
- IF
- CALL
- IF
- ND
- NZ
- IF
- FN
- IF
- NLAST
- RETURN
- 120 CONTINUE
- NZ
- RETURN
- 130 CONTINUE
- IF
- NZ
- DO
- YR(I)
- YI(I)
- 140 CONTINUE
- RETURN
- END
|