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

Commit

Permalink
changed user_ files to io_ files & updated output formatting for scalars
Browse files Browse the repository at this point in the history
  • Loading branch information
cwishard committed Jun 28, 2021
1 parent f1b80c9 commit e9f993c
Show file tree
Hide file tree
Showing 33 changed files with 118 additions and 123 deletions.
8 changes: 1 addition & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ SWIFTEST_MODULES = swiftest_globals.f90 \

include Makefile.Defines

MODULES = $(SWIFTEST_MODULES) $(USER_MODULES)
MODULES = $(SWIFTEST_MODULES)


.PHONY : all mod lib libdir drivers tools bin clean force
Expand Down Expand Up @@ -134,11 +134,6 @@ lib:
ln -s $(SWIFTEST_HOME)/Makefile.Defines .; \
ln -s $(SWIFTEST_HOME)/Makefile .; \
make libdir
cd $(SWIFTEST_HOME)/src/user; \
rm -f Makefile.Defines Makefile; \
ln -s $(SWIFTEST_HOME)/Makefile.Defines .; \
ln -s $(SWIFTEST_HOME)/Makefile .; \
make libdir2
cd $(SWIFTEST_HOME)/src/util; \
rm -f Makefile.Defines Makefile; \
ln -s $(SWIFTEST_HOME)/Makefile.Defines .; \
Expand Down Expand Up @@ -185,7 +180,6 @@ clean:
cd $(SWIFTEST_HOME)/src/rmvs; rm -f Makefile.Defines Makefile *.gc*
cd $(SWIFTEST_HOME)/src/swiftest; rm -f Makefile.Defines Makefile *.gc*
cd $(SWIFTEST_HOME)/src/symba; rm -f Makefile.Defines Makefile *.gc*
cd $(SWIFTEST_HOME)/src/user; rm -f Makefile.Defines Makefile *.gc*
cd $(SWIFTEST_HOME)/src/util; rm -f Makefile.Defines Makefile *.gc*
cd $(SWIFTEST_HOME)/src/main; rm -f Makefile.Defines Makefile *.gc*
cd $(SWIFTEST_HOME)/src/tool; rm -f Makefile.Defines Makefile *.gc*
Expand Down
2 changes: 1 addition & 1 deletion src/io/io_conservation_report.f90
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ module subroutine io_conservation_report(t, symba_plA, npl, j2rp2, j4rp4, param,
type(symba_pl), intent(inout) :: symba_plA !! Swiftest planet data structure
integer(I4B), intent(in) :: npl !! Number of massive bodies
real(DP), intent(in) :: j2rp2, j4rp4 !! Central body oblateness terms
type(user_input_parameters), intent(inout) :: param !! Input colleciton of user-defined parameters
type(io_input_parameters), intent(inout) :: param !! Input colleciton of user-defined parameters
logical, intent(in) :: lterminal !! Indicates whether to output information to the terminal screen
! Internals
real(DP), dimension(NDIM) :: Ltot_now, Lorbit_now, Lspin_now
Expand Down
14 changes: 7 additions & 7 deletions src/user/user_dump_param.f90 → src/io/io_dump_param.f90
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
submodule(swiftest_data_structures) s_user_dump_param
submodule(swiftest_data_structures) s_io_dump_param
contains
module subroutine user_dump_param(param, t, swiftest_plA)
module subroutine io_dump_param(param, t, swiftest_plA)
!! author: David A. Minton
!!
!! Dump integration parameters to file
!!
!! Adapted from David E. Kaufmann's Swifter routine io_dump_param.f90
!! Adapted from Martin Duncan's Swift routine io_dump_param.f
use swiftest, except_this_one => user_dump_param
use swiftest, except_this_one => io_dump_param
implicit none

! Arguments
class(user_input_parameters),intent(in) :: param !! Output collection of user-defined parameters
class(io_input_parameters),intent(in) :: param !! Output collection of user-defined parameters
real(DP),intent(in) :: t !! Current simulation tim
type(swiftest_pl), intent(inout) :: swiftest_plA

! Internals
type(user_input_parameters) :: param_dump !! Data type of dumped parameter file
type(io_input_parameters) :: param_dump !! Data type of dumped parameter file
integer(I4B), parameter :: LUN = 7 !! Unit number of output file
integer(I4B) :: ierr !! Error code
integer(I4B), save :: idx = 1 !! Index of current dump file. Output flips between 2 files for extra security
Expand Down Expand Up @@ -52,5 +52,5 @@ module subroutine user_dump_param(param, t, swiftest_plA)

return

end subroutine user_dump_param
end submodule s_user_dump_param
end subroutine io_dump_param
end submodule s_io_dump_param
2 changes: 1 addition & 1 deletion src/io/io_dump_pl.f90
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ SUBROUTINE io_dump_pl(npl, swiftest_plA, param)
! Arguments
INTEGER(I4B), INTENT(IN) :: npl
TYPE(swiftest_pl), INTENT(INOUT) :: swiftest_plA
type(user_input_parameters),intent(inout) :: param
type(io_input_parameters),intent(inout) :: param

! Internals
INTEGER(I4B) :: ierr
Expand Down
2 changes: 1 addition & 1 deletion src/io/io_dump_pl_symba.f90
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ subroutine io_dump_pl_symba(npl, symba_plA, param)
! arguments
integer(I4B), intent(in) :: npl
type(symba_pl), intent(inout) :: symba_plA
type(user_input_parameters),intent(inout) :: param
type(io_input_parameters),intent(inout) :: param

! internals
integer(I4B) :: ierr
Expand Down
10 changes: 5 additions & 5 deletions src/user/user_get_token.f90 → src/io/io_get_token.f90
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
submodule(swiftest_data_structures) s_user_get_token
submodule(swiftest_data_structures) s_io_get_token
contains
module function user_get_token(buffer, ifirst, ilast, ierr) result(token)
module function io_get_token(buffer, ifirst, ilast, ierr) result(token)
!! author: David A. Minton
!!
!! Retrieves a character token from an input string. Here a token is defined as any set of contiguous non-blank characters not
!! beginning with or containing "!". If "!" is present, any remaining part of the buffer including the "!" is ignored
!!
!! Adapted from David E. Kaufmann's Swifter routine user_get_token.f90
use swiftest, except_this_one => user_get_token
use swiftest, except_this_one => io_get_token
implicit none

! Arguments
Expand Down Expand Up @@ -49,5 +49,5 @@ module function user_get_token(buffer, ifirst, ilast, ierr) result(token)

return

end function user_get_token
end submodule s_user_get_token
end function io_get_token
end submodule s_io_get_token
12 changes: 6 additions & 6 deletions src/user/user_read_param_in.f90 → src/io/io_read_param_in.f90
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
submodule (swiftest_data_structures) s_user_read_param_in
submodule (swiftest_data_structures) s_io_read_param_in
contains
module subroutine user_read_param_in(param, inparfile, swiftest_plA)
module subroutine io_read_param_in(param, inparfile, swiftest_plA)
!! author: The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott
!!
!! Read in parameters for the integration
!!
!! Adapted from David E. Kaufmann's Swifter routine io_init_param.f90
!! Adapted from Martin Duncan's Swift routine io_init_param.f
!$ use omp_lib
use swiftest, except_this_one => user_read_param_in
use swiftest, except_this_one => io_read_param_in
implicit none

! Arguments
class(user_input_parameters),intent(out) :: param !! Input collection of user-defined parameters
class(io_input_parameters),intent(out) :: param !! Input collection of user-defined parameters
character(*), intent(in) :: inparfile !! Parameter input file name (i.e. param.in)
type(swiftest_pl), intent(inout) :: swiftest_plA

Expand Down Expand Up @@ -118,6 +118,6 @@ module subroutine user_read_param_in(param, inparfile, swiftest_plA)

return

end subroutine user_read_param_in
end subroutine io_read_param_in

end submodule s_user_read_param_in
end submodule s_io_read_param_in
2 changes: 1 addition & 1 deletion src/io/io_read_particle.f90
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ module subroutine io_read_particle_pl(swiftest_plA, param)
implicit none
! Arguments
class(swiftest_pl), intent(inout) :: swiftest_plA !! Swiftest massive body structure
type(user_input_parameters), intent(in) :: param !! Input colleciton of user-defined parameters
type(io_input_parameters), intent(in) :: param !! Input colleciton of user-defined parameters
! Internals
integer(I4B), parameter :: lun = 22
integer(I4B) :: i, ierr, id, idx
Expand Down
34 changes: 17 additions & 17 deletions src/user/user_udio_reader.f90 → src/io/io_udio_reader.f90
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
submodule (swiftest_data_structures) s_user_udio_reader
submodule (swiftest_data_structures) s_io_udio_reader
contains
module subroutine user_udio_reader(param, unit, iotype, v_list, iostat, iomsg, swiftest_plA)
module subroutine io_udio_reader(param, unit, iotype, v_list, iostat, iomsg, swiftest_plA)
!! author: The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott
!!
!! Read in parameters for the integration
Expand All @@ -12,11 +12,11 @@ module subroutine user_udio_reader(param, unit, iotype, v_list, iostat, iomsg, s
!! Adapted from Martin Duncan's Swift routine io_init_param.f
!$ use omp_lib
!use util, only: util_exit ! IMPLEMENTATION TBD
use swiftest, except_this_one => user_udio_reader
use swiftest, except_this_one => io_udio_reader
implicit none

! Arguments
class(user_input_parameters),intent(inout) :: param !! Input collection of user-defined parameters
class(io_input_parameters),intent(inout) :: param !! Input collection of user-defined parameters
integer, intent(in) :: unit
character(len=*), intent(in) :: iotype
integer, intent(in) :: v_list(:)
Expand Down Expand Up @@ -47,11 +47,11 @@ module subroutine user_udio_reader(param, unit, iotype, v_list, iostat, iomsg, s
if ((ilength /= 0)) then
ifirst = 1
! Read the pair of tokens. The first one is the parameter name, the second is the value.
param_name = user_get_token(line_trim, ifirst, ilast, iostat)
param_name = io_get_token(line_trim, ifirst, ilast, iostat)
if (param_name == '') cycle ! No parameter name (usually because this line is commented out)
call util_toupper(param_name)
ifirst = ilast + 1
param_value = user_get_token(line_trim, ifirst, ilast, iostat)
param_value = io_get_token(line_trim, ifirst, ilast, iostat)
select case (param_name)
case ("T0")
read(param_value, *) param%t0
Expand Down Expand Up @@ -107,7 +107,7 @@ module subroutine user_udio_reader(param, unit, iotype, v_list, iostat, iomsg, s
case ("CHK_QMIN_RANGE")
read(param_value, *) param%qmin_alo
ifirst = ilast + 1
param_value = user_get_token(line, ifirst, ilast, iostat)
param_value = io_get_token(line, ifirst, ilast, iostat)
read(param_value, *) param%qmin_ahi
case ("ENC_OUT")
param%encounter_file = param_value
Expand Down Expand Up @@ -168,13 +168,13 @@ module subroutine user_udio_reader(param, unit, iotype, v_list, iostat, iomsg, s
allocate(param%seed(nseeds))
do i = 1, nseeds
ifirst = ilast + 1
param_value = user_get_token(line, ifirst, ilast, iostat)
param_value = io_get_token(line, ifirst, ilast, iostat)
read(param_value, *) param%seed(i)
end do
else ! Seed array in file is too small
do i = 1, nseeds_from_file
ifirst = ilast + 1
param_value = user_get_token(line, ifirst, ilast, iostat)
param_value = io_get_token(line, ifirst, ilast, iostat)
read(param_value, *) param%seed(i)
end do
param%seed(nseeds_from_file+1:nseeds) = [(param%seed(1) - param%seed(nseeds_from_file) + i, i=nseeds_from_file+1, nseeds)]
Expand All @@ -194,43 +194,43 @@ module subroutine user_udio_reader(param, unit, iotype, v_list, iostat, iomsg, s
read(param_value, *) param%Ltot_orig(1)
do i = 2, NDIM
ifirst = ilast + 1
param_value = user_get_token(line, ifirst, ilast, iostat)
param_value = io_get_token(line, ifirst, ilast, iostat)
read(param_value, *) param%Ltot_orig(i)
end do
param%Lmag_orig = norm2(param%Ltot_orig(:))
case("LORBIT_ORIG")
read(param_value, *) param%Lorbit_orig(1)
do i = 2, NDIM
ifirst = ilast + 1
param_value = user_get_token(line, ifirst, ilast, iostat)
param_value = io_get_token(line, ifirst, ilast, iostat)
read(param_value, *) param%Lorbit_orig(i)
end do
case("LSPIN_ORIG")
read(param_value, *) param%Lspin_orig(1)
do i = 2, NDIM
ifirst = ilast + 1
param_value = user_get_token(line, ifirst, ilast, iostat)
param_value = io_get_token(line, ifirst, ilast, iostat)
read(param_value, *) param%Lspin_orig(i)
end do
case("LCB_INITIAL")
read(param_value, *) swiftest_plA%Lcb_initial(1)
do i = 2, NDIM
ifirst = ilast + 1
param_value = user_get_token(line, ifirst, ilast, iostat)
param_value = io_get_token(line, ifirst, ilast, iostat)
read(param_value, *) swiftest_plA%Lcb_initial(i)
end do
case("DLCB")
read(param_value, *) swiftest_plA%dLcb(1)
do i = 2, NDIM
ifirst = ilast + 1
param_value = user_get_token(line, ifirst, ilast, iostat)
param_value = io_get_token(line, ifirst, ilast, iostat)
read(param_value, *) swiftest_plA%dLcb(i)
end do
case("LESCAPE")
read(param_value, *) swiftest_plA%Lescape(1)
do i = 2, NDIM
ifirst = ilast + 1
param_value = user_get_token(line, ifirst, ilast, iostat)
param_value = io_get_token(line, ifirst, ilast, iostat)
read(param_value, *) swiftest_plA%Lescape(i)
end do
case("MCB_INITIAL")
Expand Down Expand Up @@ -335,6 +335,6 @@ module subroutine user_udio_reader(param, unit, iotype, v_list, iostat, iomsg, s

return

end subroutine user_udio_reader
end subroutine io_udio_reader

end submodule s_user_udio_reader
end submodule s_io_udio_reader
27 changes: 14 additions & 13 deletions src/user/user_udio_writer.f90 → src/io/io_udio_writer.f90
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
submodule(swiftest_data_structures) s_user_udio_writer
submodule(swiftest_data_structures) s_io_udio_writer
contains
module subroutine user_udio_writer(param, unit, iotype, v_list, iostat, iomsg, swiftest_plA)
module subroutine io_udio_writer(param, unit, iotype, v_list, iostat, iomsg, swiftest_plA)
!! author: David A. Minton
!!
!! Dump integration parameters to file
!!
!! Adapted from David E. Kaufmann's Swifter routine io_dump_param.f90
!! Adapted from Martin Duncan's Swift routine io_dump_param.f
use swiftest, except_this_one => user_udio_writer
use swiftest, except_this_one => io_udio_writer
implicit none

! Arguments
class(user_input_parameters),intent(in) :: param !! Output collection of user-defined parameters
class(io_input_parameters),intent(in) :: param !! Output collection of user-defined parameters
integer, intent(in) :: unit
character(len=*), intent(in) :: iotype
integer, intent(in) :: v_list(:)
Expand Down Expand Up @@ -118,19 +118,20 @@ module subroutine user_udio_writer(param, unit, iotype, v_list, iostat, iomsg, s
write(unit, '("LCB_INITIAL ",3(1X,ES25.17))') swiftest_pLA%Lcb_initial(:)
write(unit, '("DLCB ",3(1X,ES25.17))') swiftest_pLA%dLcb(:)
write(unit, '("LESCAPE ",3(1X,ES25.17))') swiftest_pLA%Lescape(:)
write(unit, '("MCB_INITIAL ",(1X,ES25.17))') swiftest_pLA%Mcb_initial
write(unit, '("DMCB ",(1X,ES25.17))') swiftest_pLA%dMcb
write(unit, '("MESCAPE ",(1X,ES25.17))') swiftest_pLA%Mescape
write(unit, '("RCB_INITIAL ",(1X,ES25.17))') swiftest_pLA%Rcb_initial
write(unit, '("DRCB ",(1X,ES25.17))') swiftest_pLA%dRcb
write(unit, '("ECOLLISIONS ",(1X,ES25.17))') swiftest_pLA%Ecollisions
write(unit, '("EUNTRACKED ",(1X,ES25.17))') swiftest_pLA%Euntracked

write(param_name, Afmt) "MCB_INITIAL"; write(param_value, Rfmt) swiftest_pLA%Mcb_initial; write(unit, Afmt) adjustl(param_name), adjustl(param_value)
write(param_name, Afmt) "DMCB"; write(param_value, Rfmt) swiftest_pLA%dMcb; write(unit, Afmt) adjustl(param_name), adjustl(param_value)
write(param_name, Afmt) "MESCAPE"; write(param_value, Rfmt) swiftest_pLA%Mescape; write(unit, Afmt) adjustl(param_name), adjustl(param_value)
write(param_name, Afmt) "RCB_INITIAL"; write(param_value, Rfmt) swiftest_pLA%Rcb_initial; write(unit, Afmt) adjustl(param_name), adjustl(param_value)
write(param_name, Afmt) "DRCB"; write(param_value, Rfmt) swiftest_pLA%dRcb; write(unit, Afmt) adjustl(param_name), adjustl(param_value)
write(param_name, Afmt) "ECOLLISIONS"; write(param_value, Rfmt) swiftest_pLA%Ecollisions; write(unit, Afmt) adjustl(param_name), adjustl(param_value)
write(param_name, Afmt) "EUNTRACKED"; write(param_value, Rfmt) swiftest_pLA%Euntracked; write(unit, Afmt) adjustl(param_name), adjustl(param_value)
end if
write(param_name, Afmt) "FIRSTKICK"; write(param_value, Lfmt) param%lfirstkick; write(unit, Afmt) adjustl(param_name), adjustl(param_value)

iostat = 0

return

end subroutine user_udio_writer
end submodule s_user_udio_writer
end subroutine io_udio_writer
end submodule s_io_udio_writer
2 changes: 1 addition & 1 deletion src/io/io_write_particle.f90
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ module subroutine io_write_particle_pl(swiftest_plA, idx, param)
! Arguments
class(swiftest_pl), intent(in) :: swiftest_plA !! Swiftest massive body structure
integer(I4B), dimension(:), intent(in) :: idx !! Array of particle indices to append to the particle file
type(user_input_parameters), intent(in) :: param !! Input colleciton of user-defined parameters
type(io_input_parameters), intent(in) :: param !! Input colleciton of user-defined parameters
! Internals
logical, save :: lfirst = .true.
integer(I4B), parameter :: lun = 22
Expand Down
2 changes: 1 addition & 1 deletion src/main/swiftest_symba.f90
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ program swiftest_symba
implicit none

! Arguments
type(user_input_parameters) :: param ! derived type containing user-defined parameters
type(io_input_parameters) :: param ! derived type containing user-defined parameters

! Internals
logical :: lfrag_add, ldiscard_pl, ldiscard_tp
Expand Down
Loading

0 comments on commit e9f993c

Please sign in to comment.