1*DECK ZS1S2
2      SUBROUTINE ZS1S2 (ZRR, ZRI, S1R, S1I, S2R, S2I, NZ, ASCLE, ALIM,
3     +   IUF)
4C***BEGIN PROLOGUE  ZS1S2
5C***SUBSIDIARY
6C***PURPOSE  Subsidiary to ZAIRY and ZBESK
7C***LIBRARY   SLATEC
8C***TYPE      ALL (CS1S2-A, ZS1S2-A)
9C***AUTHOR  Amos, D. E., (SNL)
10C***DESCRIPTION
11C
12C     ZS1S2 TESTS FOR A POSSIBLE UNDERFLOW RESULTING FROM THE
13C     ADDITION OF THE I AND K FUNCTIONS IN THE ANALYTIC CON-
14C     TINUATION FORMULA WHERE S1=K FUNCTION AND S2=I FUNCTION.
15C     ON KODE=1 THE I AND K FUNCTIONS ARE DIFFERENT ORDERS OF
16C     MAGNITUDE, BUT FOR KODE=2 THEY CAN BE OF THE SAME ORDER
17C     OF MAGNITUDE AND THE MAXIMUM MUST BE AT LEAST ONE
18C     PRECISION ABOVE THE UNDERFLOW LIMIT.
19C
20C***SEE ALSO  ZAIRY, ZBESK
21C***ROUTINES CALLED  ZABS, ZEXP, ZLOG
22C***REVISION HISTORY  (YYMMDD)
23C   830501  DATE WRITTEN
24C   910415  Prologue converted to Version 4.0 format.  (BAB)
25C   930122  Added ZEXP and ZLOG to EXTERNAL statement.  (RWC)
26C***END PROLOGUE  ZS1S2
27C     COMPLEX CZERO,C1,S1,S1D,S2,ZR
28      DOUBLE PRECISION AA, ALIM, ALN, ASCLE, AS1, AS2, C1I, C1R, S1DI,
29     * S1DR, S1I, S1R, S2I, S2R, ZEROI, ZEROR, ZRI, ZRR, ZABS
30      INTEGER IUF, IDUM, NZ
31      EXTERNAL ZABS, ZEXP, ZLOG
32      DATA ZEROR,ZEROI  / 0.0D0 , 0.0D0 /
33C***FIRST EXECUTABLE STATEMENT  ZS1S2
34      NZ = 0
35      AS1 = ZABS(S1R,S1I)
36      AS2 = ZABS(S2R,S2I)
37      IF (S1R.EQ.0.0D0 .AND. S1I.EQ.0.0D0) GO TO 10
38      IF (AS1.EQ.0.0D0) GO TO 10
39      ALN = -ZRR - ZRR + LOG(AS1)
40      S1DR = S1R
41      S1DI = S1I
42      S1R = ZEROR
43      S1I = ZEROI
44      AS1 = ZEROR
45      IF (ALN.LT.(-ALIM)) GO TO 10
46      CALL ZLOG(S1DR, S1DI, C1R, C1I, IDUM)
47      C1R = C1R - ZRR - ZRR
48      C1I = C1I - ZRI - ZRI
49      CALL ZEXP(C1R, C1I, S1R, S1I)
50      AS1 = ZABS(S1R,S1I)
51      IUF = IUF + 1
52   10 CONTINUE
53      AA = MAX(AS1,AS2)
54      IF (AA.GT.ASCLE) RETURN
55      S1R = ZEROR
56      S1I = ZEROI
57      S2R = ZEROR
58      S2I = ZEROI
59      NZ = 1
60      IUF = 0
61      RETURN
62      END
63