From e752d42cd91662625fe26341f0e0ec5eab935b32 Mon Sep 17 00:00:00 2001 From: rhaas Date: Tue, 15 Apr 2014 19:49:45 +0000 Subject: GRHydro: low level optimizations git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinEvolve/GRHydro/trunk@631 c83d129a-5a75-4d5a-9c4d-ed3a5855bf45 --- src/GRHydro_CalcUpdate.F90 | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/GRHydro_CalcUpdate.F90 b/src/GRHydro_CalcUpdate.F90 index dc59641..80ef6fa 100644 --- a/src/GRHydro_CalcUpdate.F90 +++ b/src/GRHydro_CalcUpdate.F90 @@ -39,7 +39,7 @@ subroutine UpdateCalculation(CCTK_ARGUMENTS) DECLARE_CCTK_FUNCTIONS CCTK_INT :: i,j,k,itracer - CCTK_REAL :: idx, alp_l, alp_r, Bcons_l, Bcons_r, alp_tmp + CCTK_REAL :: idx, idy, idz, alp_l, alp_r, Bcons_l, Bcons_r, alp_tmp idx = 1.d0 / CCTK_DELTA_SPACE(flux_direction) @@ -300,22 +300,26 @@ subroutine UpdateCalculation(CCTK_ARGUMENTS) flux_direction.eq.1) then ! HACK: x direction is last ! FIXME: I think one could wrap all of this into a single do loop and remove the ! Evec storage + ! idx differs from idx which was 1d0/CCTK_DELTA_SPACE(flux_direction) + idx = 1d0 / CCTK_DELTA_SPACE(1) + idy = 1d0 / CCTK_DELTA_SPACE(2) + idz = 1d0 / CCTK_DELTA_SPACE(3) !$OMP PARALLEL DO PRIVATE(i,j,k) do k = GRHydro_stencil + 1, cctk_lsh(3) - GRHydro_stencil do j = GRHydro_stencil + 1, cctk_lsh(2) - GRHydro_stencil do i = GRHydro_stencil + 1, cctk_lsh(1) - GRHydro_stencil Bconsrhs(i,j,k,1) = - 0.5d0 * ((Evec(i-1,j ,k-1,2)-Evec(i-1,j ,k ,2)) & - + (Evec(i ,j ,k-1,2)-Evec(i ,j ,k ,2))) / CCTK_DELTA_SPACE(3) & + + (Evec(i ,j ,k-1,2)-Evec(i ,j ,k ,2))) * idz & - 0.5d0 * ((Evec(i-1,j ,k ,3)-Evec(i-1,j-1,k ,3)) & - + (Evec(i ,j ,k ,3)-Evec(i ,j-1,k ,3))) / CCTK_DELTA_SPACE(2) + + (Evec(i ,j ,k ,3)-Evec(i ,j-1,k ,3))) * idy Bconsrhs(i,j,k,2) = - 0.5d0 * ((Evec(i-1,j-1,k ,3)-Evec(i ,j-1,k ,3)) & - + (Evec(i-1,j ,k ,3)-Evec(i ,j ,k ,3))) / CCTK_DELTA_SPACE(1) & + + (Evec(i-1,j ,k ,3)-Evec(i ,j ,k ,3))) * idx & - 0.5d0 * ((Evec(i ,j-1,k ,1)-Evec(i ,j-1,k-1,1)) & - + (Evec(i ,j ,k ,1)-Evec(i ,j ,k-1,1))) / CCTK_DELTA_SPACE(3) + + (Evec(i ,j ,k ,1)-Evec(i ,j ,k-1,1))) * idz Bconsrhs(i,j,k,3) = - 0.5d0 * ((Evec(i ,j-1,k-1,1)-Evec(i ,j ,k-1,1)) & - + (Evec(i ,j-1,k ,1)-Evec(i ,j ,k ,1))) / CCTK_DELTA_SPACE(2) & + + (Evec(i ,j-1,k ,1)-Evec(i ,j ,k ,1))) * idy & - 0.5d0 * ((Evec(i ,j ,k-1,2)-Evec(i-1,j ,k-1,2)) & - + (Evec(i ,j ,k ,2)-Evec(i-1,j ,k ,2))) / CCTK_DELTA_SPACE(1) + + (Evec(i ,j ,k ,2)-Evec(i-1,j ,k ,2))) * idx enddo enddo enddo -- cgit v1.2.3