Эмуляция пространств имен в Fortran 90

Одна из самых неприятных проблем с Fortran 90 - это отсутствие пространств имен. В предыдущем вопросе « Как вы используете данные модуля Fortran 90 » от Пита , обсуждалась основная проблема, связанная с поведением USE как «импорт из модуля *» в Python: все, что объявлено в модуле общедоступным, импортируется как есть в рамках импортируемого модуля. Без префикса. Из-за этого при чтении кода очень и очень трудно понять, откуда берется данный идентификатор, и используется ли данный модуль по-прежнему или нет.

Возможное решение, обсуждаемое в вопросе, который я привел выше, - использовать ключевое слово ONLY как для ограничения импортированных идентификаторов, так и для документа, откуда они берутся, хотя это очень, очень утомительно, когда модуль очень большой. Сохранение размера модуля и постоянное использование USE: ONLY - потенциально хорошая стратегия для решения проблемы отсутствия пространств имен и квалифицирующих префиксов в Fortran 9X.

Существуют ли другие (не обязательно лучшие) обходные стратегии? Говорит ли стандарт Fortran 2k3 что-нибудь о поддержке пространств имен?

10
задан Community 23 May 2017 в 11:59
поделиться