如果我进行系统调用,例如:
call execute_command_line (slowcall1, wait=.false., exitstat=i)
call execute_command_line (slowcall2, wait=.false., exitstat=j)
call execute_command_line (slowcall3, wait=.false., exitstat=k)
call execute_command_line (slowcall4, wait=.false., exitstat=l)
我想并行调用它们,然后检查它们是否进展,是否已完成,最后采取一些措施。但是,轮询exitstat并没有给我这些信息。检查我正在等待的系统调用是否已经完成的正确用法是什么?
从这里: https://gcc.gnu.org/onlinedocs/gfortran/EXECUTE_005fCOMMAND_005fLINE.html
它没有出现任何可选参数:
提供此信息。
是否使用了一个推荐的现代Fortran程序,包括将锁定文件作为通话的一部分?或者是不同的异步调用?
答案 0 :(得分:1)
不,没有办法。你正在使用它的命令是“火与不醒”。如果您想要更精细的控制,请使用线程。不是为了并行,而是为了确定。