Fortran代码打开一些程序然后继续

时间:2014-06-07 17:50:14

标签: cmd fortran

program test
call system("notepad")
..........  !next task
end program

此程序打开记事本,然后在我手动关闭记事本之前不会继续执行“下一个任务”。但我希望整个程序完全执行,记事本仍然打开。

有办法吗?

2 个答案:

答案 0 :(得分:3)

在Windows上(您可能正在使用,因为记事本是一个常见的程序)用

替换相应的行
call system("start notepad")

这适用于Windows 8.1上的g95和gfortran。微软称start"启动一个单独的命令提示符窗口来运行指定的程序或命令"。

答案 1 :(得分:0)

有很多方法可以做到这一点。由于@ S.Ahn评论EXECUTE_COMMAND_LINE具有异步执行(使用WAIT参数)。但是,它是否实际上是异步运行依赖于处理器。

另一种方法是使用一些线程。您可以在OpenMP中使用tasks,它们位于标准版本3.0中。

我将POSIX threads用于类似目的。然后,您只需在线程内部执行call system()或等效操作。这个库有Fortran包装器,例如https://github.com/ohm314/forthreads