The GNU Fortran Compiler: SIGN

Next: SIGNAL, Previous: SHIFTR, Up: Intrinsic Procedures [Contents][Index]

### 8.247 `SIGN` — Sign copying function

Description:

  `SIGN(A,B)` returns the value of A with the sign of B.

Standard:

  Fortran 77 and later

Class:

  Elemental function

Syntax:

  `RESULT = SIGN(A, B)`

Arguments:

  A | Shall be of type `INTEGER` or `REAL`
  B | Shall be of the same type and kind as A.

Return value:

  The kind of the return value is that of A and B. If B \ge 0 then the result is `ABS(A)`, else it is `-ABS(A)`.

Example:

      program test_sign
        print *, sign(-12,1)
        print *, sign(-12,0)
        print *, sign(-12,-1)

        print *, sign(-12.,1.)
        print *, sign(-12.,0.)
        print *, sign(-12.,-1.)
      end program test_sign

Specific names:

  Name | Arguments | Return type | Standard
  --- | --- | --- | ---
  `SIGN(A,B)` | `REAL(4) A, B` | `REAL(4)` | Fortran 77 and later
  `ISIGN(A,B)` | `INTEGER(4) A, B` | `INTEGER(4)` | Fortran 77 and later
  `DSIGN(A,B)` | `REAL(8) A, B` | `REAL(8)` | Fortran 77 and later