从简单的在线查看,我找不到一种方法,可以使用OpenMP并行地在Fortran 90中读取或写入文件。我想知道是否有可能做类似
的事情!$OMP PARALLEL
do i=1,Nx
do j=1,Ny
do k=1,Nz
read(1,*) B(i,j,k)
enddo
enddo
enddo
!$OMP END PARALLEL
!$OMP PARALLEL
do i=1,Nx
do j=1,Ny
do k=1,Nz
write(1,*) B(i,j,k)
enddo
enddo
enddo
!$OMP END PARALLEL
如果有其他条款可以确保正确完成此操作。我想可能有一种简单的方法来执行此操作,但写入似乎不那么明显。感谢您提供的所有帮助/建议!
答案 0 :(得分:0)
由于您正在进行格式化的io,请考虑线程N如何计算出要读/写的文件中的正确偏移量。
此外,由于问题被标记为gfortran,因此在gfortran中有一个单位互斥量,它在io语句的持续时间内保留。