Following is a
test program for the module parallel_temporary_files .
Notice that parallel_read is called only if the return
status in the variable ok is true.
PROGRAM main
USE parallel_temporary_files
INTEGER, PARAMETER :: n=12
INTEGER :: temp_unit
LOGICAL :: ok
INTEGER, DIMENSION(n) :: DATA
!HPF$ DISTRIBUTE data(BLOCK)
INTEGER, DIMENSION(n) :: b
!HPF$ ALIGN b(:) WITH data(:)
FORALL (i=1:n) data(i) = i
DO i=1,2
b = 0
CALL parallel_open(temp_unit, ok)
PRINT *, "in main:", "open", temp_unit
CALL parallel_write(temp_unit, data, ok)
PRINT *, "in main:", "write", temp_unit, ok
CALL parallel_rewind(temp_unit, ok)
PRINT *, "in main:", "rewind", temp_unit, ok
IF (ok) CALL parallel_read(temp_unit, b)
CALL parallel_close(temp_unit)
IF(ANY(b /= (/ (i, i=1,n ) /))) THEN
PRINT *, 'Error'
ELSE
PRINT *, 'Ok!!!'
ENDIF
ENDDO
END PROGRAM main