aboutsummaryrefslogtreecommitdiff
path: root/src/ADMmass_integrand3D.F
diff options
context:
space:
mode:
Diffstat (limited to 'src/ADMmass_integrand3D.F')
-rw-r--r--src/ADMmass_integrand3D.F57
1 files changed, 44 insertions, 13 deletions
diff --git a/src/ADMmass_integrand3D.F b/src/ADMmass_integrand3D.F
index 06b1198..a501ef1 100644
--- a/src/ADMmass_integrand3D.F
+++ b/src/ADMmass_integrand3D.F
@@ -1,9 +1,10 @@
#include "cctk.h"
+#include "cctk_Parameters.h"
c ========================================================================
SUBROUTINE ADMmass_integrand3D(origin,Dx,Dy,Dz,x,y,z,gxx,gxy,gxz,
- & gyy,gyz,gzz,ADMmass_int,Psi,Psi_power)
+ & gyy,gyz,gzz,ADMmass_int,Psi,Psi_power,conformal_state)
c ------------------------------------------------------------------------
c
@@ -16,7 +17,7 @@ c ------------------------------------------------------------------------
c Input variables
INTEGER,INTENT(IN) ::
- & Psi_power
+ & Psi_power,conformal_state
CCTK_REAL,INTENT(IN) ::
& Dx,Dy,Dz,origin(3)
CCTK_REAL,DIMENSION(:),INTENT(IN) ::
@@ -39,6 +40,9 @@ c Local variables, here only
& dyy_x,dxz_x,dxz_y,dxz_z,dyz_x,dzz_x,dyy_z,dyz_y,dyz_z,dzz_y,
& Pi,idet,p,pip,pim,pjp,pjm,pkp,pkm
+ DECLARE_CCTK_PARAMETERS
+ DECLARE_CCTK_FUNCTIONS
+
c ------------------------------------------------------------------------
Pi = ACOS(-1D0)
@@ -74,11 +78,24 @@ c Because other codes evolve Psi**4
c Abbreviations for metric coefficients
c -------------------------------------
- p = psi(i,j,k)**ip
- dxx = p*gxx(i,j,k); dxy = p*gxy(i,j,k)
- dxz = p*gxz(i,j,k); dyy = p*gyy(i,j,k)
- dyz = p*gyz(i,j,k); dzz = p*gzz(i,j,k)
+ if (conformal_state > 0) then
+
+ p = psi(i,j,k)**ip
+
+ dxx = p*gxx(i,j,k); dxy = p*gxy(i,j,k)
+ dxz = p*gxz(i,j,k); dyy = p*gyy(i,j,k)
+ dyz = p*gyz(i,j,k); dzz = p*gzz(i,j,k)
+
+ else
+
+ p = 1
+
+ dxx = gxx(i,j,k); dxy = gxy(i,j,k)
+ dxz = gxz(i,j,k); dyy = gyy(i,j,k)
+ dyz = gyz(i,j,k); dzz = gzz(i,j,k)
+
+ end if
c Determinant of 3-metric
c -----------------------
@@ -98,12 +115,26 @@ c ----------------
c Derivatives of the 3-metric
c ---------------------------
- pip = psi(i+1,j,k)**ip
- pim = psi(i-1,j,k)**ip
- pjp = psi(i,j+1,k)**ip
- pjm = psi(i,j-1,k)**ip
- pkp = psi(i,j,k+1)**ip
- pkm = psi(i,j,k-1)**ip
+
+ IF (conformal_state > 0) THEN
+
+ pip = psi(i+1,j,k)**ip
+ pim = psi(i-1,j,k)**ip
+ pjp = psi(i,j+1,k)**ip
+ pjm = psi(i,j-1,k)**ip
+ pkp = psi(i,j,k+1)**ip
+ pkm = psi(i,j,k-1)**ip
+
+ else
+
+ pip = 1.0d0
+ pim = 1.0d0
+ pjp = 1.0d0
+ pjm = 1.0d0
+ pkp = 1.0d0
+ pkm = 1.0d0
+
+ end if
dxx_y = half/Dy*(pjp*gxx(i,j+1,k)-pjm*gxx(i,j-1,k))
dxx_z = half/Dz*(pkp*gxx(i,j,k+1)-pkm*gxx(i,j,k-1))
@@ -141,7 +172,7 @@ c ---------------------------
ADMmass_int(i,j,k) = 0.0D0
ENDIF
-
+
ENDDO
ENDDO
ENDDO