Именно на участки памяти (в стиле, например, C) нет, но то, что Вам нужно, есть. Выглядит это примерно так:
| Код | real,dimension(:),pointer :: a ! Указатель на одномерный вещественный массив real,dimension(0:1000),target :: a1,a2 ! Два одномерных вещественных массива, на которые можно ссылаться
a => a1 ! Адрес a будет ссылаться на a1
a(3)=a(2)+a(1) ! После этого можно использовать a как "массив"
|
Из ограничений, которые могут показаться не совсем привычными, стоит отметить, что указатели в Фортране - это скорее "псевдонимы", арифметика указателей не поддерживается (поскольку компилятор имеет право ради оптимизации программы располагать "указуемые" данные в памяти произвольным образом). Указатель нельзя присваивать указателю - это будет воспринято как присваивание соответствующих данных (но можно написать a => b, где a и b - указатели, в этом случае a будет указывать на тот же объект, что и b, причем при дальнейшем пересвязывании b связанность a не поменяется, он будет указывать на старый объект). К тому же не стоит увлекаться атрибутом target без необходимости - это дает хотя и небольшие, но все же "накладные расходы". |