aboutsummaryrefslogtreecommitdiff
path: root/src/EHFinder_Sources.F90
diff options
context:
space:
mode:
Diffstat (limited to 'src/EHFinder_Sources.F90')
-rw-r--r--src/EHFinder_Sources.F909
1 files changed, 6 insertions, 3 deletions
diff --git a/src/EHFinder_Sources.F90 b/src/EHFinder_Sources.F90
index b629783..cdf2095 100644
--- a/src/EHFinder_Sources.F90
+++ b/src/EHFinder_Sources.F90
@@ -21,7 +21,7 @@ subroutine EHFinder_Sources(CCTK_ARGUMENTS)
CCTK_REAL :: g3xx, g3xy, g3xz, g3yy, g3yz, g3zz
CCTK_REAL :: gxxc, gxyc, gxzc, gyyc, gyzc, gzzc, psito4
CCTK_REAL :: idetg, alp2, tmp1, tmp2, tmp3
- CCTK_REAL :: ratio, cfactor
+ CCTK_REAL :: ratio, cfactor, ssign
CCTK_REAL, dimension(3) :: maxpos, cdx, dfup
CCTK_REAL :: al, ar, bl, br, cl, cr
CCTK_REAL :: alminus, alplus, blminus, blplus, clminus, clplus
@@ -37,6 +37,9 @@ subroutine EHFinder_Sources(CCTK_ARGUMENTS)
mdelta = maxval ( cctk_delta_space )
+ if ( CCTK_EQUALS ( surface_direction, 'outward' ) ) ssign = one
+ if ( CCTK_EQUALS ( surface_direction, 'inward' ) ) ssign = -one
+
if ( CCTK_EQUALS ( upwind_type, 'intrinsic' ) ) then
do k = kzl, kzr
do j = jyl, jyr
@@ -103,7 +106,7 @@ subroutine EHFinder_Sources(CCTK_ARGUMENTS)
g3xz * dfx(i,j,k) * dfz(i,j,k) + &
g3yz * dfy(i,j,k) * dfz(i,j,k) )
if ( tmp2 .ge. zero ) then
- sf(i,j,k) = tmp1 - sqrt ( alp2 * tmp2 )
+ sf(i,j,k) = tmp1 - ssign * sqrt ( alp2 * tmp2 )
else
call CCTK_WARN ( 0, "3-metric not positive definite: Stopping" )
end if
@@ -154,7 +157,7 @@ subroutine EHFinder_Sources(CCTK_ARGUMENTS)
g3xz * dfx(i,j,k) * dfz(i,j,k) + &
g3yz * dfy(i,j,k) * dfz(i,j,k) )
if ( tmp2 .ge. zero ) then
- sf(i,j,k) = tmp1 - sqrt ( alp2 * tmp2 )
+ sf(i,j,k) = tmp1 - ssign * sqrt ( alp2 * tmp2 )
else
call CCTK_WARN ( 0, "3-metric not positive definite: Stopping" )
end if