Почему оператор «stop» в Фортране не дает моей программе ничего выводить?

У меня есть очень простая программа на Фортране, чтобы попытаться изучить MPI. Я компилирую этот скрипт с помощью Visual Studio 2019, MPICH2 и Intel oneAPI Toolkit. Программа следующая

      program hello
implicit none 
include 'mpif.h'

integer :: rank, size, ierror, tag, status(MPI_STATUS_SIZE)

call MPI_INIT(ierror)
call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror)
call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror)

print *, "node", rank, "says Hello World!"

call MPI_BARRIER(MPI_COMM_WORLD, ierror)

call MPI_FINALIZE(ierror)

! here

end program hello

Эта программа компилируется и запускается, как ожидалось, производя вывод

      PS C:\Users\gf715\Documents\VS_testing\test\Debug> mpiexec -n 4 test.exe
 node           1 says Hello World
 node           2 says Hello World
 node           3 says Hello World
 node           0 says Hello World

Однако, если я добавлю инструкцию перед завершением программы (где я написал комментарий «здесь»), код все равно будет компилироваться, но теперь не выдаст никаких результатов, когда я его запустил:

      PS C:\Users\gf715\Documents\VS_testing\test\Debug> mpiexec -n 4 test.exe
PS C:\Users\gf715\Documents\VS_testing\test\Debug>

Я не помню, чтобы у меня была эта проблема до того, как я использовал инструментарий Intel oneAPI (раньше я использовал ту же настройку, но с Parallel Studio XE Cluster Edition я был вынужден изменить, когда истек срок моей лицензии). Почему stop предотвратить любой выход?

1 ответ

Отвечая на свой вопрос. Это связано с наличием на компьютере нескольких версий компилятора Intel (см. Https://community.intel.com/t5/Intel-Fortran-Compiler/Entry-Point-for-for-stop-core-quiet-Not- Найдено / td-p / 1265058)

Я исправил это, удалив старую версию и обновив новые компиляторы, но, похоже, есть более простые способы.

Другие вопросы по тегам