Общие процедуры в fortran 2003

Я знаю, что у fortran есть концепция общей процедуры, позволяющей пользователям определять несколько конкретных процедур и собирать их интерфейсы в блоке интерфейса. Однако мне неясно, можно ли удалить дублирование кода, имея только одну реализацию общей функции.

В качестве примера рассмотрим внутреннюю функцию SIN. Он может принимать аргументы как вещественной, так и двойной точности. Означает ли это, что есть две реализации: SIN_REAL и SIN_DOUBLE_PRECISION с точно таким же кодом?

Извиняюсь за наивный вопрос, я новичок. Спасибо за чтение.


person Scott    schedule 23.10.2012    source источник


Ответы (1)


В качестве примера рассмотрим внутреннюю функцию SIN. Он может принимать аргументы как вещественной, так и двойной точности. Означает ли это, что есть две реализации: SIN_REAL и SIN_DOUBLE_PRECISION с точно таким же кодом?

да. Но вы можете управлять общей частью программирования, поместив ее во включаемый файл.

person Francois Jacq    schedule 23.10.2012
comment
Есть ли где-нибудь пример того, как это сделать в Интернете? Я искал довольно упорно и безуспешно. - person Scott; 23.10.2012
comment
Мы используем предварительную обработку с помощью Coco, чтобы достичь чего-то вроде этого: .org / haraldkl / treelm / src / он реализует некоторый динамический массив для данного типа данных. В этом модуле: - person haraldkl; 25.10.2012