Sun Studio 12: Fortran プログラミングガイド

10.3.1.4 明示的並列化での入出力

並列に実行するループで入出力を実行できます。 ただし、次の条件があります。

例: ループ内の入出力文


!$OMP PARALLEL DO PRIVATE(k)
      do i = 1, 10     !  並列化されます
        k = i
        call show ( k )
      end do
      end
      subroutine show( j )
      write(6,1) j
1      format(’Line number ’, i3, ’.’)
      end
demo% f95 -openmp t13.f
demo% setenv PARALLEL 4
demo% a.out

Line number 9.
Line number 4.
Line number 5.
Line number 6.
Line number 1.
Line number 2.
Line number 3.
Line number 7.
Line number 8.

ただし、入出力が再帰的な場合、つまり、入出力文に、入出力を行う関数への呼び出しが含まれている場合は、実行時エラーが発生します。