aboutsummaryrefslogtreecommitdiff
path: root/src/pointwise.F90
diff options
context:
space:
mode:
Diffstat (limited to 'src/pointwise.F90')
-rw-r--r--src/pointwise.F9046
1 files changed, 46 insertions, 0 deletions
diff --git a/src/pointwise.F90 b/src/pointwise.F90
index 80c8bc6..6f435cb 100644
--- a/src/pointwise.F90
+++ b/src/pointwise.F90
@@ -22,6 +22,9 @@ module pointwise
public get_scalarderivs2
public get_vectorderivs2
public get_tensorderivs2
+ public get_scalarderivs3
+ public get_vectorderivs3
+ public get_tensorderivs3
contains
#define TGR_INCLUDED
#include "derivs.F90"
@@ -247,4 +250,47 @@ contains
f(3,2,:,:) = fyz
f(3,3,:,:) = fzz
end subroutine get_tensorderivs2
+ subroutine get_scalarderivs3 (a, f, pos, off, dx)
+ CCTK_REAL, intent(in) :: a(*)
+ CCTK_REAL, intent(out) :: f(3,3,3)
+ integer, intent(in) :: pos, off(3)
+ CCTK_REAL, intent(in) :: dx(3)
+ call get_derivs3 (a, f, pos, off, dx)
+ end subroutine get_scalarderivs3
+ subroutine get_vectorderivs3 (ax,ay,az, f, pos, off, dx)
+ CCTK_REAL, intent(in) :: ax(*),ay(*),az(*)
+ CCTK_REAL, intent(out) :: f(3,3,3,3)
+ integer, intent(in) :: pos, off(3)
+ CCTK_REAL, intent(in) :: dx(3)
+ CCTK_REAL :: fx(3,3,3),fy(3,3,3),fz(3,3,3)
+ call get_derivs3 (ax, fx, pos, off, dx)
+ call get_derivs3 (ay, fy, pos, off, dx)
+ call get_derivs3 (az, fz, pos, off, dx)
+ f(1,:,:,:) = fx
+ f(2,:,:,:) = fy
+ f(3,:,:,:) = fz
+ end subroutine get_vectorderivs3
+ subroutine get_tensorderivs3 (axx,axy,axz,ayy,ayz,azz, f, pos, off, dx)
+ CCTK_REAL, intent(in) :: axx(*),axy(*),axz(*),ayy(*),ayz(*),azz(*)
+ CCTK_REAL, intent(out) :: f(3,3,3,3,3)
+ integer, intent(in) :: pos, off(3)
+ CCTK_REAL, intent(in) :: dx(3)
+ CCTK_REAL :: fxx(3,3,3),fxy(3,3,3),fxz(3,3,3),&
+ & fyy(3,3,3),fyz(3,3,3),fzz(3,3,3)
+ call get_derivs3 (axx, fxx, pos, off, dx)
+ call get_derivs3 (axy, fxy, pos, off, dx)
+ call get_derivs3 (axz, fxz, pos, off, dx)
+ call get_derivs3 (ayy, fyy, pos, off, dx)
+ call get_derivs3 (ayz, fyz, pos, off, dx)
+ call get_derivs3 (azz, fzz, pos, off, dx)
+ f(1,1,:,:,:) = fxx
+ f(1,2,:,:,:) = fxy
+ f(1,3,:,:,:) = fxz
+ f(2,1,:,:,:) = fxy
+ f(2,2,:,:,:) = fyy
+ f(2,3,:,:,:) = fyz
+ f(3,1,:,:,:) = fxz
+ f(3,2,:,:,:) = fyz
+ f(3,3,:,:,:) = fzz
+ end subroutine get_tensorderivs3
end module pointwise