Fortran: разница между расширением f и F

Я чертов новичок в Fortran.

интересно: в чем разница между .f и .F расширения файлов Fortran. Я знаю это: f-бесплатно, а F-фиксировано.

что на самом деле означает free и fixed и почему они могут полностью испортить процесс компиляции? (Я использую gfortran и ifort).

я погуглила fortran разница между f и F расширение. Я не был доволен результатом, поэтому я обращаюсь к stackoverflow.

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

4 ответов


насколько я знаю, .f и .F оба расширения связаны с фиксированным форматом FORTRAN 77. Фиксированный формат ограничен 72 столбцами, где первые шесть столбцов служат специальным целям. Е. Г. а & в позиции 6 указывает на продолжение строки из предыдущей строки.

свободная форма была введена с Fortran 90 и обычно указывается .f90 и .F90. Для свободной формы вы можете использовать до 132 столбцов, и никаких специальных столбцов не существует. Продолжение строки обозначается амперсандом в конце строки.

заглавные буквы в расширении файла обычно включают предварительный процессор.

обратите внимание, что эти соглашения могут быть переопределены параметрами компиляции для большинства компиляторов.


Это зависит от компилятора и может не полагаться. Обычно капитальные суффиксы указывают, что следует использовать предварительную обработку. Различие между свободным и фиксированным форматом обычно проводится .ф90 (бесплатно) и .f (исправлено).

поскольку это зависит от компилятора, хорошей документацией будет один из вашего компилятора. Если вы используете gfortran, вы можете взглянуть на его опции и раздел предварительная обработка.


в gfortran свободная форма (без специального значения для cols 7, 72) устанавливается компилятором switch-ffree-form и не имеет ничего общего с .f или .F файл суффиксы. Разница между ними .f и .F заключается в том, что последний проходит через предварительный процессор, наиболее распространенное использование которого позволяет c-like #define операторы. Например:

#define MAXN 100
program example
integer N(MAXN)
end

будет компилироваться, если это .F но не если это .f


заглавная буква F обозначает, что должен использоваться C-подобный компилятор.

http://fortranwiki.org/fortran/show/File + расширения