From 117f8ce32c1357fd783b628315ca9720bf69f84f Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 22 Jun 2021 12:28:05 -0400 Subject: [PATCH] Added central body to output file --- src/io/io_write_frame.f90 | 106 +++++++++++++++++++------------------- 1 file changed, 52 insertions(+), 54 deletions(-) diff --git a/src/io/io_write_frame.f90 b/src/io/io_write_frame.f90 index 986f8ee5e..ebfeb6df3 100644 --- a/src/io/io_write_frame.f90 +++ b/src/io/io_write_frame.f90 @@ -17,10 +17,10 @@ integer(I4B) :: i, j, ierr integer(I4B), save :: iu = lun, iout_form = xv real(DP) :: a, e, inc, capom, omega, capm, mu - real(DP), dimension(2:swiftest_plA%nbody) :: a_pl, e_pl, inc_pl, capom_pl, omega_pl, capm_pl - real(DP), dimension(1:swiftest_tpA%nbody) :: a_tp, e_tp, inc_tp, capom_tp, omega_tp, capm_tp + real(DP), dimension(swiftest_plA%nbody) :: a_pl, e_pl, inc_pl, capom_pl, omega_pl, capm_pl + real(DP), dimension(swiftest_tpA%nbody) :: a_tp, e_tp, inc_tp, capom_tp, omega_tp, capm_tp - associate(out_stat => param%out_stat, out_form => param%out_form, out_type => param%out_type, outfile => param%outfile) + associate(out_stat => param%out_stat, out_form => param%out_form, out_type => param%out_type, outfile => param%outfile, npl => swiftest_plA%nbody, ntp => swiftest_tpA%nbody) if (lfirst) then select case(out_stat) case('APPEND') @@ -55,10 +55,10 @@ end if end if - call io_write_hdr(iu, t, swiftest_plA%nbody, swiftest_tpA%nbody, iout_form, out_type) + call io_write_hdr(iu, t, npl, ntp, iout_form, out_type) select case (iout_form) case (EL) - do i = 2, swiftest_plA%nbody + do i = 2, npl mu = swiftest_plA%mass(1) + swiftest_plA%mass(i) j = swiftest_plA%id(i) call orbel_xv2el(swiftest_plA%xh(:,i), swiftest_plA%vh(:,i), mu, a, e, inc, capom, omega, capm) @@ -70,7 +70,7 @@ capm_pl(i) = capm end do mu = swiftest_plA%mass(1) - do i = 1, swiftest_tpA%nbody + do i = 1, ntp j = swiftest_tpA%id(i) call orbel_xv2el(swiftest_tpA%xh(:,i), swiftest_tpA%vh(:,i), mu, a, e, inc, capom, omega, capm) a_tp(i) = a @@ -80,62 +80,60 @@ omega_tp(i) = omega capm_tp(i) = capm end do - write(LUN) swiftest_plA%id(2:swiftest_plA%nbody) - write(LUN) a_pl(2:swiftest_plA%nbody) - write(LUN) e_pl(2:swiftest_plA%nbody) - write(LUN) inc_pl(2:swiftest_plA%nbody) - write(LUN) capom_pl(2:swiftest_plA%nbody) - write(LUN) omega_pl(2:swiftest_plA%nbody) - write(LUN) capm_pl(2:swiftest_plA%nbody) - write(LUN) swiftest_plA%mass(2:swiftest_plA%nbody) - write(LUN) swiftest_plA%radius(2:swiftest_plA%nbody) + write(LUN) swiftest_plA%id(1:npl) + write(LUN) a_pl(1:npl) + write(LUN) e_pl(1:npl) + write(LUN) inc_pl(1:npl) + write(LUN) capom_pl(1:npl) + write(LUN) omega_pl(1:npl) + write(LUN) capm_pl(1:npl) + write(LUN) swiftest_plA%mass(1:npl) + write(LUN) swiftest_plA%radius(1:npl) if (param%lrotation) then - write(LUN) swiftest_plA%rot(1,2:swiftest_plA%nbody) - write(LUN) swiftest_plA%rot(2,2:swiftest_plA%nbody) - write(LUN) swiftest_plA%rot(3,2:swiftest_plA%nbody) - write(LUN) swiftest_plA%Ip(1,2:swiftest_plA%nbody) - write(LUN) swiftest_plA%Ip(2,2:swiftest_plA%nbody) - write(LUN) swiftest_plA%Ip(3,2:swiftest_plA%nbody) + write(LUN) swiftest_plA%rot(1,1:npl) + write(LUN) swiftest_plA%rot(2,1:npl) + write(LUN) swiftest_plA%rot(3,1:npl) + write(LUN) swiftest_plA%Ip(1,1:npl) + write(LUN) swiftest_plA%Ip(2,1:npl) + write(LUN) swiftest_plA%Ip(3,1:npl) end if - if (swiftest_tpA%nbody > 0) then - write(LUN) swiftest_tpA%id(1:swiftest_tpA%nbody) - write(LUN) a_tp(1:swiftest_tpA%nbody) - write(LUN) e_tp(1:swiftest_tpA%nbody) - write(LUN) inc_tp(1:swiftest_tpA%nbody) - write(LUN) capom_tp(1:swiftest_tpA%nbody) - write(LUN) omega_tp(1:swiftest_tpA%nbody) - write(LUN) capm_tp(1:swiftest_tpA%nbody) + if (ntp > 0) then + write(LUN) swiftest_tpA%id(1:ntp) + write(LUN) a_tp(1:ntp) + write(LUN) e_tp(1:ntp) + write(LUN) inc_tp(1:ntp) + write(LUN) capom_tp(1:ntp) + write(LUN) omega_tp(1:ntp) + write(LUN) capm_tp(1:ntp) end if - case (XV) - write(LUN) swiftest_plA%id(2:swiftest_plA%nbody) - write(LUN) swiftest_plA%xh(1,2:swiftest_plA%nbody) - write(LUN) swiftest_plA%xh(2,2:swiftest_plA%nbody) - write(LUN) swiftest_plA%xh(3,2:swiftest_plA%nbody) - write(LUN) swiftest_plA%vh(1,2:swiftest_plA%nbody) - write(LUN) swiftest_plA%vh(2,2:swiftest_plA%nbody) - write(LUN) swiftest_plA%vh(3,2:swiftest_plA%nbody) - write(LUN) swiftest_plA%mass(2:swiftest_plA%nbody) - write(LUN) swiftest_plA%radius(2:swiftest_plA%nbody) + write(LUN) swiftest_plA%id(1:npl) + write(LUN) swiftest_plA%xh(1,1:npl) + write(LUN) swiftest_plA%xh(2,1:npl) + write(LUN) swiftest_plA%xh(3,1:npl) + write(LUN) swiftest_plA%vh(1,1:npl) + write(LUN) swiftest_plA%vh(2,1:npl) + write(LUN) swiftest_plA%vh(3,1:npl) + write(LUN) swiftest_plA%mass(1:npl) + write(LUN) swiftest_plA%radius(1:npl) if (param%lrotation) then - write(LUN) swiftest_plA%rot(1,2:swiftest_plA%nbody) - write(LUN) swiftest_plA%rot(2,2:swiftest_plA%nbody) - write(LUN) swiftest_plA%rot(3,2:swiftest_plA%nbody) - write(LUN) swiftest_plA%Ip(1,2:swiftest_plA%nbody) - write(LUN) swiftest_plA%Ip(2,2:swiftest_plA%nbody) - write(LUN) swiftest_plA%Ip(3,2:swiftest_plA%nbody) + write(LUN) swiftest_plA%rot(1,1:npl) + write(LUN) swiftest_plA%rot(2,1:npl) + write(LUN) swiftest_plA%rot(3,1:npl) + write(LUN) swiftest_plA%Ip(1,1:npl) + write(LUN) swiftest_plA%Ip(2,1:npl) + write(LUN) swiftest_plA%Ip(3,1:npl) end if - if (swiftest_tpA%nbody > 0) then - write(LUN) swiftest_tpA%id(:) - write(LUN) swiftest_tpA%xh(1,:) - write(LUN) swiftest_tpA%xh(2,:) - write(LUN) swiftest_tpA%xh(3,:) - write(LUN) swiftest_tpA%vh(1,:) - write(LUN) swiftest_tpA%vh(2,:) - write(LUN) swiftest_tpA%vh(3,:) + if (ntp > 0) then + write(LUN) swiftest_tpA%id(1:ntp) + write(LUN) swiftest_tpA%xh(1,1:ntp) + write(LUN) swiftest_tpA%xh(2,1:ntp) + write(LUN) swiftest_tpA%xh(3,1:ntp) + write(LUN) swiftest_tpA%vh(1,1:ntp) + write(LUN) swiftest_tpA%vh(2,1:ntp) + write(LUN) swiftest_tpA%vh(3,1:ntp) end if - end select close(unit = iu, iostat = ierr)