ASYNCHRONOUS attribute

Standard: F77 F90 F95 F2003 F2008 F2018 Example program


<Syntax>

type , ASYNCHRONOUS [ , attr ]... :: decl-list

ASYNCHRONOUS [::] [name [ , name ]...

<Semantics>

Declares that a variable may be subject to asynchronous input/output. This attribute is implicitly declared by the use of a variable in an asynchronous input/output statement, so is only needed if a variable is passed as an actual argument to a procedure that does asynchronous input/output, and only then if the input/output is not completed within the single procedure.

A variable that is accessed by a USE statement or by host association is permitted to be declared ASYNCHRONOUS; this does not hide the variable, but makes it asynchronous only within the local procedure.

In Fortran 2018, this attribute is also used to signify that the variable may be subject to “asynchronous communication”. This includes things like MPI nonblocking communications such as MPI_ISEND, and low-level operating-system native asynchronous i/o.

<Related>

ASYNCHRONOUS= specifier, ID= specifier, INQUIRE statement, PENDING= specifier, READ statement, WAIT statement, WRITE statement