Я хотел бы написать код на Фортране, который мог бы использовать MPI, если он скомпилирован с помощью mpif90
, но также мог бы работать, если он был скомпилирован с gfortran
(только без MPI lib). Поэтому я хотя и использовал условие предварительной обработки, но, глядя на Inte rnet, ничего не нашел в такой переменной предварительной обработки, определенной MPI.
Например, я хотел бы скомпилировать этот тривиальный код test.f90
:
Program Main
#ifdef __MPI
USE MPI
#endif
implicite none
integer Ierror
#ifdef __MPI
call MPI_INTI(Ierror)
write (*,*) 'MPI detected'
#else
write (*,*) 'MPI not detected'
#endif
End
Затем, если я скомпилирую предыдущий нерабочий пример с mpif90
, я получу
$ mpif90 -cpp -o prog test.f90 && prog
> MPI detected
, а если я скомпилирую с gfortran
, я должен получить
$ gfortran -cpp -o prog test.f90 && prog
> MPI not detected
Итак, есть ли условие предварительной обработки (или другой способ), которое могло бы заставить этот пример работать?