cuchk.f 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. *DECK CUCHK
  2. SUBROUTINE CUCHK (Y, NZ, ASCLE, TOL)
  3. C***BEGIN PROLOGUE CUCHK
  4. C***SUBSIDIARY
  5. C***PURPOSE Subsidiary to SERI, CUOIK, CUNK1, CUNK2, CUNI1, CUNI2 and
  6. C CKSCL
  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*R1MACH(1)/TOL. THE TEST IS MADE TO SEE
  14. C IF THE MAGNITUDE OF THE REAL OR IMAGINARY PART WOULD UNDER FLOW
  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 CKSCL, CUNI1, CUNI2, CUNK1, CUNK2, CUOIK, SERI
  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 CUCHK
  26. C
  27. COMPLEX Y
  28. REAL ASCLE, SS, ST, TOL, YR, YI
  29. INTEGER NZ
  30. C***FIRST EXECUTABLE STATEMENT CUCHK
  31. NZ = 0
  32. YR = REAL(Y)
  33. YI = AIMAG(Y)
  34. YR = ABS(YR)
  35. YI = ABS(YI)
  36. ST = MIN(YR,YI)
  37. IF (ST.GT.ASCLE) RETURN
  38. SS = MAX(YR,YI)
  39. ST=ST/TOL
  40. IF (SS.LT.ST) NZ = 1
  41. RETURN
  42. END