Предположим, что у меня есть матрица c (i, j). Я хочу записать его на экране на старом языке Fortran77 с тремя знаками после запятой. Я пишуКак написать отформатированную матрицу в строках с fortran77?
do i=1,N
write(*,"(F8.3)") (c(i,j), j=1,N)
end do
но вывод в виде
с (1,1)
с (1,2)
...
C (1 , 10) c (2,1)
c (2,2)
...
Наконец, я могу просто написать
do i=1,N
write(*,*) (c(i,j), j=1,N)
end do
, а затем выход, как матрица, но, конечно, она не отформатирована.
Как получить правильный результат в Fortran77?
Редактирование. Кажется, что один из решений заключается в написании
do i=1, N
do j=1, N
write(*,'(F9.3,A,$)') c(i,j), ' '
end do
write(*,*) ' '
end do
«$' вы добавили здесь технически нестандартный, я верю и могу быть заменен на 'advance = 'no'' в более современном fortran (например,' write (*,' (F9.3, A) ', advance = 'no') c (i, j), "" '). –
Обратите внимание, что ваше решение НЕ является Fortran 77. Вопрос в том, почему вы просите Fortran 77? Вы должны копать глубоко, чтобы найти F77 только компиляторы все еще вокруг. Ваши фрагменты кода, безусловно, не F77, поэтому не совсем понятно, о чем вы просите. – haraldkl
@haraldkl: это не так, поскольку я просто запускал его с помощью компилятора mpif77. –