diff --git a/sources/forcing.F90 b/sources/forcing.F90 index 73f6240..84e0841 100644 --- a/sources/forcing.F90 +++ b/sources/forcing.F90 @@ -1582,12 +1582,13 @@ module forcing real(kind=8), dimension(nn):: zk, kz, snkz, cskz #endif /* NDIMS == 3 */ + real(kind=8), save :: deinj real(kind=8), dimension(:,:,:,:), pointer, save :: acc real(kind=8), dimension(:,:,:) , pointer, save :: den integer, save :: nt !$ integer :: omp_get_thread_num -!$omp threadprivate(first, nt, acc, den) +!$omp threadprivate(first, nt, acc, den, deinj) character(len=*), parameter :: loc = 'FORCING:inject_fmodes_block()' @@ -1750,10 +1751,12 @@ module forcing ! calculate the injected energy ! #if NDIMS == 3 - einj = einj + sum(den(nb:ne,nb:ne,nb:ne)) * dvol + deinj = sum(den(nb:ne,nb:ne,nb:ne)) * dvol #else /* NDIMS == 3 */ - einj = einj + sum(den(nb:ne,nb:ne, 1 )) * dvol + deinj = sum(den(nb:ne,nb:ne, 1 )) * dvol #endif /* NDIMS == 3 */ +!$omp atomic update + einj = einj + deinj ! add the energy increment !