Я создаю очень простой 2D-массив в Фортране со следующим циклом:
do i = 1, N
do j = 1, M
A(i, j) = i * 10 + j
end do
end do
Затем я создал подпрограмму для печати этого в виде 2D-массива:
implicit none
real*8 A(N, M)
integer i, j
do i = 1, N
do j = 1, M
write(*, ' (F4.0)', advance='no') A(i, j) ! this is Fortran90
end do
write(*, *)
end do
end subroutine
Ивывод:
print_matrix
11. 12. 13. 14.
21. 22. 23. 24.
31. 32. 33. 34.
Теперь я хочу взять все элементы и поместить их в одну строку в последовательном порядке самих строк.(Надеюсь, это имело смысл).И я хочу сделать функцию печати, которая делает это без изменения основной функции.
Я очень близок к тому, что я хочу, с помощью следующей подпрограммы:
implicit none
real*8 A(N, M)
integer i
do i = 1, N
write(*, ' (F4.0)', advance='no') A(i,:) ! this is Fortran90
write(*, *)
end do
end subroutine
Вывод этогоэто
print_matrix_linear
11.
12.
13.
14.
21.
22.
23.
24.
31.
32.
33.
34.
Но это не совсем то, что я хочу.Порядок элементов правильный, но это все один столбец .Я в основном хочу переместить этот массив и поместить все в одну строку .
Пожалуйста, предоставьте несколько советов, как мне это сделать.Большое вам спасибо!
-CJW