Merge branch 'master' into binaries
This commit is contained in:
commit
dc172efdb3
@ -87,14 +87,9 @@ endif
|
||||
|
||||
name = amun
|
||||
|
||||
files = algebra blocks boundaries constants coordinates domains driver \
|
||||
equations evolution gravity integrals interpolations io mesh \
|
||||
mpitools operators parameters problems random refinement schemes \
|
||||
shapes sources timers user_problem
|
||||
|
||||
sources := $(addprefix $(SRCSDIR)/,$(addsuffix .F90, $(files)))
|
||||
objects := $(addprefix $(OBJSDIR)/,$(addsuffix .o, $(files)))
|
||||
modules := $(addprefix $(OBJSDIR)/,$(addsuffix .mod, $(files)))
|
||||
sources := $(wildcard $(SRCSDIR)/*.F90)
|
||||
objects := $(sources:$(SRCSDIR)/%.F90=$(OBJSDIR)/%.o)
|
||||
modules := $(sources:$(SRCSDIR)/%.F90=$(OBJSDIR)/%.mod)
|
||||
|
||||
all: $(name).x
|
||||
|
||||
|
@ -358,6 +358,7 @@ module boundaries
|
||||
|
||||
! import external procedures and variables
|
||||
!
|
||||
use helpers , only : print_section, print_parameter
|
||||
use parameters, only : get_parameter
|
||||
|
||||
! local variables are not implicit by default
|
||||
@ -370,7 +371,8 @@ module boundaries
|
||||
|
||||
! local variables
|
||||
!
|
||||
character(len=64) :: sfmts
|
||||
character(len=80) :: msg
|
||||
character(len=64) :: sfmt
|
||||
character(len=32) :: xlbndry = "periodic"
|
||||
character(len=32) :: xubndry = "periodic"
|
||||
character(len=32) :: ylbndry = "periodic"
|
||||
@ -389,13 +391,15 @@ module boundaries
|
||||
call get_parameter("zlbndry", zlbndry)
|
||||
call get_parameter("zubndry", zubndry)
|
||||
|
||||
write(*,*)
|
||||
write(*,"(1x,a)") "Boundaries:"
|
||||
sfmts = "(4x,a10,13x,'=',2(1x,a))"
|
||||
write(*,sfmts) "X-boundary", trim(xlbndry), trim(xubndry)
|
||||
write(*,sfmts) "Y-boundary", trim(ylbndry), trim(yubndry)
|
||||
call print_section(verbose, "Boundaries")
|
||||
sfmt = "(a,1x,'...',1x,a)"
|
||||
write(msg,sfmt) trim(xlbndry), trim(xubndry)
|
||||
call print_parameter(verbose, "X-boundary", msg)
|
||||
write(msg,sfmt) trim(ylbndry), trim(yubndry)
|
||||
call print_parameter(verbose, "Y-boundary", msg)
|
||||
#if NDIMS == 3
|
||||
write(*,sfmts) "Z-boundary", trim(zlbndry), trim(zubndry)
|
||||
write(msg,sfmt) trim(zlbndry), trim(zubndry)
|
||||
call print_parameter(verbose, "Z-boundary", msg)
|
||||
#endif /* NDIMS == 3 */
|
||||
|
||||
end if
|
||||
|
@ -805,6 +805,10 @@ module coordinates
|
||||
!
|
||||
subroutine print_coordinates(verbose)
|
||||
|
||||
! include external procedures
|
||||
!
|
||||
use helpers , only : print_section, print_parameter
|
||||
|
||||
! local variables are not implicit by default
|
||||
!
|
||||
implicit none
|
||||
@ -815,8 +819,9 @@ module coordinates
|
||||
|
||||
! local variables
|
||||
!
|
||||
character(len=80) :: sfmts
|
||||
integer :: p, q
|
||||
character(len= 80) :: sfmt
|
||||
character(len=255) :: msg
|
||||
integer :: p, q
|
||||
|
||||
! local arrays
|
||||
!
|
||||
@ -833,30 +838,33 @@ module coordinates
|
||||
cm(:) = bm(:) * nc
|
||||
fm(:) = rm(:) * nc
|
||||
|
||||
write(*,*)
|
||||
write(*,"(1x,a)") "Geometry:"
|
||||
sfmts = "(4x,a,1x,i0)"
|
||||
write(*,sfmts) "refinement to level =", maxlev
|
||||
write(*,sfmts) "number of block cells =", nc
|
||||
write(*,sfmts) "number of ghost zones =", ng
|
||||
write(sfmts,"(i0)") maxval(fm(1:NDIMS))
|
||||
p = len(trim(adjustl(sfmts)))
|
||||
write(sfmts,"(i0)") maxval(rm(1:NDIMS))
|
||||
q = len(trim(adjustl(sfmts)))
|
||||
call print_section(verbose, "Geometry")
|
||||
call print_parameter(verbose, "refinement to level" , maxlev)
|
||||
call print_parameter(verbose, "number of block cells", nc )
|
||||
call print_parameter(verbose, "number of ghost zones", ng )
|
||||
write(msg,"(i0)") maxval(fm(1:NDIMS))
|
||||
p = len(trim(adjustl(msg)))
|
||||
write(msg,"(i0)") maxval(rm(1:NDIMS))
|
||||
q = len(trim(adjustl(msg)))
|
||||
#if NDIMS == 3
|
||||
write(sfmts,'(6(a,i0),a)') "(4x,a,1x,i", p, ",' x ',i", p, ",' x ',i", p,&
|
||||
",' (',i", q, ",' x ',i", q, ",' x ',i", q, ",' blocks)')"
|
||||
write(sfmt,"(6(a,i0),a)") "('[',i", p, ",' x ',i", p, ",' x ',i", p, &
|
||||
",'] ([',i", q, ",' x ',i", q, ",' x ',i", q, ",'] blocks)')"
|
||||
#else /* NDIMS == 3 */
|
||||
write(sfmts,'(4(a,i0),a)') "(4x,a,1x,i", p, ",' x ',i", p, &
|
||||
",' (',i", q, ",' x ',i", q, ",' blocks)')"
|
||||
write(sfmt,"(4(a,i0),a)") "('[',i", p, ",' x ',i", p, &
|
||||
",'] ([',i", q, ",' x ',i", q, ",'] blocks)')"
|
||||
#endif /* NDIMS == 3 */
|
||||
write(*,sfmts) "base resolution =", cm(1:NDIMS), bm(1:NDIMS)
|
||||
write(*,sfmts) "effective resolution =", fm(1:NDIMS), rm(1:NDIMS)
|
||||
sfmts = "(4x,a,1x,1es12.5,1x,'...',1x,1es12.5)"
|
||||
write(*,sfmts) "X-bounds =", xmin, xmax
|
||||
write(*,sfmts) "Y-bounds =", ymin, ymax
|
||||
write(msg,sfmt) cm(1:NDIMS), bm(1:NDIMS)
|
||||
call print_parameter(verbose, "base resolution" , msg )
|
||||
write(msg,sfmt) fm(1:NDIMS), rm(1:NDIMS)
|
||||
call print_parameter(verbose, "effective resolution" , msg )
|
||||
sfmt = "(1es12.5,1x,'...',1x,1es12.5)"
|
||||
write(msg,sfmt) xmin, xmax
|
||||
call print_parameter(verbose, "X-bounds" , msg )
|
||||
write(msg,sfmt) ymin, ymax
|
||||
call print_parameter(verbose, "Y-bounds" , msg )
|
||||
#if NDIMS == 3
|
||||
write(*,sfmts) "Z-bounds =", zmin, zmax
|
||||
write(msg,sfmt) zmin, zmax
|
||||
call print_parameter(verbose, "Z-bounds" , msg )
|
||||
#endif /* NDIMS */
|
||||
|
||||
end if
|
||||
|
@ -51,6 +51,7 @@ program amun
|
||||
use evolution , only : advance, new_time_step
|
||||
use evolution , only : step, time, dt
|
||||
use gravity , only : initialize_gravity, finalize_gravity
|
||||
use helpers , only : print_welcome, print_section, print_parameter
|
||||
use integrals , only : initialize_integrals, finalize_integrals
|
||||
use integrals , only : store_integrals
|
||||
use interpolations , only : initialize_interpolations, finalize_interpolations
|
||||
@ -218,28 +219,14 @@ program amun
|
||||
go to 400
|
||||
end if
|
||||
|
||||
! print the welcome message
|
||||
! print welcome messages
|
||||
!
|
||||
if (master) then
|
||||
|
||||
write(*,"(1x,78('-'))")
|
||||
write(*,"(1x,18('='),17x,a,17x,19('='))") 'A M U N'
|
||||
write(*,"(1x,16('='),4x,a,4x,16('='))") &
|
||||
'Copyright (C) 2008-2019 Grzegorz Kowal'
|
||||
write(*,"(1x,18('='),9x,a,9x,19('='))") &
|
||||
'under GNU GPLv3 license'
|
||||
write(*,"(1x,78('-'))")
|
||||
|
||||
call print_welcome(master)
|
||||
call print_section(master, "Parallelization")
|
||||
#ifdef MPI
|
||||
! print the parallelization type and the number of parallel processes
|
||||
!
|
||||
write(*,*)
|
||||
write(*,"(1x,a)") "Parallelization:"
|
||||
write(*,"(4x,a,1x,i0)") "MPI processes =", nprocs
|
||||
call print_parameter(master, "MPI processes", nprocs)
|
||||
#endif /* MPI */
|
||||
|
||||
end if
|
||||
|
||||
! initialize and read parameters from the parameter file
|
||||
!
|
||||
if (master) call read_parameters(iterm)
|
||||
@ -390,6 +377,8 @@ program amun
|
||||
|
||||
! print module information
|
||||
!
|
||||
call print_section(master, "Problem")
|
||||
call print_parameter(master, "problem name", trim(problem))
|
||||
call print_equations(master)
|
||||
call print_sources(master)
|
||||
call print_coordinates(master)
|
||||
|
@ -1029,7 +1029,7 @@ module equations
|
||||
|
||||
! include external procedures and variables
|
||||
!
|
||||
use parameters, only : get_parameter
|
||||
use helpers, only : print_section, print_parameter
|
||||
|
||||
! local variables are not implicit by default
|
||||
!
|
||||
@ -1041,35 +1041,31 @@ module equations
|
||||
|
||||
! local variables
|
||||
!
|
||||
character(len=64) :: sfmts, sfmti
|
||||
character(len= 80) :: sfmt
|
||||
character(len=255) :: msg
|
||||
!
|
||||
!-------------------------------------------------------------------------------
|
||||
!
|
||||
! print information about the equation module
|
||||
!
|
||||
if (verbose) then
|
||||
|
||||
write(*,*)
|
||||
write(*,"(1x,a)") "Physics:"
|
||||
sfmts = "(4x,a,1x,a)"
|
||||
write(*,sfmts) "equation system =", trim(name_eqsys)
|
||||
write(*,sfmts) "equation of state =", trim(name_eos)
|
||||
sfmti = "(4x,a,1x,i0)"
|
||||
write(*,sfmti) "number of variables =", nv
|
||||
write(sfmti,"(a,i0,a)") "(4x,a,", nv, "(1x,a))"
|
||||
write(*,sfmti) "conservative variables =", cvars
|
||||
write(*,sfmti) "primitive variables =", pvars
|
||||
call print_section(verbose, "Physics")
|
||||
call print_parameter(verbose, "equation system" , name_eqsys)
|
||||
call print_parameter(verbose, "equation of state" , name_eos )
|
||||
call print_parameter(verbose, "number of variables" , nv )
|
||||
write(sfmt,"(a,i0,a)") "(", nv, "(1x,a))"
|
||||
write(msg,sfmt) cvars
|
||||
call print_parameter(verbose, "conservative variables", msg )
|
||||
write(msg,sfmt) pvars
|
||||
call print_parameter(verbose, "primitive variables" , msg )
|
||||
if (relativistic) then
|
||||
write(*,sfmts) "variable conversion =", trim(name_c2p)
|
||||
call print_parameter(verbose, "variable conversion" , name_c2p )
|
||||
end if
|
||||
sfmts = "(4x,a20,3x,'=',1x,a)"
|
||||
if (fix_unphysical_cells) then
|
||||
write(*,sfmts) "fix unphysical cells", "on"
|
||||
sfmti = "(4x,a20,3x,'=',1x,i0)"
|
||||
write(*,sfmti) "ngavg ", ngavg
|
||||
write(*,sfmti) "npavg ", npavg
|
||||
call print_parameter(verbose, "fix unphysical cells" , "on" )
|
||||
call print_parameter(verbose, "ngavg" , ngavg )
|
||||
call print_parameter(verbose, "npavg" , npavg )
|
||||
else
|
||||
write(*,sfmts) "fix unphysical cells", "off"
|
||||
call print_parameter(verbose, "fix unphysical cells" , "off" )
|
||||
end if
|
||||
|
||||
end if
|
||||
|
@ -284,6 +284,7 @@ module evolution
|
||||
! import external procedures and variables
|
||||
!
|
||||
use equations, only : magnetized
|
||||
use helpers , only : print_section, print_parameter
|
||||
|
||||
! local variables are not implicit by default
|
||||
!
|
||||
@ -292,23 +293,16 @@ module evolution
|
||||
! subroutine arguments
|
||||
!
|
||||
logical, intent(in) :: verbose
|
||||
|
||||
! local variables
|
||||
!
|
||||
character(len=64) :: sfmts
|
||||
!
|
||||
!-------------------------------------------------------------------------------
|
||||
!
|
||||
if (verbose) then
|
||||
|
||||
write(*,*)
|
||||
write(*,"(1x,a)") "Evolution:"
|
||||
sfmts = "(4x,a,1x,a)"
|
||||
write(*,sfmts) "time advance =", trim(name_int)
|
||||
sfmts = "(4x,a,es9.2)"
|
||||
write(*,sfmts) "CFL coefficient =", cfl
|
||||
call print_section(verbose, "Evolution")
|
||||
call print_parameter(verbose, "time advance" , name_int)
|
||||
call print_parameter(verbose, "CFL coefficient" , cfl )
|
||||
if (magnetized) then
|
||||
write(*,sfmts) "GLM alpha coefficient =", alpha
|
||||
call print_parameter(verbose, "GLM alpha coefficient", alpha )
|
||||
end if
|
||||
|
||||
end if
|
||||
|
267
sources/helpers.F90
Normal file
267
sources/helpers.F90
Normal file
@ -0,0 +1,267 @@
|
||||
!!******************************************************************************
|
||||
!!
|
||||
!! This file is part of the AMUN source code, a program to perform
|
||||
!! Newtonian or relativistic magnetohydrodynamical simulations on uniform or
|
||||
!! adaptive mesh.
|
||||
!!
|
||||
!! Copyright (C) 2019 Grzegorz Kowal <grzegorz@amuncode.org>
|
||||
!!
|
||||
!! This program is free software: you can redistribute it and/or modify
|
||||
!! it under the terms of the GNU General Public License as published by
|
||||
!! the Free Software Foundation, either version 3 of the License, or
|
||||
!! (at your option) any later version.
|
||||
!!
|
||||
!! This program is distributed in the hope that it will be useful,
|
||||
!! but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
!! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
!! GNU General Public License for more details.
|
||||
!!
|
||||
!! You should have received a copy of the GNU General Public License
|
||||
!! along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
!!
|
||||
!!******************************************************************************
|
||||
!!
|
||||
!! module: HELPERS
|
||||
!!
|
||||
!! This module provides miscellaneous support subroutines.
|
||||
!!
|
||||
!!
|
||||
!!******************************************************************************
|
||||
!
|
||||
module helpers
|
||||
|
||||
! module variables are not implicit by default
|
||||
!
|
||||
implicit none
|
||||
|
||||
! MODULE INTERFACES:
|
||||
! =================
|
||||
!
|
||||
interface print_parameter
|
||||
module procedure print_parameter_integer
|
||||
module procedure print_parameter_double
|
||||
module procedure print_parameter_string
|
||||
end interface
|
||||
|
||||
! by default everything is private
|
||||
!
|
||||
private
|
||||
|
||||
! declare public subroutines
|
||||
!
|
||||
public :: print_welcome, print_section, print_parameter
|
||||
|
||||
!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
!
|
||||
contains
|
||||
!
|
||||
!===============================================================================
|
||||
!!
|
||||
!!*** PUBLIC SUBROUTINES *****************************************************
|
||||
!!
|
||||
!===============================================================================
|
||||
!
|
||||
!===============================================================================
|
||||
!
|
||||
! subroutine PRINT_WELCOME:
|
||||
! ------------------------
|
||||
!
|
||||
! Subroutine prints welcome message.
|
||||
!
|
||||
! Arguments:
|
||||
!
|
||||
! verbose - if true, the subroutine is executed, otherwise it is skipped;
|
||||
!
|
||||
!===============================================================================
|
||||
!
|
||||
subroutine print_welcome(verbose)
|
||||
|
||||
! local variables are not implicit by default
|
||||
!
|
||||
implicit none
|
||||
|
||||
! subroutine arguments
|
||||
!
|
||||
logical, intent(in) :: verbose
|
||||
!
|
||||
!-------------------------------------------------------------------------------
|
||||
!
|
||||
if (.not. verbose) return
|
||||
|
||||
write(*,"(1x,78('-'))")
|
||||
write(*,"(1x,18('='),17x,a,17x,19('='))") 'A M U N'
|
||||
write(*,"(1x,16('='),4x,a,4x,16('='))") &
|
||||
'Copyright (C) 2008-2019 Grzegorz Kowal'
|
||||
write(*,"(1x,18('='),9x,a,9x,19('='))") &
|
||||
'under GNU GPLv3 license'
|
||||
write(*,"(1x,78('-'))")
|
||||
|
||||
!-------------------------------------------------------------------------------
|
||||
!
|
||||
end subroutine print_welcome
|
||||
!
|
||||
!===============================================================================
|
||||
!
|
||||
! subroutine PRINT_SECTION:
|
||||
! ------------------------
|
||||
!
|
||||
! Subroutine prints section lines.
|
||||
!
|
||||
! Arguments:
|
||||
!
|
||||
! verbose - if true, the subroutine is executed, otherwise it is skipped;
|
||||
! title - the section title;
|
||||
!
|
||||
!===============================================================================
|
||||
!
|
||||
subroutine print_section(verbose, title)
|
||||
|
||||
! local variables are not implicit by default
|
||||
!
|
||||
implicit none
|
||||
|
||||
! subroutine arguments
|
||||
!
|
||||
logical , intent(in) :: verbose
|
||||
character(len=*), intent(in) :: title
|
||||
!
|
||||
!-------------------------------------------------------------------------------
|
||||
!
|
||||
if (.not. verbose) return
|
||||
|
||||
write(*,*)
|
||||
write(*,"(1x,a,':')") trim(adjustl(title))
|
||||
|
||||
!-------------------------------------------------------------------------------
|
||||
!
|
||||
end subroutine print_section
|
||||
!
|
||||
!===============================================================================
|
||||
!
|
||||
! subroutine PRINT_PARAMETER_INTEGER:
|
||||
! ----------------------------------
|
||||
!
|
||||
! Subroutine prints integer parameter.
|
||||
!
|
||||
! Arguments:
|
||||
!
|
||||
! verbose - if true, the subroutine is executed, otherwise it is skipped;
|
||||
! desciption - the parameter description;
|
||||
! value - the parameter value;
|
||||
!
|
||||
!===============================================================================
|
||||
!
|
||||
subroutine print_parameter_integer(verbose, description, value)
|
||||
|
||||
! local variables are not implicit by default
|
||||
!
|
||||
implicit none
|
||||
|
||||
! subroutine arguments
|
||||
!
|
||||
logical , intent(in) :: verbose
|
||||
character(len=*), intent(in) :: description
|
||||
integer , intent(in) :: value
|
||||
|
||||
! local variables
|
||||
!
|
||||
character(len=26) :: msg
|
||||
!
|
||||
!-------------------------------------------------------------------------------
|
||||
!
|
||||
if (.not. verbose) return
|
||||
|
||||
msg = trim(adjustl(description))
|
||||
write(*,"(4x,a26,1x,'=',1x,i0)") msg, value
|
||||
|
||||
!-------------------------------------------------------------------------------
|
||||
!
|
||||
end subroutine print_parameter_integer
|
||||
!
|
||||
!===============================================================================
|
||||
!
|
||||
! subroutine PRINT_PARAMETER_DOUBLE:
|
||||
! ----------------------------------
|
||||
!
|
||||
! Subroutine prints double precision parameter.
|
||||
!
|
||||
! Arguments:
|
||||
!
|
||||
! verbose - if true, the subroutine is executed, otherwise it is skipped;
|
||||
! desciption - the parameter description;
|
||||
! value - the parameter value;
|
||||
!
|
||||
!===============================================================================
|
||||
!
|
||||
subroutine print_parameter_double(verbose, description, value)
|
||||
|
||||
! local variables are not implicit by default
|
||||
!
|
||||
implicit none
|
||||
|
||||
! subroutine arguments
|
||||
!
|
||||
logical , intent(in) :: verbose
|
||||
character(len=*), intent(in) :: description
|
||||
real(kind=8) , intent(in) :: value
|
||||
|
||||
! local variables
|
||||
!
|
||||
character(len=26) :: msg
|
||||
!
|
||||
!-------------------------------------------------------------------------------
|
||||
!
|
||||
if (.not. verbose) return
|
||||
|
||||
msg = trim(adjustl(description))
|
||||
write(*,"(4x,a26,1x,'=',1x,es9.2)") msg, value
|
||||
|
||||
!-------------------------------------------------------------------------------
|
||||
!
|
||||
end subroutine print_parameter_double
|
||||
!
|
||||
!===============================================================================
|
||||
!
|
||||
! subroutine PRINT_PARAMETER_STRING:
|
||||
! ---------------------------------
|
||||
!
|
||||
! Subroutine prints string parameter.
|
||||
!
|
||||
! Arguments:
|
||||
!
|
||||
! verbose - if true, the subroutine is executed, otherwise it is skipped;
|
||||
! desciption - the parameter description;
|
||||
! value - the parameter value;
|
||||
!
|
||||
!===============================================================================
|
||||
!
|
||||
subroutine print_parameter_string(verbose, description, value)
|
||||
|
||||
! local variables are not implicit by default
|
||||
!
|
||||
implicit none
|
||||
|
||||
! subroutine arguments
|
||||
!
|
||||
logical , intent(in) :: verbose
|
||||
character(len=*), intent(in) :: description
|
||||
character(len=*), intent(in) :: value
|
||||
|
||||
! local variables
|
||||
!
|
||||
character(len=26) :: msg
|
||||
!
|
||||
!-------------------------------------------------------------------------------
|
||||
!
|
||||
if (.not. verbose) return
|
||||
|
||||
msg = trim(adjustl(description))
|
||||
write(*,"(4x,a26,1x,'=',1x,a)") msg, trim(adjustl(value))
|
||||
|
||||
!-------------------------------------------------------------------------------
|
||||
!
|
||||
end subroutine print_parameter_string
|
||||
|
||||
!===============================================================================
|
||||
!
|
||||
end module helpers
|
@ -547,6 +547,10 @@ module interpolations
|
||||
!
|
||||
subroutine print_interpolations(verbose)
|
||||
|
||||
! import external procedures and variables
|
||||
!
|
||||
use helpers, only : print_section, print_parameter
|
||||
|
||||
! local variables are not implicit by default
|
||||
!
|
||||
implicit none
|
||||
@ -554,36 +558,29 @@ module interpolations
|
||||
! subroutine arguments
|
||||
!
|
||||
logical, intent(in) :: verbose
|
||||
|
||||
! local variables
|
||||
!
|
||||
character(len=64) :: sfmts
|
||||
!
|
||||
!-------------------------------------------------------------------------------
|
||||
!
|
||||
if (verbose) then
|
||||
|
||||
write(*,*)
|
||||
write(*,"(1x,a)") "Interpolations:"
|
||||
sfmts = "(4x,a,1x,a)"
|
||||
write(*,sfmts) "reconstruction =", trim(name_rec)
|
||||
write(*,sfmts) "TVD limiter =", trim(name_tlim)
|
||||
write(*,sfmts) "prolongation limiter =", trim(name_plim)
|
||||
call print_section(verbose, "Interpolations")
|
||||
call print_parameter(verbose, "reconstruction" , name_rec )
|
||||
call print_parameter(verbose, "TVD limiter" , name_tlim)
|
||||
call print_parameter(verbose, "prolongation limiter", name_plim)
|
||||
if (mlp) then
|
||||
write(*,sfmts) "MLP limiting =", "on"
|
||||
call print_parameter(verbose, "MLP limiting" , "on" )
|
||||
else
|
||||
write(*,sfmts) "MLP limiting =", "off"
|
||||
call print_parameter(verbose, "MLP limiting" , "off" )
|
||||
end if
|
||||
if (positivity) then
|
||||
write(*,sfmts) "fix positivity =", "on"
|
||||
call print_parameter(verbose, "fix positivity" , "on" )
|
||||
else
|
||||
write(*,sfmts) "fix positivity =", "off"
|
||||
call print_parameter(verbose, "fix positivity" , "off" )
|
||||
end if
|
||||
if (clip) then
|
||||
write(*,sfmts) "clip extrema =", "on"
|
||||
write(*,sfmts) "extrema limiter =", trim(name_clim)
|
||||
call print_parameter(verbose, "clip extrema" , "on" )
|
||||
call print_parameter(verbose, "extrema limiter" , name_clim)
|
||||
else
|
||||
write(*,sfmts) "clip extrema =", "off"
|
||||
call print_parameter(verbose, "clip extrema" , "off" )
|
||||
end if
|
||||
|
||||
end if
|
||||
|
@ -469,72 +469,69 @@ module io
|
||||
!
|
||||
subroutine print_io(verbose)
|
||||
|
||||
! import external procedures and variables
|
||||
!
|
||||
use helpers, only : print_section, print_parameter
|
||||
|
||||
! local variables are not implicit by default
|
||||
!
|
||||
implicit none
|
||||
|
||||
! subroutine arguments
|
||||
!
|
||||
logical, intent(in) :: verbose
|
||||
logical, intent(in) :: verbose
|
||||
|
||||
! local variables
|
||||
!
|
||||
character(len=64) :: sfmts, sfmtc, sfmti
|
||||
character(len=80) :: sfmt, msg
|
||||
integer :: dd, hh, mm, ss
|
||||
!
|
||||
!-------------------------------------------------------------------------------
|
||||
!
|
||||
if (verbose) then
|
||||
|
||||
write(*,*)
|
||||
write(*,"(1x,a)") "Snapshots:"
|
||||
sfmts = "(4x,a22,1x,'=',1x,a)"
|
||||
call print_section(verbose, "Snapshots")
|
||||
if (precise_snapshots) then
|
||||
write(*,sfmts) "precise snapshot times", "on"
|
||||
call print_parameter(verbose, "precise snapshot intervals", "on" )
|
||||
else
|
||||
write(*,sfmts) "precise snapshot times", "off"
|
||||
call print_parameter(verbose, "precise snapshot intervals", "off")
|
||||
end if
|
||||
write(*,sfmts) "snapshot type ", ftype_name
|
||||
call print_parameter(verbose, "snapshot type", ftype_name)
|
||||
if (with_ghosts) then
|
||||
write(*,sfmts) "with ghosts cells ", "on"
|
||||
call print_parameter(verbose, "with ghosts cells", "on" )
|
||||
else
|
||||
write(*,sfmts) "with ghosts cells ", "off"
|
||||
call print_parameter(verbose, "with ghosts cells", "off")
|
||||
end if
|
||||
sfmti = "(4x,a21,2x,'=',1x,i0)"
|
||||
#ifdef HDF5
|
||||
sfmtc = "(4x,a21,2x,'=',1x,a)"
|
||||
select case(compression)
|
||||
case(H5Z_ZSTANDARD)
|
||||
write(*,sfmtc) "HDF5 compression ", "zstd"
|
||||
write(*,sfmti) "compression level ", clevel
|
||||
call print_parameter(verbose, "HDF5 compression" , "zstd" )
|
||||
call print_parameter(verbose, "compression level", clevel )
|
||||
case(H5Z_DEFLATE)
|
||||
write(*,sfmtc) "HDF5 compression ", "deflate"
|
||||
write(*,sfmti) "compression level ", clevel
|
||||
call print_parameter(verbose, "HDF5 compression" , "deflate")
|
||||
call print_parameter(verbose, "compression level", clevel )
|
||||
case default
|
||||
write(*,sfmtc) "HDF5 compression ", "none"
|
||||
call print_parameter(verbose, "HDF5 compression" , "none" )
|
||||
end select
|
||||
#endif /* HDF5 */
|
||||
if (with_xdmf) then
|
||||
write(*,sfmts) "generate XDMF files ", "on"
|
||||
call print_parameter(verbose, "generate XDMF files", "on" )
|
||||
else
|
||||
write(*,sfmts) "generate XDMF files ", "off"
|
||||
call print_parameter(verbose, "generate XDMF files", "off")
|
||||
end if
|
||||
sfmtc = "(4x,a22,1x,'=',es9.2)"
|
||||
write(*,sfmtc) "snapshot interval ", hsnap
|
||||
call print_parameter(verbose, "snapshot interval" , hsnap)
|
||||
if (hrest > 0.0d+00) then
|
||||
dd = int(hrest / 2.4d+01)
|
||||
hh = int(mod(hrest, 2.4d+01))
|
||||
mm = int(mod(6.0d+01 * hrest, 6.0d+01))
|
||||
ss = int(mod(3.6d+03 * hrest, 6.0d+01))
|
||||
sfmtc = "(4x,a16,7x,'=',1x,i2.2,'d',i2.2,'h',i2.2,'m',i2.2,'s')"
|
||||
write(*,sfmtc) "restart interval", dd, hh, mm, ss
|
||||
sfmt = "(i2.2,'d',i2.2,'h',i2.2,'m',i2.2,'s')"
|
||||
write(msg,sfmt) dd, hh, mm, ss
|
||||
call print_parameter(verbose, "restart interval" , msg )
|
||||
end if
|
||||
if (restart_from_snapshot()) then
|
||||
sfmtc = "(4x,a18,5x,'=',1x,'[',a,']')"
|
||||
write(*,sfmtc) "restart from path ", trim(respath)
|
||||
write(*,sfmti) "restart from snapshot", nrest
|
||||
call print_parameter(verbose, "restart from path" , respath)
|
||||
call print_parameter(verbose, "restart from snapshot", nrest )
|
||||
end if
|
||||
|
||||
end if
|
||||
|
||||
!-------------------------------------------------------------------------------
|
||||
|
@ -109,6 +109,7 @@ module parameters
|
||||
|
||||
! include external procedures and variables
|
||||
!
|
||||
use helpers , only : print_section, print_parameter
|
||||
use iso_fortran_env, only : error_unit
|
||||
|
||||
! local variables are not implicit by default
|
||||
@ -151,9 +152,8 @@ module parameters
|
||||
|
||||
! print the name of parameter file
|
||||
!
|
||||
write (*,*)
|
||||
write (*,"(1x,a)" ) "Configuration:"
|
||||
write (*,"(4x,a,1x,a)") "parameter file =", trim(fname)
|
||||
call print_section(.true., "Configuration")
|
||||
call print_parameter(.true., "parameter file", fname)
|
||||
|
||||
! check if the file exists
|
||||
!
|
||||
|
@ -237,6 +237,7 @@ module refinement
|
||||
|
||||
! import external procedures and variables
|
||||
!
|
||||
use helpers , only : print_section, print_parameter
|
||||
use equations, only : magnetized, pvars, nv
|
||||
|
||||
! local variables are not implicit by default
|
||||
@ -249,9 +250,9 @@ module refinement
|
||||
|
||||
! local variables
|
||||
!
|
||||
character(len=64) :: sfmts
|
||||
character(len=255) :: rvars = ""
|
||||
integer :: p
|
||||
character(len=80) :: rvars = "", msg
|
||||
character(len=64) :: sfmt
|
||||
integer :: p
|
||||
!
|
||||
!-------------------------------------------------------------------------------
|
||||
!
|
||||
@ -268,17 +269,18 @@ module refinement
|
||||
rvars = adjustl(trim(rvars) // ' jabs')
|
||||
end if
|
||||
|
||||
write(*,*)
|
||||
write(*,"(1x,a)") "Refinement:"
|
||||
sfmts = "(4x,a,1x,a)"
|
||||
write(*,sfmts) "refined variables =", trim(rvars)
|
||||
sfmts = "(4x,a,2es9.2)"
|
||||
write(*,sfmts) "2nd order error limits =", crefmin, crefmax
|
||||
call print_section(verbose, "Refinement")
|
||||
call print_parameter(verbose, "refined variables", rvars)
|
||||
sfmt = "(es9.2,1x,'...',1x,es9.2)"
|
||||
write(msg,sfmt) crefmin, crefmax
|
||||
call print_parameter(verbose, "2nd order error limits", msg)
|
||||
if (vort_ref) then
|
||||
write(*,sfmts) "vorticity limits =", vortmin, vortmax
|
||||
write(msg,sfmt) vortmin, vortmax
|
||||
call print_parameter(verbose, "vorticity limits" , msg)
|
||||
end if
|
||||
if (magnetized .and. jabs_ref) then
|
||||
write(*,sfmts) "current density limits =", jabsmin, jabsmax
|
||||
write(msg,sfmt) jabsmin, jabsmax
|
||||
call print_parameter(verbose, "current density limits", msg)
|
||||
end if
|
||||
|
||||
end if
|
||||
|
@ -576,6 +576,10 @@ module schemes
|
||||
!
|
||||
subroutine print_schemes(verbose)
|
||||
|
||||
! import external procedures and variables
|
||||
!
|
||||
use helpers, only : print_section, print_parameter
|
||||
|
||||
! local variables are not implicit by default
|
||||
!
|
||||
implicit none
|
||||
@ -583,21 +587,13 @@ module schemes
|
||||
! subroutine arguments
|
||||
!
|
||||
logical, intent(in) :: verbose
|
||||
|
||||
! local variables
|
||||
!
|
||||
character(len=64) :: sfmts
|
||||
!
|
||||
!-------------------------------------------------------------------------------
|
||||
!
|
||||
if (verbose) then
|
||||
|
||||
write(*,*)
|
||||
write(*,"(1x,a)") "Schemes:"
|
||||
sfmts = "(4x,a,1x,a)"
|
||||
write(*,sfmts) "Riemann solver =", trim(name_sol)
|
||||
write(*,sfmts) "state variables =", trim(name_sts)
|
||||
|
||||
call print_section(verbose, "Schemes")
|
||||
call print_parameter(verbose, "Riemann solver" , name_sol)
|
||||
call print_parameter(verbose, "state variables", name_sts)
|
||||
end if
|
||||
|
||||
!-------------------------------------------------------------------------------
|
||||
|
@ -240,6 +240,10 @@ module shapes
|
||||
!
|
||||
subroutine print_shapes(verbose)
|
||||
|
||||
! import external procedures and variables
|
||||
!
|
||||
use helpers, only : print_section, print_parameter
|
||||
|
||||
! local variables are not implicit by default
|
||||
!
|
||||
implicit none
|
||||
@ -251,13 +255,11 @@ module shapes
|
||||
!-------------------------------------------------------------------------------
|
||||
!
|
||||
if (verbose) then
|
||||
|
||||
if (enabled) then
|
||||
write (*,"(4x,a,1x,a)") "embedded shapes =", "on"
|
||||
call print_parameter(verbose, "embedded shapes", "on" )
|
||||
else
|
||||
write (*,"(4x,a,1x,a)") "embedded shapes =", "off"
|
||||
call print_parameter(verbose, "embedded shapes", "off")
|
||||
end if
|
||||
|
||||
end if
|
||||
|
||||
!-------------------------------------------------------------------------------
|
||||
|
@ -221,6 +221,7 @@ module sources
|
||||
! include external procedures
|
||||
!
|
||||
use equations, only : magnetized
|
||||
use helpers , only : print_section, print_parameter
|
||||
|
||||
! local variables are not implicit by default
|
||||
!
|
||||
@ -229,25 +230,16 @@ module sources
|
||||
! subroutine arguments
|
||||
!
|
||||
logical, intent(in) :: verbose
|
||||
|
||||
! local variables
|
||||
!
|
||||
character(len=64) :: sfmts
|
||||
!
|
||||
!-------------------------------------------------------------------------------
|
||||
!
|
||||
if (verbose) then
|
||||
|
||||
write(*,*)
|
||||
write(*,"(1x,a)") "Source terms:"
|
||||
call print_section(verbose, "Source terms")
|
||||
call print_parameter(verbose, "viscosity" , viscosity )
|
||||
if (magnetized) then
|
||||
sfmts = "(4x,a,1x,a)"
|
||||
write(*,sfmts) "glm source terms =", trim(glm_name)
|
||||
end if
|
||||
sfmts = "(4x,a,1es9.2)"
|
||||
write(*,sfmts) "viscosity =", viscosity
|
||||
if (magnetized) then
|
||||
write(*,sfmts) "resistivity =", resistivity
|
||||
call print_parameter(verbose, "resistivity" , resistivity)
|
||||
call print_parameter(verbose, "glm source terms", glm_name )
|
||||
end if
|
||||
|
||||
end if
|
||||
|
@ -235,12 +235,6 @@ module user_problem
|
||||
!
|
||||
if (verbose) then
|
||||
|
||||
! print information about the problem
|
||||
!
|
||||
write (*,*)
|
||||
write (*,"(1x,a)") "Problem:"
|
||||
write (*,"(4x,a12,11x,'=',1x,a)") "problem name", trim(problem)
|
||||
|
||||
end if
|
||||
|
||||
#ifdef PROFILE
|
||||
|
Loading…
x
Reference in New Issue
Block a user