A newer version of this document is available. Customers should click here to go to the newest version.
ABS
Elemental Intrinsic Function (Generic): Computes an absolute value.
result=ABS(a)
a  |  
      (Input) Must be of type integer, real, or complex.  |  
     
Results
The result has the same type and kind type parameter as a except if a is complex value, the result type is real. If a is an integer or real value, the value of the result is | a |; if a is a complex value (X, Y), the result is the real value SQRT (X**2 + Y**2).
Specific Name  |  
        Argument Type  |  
        Result Type  |  
       
|---|---|---|
BABS  |  
        INTEGER(1)  |  
        INTEGER(1)  |  
       
IIABS1  |  
        INTEGER(2)  |  
        INTEGER(2)  |  
       
IABS 2  |  
        INTEGER(4)  |  
        INTEGER(4)  |  
       
KIABS  |  
        INTEGER(8)  |  
        INTEGER(8)  |  
       
ABS  |  
        REAL(4)  |  
        REAL(4)  |  
       
DABS  |  
        REAL(8)  |  
        REAL(8)  |  
       
QABS  |  
        REAL(16)  |  
        REAL(16)  |  
       
CABS 3  |  
        COMPLEX(4)  |  
        REAL(4)  |  
       
CDABS4  |  
        COMPLEX(8)  |  
        REAL(8)  |  
       
CQABS  |  
        COMPLEX(16)  |  
        REAL(16)  |  
       
1Or HABS. 2Or JIABS. For compatibility with older versions of Fortran, IABS can also be specified as a generic function, which allows integer arguments of any kind and produces a result of type default INTEGER. 3The setting of compiler options specifying real size can affect CABS, making CABS generic, which allows a complex argument of any kind to produce a result of default REAL. 4This function can also be specified as ZABS.  |  
       ||
Example
ABS (-7.4) has the value 7.4.
ABS ((6.0, 8.0)) has the value 10.0.
The following ABS.F90 program calculates two square roots, retaining the sign:
        REAL mag(2), sgn(2), result(2)
        WRITE (*, '(A)') ' Enter two signed magnitudes: '
        READ (*, *) mag
        sgn = SIGN((/1.0, 1.0/), mag) ! transfer the signs to 1.0s
        result = SQRT (ABS (mag))
! Restore the sign by multiplying by -1 or +1:
        result = result * sgn
        WRITE (*, *) result
        END