diff options
Diffstat (limited to 'src/EHFinder_Sources.F90')
-rw-r--r-- | src/EHFinder_Sources.F90 | 9 |
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 |