Я знаю, что на вопросы по оптимизации сложно ответить.Однако я постараюсь получить ответ здесь:
Я пытаюсь записать некоторые значения в файл в довольно сложной программе трассировки лучей (более 100+ подпрограмм). Это происходит внутри подпрограммы, как показано ниже.
Сама программа очень быстрая, но как только я достигаю аппенди, она резко замедляется.Есть ли способ, которым я могу сделать это быстрее?
subroutine iterate_e_ring(i, k)
use otherfile, only: other_subroutine;
implicit none
integer(I2B), intent(in) :: i, k ! element number and iteration counter
real(BW), dimension(3) :: converge !Convergence check by Ole Müller
character*150 :: filename
call other_subroutine(x,y,z)
converge(1)= ...
converge(2)= ...
converge(3)= ...
open(unit=120,file='converge.txt',action='write',position="append")
write(120, *) real(converge(:))
close(unit=120)
end subroutine iterate_e_ring;