я могу объявить переменную намерения в модуле Fortran? - PullRequest
0 голосов
/ 21 февраля 2012

Могу ли я объявить переменную намерения в модуле Fortran?Я хочу сделать общий модуль, который можно назвать другой подпрограммой

module fmod
real b
integer n, i
integer, dimension(6), intent(inout) :: indata1
real, dimension(7,8), intent(inout) :: indata2
end module fmod

subroutine temp_f(indata1, indata2)
use fmod

do i=1,8
   print *, indata4(i)
end do

end

1 Ответ

7 голосов
/ 21 февраля 2012

Нет, намерение для аргументов подпрограммы, а не для переменных модуля. Переменные модуля обычно доступны любому объекту, который их использует. Вы можете объявить их «закрытыми», что заблокирует их видимость за пределами модуля. Возможно, вы думаете о модуле как о включаемом файле, который копирует строки исходного кода для компиляции, где они копируются. Это не концепция модуля ... это независимая сущность исходного кода.

Хотя это и выходит за рамки языкового стандарта, многие компиляторы Фортрана поддерживают использование включаемых файлов через «#include», начиная с первого столбца. В некоторых компиляторах используется тип файла "F90" (верхний регистр). С другими вы должны использовать опцию компилятора для запуска препроцессора в стиле C. Существует небольшой риск того, что такое использование сделает ваш код менее переносимым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...