Предварительная обработка Fortran с помощью компилятора Portland - PullRequest
0 голосов
/ 19 мая 2011

Я пытаюсь предварительно обработать модуль Fortran (pmu.F90) с помощью pgf90.Модуль выглядит следующим образом:

module pmu

   module variables

contains

   include 'file.F90'

end module 

file.F90 - это подпрограмма, которая содержит следующие строки:

 #ifdef PART  

    startm1 = xstart - 1

    startm2 = xstart - 2

    endp1   = xend + 1

    endp2   = xend + 2 

 #else    

    startm1 = xstart - 1

    startm2 = xstart - 1

    endp1   = xend + 1

    endp2   = xend + 1 

 #endif 

Если я компилирую с:

pgf90  -DPART    -Mfree -Mbounds -Msave -Mdclchk -r8 -Mpreprocess  -I/data/users/mrosso/fftw3/include    -c pmu.F90

Я получаю

PGF90-S-0021-Label field of continuation line is not blank.

1 Ответ

0 голосов
/ 20 мая 2011

Ну, во включаемом файле нет процедур, а это то, что вам нужно между инструкциями «contains» и «end module» в файле pmu модуля.

Другая проблема с использованием CPP с Fortran заключается в том, что оператор включения Fortran не совпадает с оператором CPP #include. В частности, их взаимодействие не указано. То есть, если вы включаете файл, который сам содержит директивы CPP, это может привести к ошибкам, если вместо этого вы используете #include.

...