6.1.3 Переменные глобального доступа
Переменные могут быть доступны из C, используя атрибут связи C, необязательно вместе с указанием имени связи. Эти переменные должны быть объявлены в части объявления MODULE, быть типа совместимого с C, и не иметь атрибута pointer или allocatable.
MODULE m USE myType_module USE ISO_C_BINDING integer(C_INT), bind(C, name="_MyProject_flags") :: global_flag type(myType), bind(C) :: tp END MODULE
Здесь, _MyProject_flags - это чувствительное к регистру имя переменной, видимое из программ C, в то время как global_flag - это нечувствительное к регистру имя, видимое из Fortran. Если имя связи не указано, как для tp, имя связи C совпадает с (строчным) именем связи Fortran. Если имя связи указано, после двойного двоеточия может быть только одна переменная. Обратите внимание: нельзя использовать глобальную переменную для доступа к errno библиотеки C, так как стандарт C разрешает ее быть макросом. Используйте вместо этого встроенную функцию IERRNO (расширение GNU).
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.3.0/gfortran/Interoperable-Global-Variables.html