From c8c805e549e8284a95f14ecc67a62e3deee1e0f3 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 17 Aug 2021 11:44:30 -0400 Subject: [PATCH] Fixed problem where dicard file was being over-written each time a discard was recorded --- src/io/io.f90 | 9 +++++++-- src/symba/symba_io.f90 | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 73e951c76..c31718edb 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1235,13 +1235,18 @@ module subroutine io_write_discard(self, param) character(*), parameter :: NPLFMT = '(I8)' character(*), parameter :: PLNAMEFMT = '(I8, 2(1X, E23.16))' class(swiftest_body), allocatable :: pltemp - character(len=STRMAX) :: errmsg + character(len=STRMAX) :: errmsg, out_stat if (param%discard_out == "") return associate(tp_discards => self%tp_discards, nsp => self%tp_discards%nbody, pl => self%pl, npl => self%pl%nbody) if (nsp == 0) return - select case(param%out_stat) + if (lfirst) then + out_stat = param%out_stat + else + out_stat = 'APPEND' + end if + select case(out_stat) case('APPEND') open(unit = LUN, file = param%discard_out, status = 'OLD', position = 'APPEND', form = 'FORMATTED', err = 667, iomsg = errmsg) case('NEW', 'REPLACE', 'UNKNOWN') diff --git a/src/symba/symba_io.f90 b/src/symba/symba_io.f90 index 4bdc5c195..775efa962 100644 --- a/src/symba/symba_io.f90 +++ b/src/symba/symba_io.f90 @@ -329,7 +329,7 @@ module subroutine symba_io_write_discard(self, param) character(*), parameter :: NPLFMT = '(I8)' character(*), parameter :: PLNAMEFMT = '(I8, 2(1X, E23.16))' class(swiftest_body), allocatable :: pltemp - character(STRMAX) :: errmsg + character(STRMAX) :: errmsg, out_stat if (param%discard_out == "") return @@ -338,7 +338,12 @@ module subroutine symba_io_write_discard(self, param) select type(pl_discards => self%pl_discards) class is (symba_merger) if (pl_discards%nbody == 0) return - select case(param%out_stat) + if (lfirst) then + out_stat = param%out_stat + else + out_stat = 'APPEND' + end if + select case(out_stat) case('APPEND') open(unit = LUN, file = param%discard_out, status = 'OLD', position = 'APPEND', form = 'FORMATTED', err = 667, iomsg = errmsg) case('NEW', 'REPLACE', 'UNKNOWN')