### 8.223 `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)` | f77, gnu
  `ISIGN(A,B)` | `INTEGER(4) A, B` | `INTEGER(4)` | f77, gnu
  `DSIGN(A,B)` | `REAL(8) A, B` | `REAL(8)` | f77, gnu