POS= при использовании компиляторов pgi

Я пытаюсь обновить/переписать кучу кода, который должен быть скомпилирован всеми основными компиляторами fortran. У меня есть доступ и к ifort, и к gfortran, и к относительно старой (?) версии компилятора pgi (версия 7.2.5). Код прекрасно компилируется с помощью gfortran и ifort, но компилятор группы портленда жалуется на строку, которая выглядит так:

open(unit=82,file=fname,status=status,form='UNFORMATTED',access='STREAM')
write(82,POS=file_pos) iheader    !<= mpif90 complains here

На самом деле я использую mpif90, который является оболочкой для pgf90, но это не должно иметь значения. (iheader — это просто целочисленный массив из 20 элементов). Поддерживают ли это более современные версии компилятора портлендской группы?


person mgilson    schedule 24.01.2013    source источник
comment
Вы уверены, что эта версия правильно поддерживает потоковый доступ? Это функция Fortran 2003.   -  person Vladimir F    schedule 24.01.2013
comment
@VladimirF - я это понимаю. Компилятор жалуется на синтаксис в строке POS=..., но я полагаю, что этот вопрос может быть более общим. Поддерживает ли portland group поток ввода-вывода, представленный в стандарте f2003?   -  person mgilson    schedule 25.01.2013


Ответы (1)


Взглянув на ссылку на PGI fortran, похоже, что они все еще не поддерживают поток IO (это не указано в строках допустимого доступа, стр. 69). Думаю, мне нужно будет переписать этот код... Если они не поддерживают потоковый ввод-вывод, то они, вероятно, также не поддерживают POS=....

person mgilson    schedule 24.01.2013