Определить, используется ли компилятор MPI в Fortran - PullRequest
1 голос
/ 17 января 2020

Я хотел бы написать код на Фортране, который мог бы использовать 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

Итак, есть ли условие предварительной обработки (или другой способ), которое могло бы заставить этот пример работать?

...