aboutsummaryrefslogtreecommitdiff
path: root/src/AHFinder_int.F
diff options
context:
space:
mode:
authormiguel <miguel@89daf98e-ef62-4674-b946-b8ff9de2216c>2000-03-29 09:27:40 +0000
committermiguel <miguel@89daf98e-ef62-4674-b946-b8ff9de2216c>2000-03-29 09:27:40 +0000
commit8962ab5257796f6d51097013b21fc37bf1bf92eb (patch)
treec8ad1d0fa525cb36d109cb8d20ca9c1543575081 /src/AHFinder_int.F
parent67b84578f60430fc8c55117cb85ae189d87f8255 (diff)
Adding a way to detect if we are inside the mask.
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/AHFinder/trunk@52 89daf98e-ef62-4674-b946-b8ff9de2216c
Diffstat (limited to 'src/AHFinder_int.F')
-rw-r--r--src/AHFinder_int.F49
1 files changed, 43 insertions, 6 deletions
diff --git a/src/AHFinder_int.F b/src/AHFinder_int.F
index 8d5f53e..ac2ad42 100644
--- a/src/AHFinder_int.F
+++ b/src/AHFinder_int.F
@@ -49,6 +49,7 @@
CCTK_REAL, dimension(3) :: origin,maxval,minval
CCTK_REAL, allocatable, dimension(:,:) :: rr,xa,ya,za,da,exp,gradn
CCTK_REAL, allocatable, dimension(:,:) :: txx,tyy,tzz,txy,txz,tyz
+ CCTK_REAL, allocatable, dimension(:,:) :: intmask
! Reduction related things.
@@ -100,6 +101,8 @@
!
! gradn Array with interpolated norm of gradient of horizon function.
!
+! intmask Array with interpolated mask.
+!
! cost cos(theta)
! sint sin(theta)
! cosp cos(phi)
@@ -393,6 +396,8 @@
allocate(txz(0:l_ntheta,0:l_nphi))
allocate(tyz(0:l_ntheta,0:l_nphi))
+ allocate(intmask(0:l_ntheta,0:l_nphi))
+
! Initialize.
rr = zero
@@ -571,23 +576,55 @@
call CCTK_GetInterpHandle(handle,"simple")
- call CCTK_Interp(ierror,cctkGH,handle,npoints,3,8,8,
+ call CCTK_Interp(ierror,cctkGH,handle,npoints,3,9,9,
. nx,ny,nz,xa,ya,za,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,
. CCTK_VARIABLE_REAL,origin(1),origin(2),origin(3),
- . dx,dy,dz,gxx,gyy,gzz,gxy,gxz,gyz,ahf_exp,ahfgradn,
+ . dx,dy,dz,gxx,gyy,gzz,gxy,gxz,gyz,ahf_exp,ahfgradn,ahmask,
+ . CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,
. CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,
. CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,
- . CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,
- . txx,tyy,tzz,txy,txz,tyz,exp,gradn,
+ . txx,tyy,tzz,txy,txz,tyz,exp,gradn,intmask,
. CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,
. CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,
- . CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL)
+ . CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL)
+
+! Check if we are either inside mask, or to close for comfort.
+
+ if ((ahf_mask.eq.1).or.(ahf_weakmask.eq.1)) then
+
+ interror3 = 0
+
+ if (myproc.lt.npt*npp) then
+ do j=0,l_nphi
+ do i=0,l_ntheta
+ if (intmask(i,j).ne.1.0D0) then
+ interror3 = 1
+ end if
+ end do
+ end do
+ end if
+
+ call CCTK_ReduceLocalScalar(ierror,cctkGH,-1,reduction_handle,
+ . interror3,red_tmp,CCTK_VARIABLE_INT)
+ interror3 = red_tmp
+
+ if (interror3.ne.0) then
+ print *,'Inside mask'
+ intexp = 1.0D+10
+ intexp2 = 1.0D+10
+ intexpdel2 = 1.0D+10
+ intarea = 1.0D+10
+ interror = .true.
+ goto 10
+ end if
+
+ end if
! Find 2D array for area element.
if (myproc.ge.npt*npp) then
- da = zero
+ da = zero
else