Мне пришлось поискать это, потому что у меня было такое же впечатление, как и у вас.
Кажется, что только переменные в неназванном, так называемом пустом, общем блоке сохраняют свой статус определения во всемпрограмма.Несохраненные переменные в именованном общем блоке становятся неопределенными при возврате из подпрограммы, если только другой активный в данный момент программный модуль не включает общий оператор для того же общего блока.
Из стандарта (Fortran 77, но последний содержит аналогичныйформулировка):
17.3 События, которые приводят к тому, что объекты становятся неопределенными
[...]
6. Выполнение оператора RETURN или оператора END в подпрограмме вызывает все объекты внутриподпрограмма станет неопределенной, за исключением следующего:
[...]
d.Объекты в именованном общем блоке, который появляется в подпрограмме и появляется по крайней мере в одном другом программном блоке, который прямо или косвенно ссылается на подпрограмму