diff --git a/README.md b/README.md index 2e75a08..b14021e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # **The AMUN Code** -## Copyright (C) 2008-2022 Grzegorz Kowal +## Copyright (C) 2008-2023 Grzegorz Kowal [](https://ampere-orbis.nsupdate.info/gkowal/amun-code) diff --git a/python/amunpy/src/amunpy/__init__.py b/python/amunpy/src/amunpy/__init__.py index 18e18d5..0ed875e 100644 --- a/python/amunpy/src/amunpy/__init__.py +++ b/python/amunpy/src/amunpy/__init__.py @@ -20,7 +20,7 @@ __all__ = [ 'AmunXML', 'AmunH5', 'WriteVTK', \ 'amun_attribute', 'amun_coordinate', 'amun_dataset', 'amun_dataset_vtk', 'amun_integrals' ] __author__ = "Grzegorz Kowal" -__copyright__ = "Copyright 2018-2022 Grzegorz Kowal <grzegorz@amuncode.org>" +__copyright__ = "Copyright 2018-2023 Grzegorz Kowal <grzegorz@amuncode.org>" __version__ = "0.9.9" __maintainer__ = "Grzegorz Kowal" __email__ = "grzegorz@amuncode.org" diff --git a/python/amunpy/src/amunpy/amun.py b/python/amunpy/src/amunpy/amun.py index 9e612ad..6871369 100644 --- a/python/amunpy/src/amunpy/amun.py +++ b/python/amunpy/src/amunpy/amun.py @@ -5,7 +5,7 @@ This file is part of the AMUN source code, a program to perform Newtonian or relativistic magnetohydrodynamical simulations on uniform or adaptive grid. - Copyright (C) 2021-2022 Grzegorz Kowal <grzegorz@amuncode.org> + Copyright (C) 2021-2023 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 diff --git a/python/amunpy/src/amunpy/amunh5.py b/python/amunpy/src/amunpy/amunh5.py index eb59cce..50e794d 100644 --- a/python/amunpy/src/amunpy/amunh5.py +++ b/python/amunpy/src/amunpy/amunh5.py @@ -5,7 +5,7 @@ Newtonian or relativistic magnetohydrodynamical simulations on uniform or adaptive mesh. - Copyright (C) 2018-2022 Grzegorz Kowal <grzegorz@amuncode.org> + Copyright (C) 2018-2023 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 diff --git a/python/amunpy/src/amunpy/amunh5_deprecated.py b/python/amunpy/src/amunpy/amunh5_deprecated.py index 3d28d81..828107c 100644 --- a/python/amunpy/src/amunpy/amunh5_deprecated.py +++ b/python/amunpy/src/amunpy/amunh5_deprecated.py @@ -5,7 +5,7 @@ Newtonian or relativistic magnetohydrodynamical simulations on uniform or adaptive mesh. - Copyright (C) 2018-2022 Grzegorz Kowal <grzegorz@amuncode.org> + Copyright (C) 2018-2023 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 diff --git a/python/amunpy/src/amunpy/amunxml.py b/python/amunpy/src/amunpy/amunxml.py index 1a85f52..2c3599b 100644 --- a/python/amunpy/src/amunpy/amunxml.py +++ b/python/amunpy/src/amunpy/amunxml.py @@ -5,7 +5,7 @@ Newtonian or relativistic magnetohydrodynamical simulations on uniform or adaptive mesh. - Copyright (C) 2018-2022 Grzegorz Kowal <grzegorz@amuncode.org> + Copyright (C) 2018-2023 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 diff --git a/python/amunpy/src/amunpy/integrals.py b/python/amunpy/src/amunpy/integrals.py index 9824a99..55e8fe5 100644 --- a/python/amunpy/src/amunpy/integrals.py +++ b/python/amunpy/src/amunpy/integrals.py @@ -5,7 +5,7 @@ Newtonian or relativistic magnetohydrodynamical simulations on uniform or adaptive mesh. - Copyright (C) 2018-2022 Grzegorz Kowal <grzegorz@amuncode.org> + Copyright (C) 2018-2023 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 diff --git a/python/amunpy/src/amunpy/interpolation.py b/python/amunpy/src/amunpy/interpolation.py index e38c01d..a71a96d 100644 --- a/python/amunpy/src/amunpy/interpolation.py +++ b/python/amunpy/src/amunpy/interpolation.py @@ -5,7 +5,7 @@ Newtonian or relativistic magnetohydrodynamical simulations on uniform or adaptive mesh. - Copyright (C) 2018-2022 Grzegorz Kowal <grzegorz@amuncode.org> + Copyright (C) 2018-2023 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 diff --git a/python/amunpy/src/amunpy/octree.py b/python/amunpy/src/amunpy/octree.py index c25afdc..68dc6aa 100644 --- a/python/amunpy/src/amunpy/octree.py +++ b/python/amunpy/src/amunpy/octree.py @@ -5,7 +5,7 @@ Newtonian or relativistic magnetohydrodynamical simulations on uniform or adaptive mesh. - Copyright (C) 2018-2022 Grzegorz Kowal <grzegorz@amuncode.org> + Copyright (C) 2018-2023 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 diff --git a/python/amunpy/src/amunpy/vtkio.py b/python/amunpy/src/amunpy/vtkio.py index 8091990..d3a90d9 100644 --- a/python/amunpy/src/amunpy/vtkio.py +++ b/python/amunpy/src/amunpy/vtkio.py @@ -5,7 +5,7 @@ Newtonian or relativistic magnetohydrodynamical simulations on uniform or adaptive mesh. - Copyright (C) 2018-2022 Grzegorz Kowal <grzegorz@amuncode.org> + Copyright (C) 2018-2023 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 diff --git a/sources/algebra.F90 b/sources/algebra.F90 index ccec801..18c1166 100644 --- a/sources/algebra.F90 +++ b/sources/algebra.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/amun.F90 b/sources/amun.F90 index 060e5e4..2ac4e6b 100644 --- a/sources/amun.F90 +++ b/sources/amun.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/blocks.F90 b/sources/blocks.F90 index e1c84cb..3958571 100644 --- a/sources/blocks.F90 +++ b/sources/blocks.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/boundaries.F90 b/sources/boundaries.F90 index f698f9d..c55362d 100644 --- a/sources/boundaries.F90 +++ b/sources/boundaries.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/compression.F90 b/sources/compression.F90 index ab2a13e..60466b8 100644 --- a/sources/compression.F90 +++ b/sources/compression.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2020-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2020-2023 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 diff --git a/sources/constants.F90 b/sources/constants.F90 index ff2f90b..2d68e62 100644 --- a/sources/constants.F90 +++ b/sources/constants.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/coordinates.F90 b/sources/coordinates.F90 index ee7a72b..604354a 100644 --- a/sources/coordinates.F90 +++ b/sources/coordinates.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/equations.F90 b/sources/equations.F90 index ba96e78..c6dbb3e 100644 --- a/sources/equations.F90 +++ b/sources/equations.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/evolution.F90 b/sources/evolution.F90 index a7245fa..c953f32 100644 --- a/sources/evolution.F90 +++ b/sources/evolution.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/forcing.F90 b/sources/forcing.F90 index 4916e49..5a5858b 100644 --- a/sources/forcing.F90 +++ b/sources/forcing.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2017-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2017-2023 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 diff --git a/sources/gravity.F90 b/sources/gravity.F90 index d03e01a..3a9cad2 100644 --- a/sources/gravity.F90 +++ b/sources/gravity.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/hash.F90 b/sources/hash.F90 index c5b9dcb..d2dc2c6 100644 --- a/sources/hash.F90 +++ b/sources/hash.F90 @@ -5,7 +5,7 @@ !! adaptive mesh. !! !! Copyright (C) 2012-2020 Yann Collet -!! Copyright (C) 2020-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2020-2023 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 diff --git a/sources/helpers.F90 b/sources/helpers.F90 index 0c332b9..c8e3ef9 100644 --- a/sources/helpers.F90 +++ b/sources/helpers.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2019-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2019-2023 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 @@ -91,7 +91,7 @@ module helpers write(*,"(1x,78('-'))") write(*,"(1x,18('='),17x,a,17x,19('='))") 'A M U N' write(*,"(1x,16('='),4x,a,4x,16('='))") & - 'Copyright (C) 2008-2022 Grzegorz Kowal' + 'Copyright (C) 2008-2023 Grzegorz Kowal' write(*,"(1x,18('='),9x,a,9x,19('='))") & 'under GNU GPLv3 license' write(*,"(1x,78('-'))") diff --git a/sources/interpolations.F90 b/sources/interpolations.F90 index 9b21e3f..97f01ac 100644 --- a/sources/interpolations.F90 +++ b/sources/interpolations.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 @@ -42,7 +42,8 @@ module interpolations real(kind=8), dimension(:,:,:) , intent(in) :: q real(kind=8), dimension(:,:,:,:,:), intent(out) :: qi end subroutine - subroutine reconstruct_iface(h, fc, fl, fr) + subroutine reconstruct_iface(positive, h, fc, fl, fr) + logical , intent(in) :: positive real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -76,7 +77,6 @@ module interpolations ! monotonicity preserving reconstruction coefficients ! real(kind=8), save :: kappa = 1.0d+00 - real(kind=8), save :: kbeta = 1.0d+00 ! number of ghost zones (required for compact schemes) ! @@ -218,7 +218,6 @@ module interpolations call get_parameter("eps" , eps ) call get_parameter("limo3_rad" , rad ) call get_parameter("kappa" , kappa ) - call get_parameter("kbeta" , kbeta ) call get_parameter("ppm_const" , ppm_const ) call get_parameter("central_weight" , cweight ) call get_parameter("cfl" , cfl ) @@ -978,20 +977,20 @@ module interpolations ! ! Arguments: ! -! positive - the variable positivity flag; -! h - the spatial step; -! q - the variable array; -! qi - the array of reconstructed interfaces (2 in each direction); +! p - the variable positivity flag; +! h - the spatial step; +! q - the variable array; +! qi - the array of reconstructed interfaces (2 in each direction); ! !=============================================================================== ! - subroutine interfaces_dir(positive, h, q, qi) + subroutine interfaces_dir(p, h, q, qi) use coordinates, only : nb, ne, nbl, neu implicit none - logical , intent(in) :: positive + logical , intent(in) :: p real(kind=8), dimension(:) , intent(in) :: h real(kind=8), dimension(:,:,:) , intent(in) :: q real(kind=8), dimension(:,:,:,:,:), intent(out) :: qi @@ -1025,23 +1024,23 @@ module interpolations do k = nbl, neu #endif /* NDIMS == 3 */ do j = nbl, neu - call reconstruct(h(1), q(:,j,k), qi(:,j,k,1,1), qi(:,j,k,2,1)) + call reconstruct(p, h(1), q(:,j,k), qi(:,j,k,1,1), qi(:,j,k,2,1)) end do ! j = nbl, neu do i = nbl, neu - call reconstruct(h(2), q(i,:,k), qi(i,:,k,1,2), qi(i,:,k,2,2)) + call reconstruct(p, h(2), q(i,:,k), qi(i,:,k,1,2), qi(i,:,k,2,2)) end do ! i = nbl, neu #if NDIMS == 3 end do ! k = nbl, neu do j = nbl, neu do i = nbl, neu - call reconstruct(h(3), q(i,j,:), qi(i,j,:,1,3), qi(i,j,:,2,3)) + call reconstruct(p, h(3), q(i,j,:), qi(i,j,:,1,3), qi(i,j,:,2,3)) end do ! i = nbl, neu end do ! j = nbl, neu #endif /* NDIMS == 3 */ ! make sure the interface states are positive for positive variables ! - if (positive) then + if (p) then #if NDIMS == 3 do k = nbl, neu @@ -1442,6 +1441,7 @@ module interpolations ! ! Arguments: ! +! p - the flag indicating if the reconstructed variable is positivite; ! h - the spatial step; this is required for some reconstruction methods; ! f - the input vector of cell averaged values; ! fl - the left side state reconstructed for location (i+1/2); @@ -1449,10 +1449,11 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct(h, f, fl, fr) + subroutine reconstruct(p, h, f, fl, fr) implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: f real(kind=8), dimension(:), intent(out) :: fl, fr @@ -1461,7 +1462,7 @@ module interpolations ! ! reconstruct the states using the selected subroutine ! - call reconstruct_states(h, f(:), fl(:), fr(:)) + call reconstruct_states(p, h, f(:), fl(:), fr(:)) ! correct the reconstruction near extrema by clipping them in order to improve ! the stability of scheme @@ -1485,10 +1486,11 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct_tvd(h, fc, fl, fr) + subroutine reconstruct_tvd(p, h, fc, fl, fr) implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -1553,10 +1555,11 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct_weno3(h, fc, fl, fr) + subroutine reconstruct_weno3(p, h, fc, fl, fr) implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -1675,10 +1678,11 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct_limo3(h, fc, fl, fr) + subroutine reconstruct_limo3(p, h, fc, fl, fr) implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -1818,10 +1822,11 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct_ppm(h, fc, fl, fr) + subroutine reconstruct_ppm(p, h, fc, fl, fr) implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -2002,10 +2007,11 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct_weno5z(h, fc, fl, fr) + subroutine reconstruct_weno5z(p, h, fc, fl, fr) implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -2159,10 +2165,11 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct_weno5yc(h, fc, fl, fr) + subroutine reconstruct_weno5yc(p, h, fc, fl, fr) implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -2317,10 +2324,11 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct_weno5ns(h, fc, fl, fr) + subroutine reconstruct_weno5ns(p, h, fc, fl, fr) implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -2503,12 +2511,13 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct_crweno5z(h, fc, fl, fr) + subroutine reconstruct_crweno5z(p, h, fc, fl, fr) use algebra, only : tridiag implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -2878,12 +2887,13 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct_crweno5yc(h, fc, fl, fr) + subroutine reconstruct_crweno5yc(p, h, fc, fl, fr) use algebra, only : tridiag implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -3256,12 +3266,13 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct_crweno5ns(h, fc, fl, fr) + subroutine reconstruct_crweno5ns(p, h, fc, fl, fr) use algebra, only : tridiag implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -3647,10 +3658,11 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct_mp5(h, fc, fl, fr) + subroutine reconstruct_mp5(p, h, fc, fl, fr) implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -3676,7 +3688,7 @@ module interpolations u(n-1) = sum(ce3(:) * fc(n-2:n)) u(n ) = fc(n ) - call mp_limiting(fc(:), u(:)) + call mp_limiting(p, n, fc(:), u(:)) fl(1:n) = u(1:n) @@ -3694,7 +3706,7 @@ module interpolations u(n-1) = sum(ce3(:) * fi(n-2:n)) u(n ) = fi(n ) - call mp_limiting(fi(:), u(:)) + call mp_limiting(p, n, fi(:), u(:)) fr(1:n-1) = u(n-1:1:-1) @@ -3724,10 +3736,11 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct_mp7(h, fc, fl, fr) + subroutine reconstruct_mp7(p, h, fc, fl, fr) implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -3755,7 +3768,7 @@ module interpolations u(n-1) = sum(ce3(:) * fc(n-2:n)) u(n ) = fc(n ) - call mp_limiting(fc(:), u(:)) + call mp_limiting(p, n, fc(:), u(:)) fl(1:n) = u(1:n) @@ -3775,7 +3788,7 @@ module interpolations u(n-1) = sum(ce3(:) * fi(n-2:n)) u(n ) = fi(n ) - call mp_limiting(fi(:), u(:)) + call mp_limiting(p, n, fi(:), u(:)) fr(1:n-1) = u(n-1:1:-1) @@ -3805,10 +3818,11 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct_mp9(h, fc, fl, fr) + subroutine reconstruct_mp9(p, h, fc, fl, fr) implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -3838,7 +3852,7 @@ module interpolations u(n-1) = sum(ce3(:) * fc(n-2:n)) u(n ) = fc(n ) - call mp_limiting(fc(:), u(:)) + call mp_limiting(p, n, fc(:), u(:)) fl(1:n) = u(1:n) @@ -3860,7 +3874,7 @@ module interpolations u(n-1) = sum(ce3(:) * fi(n-2:n)) u(n ) = fi(n ) - call mp_limiting(fi(:), u(:)) + call mp_limiting(p, n, fi(:), u(:)) fr(1:n-1) = u(n-1:1:-1) @@ -3902,12 +3916,13 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct_crmp5(h, fc, fl, fr) + subroutine reconstruct_crmp5(p, h, fc, fl, fr) use algebra, only : tridiag implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -3958,7 +3973,7 @@ module interpolations call tridiag(n, a(1:n), b(1:n), c(1:n), r(1:n), u(1:n)) - call mp_limiting(fc(:), u(:)) + call mp_limiting(p, n, fc(:), u(:)) fl(1:n) = u(1:n) @@ -3983,7 +3998,7 @@ module interpolations call tridiag(n, a(1:n), b(1:n), c(1:n), r(1:n), u(1:n)) - call mp_limiting(fi(:), u(:)) + call mp_limiting(p, n, fi(:), u(:)) fr(1:n-1) = u(n-1:1:-1) @@ -4014,12 +4029,13 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct_crmp7(h, fc, fl, fr) + subroutine reconstruct_crmp7(p, h, fc, fl, fr) use algebra, only : tridiag implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -4072,7 +4088,7 @@ module interpolations call tridiag(n, a(1:n), b(1:n), c(1:n), r(1:n), u(1:n)) - call mp_limiting(fc(:), u(:)) + call mp_limiting(p, n, fc(:), u(:)) fl(1:n) = u(1:n) @@ -4099,7 +4115,7 @@ module interpolations call tridiag(n, a(1:n), b(1:n), c(1:n), r(1:n), u(1:n)) - call mp_limiting(fi(:), u(:)) + call mp_limiting(p, n, fi(:), u(:)) fr(1:n-1) = u(n-1:1:-1) @@ -4130,12 +4146,13 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct_crmp9(h, fc, fl, fr) + subroutine reconstruct_crmp9(p, h, fc, fl, fr) use algebra, only : pentadiag implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -4196,7 +4213,7 @@ module interpolations call pentadiag(n, e(:), c(:), d(:), a(:), b(:), r(:), u(:)) - call mp_limiting(fc(:), u(:)) + call mp_limiting(p, n, fc(:), u(:)) fl(1:n) = u(1:n) @@ -4225,7 +4242,7 @@ module interpolations call pentadiag(n, e(:), c(:), d(:), a(:), b(:), r(:), u(:)) - call mp_limiting(fi(:), u(:)) + call mp_limiting(p, n, fi(:), u(:)) fr(1:n-1) = u(n-1:1:-1) @@ -4260,12 +4277,13 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct_ocmp5(h, fc, fl, fr) + subroutine reconstruct_ocmp5(p, h, fc, fl, fr) use algebra, only : tridiag implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -4327,7 +4345,7 @@ module interpolations call tridiag(n, a(1:n), b(1:n), c(1:n), r(1:n), u(1:n)) - call mp_limiting(fc(:), u(:)) + call mp_limiting(p, n, fc(:), u(:)) fl(1:n) = u(1:n) @@ -4352,7 +4370,7 @@ module interpolations call tridiag(n, a(1:n), b(1:n), c(1:n), r(1:n), u(1:n)) - call mp_limiting(fi(:), u(:)) + call mp_limiting(p, n, fi(:), u(:)) fr(1:n-1) = u(n-1:1:-1) @@ -4387,12 +4405,13 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct_ocmp7(h, fc, fl, fr) + subroutine reconstruct_ocmp7(p, h, fc, fl, fr) use algebra, only : pentadiag implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -4466,7 +4485,7 @@ module interpolations call pentadiag(n, e(:), c(:), d(:), a(:), b(:), r(:), u(:)) - call mp_limiting(fc(:), u(:)) + call mp_limiting(p, n, fc(:), u(:)) fl(1:n) = u(1:n) @@ -4493,7 +4512,7 @@ module interpolations call pentadiag(n, e(:), c(:), d(:), a(:), b(:), r(:), u(:)) - call mp_limiting(fi(:), u(:)) + call mp_limiting(p, n, fi(:), u(:)) fr(1:n-1) = u(n-1:1:-1) @@ -4528,12 +4547,13 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct_ocmp9(h, fc, fl, fr) + subroutine reconstruct_ocmp9(p, h, fc, fl, fr) use algebra, only : pentadiag implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -4611,7 +4631,7 @@ module interpolations call pentadiag(n, e(:), c(:), d(:), a(:), b(:), r(:), u(:)) - call mp_limiting(fc(:), u(:)) + call mp_limiting(p, n, fc(:), u(:)) fl(1:n) = u(1:n) @@ -4640,7 +4660,7 @@ module interpolations call pentadiag(n, e(:), c(:), d(:), a(:), b(:), r(:), u(:)) - call mp_limiting(fi(:), u(:)) + call mp_limiting(p, n, fi(:), u(:)) fr(1:n-1) = u(n-1:1:-1) @@ -4773,10 +4793,11 @@ module interpolations ! !=============================================================================== ! - subroutine reconstruct_gp(h, fc, fl, fr) + subroutine reconstruct_gp(p, h, fc, fl, fr) implicit none + logical , intent(in) :: p real(kind=8) , intent(in) :: h real(kind=8), dimension(:), intent(in) :: fc real(kind=8), dimension(:), intent(out) :: fl, fr @@ -4814,7 +4835,7 @@ module interpolations ! apply the monotonicity preserving limiting ! - call mp_limiting(fc(:), u(:)) + call mp_limiting(p, n, fc(:), u(:)) ! copy the interpolation to the respective vector ! @@ -4848,7 +4869,7 @@ module interpolations ! apply the monotonicity preserving limiting ! - call mp_limiting(fi(:), u(:)) + call mp_limiting(p, n, fi(:), u(:)) ! copy the interpolation to the respective vector ! @@ -5325,93 +5346,118 @@ module interpolations ! subroutine MP_LIMITING: ! ---------------------- ! -! Subroutine applies the monotonicity preserving (MP) limiter to a vector of -! high order reconstructed interface values. +! Subroutine applies the monotonicity preserving (MP) limitation to +! the interface states reconstructed using a high order upwind +! interpolation. ! ! Arguments: ! -! qc - the vector of cell-centered values; -! qi - the vector of interface values obtained from the high order -! interpolation as input and its monotonicity limited values as output; +! p - the logical flag indicating if the variable is positive; +! n - the length of vector u and q; +! u - the vector of centered cell-integrated values; +! q - the vector of interface values obtained from the high order +! interpolation to which the limitation is applied; ! ! References: ! ! [1] Suresh, A. & Huynh, H. T., ! "Accurate Monotonicity-Preserving Schemes with Runge-Kutta ! Time Stepping" -! Journal on Computational Physics, -! 1997, vol. 136, pp. 83-99, -! http://dx.doi.org/10.1006/jcph.1997.5745 -! [2] He, ZhiWei, Li, XinLiang, Fu, DeXun, & Ma, YanWen, -! "A 5th order monotonicity-preserving upwind compact difference -! scheme", -! Science China Physics, Mechanics and Astronomy, -! Volume 54, Issue 3, pp. 511-522, -! http://dx.doi.org/10.1007/s11433-010-4220-x +! Journal on Computational Physics, 1997, 136, 83-99, +! https://doi.org/10.1006/jcph.1997.5745 +! [2] Myeong-Hwan Ahn, Duck-Joo Lee, +! "Modified Monotonicity Preserving Constraints for High-Resolution +! Optimized Compact Scheme", +! Journal of Scientific Computing, 2020, 83:34, +! https://doi.org/10.1007/s10915-020-01221-0 ! !=============================================================================== ! - subroutine mp_limiting(qc, qi) + subroutine mp_limiting(p, n, u, q) implicit none - real(kind=8), dimension(:), intent(in) :: qc - real(kind=8), dimension(:), intent(inout) :: qi + logical , intent(in) :: p + integer , intent(in) :: n + real(kind=8), dimension(n), intent(in) :: u + real(kind=8), dimension(n), intent(inout) :: q - integer :: n, i, im1, ip1, ip2 - real(kind=8) :: dq, ds, dc0, dc4, dm1, dp1, dml, dmr + integer :: i, im2, im1, ip1, ip2 + real(kind=8) :: du, dm, dc, dp, dc4, dmm, dmp, di, de, bt real(kind=8) :: qlc, qmd, qmp, qmn, qmx, qul - real(kind=8), dimension(0:size(qc)+2) :: dm + real(kind=8), dimension(n) :: d + real(kind=8), dimension(2) :: umn, umx !------------------------------------------------------------------------------- ! - n = size(qc) + d(1 ) = 0.0d+00 + d(2:n) = u(2:n) - u(1:n-1) - dm(0 ) = 0.0d+00 - dm(1 ) = 0.0d+00 - dm(2:n) = qc(2:n) - qc(1:n-1) - dm(n+1) = 0.0d+00 - dm(n+2) = 0.0d+00 + im2 = 1 + im1 = 1 + ip1 = 2 + ip2 = 3 - do i = 1, n - 1 + do i = 1, n - ip1 = i + 1 + du = kappa * d(i) - if (dm(i) * dm(ip1) >= 0.0d+00) then - dq = kappa * dm(i) - else - dq = kbeta * dm(i) - end if + qmp = u(i) + minmod(d(ip1), du) - qmp = qc(i) + minmod(dm(ip1), dq) - ds = (qi(i) - qc(i)) * (qi(i) - qmp) + if ((q(i) - u(i)) * (q(i) - qmp) > eps) then - if (ds > eps) then + dm = d(i ) - d(im1) + dc = d(ip1) - d(i ) + dp = d(ip2) - d(ip1) + dc4 = 4.0d+00 * dc - im1 = i - 1 - ip2 = i + 2 + dmp = minmod4(dc4 - dp, 4.0d+00 * dp - dc, dc, dp) + dmm = minmod4(dc4 - dm, 4.0d+00 * dm - dc, dc, dm) - dm1 = dm(i ) - dm(im1) - dc0 = dm(ip1) - dm(i ) - dp1 = dm(ip2) - dm(ip1) - dc4 = 4.0d+00 * dc0 + qul = u(i) + du + qmd = u(i) + 5.0d-01 * (d(ip1) - dmp ) + qlc = u(i) + 5.0d-01 * (d(i ) + 8.0d+00 * dmm / 3.0d+00) - dml = 0.5d+00 * minmod4(dc4 - dm1, 4.0d+00 * dm1 - dc0, dc0, dm1) - dmr = 0.5d+00 * minmod4(dc4 - dp1, 4.0d+00 * dp1 - dc0, dc0, dp1) + umn(1) = min(u(im1), u(ip1)) + umn(2) = min(u(im2), u(ip2)) + umx(1) = max(u(im1), u(ip1)) + umx(2) = max(u(im2), u(ip2)) - qmd = qc(i) + 0.5d+00 * dm(ip1) - dmr - qul = qc(i) + dq - qlc = qc(i) + 0.5d+00 * dq + dml + if ((u(i) > umx(1) .and. umx(1) > umx(2) .and. & + u(im2) <= u(ip1) .and. u(im1) >= u(ip2)) .or. & + (u(i) < umn(1) .and. umn(1) < umn(2) .and. & + u(im2) >= u(ip1) .and. u(im1) <= u(ip2))) then - qmx = max(min(qc(i), qc(ip1), qmd), min(qc(i), qul, qlc)) - qmn = min(max(qc(i), qc(ip1), qmd), max(qc(i), qul, qlc)) + bt = 2.0d+00 * u(i) + di = (u(im1) + u(ip1)) - bt + de = (u(im2) + u(ip2)) - bt + bt = di / de + if (bt > 3.0d-01) qlc = u(im2) - qi(i) = median(qi(i), qmn, qmx) + end if + + qmx = max(min(u(i), u(ip1), qmd), min(u(i), qul, qlc)) + qmn = min(max(u(i), u(ip1), qmd), max(u(i), qul, qlc)) + + if (p .and. qmn <= 0.0d+00) then + if (d(i) <= 0.0d+00 .and. d(ip1) >= 0.0d+00) then + qmn = u(i) * u(ip1) / (u(i) + u(ip1)) + else + qmn = max(eps, min(u(i), u(ip1))) + end if + end if + + q(i) = median(q(i), qmn, qmx) end if - end do ! i = 1, n - 1 + im2 = im1 + im1 = i + ip1 = ip2 + ip2 = min(ip2 + 1, n) + + end do !------------------------------------------------------------------------------- ! diff --git a/sources/io.F90 b/sources/io.F90 index a6578dd..56a9988 100644 --- a/sources/io.F90 +++ b/sources/io.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/mesh.F90 b/sources/mesh.F90 index 692e1dc..42904db 100644 --- a/sources/mesh.F90 +++ b/sources/mesh.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/mpitools.F90 b/sources/mpitools.F90 index e2343b7..e04915e 100644 --- a/sources/mpitools.F90 +++ b/sources/mpitools.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/operators.F90 b/sources/operators.F90 index 6230611..1a27970 100644 --- a/sources/operators.F90 +++ b/sources/operators.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/parameters.F90 b/sources/parameters.F90 index 235b55a..91060c8 100644 --- a/sources/parameters.F90 +++ b/sources/parameters.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/problems.F90 b/sources/problems.F90 index 0d401d3..1c527a6 100644 --- a/sources/problems.F90 +++ b/sources/problems.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/random.F90 b/sources/random.F90 index ed42555..d6e909f 100644 --- a/sources/random.F90 +++ b/sources/random.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/refinement.F90 b/sources/refinement.F90 index 4899822..ccfabe3 100644 --- a/sources/refinement.F90 +++ b/sources/refinement.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/schemes.F90 b/sources/schemes.F90 index 8bdea42..ea13213 100644 --- a/sources/schemes.F90 +++ b/sources/schemes.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/shapes.F90 b/sources/shapes.F90 index 05e4b00..8332d74 100644 --- a/sources/shapes.F90 +++ b/sources/shapes.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/sources.F90 b/sources/sources.F90 index 77151a2..9d46622 100644 --- a/sources/sources.F90 +++ b/sources/sources.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/statistics.F90 b/sources/statistics.F90 index d07dc2c..577d904 100644 --- a/sources/statistics.F90 +++ b/sources/statistics.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 @@ -772,10 +772,6 @@ module statistics dh(2) = ady(pmeta%level) dh(3) = adz(pmeta%level) -! calculate current density (J = ∇xB) -! - call curl(dh(:), pdata%q(ibx:ibz,:,:,:), jc(1:3,:,:,:)) - ! total mass ! #if NDIMS == 3 @@ -820,6 +816,11 @@ module statistics + pdata%q(iby,nb:ne,nb:ne, : )**2 & + pdata%q(ibz,nb:ne,nb:ne, : )**2) * dvolh #endif /* NDIMS == 3 */ + +! calculate current density (J = ∇xB) +! + call curl(dh(:), pdata%q(ibx:ibz,:,:,:), jc(1:3,:,:,:)) + end if if (.not. periodic(1)) then diff --git a/sources/system.F90 b/sources/system.F90 index d0b691b..bf15025 100644 --- a/sources/system.F90 +++ b/sources/system.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2017-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2017-2023 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 diff --git a/sources/timers.F90 b/sources/timers.F90 index 0c9bf52..e3fce91 100644 --- a/sources/timers.F90 +++ b/sources/timers.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2008-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2008-2023 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 diff --git a/sources/user_problem.F90 b/sources/user_problem.F90 index d1875c2..bfa6e14 100644 --- a/sources/user_problem.F90 +++ b/sources/user_problem.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2017-2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2017-2023 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 diff --git a/sources/workspace.F90 b/sources/workspace.F90 index 89c0a13..4e94d0b 100644 --- a/sources/workspace.F90 +++ b/sources/workspace.F90 @@ -4,7 +4,7 @@ !! Newtonian or relativistic magnetohydrodynamical simulations on uniform or !! adaptive mesh. !! -!! Copyright (C) 2022 Grzegorz Kowal <grzegorz@amuncode.org> +!! Copyright (C) 2022-2023 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