UMACH
Routine UMACH sets or retrieves the input, output, or error output device unit numbers.
Required Arguments
N — Integer value indicating the action desired. If the value of N is negative, the input, output, or error output unit number is reset to NUNIT. If the value of N is positive, the input, output, or error output unit number is returned in NUNIT. See the table in argument NUNIT for legal values of N. (Input)
NUNIT — The unit number that is either retrieved or set, depending on the value of input argument N. (Input/Output)
The arguments are summarized by the following table:
N
Effect
1
Retrieves input unit number in NUNIT.
2
Retrieves output unit number in NUNIT.
3
Retrieves error output unit number in NUNIT.
–1
Sets the input unit number to NUNIT.
–2
Sets the output unit number to NUNIT.
–3
Sets the error output unit number to NUNIT.
FORTRAN 90 Interface
Generic: CALL UMACH (N, NUNIT)
Specific: The specific interface name is UMACH.
FORTRAN 77 Interface
Single: CALL UMACH (N, NUNIT)
Description
Routine UMACH sets or retrieves the input, output, or error output device unit numbers. UMACH is set automatically so that the default FORTRAN unit numbers for standard input, standard output, and standard error are used. These unit numbers can be changed by inserting a call to UMACH at the beginning of the main program that calls MATH/LIBRARY routines. If these unit numbers are changed from the standard values, the user should insert an appropriate OPEN statement in the calling program.
Example
In the following example, a terminal error is issued from the MATH/LIBRARY AMACH function since the argument is invalid. With a call to UMACH, the error message will be written to a local file named “CHECKERR”.
 
USE AMACH_INT
USE UMACH_INT
 
IMPLICIT NONE
INTEGER N, NUNIT
REAL X
! Set Parameter
N = 0
!
NUNIT = 9
CALL UMACH (-3, NUNIT)
OPEN (UNIT=9,FILE='CHECKERR')
X = AMACH(N)
END
Output
 
The output from this example, written to “CHECKERR” is:
*** TERMINAL ERROR 5 from AMACH. The argument must be between 1 and 8
*** inclusive. N = 0