diff --git a/.github/workflows/check_nvidia.yml b/.github/workflows/check_nvidia.yml index f0b52356df06..72a6bbfdcdc1 100644 --- a/.github/workflows/check_nvidia.yml +++ b/.github/workflows/check_nvidia.yml @@ -32,13 +32,13 @@ jobs: curl https://developer.download.nvidia.com/hpc-sdk/ubuntu/DEB-GPG-KEY-NVIDIA-HPC-SDK | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg echo 'deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list sudo apt-get update -y - sudo apt-get install -y nvhpc-24-7 + sudo apt-get install -y nvhpc-24-11 NVARCH=`uname -s`_`uname -m` export NVARCH NVCOMPILERS=/opt/nvidia/hpc_sdk export NVCOMPILERS - PATH=$NVCOMPILERS/$NVARCH/24.7/compilers/bin:$PATH; export PATH - export PATH=$NVCOMPILERS/$NVARCH/24.7/comm_libs/mpi/bin:$PATH + PATH=$NVCOMPILERS/$NVARCH/24.11/compilers/bin:$PATH; export PATH + export PATH=$NVCOMPILERS/$NVARCH/24.11/comm_libs/mpi/bin:$PATH printenv >> $GITHUB_ENV echo "os-version=$(lsb_release -ds | tr " " -)" >> $GITHUB_OUTPUT @@ -98,7 +98,7 @@ jobs: run: | git apply patches/nvhpc_bge.patch ./regen.sh - ./configure FC=${FC} FCFLAGS="-O3" --enable-real=${RP} --with-cuda=/opt/nvidia/hpc_sdk/Linux_x86_64/24.7/cuda/ + ./configure FC=${FC} FCFLAGS="-O3" --enable-real=${RP} --with-cuda=/opt/nvidia/hpc_sdk/Linux_x86_64/24.11/cuda/ make - name: Dist (CPU backend) @@ -122,5 +122,5 @@ jobs: tar xf neko-*.tar.gz -C releng cd releng/neko-* patch -u src/common/signal.f90 -i patches/nvhpc_bge.patch - ./configure FC=${FC} FCFLAGS="-O3" --enable-real=${RP} --with-cuda=/opt/nvidia/hpc_sdk/Linux_x86_64/24.7/cuda/ + ./configure FC=${FC} FCFLAGS="-O3" --enable-real=${RP} --with-cuda=/opt/nvidia/hpc_sdk/Linux_x86_64/24.11/cuda/ make -j $(nproc) diff --git a/configure.ac b/configure.ac index af79bb31ffbf..3e042de91dc1 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ([2.69]) -AC_INIT([neko],[0.9.0]) +AC_INIT([neko],[0.9.1]) AM_INIT_AUTOMAKE([foreign subdir-objects]) AM_MAINTAINER_MODE AC_CONFIG_MACRO_DIR([m4]) diff --git a/examples/hemi/hemi.nmsh b/examples/hemi/hemi.nmsh index 9638f1d744a6..a3511a6333fe 100644 Binary files a/examples/hemi/hemi.nmsh and b/examples/hemi/hemi.nmsh differ diff --git a/src/gs/gather_scatter.f90 b/src/gs/gather_scatter.f90 index 9dc6c8803086..26f8330a30a0 100644 --- a/src/gs/gather_scatter.f90 +++ b/src/gs/gather_scatter.f90 @@ -450,6 +450,10 @@ subroutine gs_init_mapping(gs) end if end if end do + + ! Clear local dofmap table + call dm%clear() + if (lz .gt. 1) then ! ! Setup mapping for dofs on edges @@ -654,6 +658,10 @@ subroutine gs_init_mapping(gs) end if end do end if + + ! Clear local dofmap table + call dm%clear() + ! ! Setup mapping for dofs on facets ! diff --git a/src/krylov/krylov.f90 b/src/krylov/krylov.f90 index 5a3723be45e8..7f44fa1cbb81 100644 --- a/src/krylov/krylov.f90 +++ b/src/krylov/krylov.f90 @@ -189,7 +189,7 @@ end subroutine ksp_t_free !! @param monitor Enable/disable monitoring, optional. module subroutine krylov_solver_factory(object, n, type_name, & max_iter, abstol, M, monitor) - class(ksp_t), allocatable, target, intent(inout) :: object + class(ksp_t), allocatable, intent(inout) :: object integer, intent(in), value :: n character(len=*), intent(in) :: type_name integer, intent(in) :: max_iter diff --git a/src/krylov/krylov_fctry.f90 b/src/krylov/krylov_fctry.f90 index 23f9786e47ff..2e31434e140a 100644 --- a/src/krylov/krylov_fctry.f90 +++ b/src/krylov/krylov_fctry.f90 @@ -76,7 +76,7 @@ !! @param monitor Enable/disable residual history, optional. module subroutine krylov_solver_factory(object, n, type_name, & max_iter, abstol, M, monitor) - class(ksp_t), allocatable, target, intent(inout) :: object + class(ksp_t), allocatable, intent(inout) :: object integer, intent(in), value :: n character(len=*), intent(in) :: type_name integer, intent(in) :: max_iter diff --git a/src/krylov/precon.f90 b/src/krylov/precon.f90 index 3647103ecea7..2ab2e6f75b1d 100644 --- a/src/krylov/precon.f90 +++ b/src/krylov/precon.f90 @@ -68,7 +68,7 @@ end subroutine pc_update interface !> Create a preconditioner module subroutine precon_factory(pc, type_name) - class(pc_t), target, allocatable, intent(inout) :: pc + class(pc_t), allocatable, intent(inout) :: pc character(len=*), intent(in) :: type_name end subroutine precon_factory diff --git a/src/krylov/precon_fctry.f90 b/src/krylov/precon_fctry.f90 index 5255e4899e6a..0a7315430cdd 100644 --- a/src/krylov/precon_fctry.f90 +++ b/src/krylov/precon_fctry.f90 @@ -51,7 +51,7 @@ !> Create a preconditioner module subroutine precon_factory(pc, type_name) - class(pc_t), target, allocatable, intent(inout) :: pc + class(pc_t), allocatable, intent(inout) :: pc character(len=*), intent(in) :: type_name character(len=:), allocatable :: type_string diff --git a/src/les/les_model.f90 b/src/les/les_model.f90 index 271890671a10..1c05bb3f5553 100644 --- a/src/les/les_model.f90 +++ b/src/les/les_model.f90 @@ -114,7 +114,7 @@ end subroutine les_model_free !! @param coef SEM coefficients. !! @param json A dictionary with parameters. module subroutine les_model_factory(object, type_name, dofmap, coef, json) - class(les_model_t), allocatable, target, intent(inout) :: object + class(les_model_t), allocatable, intent(inout) :: object character(len=*), intent(in) :: type_name type(dofmap_t), intent(in) :: dofmap type(coef_t), intent(in) :: coef diff --git a/src/les/les_model_fctry.f90 b/src/les/les_model_fctry.f90 index f2b9525668b0..f9abfee853db 100644 --- a/src/les/les_model_fctry.f90 +++ b/src/les/les_model_fctry.f90 @@ -53,7 +53,7 @@ !! @param coef SEM coefficients. !! @param json A dictionary with parameters. module subroutine les_model_factory(object, type_name, dofmap, coef, json) - class(les_model_t), allocatable, target, intent(inout) :: object + class(les_model_t), allocatable, intent(inout) :: object character(len=*), intent(in) :: type_name type(dofmap_t), intent(in) :: dofmap type(coef_t), intent(in) :: coef diff --git a/src/sem/dofmap.f90 b/src/sem/dofmap.f90 index 92cec5de517f..62ba8334877c 100644 --- a/src/sem/dofmap.f90 +++ b/src/sem/dofmap.f90 @@ -240,7 +240,7 @@ subroutine dofmap_number_edges(this) num_dofs_edges(1) = int(Xh%lx - 2, i8) num_dofs_edges(2) = int(Xh%ly - 2, i8) num_dofs_edges(3) = int(Xh%lz - 2, i8) - edge_offset = int(msh%glb_mpts, i8) + int(1, 4) + edge_offset = int(msh%glb_mpts, i8) + int(1, i8) do i = 1, msh%nelv @@ -380,7 +380,7 @@ subroutine dofmap_number_edges(this) end do end if - call ep%edge_id(edge, i8) + call ep%edge_id(edge, 8) shared_dof = msh%is_shared(edge) global_id = msh%get_global(edge) edge_id = edge_offset + int((global_id - 1), i8) * num_dofs_edges(2) diff --git a/src/simulation_components/derivative.f90 b/src/simulation_components/derivative.f90 index 775e05c0a8a0..a6f1913a41ce 100644 --- a/src/simulation_components/derivative.f90 +++ b/src/simulation_components/derivative.f90 @@ -149,7 +149,7 @@ subroutine derivative_compute(this, t, tstep) real(kind=rp), intent(in) :: t integer, intent(in) :: tstep - call dudxyz(this%du%x, this%u%x, this%dr, this%dr, this%dr,& + call dudxyz(this%du%x, this%u%x, this%dr, this%ds, this%dt,& this%case%fluid%c_Xh) end subroutine derivative_compute diff --git a/src/wall_models/wall_model.f90 b/src/wall_models/wall_model.f90 index fe4404d9aa93..a49fa70e4500 100644 --- a/src/wall_models/wall_model.f90 +++ b/src/wall_models/wall_model.f90 @@ -156,7 +156,7 @@ end subroutine wall_model_free !! @param json A dictionary with parameters. module subroutine wall_model_factory(object, coef, msk, facet, nu, & json) - class(wall_model_t), allocatable, target, intent(inout) :: object + class(wall_model_t), allocatable, intent(inout) :: object type(coef_t), intent(in) :: coef integer, intent(in) :: msk(:) integer, intent(in) :: facet(:) diff --git a/src/wall_models/wall_model_fctry.f90 b/src/wall_models/wall_model_fctry.f90 index 176ea4a431da..7940347ff59b 100644 --- a/src/wall_models/wall_model_fctry.f90 +++ b/src/wall_models/wall_model_fctry.f90 @@ -55,7 +55,7 @@ !! @param json A dictionary with parameters. module subroutine wall_model_factory(object, coef, msk, facet, nu, & json) - class(wall_model_t), allocatable, target, intent(inout) :: object + class(wall_model_t), allocatable, intent(inout) :: object type(coef_t), intent(in) :: coef integer, intent(in) :: msk(:) integer, intent(in) :: facet(:)