If I make a system call, eg:
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)
I want to call these in parallel then to check on them as they progress, whether they have completed, and finally take some action. However, polling exitstat doesn't give me that information. What's the right idiom for checking whether my system call I am not waiting for has actually completed?
From here: https://gcc.gnu.org/onlinedocs/gfortran/EXECUTE_005fCOMMAND_005fLINE.html
It does not appear any of the optional arguments:
provide this information.
Is there a recommended modern Fortran procedure used involving writing lock files as part of the call? Or a different asynchronous call?
No, there is no way. The command as you are using it is "fire and forget". If you want any finer control, use threads. Not for parallelism, but for concurency.