У меня есть производный тип данных в Фортране Wich выглядят следующим образом:Fortran: Cray указатели и производные типы данных
TYPE mytype
INTEGER a
DOUBLE COMPLEX, dimension(:), allocatable :: elem
END TYPE mytype
Теперь я хочу, чтобы запрограммировать функцию, которая получает двойной комплекс массива в качестве аргумента. Этот массив должен стать массивом «elem» из «mytype» без выделения памяти и копирования данных. Я пытался использовать указатель Cray следующим образом:
DOUBLE COMPLEX, INTENT(IN) :: eleminput(5) !input array which should become x%elem
TYPE(mytype) :: x
pointer(xpntr,x%elem)
xpntr = LOC(eleminput)
Когда я пытаюсь скомпилировать я получаю сообщение об ошибке сказав это expacting «)» вместо «%» в строке «указатель (xpntr, х% эль)». Поэтому кажется, что указатели cray не работают с элементами производного типа данных. Есть ли возможность получить эту работу с или без указателей? Производный тип данных не может быть изменен. Надеюсь, вы оставите свой вопрос и спасибо за вашу помощь.
Имеет ли аргумент eleminput значение, которое требуется x% elem? – IanH