Массивы указатели

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

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
...

Компилятор (64-битная цель pgf90 10.6-0 на x86-64 Linux -tp istanbul-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 (скалярные указатели). Как правильно это реализовать?

Спасибо.

29
задан milancurcic 17 January 2012 в 19:15
поделиться