Печать переменных массива в файле в определенном формате на Фортране - PullRequest
0 голосов
/ 23 мая 2018

У меня есть два массива.Первый - А (3,300).Это означает, что для каждого n от 1 до 100 у меня есть матрица 3x3, заданная Aij.Второй массив, B (100), является одномерным массивом, в котором у меня есть значения в каждом n.

Теперь я хочу напечатать A и B в файле таким образом, чтобы расположение было:

A11,1 A21,1 A31,1 A12,1 A22,1 A32,1 A13,1 A23,1 A33,1 B, 1

A11,2 A21,2 A31,2A12,2 A22,2 A32,2 A13,2 A23,2 A33,2 B, 2

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

A11, n A21, n A31, n A12, n A22, n A32, n A13, n A23, n A33, n B, n

Я пытался сделать это с помощью: write(*,'(9Fw.d 1Fw.d)') A,B где w - ширина поля, а d - для десятичных знаков;но это не работает.

1 Ответ

0 голосов
/ 23 мая 2018

Ваше утверждение сначала распечатает все A, затем распечатает все B. Просто разбейте его на цикл do и подразумевайте циклы do в операторе write:

do i = 1, n
   write(*,'(9Fw.d, 1Fw.d)') ((A(row, col,i), row=1,3),col=1,3), B(i)
end do

Выуверен, что это заказ, который вы хотите?A11,1 A21,1 A31,1 ...... Это будет идти вниз по рядам.Я думаю, вы захотите, чтобы каждая строка была напечатана вместе следующим образом: A11,1 A12,1 A13,1 A21,1 ..... Если это так, поменяйте местами строку = 1,3), col = 1,3)

...