2014-12-23 3 views
-1

Можно ли получить функцию, результатом которой является неограниченная полиморфная переменная? Я хотел бы иметь возможность выводить либо число, либо строку из функции. Тем не менее, строка должна быть одним размерным массивом.Полиморфизм функции Фортрана

Включение строки, связанной с строкой, приведет к возникновению проблем при сканировании числа.

Class (*), Dimension (:) :: t 
+0

Это существенно отличается от вашего предыдущего вопроса http://stackoverflow.com/q/26951750/3157076? – francescalus

+0

Я забыл об этом. Благодарю. Хотя есть какие-либо осложнения компиляции или нет. Я пытаюсь разобраться в функции синхронизации. – Zeus

+0

Однако я хочу вывести массив. – Zeus

ответ

0

я, что это такой пример:

select type (x=>f()) 
    type is (integer) 
     print *,x 
    end select 

contains 

    function f() 
    class(*), allocatable :: f 
    allocate(f, source=10) 
    end function 

end 

К сожалению, оба мои компиляторы (gfortran 4,10, ifort 14) аварии на этом.

Смежные вопросы