Проще всего создать пользовательский тип с элементами данных и указателем на следующий элемент. Это предполагает односвязный список. например,
type MyList_type
integer :: FirstItem
real :: SecondItem
etc
type (MyList_type), pointer :: next_ptr => null()
end type MyList_type
Затем создайте первый элемент с «allocate». После этого вы пишете код для перемещения по списку, используя next_ptr для перехода по списку. Используйте «связанную» внутреннюю функцию, чтобы проверить, определен ли next_ptr еще, или вы достигли конца списка.
Если вы пишете обычную последовательную программу Fortran, тогда блокировка/отсутствие ожидания не является проблемой. Если вы пишете многопоточную/параллельную программу, то непротиворечивый доступ к переменным является проблемой.
Вот еще несколько примеров: http://fortranwiki.org/fortran/show/Linked+list. Еще лучше, связанные списки в Фортране четко объясняются в книге «Fortran 90/95 Explained» Меткалфа и Рида.
Простой поиск по Google должен дать вам множество примеров. Например, http://www.pgroup.com/lit/articles/insider/v3n2a2.htm и http://cs.ubishops.ca/ljensen/fortran/pointer.htm – hatchet
Любые коммерческие выпуски без блокировки –