zuchk.f 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. *DECK ZUCHK
  2. SUBROUTINE ZUCHK (YR, YI, NZ, ASCLE, TOL)
  3. C***BEGIN PROLOGUE ZUCHK
  4. C***SUBSIDIARY
  5. C***PURPOSE Subsidiary to SERI, ZUOIK, ZUNK1, ZUNK2, ZUNI1, ZUNI2 and
  6. C ZKSCL
  7. C***LIBRARY SLATEC
  8. C***TYPE ALL (CUCHK-A, ZUCHK-A)
  9. C***AUTHOR Amos, D. E., (SNL)
  10. C***DESCRIPTION
  11. C
  12. C Y ENTERS AS A SCALED QUANTITY WHOSE MAGNITUDE IS GREATER THAN
  13. C EXP(-ALIM)=ASCLE=1.0E+3*D1MACH(1)/TOL. THE TEST IS MADE TO SEE
  14. C IF THE MAGNITUDE OF THE REAL OR IMAGINARY PART WOULD UNDERFLOW
  15. C WHEN Y IS SCALED (BY TOL) TO ITS PROPER VALUE. Y IS ACCEPTED
  16. C IF THE UNDERFLOW IS AT LEAST ONE PRECISION BELOW THE MAGNITUDE
  17. C OF THE LARGEST COMPONENT; OTHERWISE THE PHASE ANGLE DOES NOT HAVE
  18. C ABSOLUTE ACCURACY AND AN UNDERFLOW IS ASSUMED.
  19. C
  20. C***SEE ALSO SERI, ZKSCL, ZUNI1, ZUNI2, ZUNK1, ZUNK2, ZUOIK
  21. C***ROUTINES CALLED (NONE)
  22. C***REVISION HISTORY (YYMMDD)
  23. C ?????? DATE WRITTEN
  24. C 910415 Prologue converted to Version 4.0 format. (BAB)
  25. C***END PROLOGUE ZUCHK
  26. C
  27. C COMPLEX Y
  28. DOUBLE PRECISION ASCLE, SS, ST, TOL, WR, WI, YR, YI
  29. INTEGER NZ
  30. C***FIRST EXECUTABLE STATEMENT ZUCHK
  31. NZ = 0
  32. WR = ABS(YR)
  33. WI = ABS(YI)
  34. ST = MIN(WR,WI)
  35. IF (ST.GT.ASCLE) RETURN
  36. SS = MAX(WR,WI)
  37. ST = ST/TOL
  38. IF (SS.LT.ST) NZ = 1
  39. RETURN
  40. END