aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgoodale <goodale@4451c3c6-1034-4891-99ea-21147727ccdf>2000-03-28 07:04:06 +0000
committergoodale <goodale@4451c3c6-1034-4891-99ea-21147727ccdf>2000-03-28 07:04:06 +0000
commita457121df89fc3569421ccf68534a74838877c1f (patch)
treec3354ac29b3cf70484386c3bab9c31ceb4bf6ef4
parent9e3cd4562586e8e5a14e73f0e2f8e06c0f41e6f0 (diff)
60% more MFlop/s
Tom git-svn-id: http://svn.cactuscode.org/arrangements/CactusWave/WaveToyF77/trunk@49 4451c3c6-1034-4891-99ea-21147727ccdf
-rw-r--r--src/WaveToy.F7723
1 files changed, 17 insertions, 6 deletions
diff --git a/src/WaveToy.F77 b/src/WaveToy.F77
index 13e1fad..6130447 100644
--- a/src/WaveToy.F77
+++ b/src/WaveToy.F77
@@ -42,6 +42,8 @@ c Declare variables in argument list
INTEGER i,j,k,ierr
INTEGER istart, jstart, kstart, iend, jend, kend
CCTK_REAL dx,dy,dz,dt
+ CCTK_REAL dx2,dy2,dz2,dt2
+ CCTK_REAL dx2i,dy2i,dz2i
c Set up shorthands
c -----------------
@@ -50,6 +52,15 @@ c -----------------
dz = CCTK_DELTA_SPACE(3)
dt = CCTK_DELTA_TIME
+ dx2 = dx*dx
+ dy2 = dy*dy
+ dz2 = dz*dz
+ dt2 = dt*dt
+
+ dx2i = 1.0/dx2
+ dy2i = 1.0/dy2
+ dz2i = 1.0/dz2
+
istart = 2
jstart = 2
kstart = 2
@@ -65,12 +76,12 @@ c ----------------
do i = istart, iend
phi_next(i,j,k) =
- & 2.0*(1.0 - (dt**2)*(1.0/dx**2 +
- & 1.0/dy**2 +1.0/dz**2))*phi(i,j,k) -
- & phi_old(i,j,k) + (dt**2) *
- & ((phi(i+1,j,k)+phi(i-1,j,k))/dx**2
- & +(phi(i,j+1,k)+phi(i,j-1,k))/dy**2
- & +(phi(i,j,k+1)+phi(i,j,k-1))/dz**2)
+ & 2.0*(1.0 - (dt2)*(dx2i +
+ & dy2i +dz2i))*phi(i,j,k) -
+ & phi_old(i,j,k) + (dt2) *
+ & ((phi(i+1,j,k)+phi(i-1,j,k))*dx2i
+ & +(phi(i,j+1,k)+phi(i,j-1,k))*dy2i
+ & +(phi(i,j,k+1)+phi(i,j,k-1))*dz2i)
end do
end do