Для FORTRAN 77 будет работать метод Джонатана Леффлера - как он указывает, Fortran 90 и далее также поддерживает блоки COMMON
. Однако, поскольку у вас есть доступ к компилятору Fortran 90 / Fortran 2003, нет смысла использовать блок COMMON
- оставьте их в куче истории вместе с вычисленными GOTO
и ENTRY
.
Метод Fortran 90 для хранения группы связанных переменных (и функций) больше не является блоком COMMON
, а MODULE
. Для вашего кода это относительно просто:
module count_calls
integer :: num_calls = 0
end module count_calls
Затем в подпрограммах, где вы хотите использовать num_calls, добавьте
use count_calls
либо к самим подпрограммам, либо к содержащей их области (то есть a program
или другому module
).