aboutsummaryrefslogtreecommitdiff
path: root/src/D3_to_D2.F
diff options
context:
space:
mode:
authorherrmann <herrmann@5301f0c2-dbc4-4cee-b2f5-8d7afba4d129>2003-05-12 09:23:58 +0000
committerherrmann <herrmann@5301f0c2-dbc4-4cee-b2f5-8d7afba4d129>2003-05-12 09:23:58 +0000
commit7e155396eadfca19daeff52c0459d09e5574c980 (patch)
tree4891682caf72e98d0c43e6f6d91f8414da64e07b /src/D3_to_D2.F
parent98a1c9882513adf3daf0d65ba855cf590a5a1bf3 (diff)
Added private STRING parameter Extract::interpolation_operator defaulting to
"Lagrange polynomial interpolation". See LocalInterp for other interpolation_operator values. At the moment LocalInterp will use "Lagrange polynomial interpolation (tensor product)". Changed the testsuites to use "Lagrange polynomial interpolation (maximum degree)" to get the same behaviour as before and the testsuites to pass again. They didn't pass before, because the interpolator gives slightly different answers for the "tensor product" version. The Moncrief Q's should be zero for Schwarzschild. The result is for example 10^-6 rather than 10^-5 which was reported as a fail. git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/Extract/trunk@77 5301f0c2-dbc4-4cee-b2f5-8d7afba4d129
Diffstat (limited to 'src/D3_to_D2.F')
-rw-r--r--src/D3_to_D2.F13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/D3_to_D2.F b/src/D3_to_D2.F
index 7bc7586..da2294e 100644
--- a/src/D3_to_D2.F
+++ b/src/D3_to_D2.F
@@ -4,7 +4,8 @@
c ========================================================================
SUBROUTINE D3_to_D2(cctkGH,conformal_state,do_ADMmass,do_momentum,do_spin,
- & Psi_power,origin,myproc,interpolation_order,Dx,Dy,Dz,Psi,
+ & Psi_power,origin,myproc,interpolation_operator,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,
@@ -46,6 +47,8 @@ c Input variables
& Extract_temp3d
LOGICAL ::
& do_ADMmass(2)
+ CCTK_STRING,INTENT(IN) ::
+ & interpolation_operator
c Output variables
@@ -77,7 +80,9 @@ c Local variables, here only
CCTK_POINTER, dimension(8) :: out_arrays
CCTK_INT, dimension(8) :: out_array_type_codes
- character(30) options_string
+ character(128) options_string
+ character(128) operator
+ CCTK_INT nchars
c ------------------------------------------------------------------------
@@ -120,7 +125,9 @@ c --------------------------------------------------------------------
param_table_handle = -1
coord_system_handle = -1
- call CCTK_InterpHandle (interp_handle,"Lagrange polynomial interpolation")
+
+ call CCTK_FortranString(nchars,interpolation_operator,operator)
+ call CCTK_InterpHandle (interp_handle,operator)
if (interp_handle .lt. 0) then
call CCTK_WARN(0,"Cannot get handle for interpolation ! Forgot to activate an implementation providing interpolation operators ??")
endif