Routine: PSLAMCH()  File: SRC\pslamch.f

 
 
# lines: 82
  # code: 82
  # comment: 0
  # blank:0
# Variables:7
# Callers:50
# Callings:0
# Words:28
# Keywords:22
 

 

..
  Purpose
  =======
  PSLAMCH determines single precision machine parameters.
  Arguments
  =========
  ICTXT   (global input) INTEGER
          The BLACS context handle in which the computation takes
          place.
  CMACH   (global input) CHARACTER*1
          Specifies the value to be returned by PSLAMCH:
          = 'E' or 'e',   PSLAMCH := eps
          = 'S' or 's ,   PSLAMCH := sfmin
          = 'B' or 'b',   PSLAMCH := base
          = 'P' or 'p',   PSLAMCH := eps*base
          = 'N' or 'n',   PSLAMCH := t
          = 'R' or 'r',   PSLAMCH := rnd
          = 'M' or 'm',   PSLAMCH := emin
          = 'U' or 'u',   PSLAMCH := rmin
          = 'L' or 'l',   PSLAMCH := emax
          = 'O' or 'o',   PSLAMCH := rmax
          where
          eps   = relative machine precision
          sfmin = safe minimum, such that 1/sfmin does not overflow
          base  = base of the machine
          prec  = eps*base
          t     = number of (base) digits in the mantissa
          rnd   = 1.0 when rounding occurs in addition, 0.0 otherwise
          emin  = minimum exponent before (gradual) underflow
          rmin  = underflow threshold - base**(emin-1)
          emax  = largest exponent before overflow
          rmax  = overflow threshold  - (base**emax)*(1-eps)
  =====================================================================
     .. Local Scalars ..

 
Display dynamic version Find AutoScroll Reload FontSize: - + Hide Comments Hide Blanks Frame FullScreen MailPrint

 
01        REAL FUNCTION PSLAMCH( ICTXT , CMACH )
02  
03  *     -- ScaLAPACK auxiliary routine(version 1.7) --
04  *     University of Tennessee , Knoxville , Oak Ridge National Laboratory ,
05  *     and University of California , Berkeley.
06  *     May 1 , 1997
07  
08  *     .. Scalar Arguments ..
09        CHARACTER CMACH
10        INTEGER ICTXT
11        INTEGER IDUMM
12        REAL TEMP
13  *     ..
14  *     .. External Subroutines ..
15        EXTERNAL SGAMN2D , SGAMX2D
16  *     ..
17  *     .. External Functions ..
18        LOGICAL LSAME
19        REAL SLAMCH
20        EXTERNAL LSAME , SLAMCH
21  *     ..
22  *     .. Executable Statements ..
23  
24        TEMP = SLAMCH( CMACH )
25  
26        IF( LSAME( CMACH , 'E' ).OR.LSAME( CMACH , 'S' ).OR.
27       $LSAME( CMACH , 'M' ).OR.LSAME( CMACH , 'U' ) ) THEN
28        CALL SGAMX2D( ICTXT , 'All' , ' ' , 1 , 1 , TEMP , 1 , IDUMM ,
29       $IDUMM , - 1 , - 1 , IDUMM )
30        ELSE IF( LSAME( CMACH , 'L' ).OR.LSAME( CMACH , 'O' ) ) THEN
31            CALL SGAMN2D( ICTXT , 'All' , ' ' , 1 , 1 , TEMP , 1 , IDUMM ,
32       $    IDUMM , - 1 , - 1 , IDUMM )
33        END IF
34  
35        PSLAMCH = TEMP
36  
37  *     End of PSLAMCH
38  
39        END