Add seperate Mom output files for Z species

This commit is contained in:
JHendrikx 2025-02-10 09:44:02 +01:00
commit a26af0d121
2 changed files with 36 additions and 24 deletions

View file

@ -112,42 +112,52 @@ module output
end subroutine writeOutputPhi
subroutine writeOutputMom(t, dt, nr, r, n_i, u_i, T_i, Z)
subroutine writeOutputMom(t, dt, nz, nr, r, n_i, u_i, T_i, Z_list)
use constantParameters, only: eV_to_K
use referenceValues, only: L_ref, t_ref, n_ref, u_ref, Temp_ref
integer, intent(in):: t
integer, intent(in):: nr
integer, intent(in):: nz
real(dp), intent(in):: dt
real(dp), intent(in):: r(1:nr)
real(dp), intent(in):: n_i(1:nr)
real(dp), intent(in):: u_i(1:nr)
real(dp), intent(in):: T_i(1:nr)
real(dp), intent(in):: Z(1:nr)
real(dp), intent(in):: n_i(1:nz,1:nr)
real(dp), intent(in):: u_i(1:nz,1:nr)
real(dp), intent(in):: T_i(1:nz,1:nr)
real(dp), intent(in):: Z_list(1:nz)
character(:), allocatable:: filename
integer:: i
integer:: j
character(len=10):: timeString
character(len=10) :: ZString
write (timeString, formatTime) t
filename = 'time_' // trim(timeString)//'_mom_i.csv'
write (*, '(A, A)') 'Writing: ', filename
do j = 1, nz
write (timeString, formatTime) t
write(ZString, '(F6.3)') Z_list(j) ! Format Z_list(j) with 3 decimal places
ZString = adjustl(trim(ZString)) ! Remove leading spaces
open(unit=dataPhi_id, file=pathOutput//filename)
write(dataPhi_id, '(A)') "t (s)"
write(dataPhi_id, '('//formatFloat//')') t*dt*t_ref
write(dataPhi_id, '(A,4('//formatSep//',A))') "r (m)","n_i (m^-3)","u_i (m s^-1)", "T_i (eV)","Zave"
do i = 1, nr
write(dataPhi_id, '('//formatFloat//',4('//formatSep //','//formatFloat//'))') &
r(i)*L_ref, &
n_i(i)*n_ref, &
u_i(i)*u_ref, &
T_i(i)*Temp_ref/ev_to_K, &
Z(i)
ZString = adjustl(ZString)
ZString = ZString(:index(ZString // '.', '.') - 1) // ZString(index(ZString, '.') + 1:)
filename = 'time_' // trim(timeString) // '_Z' // trim(ZString) // '_mom_i.csv'
write (*, '(A, A)') 'Writing: ', filename
open(unit=dataPhi_id, file=pathOutput//filename)
write(dataPhi_id, '(A)') "t (s)"
write(dataPhi_id, '('//formatFloat//')') t*dt*t_ref
write(dataPhi_id, '(A)') "Z"
write(dataPhi_id, '('//formatFloat//')') Z_list(j)
write(dataPhi_id, '(A,4('//formatSep//',A))') "r (m)","n_i (m^-3)","u_i (m s^-1)", "T_i (eV)"
do i = 1, nr
write(dataPhi_id, '('//formatFloat//',4('//formatSep //','//formatFloat//'))') &
r(i)*L_ref, &
n_i(j,i)*n_ref, &
u_i(j,i)*u_ref, &
T_i(j,i)*Temp_ref/ev_to_K
end do
close(unit=dataPhi_id)
end do
close(unit=dataPhi_id)
end subroutine writeOutputMom
subroutine writeOutputBoundary(t, dt, n, u, Temp, Z)