Последний раз редактировалось bme 07.12.2017, 08:49, всего редактировалось 1 раз.
Проблема следующая:
я работал с интеловским фортраном, там были встроенные функции Бесселя DBesJn(n,x).
Теперь перехожу на gfortran - а там такие же функции - называются как BESSEL_JN(n, х).
Код, с которым я работаю - может передаваться моим коллегам (это совместный код), которые работают с интеловским фортраном. Нужно чтобы ни им, ни мне - не пришлось переписывать каждый раз кусок кода, использующий функции Бесселя.
По идее, можно было бы это сделать, используя псевдонимы, так, чтобы записи BESSEL_JN(n, х) и DBesJn(n,x) - были бы эквивалентные. Но я не нашел, как это сделать, т.к. оператор Equivalence - существует, но он для переменных, а не для функций. Указатели - тоже для переменных....
Подскажите, как это сделать "малой кровью"? (можно было бы конечно взять не встроенные функции, которые разные для разных реализаций фортрана, а внешние, библиотечные функции - но это не слишком изящное решение, увеличивающее длину кода и снижающее быстродействие)
|