aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgoodale <goodale@f80f6fb6-8356-4fd4-90bc-d84ad503c100>2004-05-06 02:10:18 +0000
committergoodale <goodale@f80f6fb6-8356-4fd4-90bc-d84ad503c100>2004-05-06 02:10:18 +0000
commitdd7be309bde2ba064e4f1949a83e7cade571086e (patch)
tree9c3ca1927ca54f60d4e9a56b280d0a031dc773f1
parent5d6de3bdc161d01e531adb3c743a3e3ae5c05886 (diff)
Making WaveToy versions more consistent. This change also fixes the bug
in some of the implementations whereby "zero" rather than "scalar" was passed to the boundary condition routines - PR 1676. git-svn-id: http://svn.cactuscode.org/arrangements/CactusWave/WaveToyF90/trunk@100 f80f6fb6-8356-4fd4-90bc-d84ad503c100
-rw-r--r--src/WaveToy.F31
1 files changed, 14 insertions, 17 deletions
diff --git a/src/WaveToy.F b/src/WaveToy.F
index fb73cca..c8e6ef1 100644
--- a/src/WaveToy.F
+++ b/src/WaveToy.F
@@ -5,6 +5,7 @@
@desc
Evolution routines for the wave equation solver
@enddesc
+ @version $Header$
@@*/
#include "cctk.h"
@@ -12,8 +13,6 @@
#include "cctk_Arguments.h"
#include "cctk_Functions.h"
-#define BOUNDARY_ERROR if (ierr < 0) call CCTK_WARN(0,"WaveToyF90_Boundaries: Error in boundary routines")
-
/*@@
@routine WaveToyF90_Evolution
@date
@@ -110,33 +109,31 @@
DECLARE_CCTK_PARAMETERS
DECLARE_CCTK_FUNCTIONS
- integer :: ierr
+c Local declarations
+ CCTK_INT :: ierr
+
+ CHARACTER (len=100) :: boundary
+ INTEGER :: length
+
ierr = 0
+c The "bound" parameter needs to be converted into a Fortran string.
+ call CCTK_FortranString(length,bound,boundary)
+
c Apply the outer boundary conditions
c -----------------------------------
c Note: In each of the following calls to Boundary_SelectVarForBC,
c default arguments are used, so an invalid table handle of -1 can
c be passed
- if (CCTK_EQUALS(bound,"flat")) then
+ if (CCTK_EQUALS(bound,"flat") .or. CCTK_EQUALS(bound,"static") .or.
+ $ CCTK_EQUALS(bound,"radiation") .or. CCTK_EQUALS(bound,"robin") .or.
+ $ CCTK_EQUALS(bound,"none") ) then
ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1,
- $ "wavetoy::phi", "Flat")
- else if (CCTK_EQUALS(bound,"static")) then
- ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1,
- $ "wavetoy::phi", "Static")
- else if (CCTK_EQUALS(bound,"radiation")) then
- ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1,
- $ "wavetoy::phi", "Radiation")
- else if (CCTK_EQUALS(bound,"robin")) then
- ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1,
- $ "wavetoy::phi", "Robin")
+ $ "wavetoy::phi", boundary)
else if (CCTK_EQUALS(bound,"zero")) then
ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1,
$ "wavetoy::phi", "Scalar")
- else if (.NOT. CCTK_EQUALS(bound,"none")) then
- ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1,
- $ "wavetoy::phi", "None")
end if
if (ierr < 0) then