Intel® Fortran Compiler 18.0 Developer Guide and Reference
Statement: Performs a wait operation for a specified pending asynchronous data transfer operation. It takes one of the following forms:
WAIT([UNIT=]io-unit [, END=label] [, EOR=label] [, ERR=label] [, ID=id-var] [, IOMSG=msg-var] [, IOSTAT=i-var])
WAIT io-unit
io-unit |
(Input) Is an external unit specifier. |
label |
(Input) Is the label of the branch target statement that receives control if an error occurs. |
id-var |
(Input) Is a scalar integer variable that is the identifier of a pending data transfer operation for the specified unit. If it is specified, a wait operation is performed for that pending operation. If it is omitted, wait operations are performed for all pending data transfers for the specified unit. |
msg-var |
(Output) Is a scalar default character variable that is assigned an explanatory message if an I/O error occurs. |
i-var |
(Output) Is a scalar integer variable that is defined as a positive integer if an error occurs and zero if no error occurs. |
A wait operation completes the processing of a pending data transfer operation. Each wait operation completes only a single data transfer operation, although a single statement may perform multiple wait operations.
The WAIT statement specifiers can appear in any order. An I/O unit must be specified, but the UNIT= keyword is optional if the unit specifier is the first item in the I/O control list.
The EOR= specifier only has effect if the pending data transfer operation is a nonadvancing read. The END= specifier only has effect if the pending data transfer operation is a READ.
The following example shows how the WAIT statement can be applied.
program test
integer, asynchronous, dimension(100) :: array
open (unit=1,file='asynch.dat',asynchronous='YES',&
form='unformatted')
write (1) (i,i=1,100)
rewind (1)
read (1,asynchronous='YES') array
wait(1)
write (*,*) array(1:10)
end