Я пытаюсь реализовать массив указателей, чтобы я мог перебирать элементы. Однако я не знаю, как правильно это сделать:Массивы указателей
TYPE(domain),POINTER :: d01,d02,d03
TYPE(domain),DIMENSION(:),POINTER :: dom
...
dom(1) => d01
dom(2) => d02
dom(3) => d03
...
, а затем:
...
IF(ASSOCIATED(dom(2),d02))THEN
...
Компилятор (pgf90 10.6-0 64-разрядная цель на x86-64 Linux -ТП стамбульской 64) дает мне это сообщение об ошибке:
PGF90-S-0074-Illegal number or type of arguments to associated - keyword argument pointer (test_ptr.f90: 10)
0 inform, 0 warnings, 1 severes, 0 fatal for MAIN
Насколько я понимаю, что-то не так, как я подмножу массив указателей. Оба dom(2)
и d02
- ранг 0 (скалярные указатели). Каков правильный способ реализации этого?
Спасибо.
Спасибо Джонатан, это отличный ответ. – milancurcic