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

Cmd Fortran代码打开一些程序,然后继续,cmd,fortran,Cmd,Fortran,该程序打开记事本,然后在我手动关闭记事本之前不会继续执行“下一个任务”。但我希望整个程序在记事本仍然打开的情况下完全执行 有办法吗?有很多方法。As@S.Ahn注释具有异步执行(使用WAIT参数)。但是,它是否真正异步运行取决于处理器 另一种方法是使用一些线程。您可以在OpenMP中使用,OpenMP在标准版本3.0中 我使用它也有类似的用途。然后,只需在线程内部执行调用system()或等效操作。此库有Fortran包装,例如,Windows上的(您可能正在使用,因为记事本是其中的一个常用程序

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


有办法吗?

有很多方法。As@S.Ahn注释具有异步执行(使用
WAIT
参数)。但是,它是否真正异步运行取决于处理器

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

我使用它也有类似的用途。然后,只需在线程内部执行
调用system()
或等效操作。此库有Fortran包装,例如,Windows上的

(您可能正在使用,因为记事本是其中的一个常用程序)将相应的行替换为

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

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

您使用的是哪种Fortran?Fortran 2008引入了
EXECUTE_COMMAND_LINE
@S.Ahn我已经用wait=.false尝试了这个命令。选项,但它仍然以相同的方式工作。它可能取决于操作系统和其他因素,实际上不必异步运行。我建议使用线程,请参阅我的答案。对于我的特定示例,这是一个很好的解决方案。很有可能。显然我更了解Linux,这就是为什么我要写关于pthreads的文章。
call system("start notepad")