Returns the absolute value of A times the sign of B. If A is non-zero, you can use the result to determine whether B is negative or non-negative, as the sign of the result is the same as the sign of B.
Note that if you have declared B as REAL(4) or REAL(8), and B has a negative zero value, the sign of the result depends on whether you have specified the -qxlf90=signedzero compiler option.
Class
Elemental function
Result Type and Attributes
Same as A.
Result Value
The result is sgn*|A|, where:
+-------------------------------IBM Extension--------------------------------+
+----------------------------End of IBM Extension----------------------------+
+---------------------------------Fortran 95---------------------------------+
Fortran 95 allows a processor to distinguish between a positive and a negative real zero, whereas Fortran 90 did not. Using the -qxlf90=signedzero option allows you to specify the Fortran 95 behavior (except in the case of REAL(16) numbers), which is consistent with the IEEE standard for binary floating-point arithmetic. -qxlf90=signedzero is the default for the xlf95, xlf95_r, and xlf95_r7 invocation commands.
+-----------------------------End of Fortran 95------------------------------+
Examples
SIGN (-3.0, 2.0) has the value 3.0.
Specific Name | Argument Type | Result Type | Pass As Arg? |
---|---|---|---|
SIGN | default real | default real | yes |
ISIGN | any integer (1) | same as argument | yes |
DSIGN | double precision real | double precision real | yes |
QSIGN | REAL(16) | REAL(16) | yes (2) |
Notes:
Related Information
See the "-qxlf90 Option" in the User's Guide.