diff options
author | miguel <miguel@89daf98e-ef62-4674-b946-b8ff9de2216c> | 2000-03-29 09:27:40 +0000 |
---|---|---|
committer | miguel <miguel@89daf98e-ef62-4674-b946-b8ff9de2216c> | 2000-03-29 09:27:40 +0000 |
commit | 8962ab5257796f6d51097013b21fc37bf1bf92eb (patch) | |
tree | c8ad1d0fa525cb36d109cb8d20ca9c1543575081 /src/AHFinder_int.F | |
parent | 67b84578f60430fc8c55117cb85ae189d87f8255 (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.F | 49 |
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 |