aboutsummaryrefslogtreecommitdiff
path: root/src/ADMConstraints.F
diff options
context:
space:
mode:
Diffstat (limited to 'src/ADMConstraints.F')
-rw-r--r--src/ADMConstraints.F16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/ADMConstraints.F b/src/ADMConstraints.F
index 80a5bc4..376c067 100644
--- a/src/ADMConstraints.F
+++ b/src/ADMConstraints.F
@@ -22,6 +22,8 @@
#include "cctk_Functions.h"
#include "cctk_Parameters.h"
+#include "SpaceMask.h"
+
subroutine ADMConstraints(CCTK_ARGUMENTS)
implicit none
@@ -39,6 +41,10 @@ c (for outer boundary condition)
integer sw(3)
logical docalc
+c flags for excision
+
+ integer ex_field, ex_type_excised
+
c Return code from Cactus sync routine and boundary conditions.
integer ierr
@@ -70,6 +76,12 @@ c Macros from Standard Einstein.
c --------------------------------------------------------------
+ if (check_excision_bitmask) then
+ call SpaceMask_GetTypeBits(ex_field, excision_mask_name)
+ call SpaceMask_GetStateBits(ex_type_excised, excision_mask_name, \
+ excision_type_excised)
+ end if
+
sw(1) = 1
sw(2) = 1
sw(3) = 1
@@ -120,6 +132,10 @@ c Calculate constraints.
if (use_mask .eq. 1) then
if (abs(emask(i,j,k)-1) > 0.001) then
docalc = .FALSE.
+ elseif (check_excision_bitmask .and.
+ . SpaceMask_CheckStateBitsF90(space_mask, i, j, k,\
+ ex_field, ex_type_excised)) then
+ docalc = .FALSE.
end if
end if