aboutsummaryrefslogtreecommitdiff
path: root/src/Poisoning.F90
diff options
context:
space:
mode:
Diffstat (limited to 'src/Poisoning.F90')
-rw-r--r--src/Poisoning.F9037
1 files changed, 37 insertions, 0 deletions
diff --git a/src/Poisoning.F90 b/src/Poisoning.F90
new file mode 100644
index 0000000..93d9290
--- /dev/null
+++ b/src/Poisoning.F90
@@ -0,0 +1,37 @@
+#include "cctk.h"
+#include "cctk_Functions.h"
+#include "cctk_Parameters.h"
+
+subroutine SBP_Poisoning (ni, nj, nk, bb, offset, dvar)
+
+ implicit none
+
+ DECLARE_CCTK_PARAMETERS
+
+ integer :: ni, nj, nk
+ CCTK_INT, dimension(6), intent(in) :: bb
+ CCTK_INT, dimension(6), intent(in) :: offset
+ CCTK_REAL, dimension(ni,nj,nk), intent(inout) :: dvar
+
+ CCTK_INT :: il, ir, jl, jr, kl, kr
+
+ il = 0; ir = 0
+ jl = 0; jr = 0
+ kl = 0; kr = 0
+ if ( bb(1) /= 0 ) il = offset(1)
+ if ( bb(2) /= 0 ) ir = offset(2)
+ if ( bb(3) /= 0 ) jl = offset(3)
+ if ( bb(4) /= 0 ) jr = offset(4)
+ if ( bb(5) /= 0 ) kl = offset(5)
+ if ( bb(6) /= 0 ) kr = offset(6)
+
+!$omp parallel workshare
+ dvar(1:il,:,:) = poison_value
+ dvar(:,1:jl,:) = poison_value
+ dvar(:,:,1:kl) = poison_value
+ dvar(ni-ir+1:ni,:,:) = poison_value
+ dvar(:,nj-jr+1:nj,:) = poison_value
+ dvar(:,:,nk-kr+1:nk) = poison_value
+!$omp end parallel workshare
+
+end subroutine SBP_Poisoning