У меня есть программа, которая создает значения для матрицы u
, и это меняет для каждой итерации f
, я хочу, чтобы написать значение u(2,2)
для каждой итерации f
. Так, например, u(2,2)=5 f=1
, u(2,2)=9 f=2
и так далее.записи в файл, сохранить изменения и добавления к ним
Теперь test(u,n,f)
только записывает последнее значение. Когда он выполнил мои критерии, чтобы остановить цикл do. Я не хочу, чтобы моя подпрограмма переписывала файл plot.txt каждый раз, я хочу, чтобы он сохранял u(2,2)
для каждой итерации. Я хочу, чтобы это выглядело как этот
5 1
9 2
10 3
, но не только он пишет
15 25
Как это можно исправить?
subroutine test(u,n,f)
!input
integer :: n,f,write_unit
real(8) :: u(n+2,n+2)
!lokale
integer :: i,j
real(8) :: vek_x,vek_y
!Skriver vektor verdier til fil som gnuplot skal bruke
open(newunit=write_unit,access='sequential',file='plot.txt',status='unknown')
write(write_unit,*)'# x y vx vy'
vek_x=u(2,2)
!write(write_unit,*) vek_x,f
write(write_unit,*) vek_x,f
write(write_unit,*)''
close(write_unit,status='keep')
"Программа", которая создает различные значения для u
do f=1,1000
do j=2,n+1
do i=2,n+1
u(i,j)=(u(i+1,j)+u(i-1,j)+u(i,j+1)+u(i,j-1))/4
!u(i,j)=(1-omega)*u(i,j)+omega*1/4*(u(i+1,j)+u(i-1,j)+u(i,j+1)+u(i,j-1))
end do
end do
if (u(2,2) .eq. 15) then
exit
end if
call test(u,n,f)
end do