В настоящее время в моей программе есть несколько общих блоков, распределенных по нескольким подпрограммам и функциям. Иногда я забываю изменить все экземпляры общего блока, когда добавляю к нему переменные. Я хочу превратить эти общие блоки в модули, чтобы я мог добавлять и удалять переменные в модуле в одном месте, не беспокоясь об обновлении всех экземпляров модуля в моих подпрограммах.
Нужно ли включать операторы «использования» в программу, которая инициализирует переменные в модуле, или я должен включать программу в модуль? Обычно я бы использовал для этого общие блоки, но я пытаюсь реализовать модули, потому что я думаю, что они помогут моему коду оставаться читаемым по мере увеличения сложности.
ПРИМЕЧАНИЕ. Некоторые значения переменных в модулях должны иметь возможность изменяться при передаче из одной программы в другую.
Я попытался написать упрощенную тестовую программу для ознакомления с модулями, но не смог заставить ее работать. Я знаком с fortran 77, но никогда раньше не использовал модули. Я ценю любую помощь или совет.
Я использую gfortran 4.6.1
Main.f
program main
use Words
use Vals
double precision x,y,z
character*5 Greet
integer i
Greet = 'Hello'
x = 4.1
y = 5.2
z = 10.0
i = 3
call foo ()
end program main
subroutine foo ()
use Words
use Vals
print *, Greet
z = x + y
print *, z
print *, i
end subroutine
module Words
character*5 Greet
save
end module
module Vals
double precision x,y
integer int
save
end module