From 33c044d74e13ff89da64e278d5f099fc380fe12f Mon Sep 17 00:00:00 2001 From: tradke Date: Thu, 15 Feb 2001 14:42:30 +0000 Subject: Use the new interpolation flesh API routines and call the new interpolation operators from PUGHInterp (according to the setting of the Extract::interpolation_order parameter). git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/Extract/trunk@37 5301f0c2-dbc4-4cee-b2f5-8d7afba4d129 --- src/D3_extract.F | 6 +- src/D3_extract_int.F | 4 +- src/D3_to_D2.F | 360 +++++++++++++++++++++++---------------------------- src/D3_to_D2_int.F | 4 +- src/Extract.F | 5 +- 5 files changed, 169 insertions(+), 210 deletions(-) diff --git a/src/D3_extract.F b/src/D3_extract.F index e2b9980..4fb6899 100644 --- a/src/D3_extract.F +++ b/src/D3_extract.F @@ -4,7 +4,7 @@ c ================================================================== SUBROUTINE D3_extract(cctkGH,do_ADMmass,do_momentum,do_spin,igrid, - & origin,myproc,Nt,Np,all_modes, + & origin,myproc,interpolation_order,Nt,Np,all_modes, & l,m,x,y,z,Dx,Dy,Dz,Psi_power,Psi, & g00,gxx,gxy,gxz,gyy,gyz,gzz,hxx,hxy,hxz,hyy,hyz,hzz, & eta,ADMmass,momentum,spin,mass,rsch,Qodd,Qeven,Extract_temp3d,dtaudt) @@ -73,7 +73,7 @@ c Input variables INTEGER,INTENT(IN) :: & igrid,l,m,Psi_power,myproc CCTK_INT,INTENT(IN) :: - & Nt,Np,all_modes,do_momentum,do_spin + & Nt,Np,all_modes,do_momentum,do_spin,interpolation_order INTEGER,INTENT(IN) :: & do_ADMmass(2) CCTK_REAL,INTENT(IN) :: @@ -162,7 +162,7 @@ c c ------------------------------------------------------------------ CALL D3_to_D2(cctkGH,do_ADMmass,do_momentum,do_spin, - & Psi_power,origin,myproc,Dx,Dy,Dz,Psi, + & Psi_power,origin,myproc,interpolation_order,Dx,Dy,Dz,Psi, & g00,gxx,gxy,gxz,gyy,gyz,gzz,hxx,hxy,hxz,hyy,hyz,hzz, & x,y,z,eta,Nt,Np,theta,phi,Psis,g00s,gxxs,gxys,gxzs, & gyys,gyzs,gzzs,dPsis,dgxxs,dgxys,dgxzs,dgyys,dgyzs,dgzzs, diff --git a/src/D3_extract_int.F b/src/D3_extract_int.F index 3bb617a..357f995 100644 --- a/src/D3_extract_int.F +++ b/src/D3_extract_int.F @@ -8,7 +8,7 @@ c ------------------------------------------------------------------ INTERFACE SUBROUTINE D3_extract(cctkGH,do_ADMmass,do_momentum,do_spin,igrid, - & origin,myproc, + & origin,myproc,interpolation_order, & Nt,Np,all_modes,l,m,x,y,z,Dx,Dy,Dz,Psi_power,Psi, & g00,gxx,gxy,gxz,gyy,gyz,gzz,hxx,hxy,hxz,hyy,hyz,hzz, & eta,ADMmass,momentum,spin,mass,rsch,Qodd,Qeven, @@ -21,7 +21,7 @@ c ------------------------------------------------------------------ INTEGER,INTENT(IN) :: & igrid,l,m,Psi_power,myproc CCTK_INT,INTENT(IN) :: - & Nt,Np,all_modes,do_momentum,do_spin + & Nt,Np,all_modes,do_momentum,do_spin,interpolation_order INTEGER,INTENT(IN) :: & do_ADMmass(2) CCTK_REAL,INTENT(IN) :: diff --git a/src/D3_to_D2.F b/src/D3_to_D2.F index 7d49d0a..ceb7217 100644 --- a/src/D3_to_D2.F +++ b/src/D3_to_D2.F @@ -4,7 +4,7 @@ c ======================================================================== SUBROUTINE D3_to_D2(cctkGH,do_ADMmass,do_momentum,do_spin, - & Psi_power,origin,myproc,Dx,Dy,Dz,Psi, + & Psi_power,origin,myproc,interpolation_order,Dx,Dy,Dz,Psi, & g00,gxx,gxy,gxz,gyy,gyz,gzz,hxx,hxy,hxz,hyy,hyz,hzz, & x,y,z,eta,Nt,Np,theta,phi, & Psis,g00s,gxxs,gxys,gxzs,gyys,gyzs,gzzs,dPsis,dgxxs,dgxys,dgxzs, @@ -33,7 +33,7 @@ c Input variables INTEGER,INTENT(IN) :: & myproc,Psi_power CCTK_INT, INTENT(IN) :: - & Nt,Np,do_momentum,do_spin + & Nt,Np,do_momentum,do_spin,interpolation_order CCTK_REAL,INTENT(IN) :: & origin(3),Dx,Dy,Dz,eta CCTK_REAL,INTENT(IN),DIMENSION(:) :: @@ -70,9 +70,9 @@ c Local variables, passed on c Local variables, here only INTEGER :: - & i,j,handle,ierror - CCTK_REAL :: - & xmin,xmax,ymin,ymax,zmin,zmax + & i,j,interp_handle,coord_system_handle,ierror + INTEGER, DIMENSION(8) :: in_array_indices + c ------------------------------------------------------------------------ @@ -109,138 +109,134 @@ c -------------------------------------- END SELECT -c Choose the interpolator -c ----------------------- - call CCTK_InterpHandle (handle, "simple") +c Get the interpolator and coordinate system handle +c ------------------------------------------------- + interp_handle = -1 + coord_system_handle = -1 + + if (interpolation_order .eq. 1) then + call CCTK_InterpHandle (interp_handle, "first-order uniform cartesian") + else if (interpolation_order .eq. 2) then + call CCTK_InterpHandle (interp_handle, "second-order uniform cartesian") + else if (interpolation_order .eq. 3) then + call CCTK_InterpHandle (interp_handle, "third-order uniform cartesian") + endif + + call CCTK_CoordSystemHandle (coord_system_handle, "cart3d") + if (interp_handle .lt. 0 .or. coord_system_handle .lt. 0) then + call CCTK_WARN (0, "Couldn't get handles for interpolation operator and/or coordinate system") + endif -c Find the local origin of the spatial coordinates -c ------------------------------------------------ - call CCTK_CoordLocalRange(ierror,cctkGH,xmin,xmax,-1,"x","cart3d") - call CCTK_CoordLocalRange(ierror,cctkGH,ymin,ymax,-1,"y","cart3d") - call CCTK_CoordLocalRange(ierror,cctkGH,zmin,zmax,-1,"z","cart3d") +c Get indices of GFs to interpolate +c --------------------------------- + call CCTK_VarIndex(in_array_indices(1), "einstein::psi") + call CCTK_VarIndex(in_array_indices(2), "extract::g00") + call CCTK_VarIndex(in_array_indices(3), "einstein::gxx") + call CCTK_VarIndex(in_array_indices(4), "einstein::gxy") + call CCTK_VarIndex(in_array_indices(5), "einstein::gxz") + call CCTK_VarIndex(in_array_indices(6), "einstein::gyy") + call CCTK_VarIndex(in_array_indices(7), "einstein::gyz") + call CCTK_VarIndex(in_array_indices(8), "einstein::gzz") c Project un-physical metric and conformal factor onto sphere c ------------------------------------------------------------ - call CCTK_Interp (ierror, cctkGH, handle, npoints, 3, 8, 8, - $ nx, ny, nz, - $ xs, ys, zs, - $ CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, - $ CCTK_VARIABLE_REAL, - $ xmin, ymin, zmin, - $ dx, dy, dz, - $ Psi,g00,gxx,gxy,gxz,gyy,gyz,gzz, - $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, - $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, - $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, - $ Psis,g00s,gxxs,gxys,gxzs,gyys,gyzs,gzzs, - $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, - $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, - $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL - $ ) + call CCTK_InterpGV (ierror, cctkGH, interp_handle, coord_system_handle, + $ npoints, 8, 8, + $ xs, ys, zs, + $ CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, + $ in_array_indices(1), in_array_indices(2), + $ in_array_indices(3), in_array_indices(4), + $ in_array_indices(5), in_array_indices(6), + $ in_array_indices(7), in_array_indices(8), + $ Psis, g00s, gxxs, gxys, gxzs, gyys, gyzs, gzzs, + $ CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL) c Calculate radial derivatives and project onto sphere c ---------------------------------------------------- CALL met_rad_der(origin,Dx,Dy,Dz,x,y,z,Psi,Extract_temp3d) CALL CCTK_SyncGroup(cctkGH,"extract::temps") - call CCTK_Interp (ierror, cctkGH, handle, npoints, 3, 1, 1, - $ nx, ny, nz, - $ xs, ys, zs, - $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, - $ xmin, ymin, zmin, - $ dx, dy, dz, - $ Extract_temp3d, - $ CCTK_VARIABLE_REAL, - $ dPsis, - $ CCTK_VARIABLE_REAL - $ ) + call CCTK_VarIndex(in_array_indices(1), "extract::temp3d") + call CCTK_InterpGV (ierror, cctkGH, interp_handle, coord_system_handle, + $ npoints, 1, 1, + $ xs, ys, zs, + $ CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, + $ in_array_indices(1), + $ dPsis, + $ CCTK_VARIABLE_REAL) CALL met_rad_der(origin,Dx,Dy,Dz,x,y,z,gxx,Extract_temp3d) CALL CCTK_SyncGroup(cctkGH,"extract::temps") - call CCTK_Interp (ierror, cctkGH, handle, npoints, 3, 1, 1, - $ nx, ny, nz, - $ xs, ys, zs, - $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, - $ xmin, ymin, zmin, - $ dx, dy, dz, - $ Extract_temp3d, - $ CCTK_VARIABLE_REAL, - $ dgxxs, - $ CCTK_VARIABLE_REAL - $ ) + call CCTK_InterpGV (ierror, cctkGH, interp_handle, coord_system_handle, + $ npoints, 1, 1, + $ xs, ys, zs, + $ CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, + $ in_array_indices(1), + $ dgxxs, + $ CCTK_VARIABLE_REAL) CALL met_rad_der(origin,Dx,Dy,Dz,x,y,z,gxy,Extract_temp3d) CALL CCTK_SyncGroup(cctkGH,"extract::temps") - call CCTK_Interp (ierror, cctkGH, handle, npoints, 3, 1, 1, - $ nx, ny, nz, - $ xs, ys, zs, - $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, - $ xmin, ymin, zmin, - $ dx, dy, dz, - $ Extract_temp3d, - $ CCTK_VARIABLE_REAL, - $ dgxys, - $ CCTK_VARIABLE_REAL - $ ) + call CCTK_InterpGV (ierror, cctkGH, interp_handle, coord_system_handle, + $ npoints, 1, 1, + $ xs, ys, zs, + $ CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, + $ in_array_indices(1), + $ dgxys, + $ CCTK_VARIABLE_REAL) CALL met_rad_der(origin,Dx,Dy,Dz,x,y,z,gxz,Extract_temp3d) CALL CCTK_SyncGroup(cctkGH,"extract::temps") - call CCTK_Interp (ierror, cctkGH, handle, npoints, 3, 1, 1, - $ nx, ny, nz, - $ xs, ys, zs, - $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, - $ xmin, ymin, zmin, - $ dx, dy, dz, - $ Extract_temp3d, - $ CCTK_VARIABLE_REAL, - $ dgxzs, - $ CCTK_VARIABLE_REAL - $ ) + call CCTK_InterpGV (ierror, cctkGH, interp_handle, coord_system_handle, + $ npoints, 1, 1, + $ xs, ys, zs, + $ CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, + $ in_array_indices(1), + $ dgxzs, + $ CCTK_VARIABLE_REAL) CALL met_rad_der(origin,Dx,Dy,Dz,x,y,z,gyy,Extract_temp3d) CALL CCTK_SyncGroup(cctkGH,"extract::temps") - call CCTK_Interp (ierror, cctkGH, handle, npoints, 3, 1, 1, - $ nx, ny, nz, - $ xs, ys, zs, - $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, - $ xmin, ymin, zmin, - $ dx, dy, dz, - $ Extract_temp3d, - $ CCTK_VARIABLE_REAL, - $ dgyys, - $ CCTK_VARIABLE_REAL - $ ) + call CCTK_InterpGV (ierror, cctkGH, interp_handle, coord_system_handle, + $ npoints, 1, 1, + $ xs, ys, zs, + $ CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, + $ in_array_indices(1), + $ dgyys, + $ CCTK_VARIABLE_REAL) CALL met_rad_der(origin,Dx,Dy,Dz,x,y,z,gyz,Extract_temp3d) CALL CCTK_SyncGroup(cctkGH,"extract::temps") - call CCTK_Interp (ierror, cctkGH, handle, npoints, 3, 1, 1, - $ nx, ny, nz, - $ xs, ys, zs, - $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, - $ xmin, ymin, zmin, - $ dx, dy, dz, - $ Extract_temp3d, - $ CCTK_VARIABLE_REAL, - $ dgyzs, - $ CCTK_VARIABLE_REAL - $ ) - + call CCTK_InterpGV (ierror, cctkGH, interp_handle, coord_system_handle, + $ npoints, 1, 1, + $ xs, ys, zs, + $ CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, + $ in_array_indices(1), + $ dgyzs, + $ CCTK_VARIABLE_REAL) CALL met_rad_der(origin,Dx,Dy,Dz,x,y,z,gzz,Extract_temp3d) CALL CCTK_SyncGroup(cctkGH,"extract::temps") - call CCTK_Interp (ierror, cctkGH, handle, npoints, 3, 1, 1, - $ nx, ny, nz, - $ xs, ys, zs, - $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, - $ xmin, ymin, zmin, - $ dx, dy, dz, - $ Extract_temp3d, - $ CCTK_VARIABLE_REAL, - $ dgzzs, - $ CCTK_VARIABLE_REAL - $ ) + call CCTK_InterpGV (ierror, cctkGH, interp_handle, coord_system_handle, + $ npoints, 1, 1, + $ xs, ys, zs, + $ CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, + $ in_array_indices(1), + $ dgzzs, + $ CCTK_VARIABLE_REAL) c Calculate integrands for ADM masses @@ -250,17 +246,14 @@ c Standard equation CALL ADMmass_integrand3D(origin,Dx,Dy,Dz,x,y,z,gxx,gxy, & gxz,gyy,gyz,gzz,Extract_temp3d,Psi,Psi_power) CALL CCTK_SyncGroup(cctkGH,"extract::temps") - call CCTK_Interp (ierror, cctkGH, handle, npoints, 3, 1, 1, - $ nx, ny, nz, - $ xs, ys, zs, - $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, - $ xmin, ymin, zmin, - $ dx, dy, dz, - $ Extract_temp3d, - $ CCTK_VARIABLE_REAL, - $ ADMmass_int1, - $ CCTK_VARIABLE_REAL - $ ) + call CCTK_InterpGV (ierror, cctkGH, interp_handle, coord_system_handle, + $ npoints, 1, 1, + $ xs, ys, zs, + $ CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, + $ in_array_indices(1), + $ ADMmass_int1, + $ CCTK_VARIABLE_REAL) END IF @@ -277,50 +270,41 @@ c --------------------------------- & gxx,gxy,gxz,gyy,gyz,gzz,hxx,hxy,hxz,hyy,hyz,hzz, & Extract_temp3d,Psi,Psi_power) CALL CCTK_SyncGroup(cctkGH,"extract::temps") - call CCTK_Interp (ierror, cctkGH, handle, npoints, 3, 1, 1, - $ nx, ny, nz, - $ xs, ys, zs, - $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, - $ xmin, ymin, zmin, - $ dx, dy, dz, - $ Extract_temp3d, - $ CCTK_VARIABLE_REAL, - $ momentum_int1, - $ CCTK_VARIABLE_REAL - $ ) + call CCTK_InterpGV (ierror, cctkGH, interp_handle, coord_system_handle, + $ npoints, 1, 1, + $ xs, ys, zs, + $ CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, + $ in_array_indices(1), + $ momentum_int1, + $ CCTK_VARIABLE_REAL) CALL momentum_integrand3D(origin,Dx,Dy,Dz,x,y,z, & gxx,gxy,gxz,gyy,gyz,gzz,hxx,hxy,hxz,hyy,hyz,hzz, & Extract_temp3d,Psi,Psi_power) CALL CCTK_SyncGroup(cctkGH,"extract::temps") - call CCTK_Interp (ierror, cctkGH, handle, npoints, 3, 1, 1, - $ nx, ny, nz, - $ xs, ys, zs, - $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, - $ xmin, ymin, zmin, - $ dx, dy, dz, - $ Extract_temp3d, - $ CCTK_VARIABLE_REAL, - $ momentum_int2, - $ CCTK_VARIABLE_REAL - $ ) + call CCTK_InterpGV (ierror, cctkGH, interp_handle, coord_system_handle, + $ npoints, 1, 1, + $ xs, ys, zs, + $ CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, + $ in_array_indices(1), + $ momentum_int2, + $ CCTK_VARIABLE_REAL) CALL momentum_integrand3D(origin,Dx,Dy,Dz,x,y,z, & gxx,gxy,gxz,gyy,gyz,gzz,hxx,hxy,hxz,hyy,hyz,hzz, & Extract_temp3d,Psi,Psi_power) CALL CCTK_SyncGroup(cctkGH,"extract::temps") - call CCTK_Interp (ierror, cctkGH, handle, npoints, 3, 1, 1, - $ nx, ny, nz, - $ xs, ys, zs, - $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, - $ xmin, ymin, zmin, - $ dx, dy, dz, - $ Extract_temp3d, - $ CCTK_VARIABLE_REAL, - $ momentum_int3, - $ CCTK_VARIABLE_REAL - $ ) + call CCTK_InterpGV (ierror, cctkGH, interp_handle, coord_system_handle, + $ npoints, 1, 1, + $ xs, ys, zs, + $ CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, + $ in_array_indices(1), + $ momentum_int3, + $ CCTK_VARIABLE_REAL) END IF @@ -332,68 +316,42 @@ c ----------------------------- & gxx,gxy,gxz,gyy,gyz,gzz,hxx,hxy,hxz,hyy,hyz,hzz, & Extract_temp3d,Psi,Psi_power) CALL CCTK_SyncGroup(cctkGH,"extract::temps") - call CCTK_Interp (ierror, cctkGH, handle, npoints, 3, 1, 1, - $ nx, ny, nz, - $ xs, ys, zs, - $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, - $ xmin, ymin, zmin, - $ dx, dy, dz, - $ Extract_temp3d, - $ CCTK_VARIABLE_REAL, - $ spin_int1, - $ CCTK_VARIABLE_REAL - $ ) + call CCTK_InterpGV (ierror, cctkGH, interp_handle, coord_system_handle, + $ npoints, 1, 1, + $ xs, ys, zs, + $ CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, + $ in_array_indices(1), + $ spin_int1, + $ CCTK_VARIABLE_REAL) CALL spin_integrand3D(origin,x,y,z, & gxx,gxy,gxz,gyy,gyz,gzz,hxx,hxy,hxz,hyy,hyz,hzz, & Extract_temp3d,Psi,Psi_power) CALL CCTK_SyncGroup(cctkGH,"extract::temps") - call CCTK_Interp (ierror, cctkGH, handle, npoints, 3, 1, 1, - $ nx, ny, nz, - $ xs, ys, zs, - $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, - $ xmin, ymin, zmin, - $ dx, dy, dz, - $ Extract_temp3d, - $ CCTK_VARIABLE_REAL, - $ spin_int2, - $ CCTK_VARIABLE_REAL - $ ) + call CCTK_InterpGV (ierror, cctkGH, interp_handle, coord_system_handle, + $ npoints, 1, 1, + $ xs, ys, zs, + $ CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, + $ in_array_indices(1), + $ spin_int2, + $ CCTK_VARIABLE_REAL) CALL spin_integrand3D(origin,x,y,z, & gxx,gxy,gxz,gyy,gyz,gzz,hxx,hxy,hxz,hyy,hyz,hzz, & Extract_temp3d,Psi,Psi_power) CALL CCTK_SyncGroup(cctkGH,"extract::temps") - call CCTK_Interp (ierror, cctkGH, handle, npoints, 3, 1, 1, - $ nx, ny, nz, - $ xs, ys, zs, - $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, - $ xmin, ymin, zmin, - $ dx, dy, dz, - $ Extract_temp3d, - $ CCTK_VARIABLE_REAL, - $ spin_int3, - $ CCTK_VARIABLE_REAL - $ ) + call CCTK_InterpGV (ierror, cctkGH, interp_handle, coord_system_handle, + $ npoints, 1, 1, + $ xs, ys, zs, + $ CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, + $ in_array_indices(1), + $ spin_int3, + $ CCTK_VARIABLE_REAL) END IF END SUBROUTINE D3_to_D2 - - - - - - - - - - - - - - - - - diff --git a/src/D3_to_D2_int.F b/src/D3_to_D2_int.F index 297e22e..8f19412 100644 --- a/src/D3_to_D2_int.F +++ b/src/D3_to_D2_int.F @@ -8,7 +8,7 @@ c ------------------------------------------------------------------ INTERFACE SUBROUTINE D3_to_D2(cctkGH,do_ADMmass,do_momentum,do_spin, - & Psi_power,origin,myproc,Dx,Dy,Dz,Psi, + & Psi_power,origin,myproc,interpolation_order,Dx,Dy,Dz,Psi, & g00,gxx,gxy,gxz,gyy,gyz,gzz,hxx,hxy,hxz,hyy,hyz,hzz, & x,y,z,eta,Nt,Np,theta,phi,Psis,g00s,gxxs,gxys, & gxzs,gyys,gyzs,gzzs,dPsis,dgxxs,dgxys,dgxzs,dgyys,dgyzs, @@ -21,7 +21,7 @@ c ------------------------------------------------------------------ INTEGER,INTENT(IN) :: & myproc,Psi_power CCTK_INT, INTENT(IN) :: - & Nt,Np,do_momentum,do_spin + & Nt,Np,do_momentum,do_spin,interpolation_order INTEGER :: & do_ADMmass(2) CCTK_REAL,INTENT(IN) :: diff --git a/src/Extract.F b/src/Extract.F index d760596..49d0ba9 100644 --- a/src/Extract.F +++ b/src/Extract.F @@ -378,7 +378,7 @@ c Do extraction at each radius extract_at_each_radius: DO WHILE (radius < r2) CALL D3_extract(cctkGH,do_ADMmass,do_momentum,do_spin, - & igrid,orig,myproc,Nt,Np,all_modes,lmode, + & igrid,orig,myproc,interpolation_order,Nt,Np,all_modes,lmode, & mmode,x_1d,y_1d,z_1d,Dx,Dy,Dz,Psi_power,Psi,g00, & gxx,gxy,gxz,gyy,gyz,gzz,kxx,kxy,kxz,kyy,kyz,kzz, & radius,ADMmass,momentum,spin,mass,rsch, @@ -549,7 +549,8 @@ c Cannot use the conformal equation for ADM mass now END IF CALL D3_extract(cctkGH,do_ADMmass,do_momentum,do_spin, - & igrid,orig,myproc,Nt,Np,all_modes,lmode,mmode,x_1d,y_1d,z_1d, + & igrid,orig,myproc,interpolation_order,Nt,Np,all_modes, + & lmode,mmode,x_1d,y_1d,z_1d, & Dx,Dy,Dz,Psi_power,Psi,g00,gxx,gxy,gxz,gyy,gyz,gzz,kxx,kxy,kxz, & kyy,kyz,kzz,radius,ADMmass,momentum,spin,mass,rsch, & Qodd,Qeven,temp3d,dtaudt) -- cgit v1.2.3