terminat0r
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору akaGM Цитата: наши "фурьелюбы" говорят, чтоб ты забросил mkl-ное фурье... куда подальше... | Ясно, спасибо, так и сделал. --- Вот роюсь в исходниках одной программки. Писал это умный человек (насколько мне известно, работал много лет в IBM, куча патентов, etc). Похоже человек в лохматые 90 пытался изобрести STL для фортрана. Здесь тебе и деревья и контейнеры и черти что, сорцов на 10 Мб. Жаль что не могу это выложить на публику. Но я хочу рассказать хотя бы о интересных особенностях использования непечатаемых символов в именах функций и модулей, например Файл с модулем называется pcn_stoptdi.f90 модуль называется MODULE STOPTDI_MODULE, a подпрограмма в этом модуле как SUBROUTINE STOPTDI$SETM1(ID_,VAL_), тоесть с долларом. Вот этот доллар и сбил меня с толку, я уже подумал было, что этот спецсмвол разпознается каким то компилятором, уж очень "обьектно" все эти вызовы функций смотрятся в основной программе: выглядит в листинге так, как будто мы обращаемся по модулю и функции. use stoptdi_module ... call stoptdi$setm1(id,val) Но потом присмотрелся и увидел, что такие имена имеют и процедуры которые находятся в том же файле с модулем но не включены в этот модуль. Тоесть на лицо обыкновенная симуляция . Но должен признать что это вносит много понимания хотя бы тем что сразу видно с какого модуля и в каком файле находится каждая функция. Кто нибудь использует что-то похожее? Еще один непонятный вопрос, зачем есть там функции в модуле и вне его, хотя эти функции явно относятся к модулю, юзают этот модуль и обрабатывают данные с него. Не похоже что это сделано по невнимательности. Но смысл такой архитектуры? | Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 17:40 16-09-2011 | Исправлено: terminat0r, 17:46 16-09-2011 |
|