ASYNCHRONOUS= specifier

Standard: F77 F90 F95 F2003 F2008 Example program


<Syntax>

ASYNCHRONOUS = expression

The expression must be a scalar character expression. This specifier is permitted in the INQUIRE, OPEN, READ and WRITE statements. In the INQUIRE statement, it must be a variable designator, and is assigned the value 'YES', 'NO' or 'UNDEFINED'; in all other statements it must evaluate to 'YES' or 'NO' (ignoring case).

In the READ and WRITE statements it must be a constant expression.

<Semantics>

The ASYNCHRONOUS= specifier determines whether asynchronous input/output is anticipated (for OPEN), permitted (for INQUIRE) or being requested (for READ and WRITE).

An asynchronous READ or WRITE is only permitted on a file that is connected for asynchronous input/output (i.e. opened with ASYNCHRONOUS='YES').

An asynchronous READ or WRITE is not required to act asynchronously, this is only a request to the Fortran processor. The ID= specifier and the PENDING= specifier may be used to control or inquire on the progress of an asynchronous input/output operation.

A variable that is subject to asynchronous input/output must have the ASYNCHRONOUS attribute; this is conferred implicitly in any scoping unit that contains a relevant asynchronous READ or WRITE statement using that variable, but must be declared explicitly if it remains subject to asynchronous input/output on return to another scoping unit.

Note that ASYNCHRONOUS='YES' is not permitted on a READ or WRITE statement that invokes a defined input/output procedure.

<Related>

ASYNCHRONOUS attribute, Defined input/output, ID= specifier, INQUIRE statement, OPEN statement, PENDING= specifier, READ statement, WRITE statement