Skip to content
This repository was archived by the owner on Aug 28, 2024. It is now read-only.

Commit

Permalink
Moved file logging out of fraggle and into the main io submodule
Browse files Browse the repository at this point in the history
  • Loading branch information
daminton committed Sep 20, 2021
1 parent eb3ce0a commit 17ba0f1
Show file tree
Hide file tree
Showing 13 changed files with 214 additions and 135 deletions.
60 changes: 30 additions & 30 deletions src/fraggle/fraggle_generate.f90
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,10 @@ module subroutine fraggle_generate_fragments(self, colliders, system, param, lfa
associate(frag => self, nfrag => self%nbody, pl => system%pl)

write(message,*) nfrag
call fraggle_io_log_one_message("Fraggle generating " // trim(adjustl(message)) // " fragments.")
call io_log_one_message(FRAGGLE_LOG_OUT, "Fraggle generating " // trim(adjustl(message)) // " fragments.")
if (nfrag < NFRAG_MIN) then
write(message,*) "Fraggle needs at least ",NFRAG_MIN," fragments, but only ",nfrag," were given."
call fraggle_io_log_one_message(message)
call io_log_one_message(FRAGGLE_LOG_OUT, message)
lfailure = .true.
return
end if
Expand All @@ -64,7 +64,7 @@ module subroutine fraggle_generate_fragments(self, colliders, system, param, lfa
try = 1
do while (try < MAXTRY)
write(message,*) try
call fraggle_io_log_one_message("Fraggle try " // trim(adjustl(message)))
call io_log_one_message(FRAGGLE_LOG_OUT, "Fraggle try " // trim(adjustl(message)))
if (lfailure) then
call frag%restructure(colliders, try, f_spin, r_max_start)
call frag%reset()
Expand All @@ -87,19 +87,19 @@ module subroutine fraggle_generate_fragments(self, colliders, system, param, lfa

call fraggle_generate_spins(frag, colliders, f_spin, lfailure)
if (lfailure) then
call fraggle_io_log_one_message("Fraggle failed to find spins")
call io_log_one_message(FRAGGLE_LOG_OUT, "Fraggle failed to find spins")
cycle
end if

call fraggle_generate_tan_vel(frag, colliders, lfailure)
if (lfailure) then
call fraggle_io_log_one_message("Fraggle failed to find tangential velocities")
call io_log_one_message(FRAGGLE_LOG_OUT, "Fraggle failed to find tangential velocities")
cycle
end if

call fraggle_generate_rad_vel(frag, colliders, lfailure)
if (lfailure) then
call fraggle_io_log_one_message("Fraggle failed to find radial velocities")
call io_log_one_message(FRAGGLE_LOG_OUT, "Fraggle failed to find radial velocities")
cycle
end if

Expand All @@ -110,14 +110,14 @@ module subroutine fraggle_generate_fragments(self, colliders, system, param, lfa
lfailure = ((abs(dEtot + frag%Qloss) > FRAGGLE_ETOL) .or. (dEtot > 0.0_DP))
if (lfailure) then
write(message, *) dEtot, abs(dEtot + frag%Qloss) / FRAGGLE_ETOL
call fraggle_io_log_one_message("Fraggle failed due to high energy error: " // trim(adjustl(message)))
call io_log_one_message(FRAGGLE_LOG_OUT, "Fraggle failed due to high energy error: " // trim(adjustl(message)))
cycle
end if

lfailure = ((abs(dLmag) / (.mag.frag%Ltot_before)) > FRAGGLE_LTOL)
if (lfailure) then
write(message,*) dLmag / (.mag.frag%Ltot_before(:))
call fraggle_io_log_one_message("Fraggle failed due to high angular momentum error: " // trim(adjustl(message)))
call io_log_one_message(FRAGGLE_LOG_OUT, "Fraggle failed due to high angular momentum error: " // trim(adjustl(message)))
cycle
end if

Expand All @@ -126,14 +126,14 @@ module subroutine fraggle_generate_fragments(self, colliders, system, param, lfa
lfailure = any(fpe_flag)
if (.not.lfailure) exit
write(message,*) "Fraggle failed due to a floating point exception: ", fpe_flag
call fraggle_io_log_one_message(message)
call io_log_one_message(FRAGGLE_LOG_OUT, message)
end do

write(message,*) try
if (lfailure) then
call fraggle_io_log_one_message("Fraggle fragment generation failed after " // trim(adjustl(message)) // " tries")
call io_log_one_message(FRAGGLE_LOG_OUT, "Fraggle fragment generation failed after " // trim(adjustl(message)) // " tries")
else
call fraggle_io_log_one_message("Fraggle fragment generation succeeded after " // trim(adjustl(message)) // " tries")
call io_log_one_message(FRAGGLE_LOG_OUT, "Fraggle fragment generation succeeded after " // trim(adjustl(message)) // " tries")
call fraggle_io_log_generate(frag)
end if

Expand Down Expand Up @@ -254,16 +254,16 @@ subroutine fraggle_generate_spins(frag, colliders, f_spin, lfailure)
lfailure = ((frag%ke_budget - frag%ke_spin - frag%ke_orbit) < 0.0_DP)

if (lfailure) then
call fraggle_io_log_one_message(" ")
call fraggle_io_log_one_message("Spin failure diagnostics")
call io_log_one_message(FRAGGLE_LOG_OUT, " ")
call io_log_one_message(FRAGGLE_LOG_OUT, "Spin failure diagnostics")
write(message, *) frag%ke_budget
call fraggle_io_log_one_message("ke_budget : " // trim(adjustl(message)))
call io_log_one_message(FRAGGLE_LOG_OUT, "ke_budget : " // trim(adjustl(message)))
write(message, *) frag%ke_spin
call fraggle_io_log_one_message("ke_spin : " // trim(adjustl(message)))
call io_log_one_message(FRAGGLE_LOG_OUT, "ke_spin : " // trim(adjustl(message)))
write(message, *) frag%ke_orbit
call fraggle_io_log_one_message("ke_orbit : " // trim(adjustl(message)))
call io_log_one_message(FRAGGLE_LOG_OUT, "ke_orbit : " // trim(adjustl(message)))
write(message, *) frag%ke_budget - frag%ke_spin - frag%ke_orbit
call fraggle_io_log_one_message("ke_remainder : " // trim(adjustl(message)))
call io_log_one_message(FRAGGLE_LOG_OUT, "ke_remainder : " // trim(adjustl(message)))
end if

end associate
Expand Down Expand Up @@ -355,20 +355,20 @@ subroutine fraggle_generate_tan_vel(frag, colliders, lfailure)
! If we are over the energy budget, flag this as a failure so we can try again
lfailure = ((frag%ke_budget - frag%ke_spin - frag%ke_orbit) < 0.0_DP)
if (lfailure) then
call fraggle_io_log_one_message(" ")
call fraggle_io_log_one_message("Tangential velocity failure diagnostics")
call io_log_one_message(FRAGGLE_LOG_OUT, " ")
call io_log_one_message(FRAGGLE_LOG_OUT, "Tangential velocity failure diagnostics")
call frag%get_ang_mtm()
L_frag_tot = frag%L_spin(:) + frag%L_orbit(:)
write(message, *) .mag.(frag%L_budget(:) - L_frag_tot(:)) / (.mag.frag%Ltot_before(:))
call fraggle_io_log_one_message("|L_remainder| : " // trim(adjustl(message)))
call io_log_one_message(FRAGGLE_LOG_OUT, "|L_remainder| : " // trim(adjustl(message)))
write(message, *) frag%ke_budget
call fraggle_io_log_one_message("ke_budget : " // trim(adjustl(message)))
call io_log_one_message(FRAGGLE_LOG_OUT, "ke_budget : " // trim(adjustl(message)))
write(message, *) frag%ke_spin
call fraggle_io_log_one_message("ke_spin : " // trim(adjustl(message)))
call io_log_one_message(FRAGGLE_LOG_OUT, "ke_spin : " // trim(adjustl(message)))
write(message, *) frag%ke_orbit
call fraggle_io_log_one_message("ke_tangential : " // trim(adjustl(message)))
call io_log_one_message(FRAGGLE_LOG_OUT, "ke_tangential : " // trim(adjustl(message)))
write(message, *) frag%ke_budget - frag%ke_spin - frag%ke_orbit
call fraggle_io_log_one_message("ke_radial : " // trim(adjustl(message)))
call io_log_one_message(FRAGGLE_LOG_OUT, "ke_radial : " // trim(adjustl(message)))
end if
end associate

Expand Down Expand Up @@ -515,16 +515,16 @@ subroutine fraggle_generate_rad_vel(frag, colliders, lfailure)

lfailure = abs((frag%ke_budget - (frag%ke_orbit + frag%ke_spin)) / frag%ke_budget) > FRAGGLE_ETOL
if (lfailure) then
call fraggle_io_log_one_message(" ")
call fraggle_io_log_one_message("Radial velocity failure diagnostics")
call io_log_one_message(FRAGGLE_LOG_OUT, " ")
call io_log_one_message(FRAGGLE_LOG_OUT, "Radial velocity failure diagnostics")
write(message, *) frag%ke_budget
call fraggle_io_log_one_message("ke_budget : " // trim(adjustl(message)))
call io_log_one_message(FRAGGLE_LOG_OUT, "ke_budget : " // trim(adjustl(message)))
write(message, *) frag%ke_spin
call fraggle_io_log_one_message("ke_spin : " // trim(adjustl(message)))
call io_log_one_message(FRAGGLE_LOG_OUT, "ke_spin : " // trim(adjustl(message)))
write(message, *) frag%ke_orbit
call fraggle_io_log_one_message("ke_orbit : " // trim(adjustl(message)))
call io_log_one_message(FRAGGLE_LOG_OUT, "ke_orbit : " // trim(adjustl(message)))
write(message, *) frag%ke_budget - (frag%ke_orbit + frag%ke_spin)
call fraggle_io_log_one_message("ke_remainder : " // trim(adjustl(message)))
call io_log_one_message(FRAGGLE_LOG_OUT, "ke_remainder : " // trim(adjustl(message)))
end if

end associate
Expand Down
82 changes: 41 additions & 41 deletions src/fraggle/fraggle_io.f90
Original file line number Diff line number Diff line change
Expand Up @@ -61,24 +61,24 @@ module subroutine fraggle_io_log_generate(frag)
end subroutine fraggle_io_log_generate


module subroutine fraggle_io_log_one_message(message)
!! author: David A. Minton
!!
!! Writes a single message to the fraggle log file
implicit none
! Arguments
character(len=*), intent(in) :: message
! Internals
character(STRMAX) :: errmsg

open(unit=FRAGGLE_LOG_UNIT, file=FRAGGLE_LOG_OUT, status = 'OLD', position = 'APPEND', form = 'FORMATTED', err = 667, iomsg = errmsg)
write(FRAGGLE_LOG_UNIT, *) trim(adjustl(message))
close(FRAGGLE_LOG_UNIT)

return
667 continue
write(*,*) "Error writing Fraggle message to log file: " // trim(adjustl(errmsg))
end subroutine fraggle_io_log_one_message
! module subroutine io_log_one_message(FRAGGLE_LOG_OUT, message)
! !! author: David A. Minton
! !!
! !! Writes a single message to the fraggle log file
! implicit none
! ! Arguments
! character(len=*), intent(in) :: message
! ! Internals
! character(STRMAX) :: errmsg

! open(unit=FRAGGLE_LOG_UNIT, file=FRAGGLE_LOG_OUT, status = 'OLD', position = 'APPEND', form = 'FORMATTED', err = 667, iomsg = errmsg)
! write(FRAGGLE_LOG_UNIT, *) trim(adjustl(message))
! close(FRAGGLE_LOG_UNIT)

! return
! 667 continue
! write(*,*) "Error writing Fraggle message to log file: " // trim(adjustl(errmsg))
! end subroutine fraggle_io_log_one_message


module subroutine fraggle_io_log_pl(pl, param)
Expand Down Expand Up @@ -228,28 +228,28 @@ module subroutine fraggle_io_log_regime(colliders, frag)
end subroutine fraggle_io_log_regime


module subroutine fraggle_io_log_start(param)
!! author: David A. Minton
!!
!! Checks to see if the Fraggle log file needs to be replaced if this is a new run, or appended if this is a restarted run
implicit none
! Arguments
class(swiftest_parameters), intent(in) :: param
! Internals
character(STRMAX) :: errmsg
logical :: fileExists

inquire(file=FRAGGLE_LOG_OUT, exist=fileExists)
if (.not.param%lrestart .or. .not.fileExists) then
open(unit=FRAGGLE_LOG_UNIT, file=FRAGGLE_LOG_OUT, status="REPLACE", err = 667, iomsg = errmsg)
write(FRAGGLE_LOG_UNIT, *, err = 667, iomsg = errmsg) "Fraggle logfile"
end if
close(FRAGGLE_LOG_UNIT)

return

667 continue
write(*,*) "Error writing Fraggle log file: " // trim(adjustl(errmsg))
end subroutine fraggle_io_log_start
! module subroutine fraggle_io_log_start(param)
! !! author: David A. Minton
! !!
! !! Checks to see if the Fraggle log file needs to be replaced if this is a new run, or appended if this is a restarted run
! implicit none
! ! Arguments
! class(swiftest_parameters), intent(in) :: param
! ! Internals
! character(STRMAX) :: errmsg
! logical :: fileExists

! inquire(file=FRAGGLE_LOG_OUT, exist=fileExists)
! if (.not.param%lrestart .or. .not.fileExists) then
! open(unit=FRAGGLE_LOG_UNIT, file=FRAGGLE_LOG_OUT, status="REPLACE", err = 667, iomsg = errmsg)
! write(FRAGGLE_LOG_UNIT, *, err = 667, iomsg = errmsg) "Fraggle logfile"
! end if
! close(FRAGGLE_LOG_UNIT)

! return

! 667 continue
! write(*,*) "Error writing Fraggle log file: " // trim(adjustl(errmsg))
! end subroutine fraggle_io_log_start

end submodule s_fraggle_io
2 changes: 1 addition & 1 deletion src/fraggle/fraggle_regime.f90
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ subroutine fraggle_regime_collresolve(Mcb, m1, m2, rad1, rad2, xh1, xh2, vb1, vb
Mlr = Mtot
Mslr = 0.0_DP
Qloss = 0.0_DP
call fraggle_io_log_one_message("Fragments would have mass below the minimum. Converting this collision into a merger.")
call io_log_one_message(FRAGGLE_LOG_OUT, "Fragments would have mass below the minimum. Converting this collision into a merger.")
else
if( Vimp < Vescp) then
regime = COLLRESOLVE_REGIME_MERGE !perfect merging regime
Expand Down
Loading

0 comments on commit 17ba0f1

Please sign in to comment.