aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorallen <allen@f80f6fb6-8356-4fd4-90bc-d84ad503c100>1999-07-29 20:29:17 +0000
committerallen <allen@f80f6fb6-8356-4fd4-90bc-d84ad503c100>1999-07-29 20:29:17 +0000
commit2e79efbd010b598ed77b27f4adb5a0d7162d6c78 (patch)
tree716984eef7f8c9a4bb1b76bd056299354d5986fb
parent41bb7119fae5797ed8422cee41c46f7d932145c4 (diff)
This commit was generated by cvs2svn to compensate for changes in r2, which
included commits to RCS files with non-trunk default branches. git-svn-id: http://svn.cactuscode.org/arrangements/CactusWave/WaveToyF90/trunk@3 f80f6fb6-8356-4fd4-90bc-d84ad503c100
-rw-r--r--README20
-rw-r--r--interface.ccl27
-rw-r--r--par/wavetoy.par16
-rw-r--r--par/wavetoy_flat.par42
-rw-r--r--par/wavetoy_none.par42
-rw-r--r--par/wavetoy_rad.par42
-rw-r--r--param.ccl63
-rw-r--r--schedule.ccl38
-rw-r--r--src/CheckParameters.F51
-rw-r--r--src/InitSymBound.F41
-rw-r--r--src/InitialData.F96
-rw-r--r--src/Startup.c10
-rw-r--r--src/WaveToy.F137
-rw-r--r--src/make.code.defn9
-rw-r--r--test/test_wavetoyf90.par28
-rw-r--r--test/test_wavetoyf90/phi.dl138
-rw-r--r--test/test_wavetoyf90/phi.xl138
-rw-r--r--test/test_wavetoyf90/phi.yl138
-rw-r--r--test/test_wavetoyf90/phi_max.tl7
-rw-r--r--test/test_wavetoyf90/phi_min.tl7
-rw-r--r--test/test_wavetoyf90/phi_nm1.tl7
-rw-r--r--test/test_wavetoyf90/phi_nm2.tl7
22 files changed, 1104 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..f2de3f1
--- /dev/null
+++ b/README
@@ -0,0 +1,20 @@
+Cactus Code Thorn WaveToy
+Authors : ...
+Managed by : ... <...@...........>
+Version : ...
+CVS info : $Header$
+--------------------------------------------------------------------------
+
+1. Purpose of the thorn
+
+This thorn does ...
+
+2. Dependencies of the thorn
+
+This thorn additionally requires thorns ...
+
+3. Thorn distribution
+
+This thorn is available to ...
+
+4. Additional information
diff --git a/interface.ccl b/interface.ccl
new file mode 100644
index 0000000..906b862
--- /dev/null
+++ b/interface.ccl
@@ -0,0 +1,27 @@
+# Interface definition for thorn WaveToy90
+# $Header$
+
+implements: wavetoy
+inherits: grid
+
+protected:
+
+cctk_real scalarevolve type = GF
+{
+ phi
+} "The evolved scalar field"
+
+private:
+
+cctk_real scalarold type = GF
+{
+ phi_old
+} "The scalar field at the last timestep"
+
+cctk_real scalartmps type = GF
+{
+ phi_tmp
+} "Temporary GFs for WaveToy"
+
+
+
diff --git a/par/wavetoy.par b/par/wavetoy.par
new file mode 100644
index 0000000..627df92
--- /dev/null
+++ b/par/wavetoy.par
@@ -0,0 +1,16 @@
+# wavetoy.par - minimal wavetoy evolution
+# $Id$
+#
+# /*@@
+# @file wavetoy.par
+# @date Sunday 24th July
+# @author Gabrielle Allen
+# @desc
+# Wavetoy parameter file demonstrating minimal evolution
+# @enddesc
+# @@*/
+
+ActiveThorns = "wavetoy pugh cartgrid3d ioutil ioascii"
+
+IOASCII::output1D = "wavetoy::phi"
+
diff --git a/par/wavetoy_flat.par b/par/wavetoy_flat.par
new file mode 100644
index 0000000..51e4c0f
--- /dev/null
+++ b/par/wavetoy_flat.par
@@ -0,0 +1,42 @@
+# wavetoy_flat.par - wavetoy evolution with flat boundaries
+# $Id$
+#
+# /*@@
+# @file wavetoy_rad.par
+# @date Sunday 24th July
+# @author Gabrielle Allen
+# @desc
+# Wavetoy parameter file demonstrating flat boundaries in Octant
+# @enddesc
+# @@*/
+
+ActiveThorns = "wavetoy pugh cartgrid3d ioutil ioascii"
+
+wavetoy::initial_data = "gaussian"
+wavetoy::sigma = 2.8
+wavetoy::radius = 0
+wavetoy::bound = "flat"
+
+grid::type = "BySpacing"
+grid::symmetry = "octant"
+grid::dxyx = 0.01
+
+driver::global_nx = 30
+driver::global_ny = 30
+driver::global_nz = 30
+
+cctk_itlast = 500
+
+IOASCII::output0d_every = 10
+IOASCII::output0D = "wavetoy::phi"
+
+IOASCII::output1d_every = 10
+IOASCII::Doz_1D = "no"
+IOASCII::Doy_1D = "no"
+IOASCII::output1D = "wavetoy::phi "
+
+IOASCII::outputinfo_every = 50
+IOASCII::output_info = "wavetoy::phi"
+
+IO::outdir = "wavetoy_flat"
+
diff --git a/par/wavetoy_none.par b/par/wavetoy_none.par
new file mode 100644
index 0000000..af2b642
--- /dev/null
+++ b/par/wavetoy_none.par
@@ -0,0 +1,42 @@
+# wavetoy_flat.par - wavetoy evolution with flat boundaries
+# $Id$
+#
+# /*@@
+# @file wavetoy_rad.par
+# @date Sunday 24th July
+# @author Gabrielle Allen
+# @desc
+# Wavetoy parameter file demonstrating flat boundaries in Octant
+# @enddesc
+# @@*/
+
+ActiveThorns = "wavetoy pugh cartgrid3d ioutil ioascii"
+
+wavetoy::initial_data = "gaussian"
+wavetoy::sigma = 2.8
+wavetoy::radius = 0
+wavetoy::bound = "none"
+
+grid::type = "BySpacing"
+grid::symmetry = "octant"
+grid::dxyx = 0.01
+
+driver::global_nx = 30
+driver::global_ny = 30
+driver::global_nz = 30
+
+cctk_itlast = 500
+
+IOASCII::output0d_every = 10
+IOASCII::output0D = "wavetoy::phi"
+
+IOASCII::output1d_every = 10
+IOASCII::Doz_1D = "no"
+IOASCII::Doy_1D = "no"
+IOASCII::output1D = "wavetoy::phi "
+
+IOASCII::outputinfo_every = 50
+IOASCII::output_info = "wavetoy::phi"
+
+IO::outdir = "wavetoy_none"
+
diff --git a/par/wavetoy_rad.par b/par/wavetoy_rad.par
new file mode 100644
index 0000000..bdee289
--- /dev/null
+++ b/par/wavetoy_rad.par
@@ -0,0 +1,42 @@
+# wavetoy_rad.par - wavetoy evolution with radiation boundaries
+# $Id$
+#
+# /*@@
+# @file wavetoy_rad.par
+# @date Sunday 24th July
+# @author Gabrielle Allen
+# @desc
+# Wavetoy parameter file demonstrating radiation boundaries in Octant
+# @enddesc
+# @@*/
+
+ActiveThorns = "wavetoy pugh cartgrid3d ioutil ioascii"
+
+wavetoy::initial_data = "gaussian"
+wavetoy::sigma = 2.8
+wavetoy::radius = 0
+wavetoy::bound = "radiation"
+
+grid::type = "BySpacing"
+grid::symmetry = "octant"
+grid::dxyx = 0.01
+
+driver::global_nx = 30
+driver::global_ny = 30
+driver::global_nz = 30
+
+cctk_itlast = 120
+
+IOASCII::output0d_every = 2
+IOASCII::output0D = "wavetoy::phi"
+
+IOASCII::output1d_every = 2
+IOASCII::Doz_1D = "no"
+IOASCII::Doy_1D = "no"
+IOASCII::output1D = "wavetoy::phi "
+
+IOASCII::outputinfo_every = 10
+IOASCII::output_info = "wavetoy::phi"
+
+IO::outdir = "wavetoy_rad"
+
diff --git a/param.ccl b/param.ccl
new file mode 100644
index 0000000..5d0361b
--- /dev/null
+++ b/param.ccl
@@ -0,0 +1,63 @@
+# Parameter definitions for thorn WaveToyF90
+# $Header$
+
+shares: grid
+
+USES KEYWORD type ""
+{
+}
+
+
+restricted:
+
+REAL dtfac "The timestep condition dt = dtfac*dx"
+{
+ 0:* :: "Should probably be bigger than zero"
+} 0.5
+
+
+private:
+
+REAL radius "The radius of the gaussian wave"
+{
+ 0:* ::
+} 0.0
+
+REAL sigma "The sigma for the gaussian wave"
+{
+ 0:* ::
+} 0.1
+
+REAL kx "The wave number in the x-direction"
+{
+ *:* :: "No restriction"
+} 4.0
+REAL ky "The wave number in the y-direction"
+{
+ *:* :: "No restriction"
+} 0.0
+REAL kz "The wave number in the z-direction"
+{
+ *:* :: "No restriction"
+} 0.0
+
+REAL amplitude "The amplitude of the waves"
+{
+ *:* :: "No restriction"
+} 1.0
+
+KEYWORD initial_data "Type of initial data"
+{
+ "plane" :: "Plane wave"
+ "gaussian" :: "Gaussian wave"
+ "box" :: "Box wave"
+} "gaussian"
+
+KEYWORD bound "Type of boundary condition to use"
+{
+ "none" :: "No boundary condition"
+ "flat" :: "Flat boundary condition"
+ "radiation" :: "Radiation boundary condition"
+} "none"
+
+
diff --git a/schedule.ccl b/schedule.ccl
new file mode 100644
index 0000000..7d33d09
--- /dev/null
+++ b/schedule.ccl
@@ -0,0 +1,38 @@
+# Schedule definitions for thorn WaveToy90
+# $Header$
+
+schedule WaveToyF90_Startup at CCTK_STARTUP
+{
+ LANG: C
+} "Register banner"
+
+schedule WaveToyF90_InitSymBound at CCTK_BASEGRID
+{
+ LANG: Fortran
+} "Schedule symmetries"
+
+schedule WaveToyF90_CheckParameters at CCTK_PARAMCHECK
+{
+ LANG: Fortran
+} "Check parameters"
+
+
+# The basic fields always need memory and communication
+# -----------------------------------------------------
+STORAGE: scalarevolve,scalarold
+COMMUNICATION: scalarevolve
+
+schedule WaveToyF90_InitialData at CCTK_INITIAL AFTER test
+{
+ LANG: Fortran
+} "Initial data for 3D wave equation"
+
+# Scalartmps are needed, without communication, during evolution
+# --------------------------------------------------------------
+schedule WaveToyF90_Evolution at CCTK_EVOL
+{
+ LANG: Fortran
+ STORAGE: scalartmps
+} "Evolution of 3D wave equation"
+
+
diff --git a/src/CheckParameters.F b/src/CheckParameters.F
new file mode 100644
index 0000000..e02897e
--- /dev/null
+++ b/src/CheckParameters.F
@@ -0,0 +1,51 @@
+ /*@@
+ @file CheckParameters.F
+ @date
+ @author Gabrielle Allen
+ @desc
+ Check parameters for the wave equation evolver
+ @enddesc
+ @@*/
+
+#include "cctk.h"
+#include "cctk_parameters.h"
+#include "cctk_arguments.h"
+
+
+ /*@@
+ @routine WaveToy_CheckParameters
+ @date
+ @author Gabrielle Allen
+ @desc
+ Check parameters for the wave equation evolver
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
+
+ subroutine WaveToyF90_CheckParameters(CCTK_FARGUMENTS)
+
+ implicit none
+
+ DECLARE_CCTK_FARGUMENTS
+ DECLARE_CCTK_PARAMETERS
+
+ INTEGER CCTK_Equals
+
+ if (CCTK_Equals(initial_data,"box")==1) then
+
+ if (CCTK_Equals(type, "box")==0) then
+ call CCTK_PARAMWARN("Must have a box grid with box initial data")
+ end if
+
+ if (kx==0 .or. ky==0 .or. kz==0) then
+ call CCTK_PARAMWARN("Cannot have zero kx,ky,kz for box initial data")
+ end if
+
+ end if
+
+ end subroutine WaveToyF90_CheckParameters
diff --git a/src/InitSymBound.F b/src/InitSymBound.F
new file mode 100644
index 0000000..8f1dd64
--- /dev/null
+++ b/src/InitSymBound.F
@@ -0,0 +1,41 @@
+ /*@@
+ @file InitSymBound.F
+ @date
+ @author Gabrielle Allen
+ @desc
+ Sets the symmetries for Wave Toy
+ @enddesc
+ @@*/
+
+#include "cctk.h"
+#include "cctk_arguments.h"
+
+ /*@@
+ @routine WaveToyF90_InitSymBound
+ @date
+ @author Gabrielle Allen
+ @desc
+ Sets the symmetries for Wave Toy
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
+
+ subroutine WaveToyF90_InitSymBound(CCTK_FARGUMENTS)
+
+ implicit none
+
+ DECLARE_CCTK_FARGUMENTS
+
+ INTEGER, DIMENSION(3) :: sym = 1
+
+ call SetCartSymmetry(cctkGH, sym, 'wavetoy::phi')
+
+ return
+
+ end subroutine WaveToyF90_InitSymbound
+
diff --git a/src/InitialData.F b/src/InitialData.F
new file mode 100644
index 0000000..1f12a5f
--- /dev/null
+++ b/src/InitialData.F
@@ -0,0 +1,96 @@
+ /*@@
+ @file InitialData.F
+ @date
+ @author Tom Goodale
+ @desc
+ Initial data for the 3D Wave Equation
+ @enddesc
+ @@*/
+
+#include "cctk.h"
+#include "cctk_parameters.h"
+#include "cctk_arguments.h"
+
+
+
+ /*@@
+ @routine WaveToyF90_InitialData
+ @date
+ @author Tom Goodale
+ @desc
+ Set up initial data for the wave equation
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
+
+ subroutine WaveToyF90_InitialData(CCTK_FARGUMENTS)
+
+ implicit none
+
+ DECLARE_CCTK_FARGUMENTS
+ DECLARE_CCTK_PARAMETERS
+
+ INTEGER CCTK_Equals
+
+ INTEGER :: i
+ CCTK_REAL :: dt,omega, pi
+ CCTK_REAL :: min_delta,dx,dy,dz
+
+ pi = 4.0*atan(1.0)
+
+c Grid spacing shortcuts
+c ----------------------
+ dx = cctk_delta_space(1)
+ dy = cctk_delta_space(2)
+ dz = cctk_delta_space(3)
+
+c Calculate timestep
+c ------------------
+ min_delta = min(dx,dy,dz)
+ cctk_delta_time = dtfac*min_delta
+ dt = cctk_delta_time
+ omega = sqrt(kx**2+ky**2+kz**2)
+
+ if (CCTK_Equals(initial_data,"plane")==1) then
+
+ phi = amplitude*cos(kx*x+ky*y+kz*z+omega*cctk_time)
+ phi_old = amplitude*cos(kx*x+ky*y+kz*z+omega*(cctk_time-dt))
+
+ else if (CCTK_Equals(initial_data,"gaussian")==1) then
+
+ call CCTK_INFO("Gaussian initial data for Wave Equation");
+ phi = amplitude*exp( -(sqrt(x**2+y**2+z**2)-radius)**2/sigma**2)
+ phi_old = amplitude*exp( -(sqrt(x**2+y**2+z**2)-radius-dt)**2/sigma**2)
+
+ else if (CCTK_Equals(initial_data, "box")==1) then
+
+c Use kx,ky,kz as number of modes in each direction.
+
+ phi = amplitude*sin(kx*(x-0.5)*pi)*
+ $ sin(ky*(y-0.5)*pi)*
+ $ sin(kz*(z-0.5)*pi)*
+ $ cos(omega*cctk_time*pi)
+
+ phi_old = amplitude*sin(kx*(x-0.5)*pi)*
+ $ sin(ky*(y-0.5)*pi)*
+ $ sin(kz*(z-0.5)*pi)*
+ $ cos(omega*(cctk_time-dt)*pi)
+
+ end if
+
+c Apply symmetry boundary conditions
+c ----------------------------------
+ call ApplySymmetry(cctkGH,"wavetoy::scalarevolve")
+
+c Synchronise
+c -----------
+ call CCTK_SyncGroup(cctkGH,"wavetoy::scalarevolve")
+
+ end subroutine WaveToyF90_InitialData
+
+
diff --git a/src/Startup.c b/src/Startup.c
new file mode 100644
index 0000000..3b868b1
--- /dev/null
+++ b/src/Startup.c
@@ -0,0 +1,10 @@
+
+int WaveToyF90_Startup(void)
+{
+
+ const char *banner =
+"WaveToyF90: Evolutions of a Scalar Field\nWritten by: Tom Goodale";
+
+ CCTK_RegisterBanner(banner);
+
+}
diff --git a/src/WaveToy.F b/src/WaveToy.F
new file mode 100644
index 0000000..f800edf
--- /dev/null
+++ b/src/WaveToy.F
@@ -0,0 +1,137 @@
+ /*@@
+ @file WaveToyF90.F
+ @date
+ @author Tom Goodale
+ @desc
+ Evolution routines for the wave equation solver
+ @enddesc
+ @@*/
+
+#include "cctk.h"
+#include "cctk_parameters.h"
+#include "cctk_arguments.h"
+
+
+ /*@@
+ @routine WaveToyF90_Boundaries
+ @date
+ @author Tom Goodale
+ @desc
+ Boundary conditions for the wave equation
+ @enddesc
+ @calls ApplyFlatBC,ApplyRadiativeBC
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
+
+ subroutine WaveToyF90_Boundaries(CCTK_FARGUMENTS)
+
+ implicit none
+
+ DECLARE_CCTK_FARGUMENTS
+ DECLARE_CCTK_PARAMETERS
+
+ INTEGER,DIMENSION(3):: sw=1
+ CCTK_REAL,PARAMETER :: zero = 0.0
+ INTEGER CCTK_Equals
+
+ call ApplySymmetry(cctkGH,"wavetoy::scalarevolve")
+
+ if (CCTK_Equals(bound,"flat")==1) then
+ call ApplyFlatBC(cctkGH,sw,"wavetoy::phi")
+ else if (CCTK_Equals(bound,"radiation")==1) then
+ call ApplyRadiativeBC(cctkGH,zero,sw,"wavetoy::phi","wavetoyf90::phi_old")
+ end if
+
+ end subroutine wavetoyf90_boundaries
+
+c --------------------------------------------------------------
+
+ /*@@
+ @routine WaveToyF90_Evolution
+ @date
+ @author Tom Goodale
+ @desc
+ Evolution for the wave equation
+ @enddesc
+ @calls CCTK_SyncGroup, wavetoy_boundaries
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
+
+ subroutine wavetoyf90_evolution(CCTK_FARGUMENTS)
+
+ implicit none
+
+ DECLARE_CCTK_FARGUMENTS
+ DECLARE_CCTK_PARAMETERS
+
+c Declare local variables
+ INTEGER :: i,j,k
+ INTEGER :: istart, jstart, kstart, iend, jend, kend
+ CCTK_REAL :: dx,dy,dz,dt
+
+c Set up shorthands
+c -----------------
+ dx = cctk_delta_space(1)
+ dy = cctk_delta_space(2)
+ dz = cctk_delta_space(3)
+ dt = cctk_delta_time
+
+ istart = 2
+ jstart = 2
+ kstart = 2
+
+ iend = cctk_lsh(1)-1
+ jend = cctk_lsh(2)-1
+ kend = cctk_lsh(3)-1
+
+c Do the evolution
+c ----------------
+ do k = kstart, kend
+ do j = jstart, jend
+ do i = istart, iend
+
+ phi_tmp(i,j,k) =
+ 1 2.0*(1.0 - (dt**2)*(1.0/dx**2 +
+ 2 1.0/dy**2 +1.0/dz**2))*phi(i,j,k) -
+ 3 phi_old(i,j,k) + (dt**2) *
+ 5 ((phi(i+1,j,k)+phi(i-1,j,k))/dx**2
+ 6 +(phi(i,j+1,k)+phi(i,j-1,k))/dy**2
+ 7 +(phi(i,j,k+1)+phi(i,j,k-1))/dz**2)
+
+ end do
+ end do
+ end do
+
+c Update timeslices
+c -----------------
+ phi_old = phi
+ phi = phi_tmp
+
+c Apply boundary conditions
+c -------------------------
+ call wavetoyf90_boundaries(CCTK_FARGUMENTS)
+
+c Synchronize
+c -----------
+ call CCTK_SyncGroup(cctkGH,"wavetoy::scalarevolve")
+
+ end subroutine wavetoyf90_evolution
+
+
+c --------------------------------------------------------------
+
+
+
+
+
+
+
+
diff --git a/src/make.code.defn b/src/make.code.defn
new file mode 100644
index 0000000..6797754
--- /dev/null
+++ b/src/make.code.defn
@@ -0,0 +1,9 @@
+# Main make.code.defn file for thorn WaveToy
+# $Header$
+
+# Source files in this directory
+SRCS = InitialData.F InitSymBound.F CheckParameters.F WaveToy.F Startup.c
+
+# Subdirectories containing source files
+SUBDIRS =
+
diff --git a/test/test_wavetoyf90.par b/test/test_wavetoyf90.par
new file mode 100644
index 0000000..25fa776
--- /dev/null
+++ b/test/test_wavetoyf90.par
@@ -0,0 +1,28 @@
+# test_wavetoyf90.par : WaveToyF90
+
+ActiveThorns = "wavetoyf90 pugh cartgrid3d ioutil ioascii"
+
+grid::type = "box"
+
+wavetoyf90::initial_data = "gaussian"
+wavetoyf90::sigma = 0.1
+wavetoyf90::radius = 0
+
+driver::global_nx = 20
+driver::global_ny = 20
+driver::global_nz = 20
+
+cctk_itlast = 10
+
+IOASCII::output1d_every = 2
+IOASCII::output1D = "wavetoy::phi "
+IOASCII::Doz_1D = "no"
+
+IOASCII::output0d_every = 2
+IOASCII::output0D = "wavetoy::phi "
+
+IOASCII::outputinfo_every = 2
+IOASCII::output_info = "wavetoy::phi "
+
+IO::outdir = "test_wavetoyf90"
+
diff --git a/test/test_wavetoyf90/phi.dl b/test/test_wavetoyf90/phi.dl
new file mode 100644
index 0000000..16493b0
--- /dev/null
+++ b/test/test_wavetoyf90/phi.dl
@@ -0,0 +1,138 @@
+
+
+"Time = 0.000000
+-0.866025 0.0000000000000
+-0.774865 0.0000000000000
+-0.683704 0.0000000000000
+-0.592544 0.0000000000000
+-0.501383 0.0000000000121
+-0.410223 0.0000000491566
+-0.319062 0.0000379191081
+-0.227901 0.0055502860213
+-0.136741 0.1541535501874
+-0.045580 0.8124050503725
+0.045580 0.8124050503725
+0.136741 0.1541535501874
+0.227901 0.0055502860213
+0.319062 0.0000379191081
+0.410223 0.0000000491566
+0.501383 0.0000000000121
+0.592544 0.0000000000000
+0.683704 0.0000000000000
+0.774865 0.0000000000000
+0.866025 0.0000000000000
+
+
+"Time = 0.052632
+-0.866025 0.0000000000000
+-0.774865 0.0000000000000
+-0.683704 0.0000000000000
+-0.592544 0.0000000000000
+-0.501383 -0.0000000000791
+-0.410223 -0.0000002406983
+-0.319062 -0.0000993771711
+-0.227901 -0.0072242068990
+-0.136741 -0.0979217322775
+-0.045580 -0.1950571619856
+0.045580 -0.1950571619856
+0.136741 -0.0979217322775
+0.227901 -0.0072242068990
+0.319062 -0.0000993771711
+0.410223 -0.0000002406983
+0.501383 -0.0000000000791
+0.592544 0.0000000000000
+0.683704 0.0000000000000
+0.774865 0.0000000000000
+0.866025 0.0000000000000
+
+
+"Time = 0.105263
+-0.866025 0.0000000000000
+-0.774865 0.0000000000000
+-0.683704 0.0000000000000
+-0.592544 -0.0000000000000
+-0.501383 -0.0000000070778
+-0.410223 -0.0000069066610
+-0.319062 -0.0010528818637
+-0.227901 -0.0332682845732
+-0.136741 -0.2986866103570
+-0.045580 -1.1290503258507
+0.045580 -1.1290503258507
+0.136741 -0.2986866103570
+0.227901 -0.0332682845732
+0.319062 -0.0010528818637
+0.410223 -0.0000069066610
+0.501383 -0.0000000070778
+0.592544 -0.0000000000000
+0.683704 0.0000000000000
+0.774865 0.0000000000000
+0.866025 0.0000000000000
+
+
+"Time = 0.157895
+-0.866025 0.0000000000000
+-0.774865 0.0000000000000
+-0.683704 0.0000000000000
+-0.592544 -0.0000000001229
+-0.501383 -0.0000003859714
+-0.410223 -0.0001219858026
+-0.319062 -0.0070834276763
+-0.227901 -0.0973584266251
+-0.136741 -0.4576544210254
+-0.045580 -0.9019842677611
+0.045580 -0.9019842677611
+0.136741 -0.4576544210254
+0.227901 -0.0973584266251
+0.319062 -0.0070834276763
+0.410223 -0.0001219858026
+0.501383 -0.0000003859714
+0.592544 -0.0000000001229
+0.683704 0.0000000000000
+0.774865 0.0000000000000
+0.866025 0.0000000000000
+
+
+"Time = 0.210526
+-0.866025 0.0000000000000
+-0.774865 0.0000000000000
+-0.683704 0.0000000000016
+-0.592544 -0.0000000159252
+-0.501383 -0.0000113878002
+-0.410223 -0.0012768875054
+-0.319062 -0.0304556068145
+-0.227901 -0.2006651910238
+-0.136741 -0.4997593550838
+-0.045580 -0.2663944260771
+0.045580 -0.2663944260771
+0.136741 -0.4997593550838
+0.227901 -0.2006651910238
+0.319062 -0.0304556068145
+0.410223 -0.0012768875054
+0.501383 -0.0000113878002
+0.592544 -0.0000000159252
+0.683704 0.0000000000016
+0.774865 0.0000000000000
+0.866025 0.0000000000000
+
+
+"Time = 0.263158
+-0.866025 0.0000000000000
+-0.774865 0.0000000000002
+-0.683704 -0.0000000003848
+-0.592544 -0.0000008256207
+-0.501383 -0.0001851985238
+-0.410223 -0.0080724403496
+-0.319062 -0.0860002778716
+-0.227901 -0.3020549188440
+-0.136741 -0.2694342257320
+-0.045580 -0.0172399268943
+0.045580 -0.0172399268943
+0.136741 -0.2694342257320
+0.227901 -0.3020549188440
+0.319062 -0.0860002778716
+0.410223 -0.0080724403496
+0.501383 -0.0001851985238
+0.592544 -0.0000008256207
+0.683704 -0.0000000003848
+0.774865 0.0000000000002
+0.866025 0.0000000000000
diff --git a/test/test_wavetoyf90/phi.xl b/test/test_wavetoyf90/phi.xl
new file mode 100644
index 0000000..9bef5dd
--- /dev/null
+++ b/test/test_wavetoyf90/phi.xl
@@ -0,0 +1,138 @@
+
+
+"Time = 0.000000
+-0.500000 0.0000000000121
+-0.447368 0.0000000017699
+-0.394737 0.0000001488657
+-0.342105 0.0000071951364
+-0.289474 0.0001998375962
+-0.236842 0.0031894000956
+-0.184211 0.0292505776823
+-0.131579 0.1541535501874
+-0.078947 0.4668380576006
+-0.026316 0.8124050503725
+0.026316 0.8124050503725
+0.078947 0.4668380576006
+0.131579 0.1541535501874
+0.184211 0.0292505776823
+0.236842 0.0031894000956
+0.289474 0.0001998375962
+0.342105 0.0000071951364
+0.394737 0.0000001488657
+0.447368 0.0000000017699
+0.500000 0.0000000000121
+
+
+"Time = 0.052632
+-0.500000 0.0000000000000
+-0.447368 0.0000002442580
+-0.394737 0.0000055185355
+-0.342105 0.0000636892398
+-0.289474 0.0002832523498
+-0.236842 -0.0010800497738
+-0.184211 -0.0182063021811
+-0.131579 -0.0835854975190
+-0.078947 -0.1767183072710
+-0.026316 -0.1950571619856
+0.026316 -0.1950571619856
+0.078947 -0.1767183072710
+0.131579 -0.0835854975190
+0.184211 -0.0182063021811
+0.236842 -0.0010800497738
+0.289474 0.0002832523498
+0.342105 0.0000636892398
+0.394737 0.0000055185355
+0.447368 0.0000002442580
+0.500000 0.0000000000000
+
+
+"Time = 0.105263
+-0.500000 0.0000000000000
+-0.447368 0.0000074500351
+-0.394737 0.0000571366688
+-0.342105 0.0000891850929
+-0.289474 -0.0021735254063
+-0.236842 -0.0208336611591
+-0.184211 -0.0974778459232
+-0.131579 -0.2995396203857
+-0.078947 -0.6860436385846
+-0.026316 -1.1290503258507
+0.026316 -1.1290503258507
+0.078947 -0.6860436385846
+0.131579 -0.2995396203857
+0.184211 -0.0974778459232
+0.236842 -0.0208336611591
+0.289474 -0.0021735254063
+0.342105 0.0000891850929
+0.394737 0.0000571366688
+0.447368 0.0000074500351
+0.500000 0.0000000000000
+
+
+"Time = 0.157895
+-0.500000 0.0000000000000
+-0.447368 0.0000404464126
+-0.394737 -0.0000934612273
+-0.342105 -0.0028408356519
+-0.289474 -0.0203343223830
+-0.236842 -0.0840586024960
+-0.184211 -0.2362253936422
+-0.131579 -0.4920251452215
+-0.078947 -0.7713978386790
+-0.026316 -0.9019842677611
+0.026316 -0.9019842677611
+0.078947 -0.7713978386790
+0.131579 -0.4920251452215
+0.184211 -0.2362253936422
+0.236842 -0.0840586024960
+0.289474 -0.0203343223830
+0.342105 -0.0028408356519
+0.394737 -0.0000934612273
+0.447368 0.0000404464126
+0.500000 0.0000000000000
+
+
+"Time = 0.210526
+-0.500000 0.0000000000000
+-0.447368 -0.0002560735304
+-0.394737 -0.0032223677845
+-0.342105 -0.0191504024223
+-0.289474 -0.0718425508255
+-0.236842 -0.1869773941527
+-0.184211 -0.3531984196037
+-0.131579 -0.4762760737732
+-0.078947 -0.4212470397782
+-0.026316 -0.2663944260771
+0.026316 -0.2663944260771
+0.078947 -0.4212470397782
+0.131579 -0.4762760737732
+0.184211 -0.3531984196037
+0.236842 -0.1869773941527
+0.289474 -0.0718425508255
+0.342105 -0.0191504024223
+0.394737 -0.0032223677845
+0.447368 -0.0002560735304
+0.500000 0.0000000000000
+
+
+"Time = 0.263158
+-0.500000 0.0000000000000
+-0.447368 -0.0034053135086
+-0.394737 -0.0177523942899
+-0.342105 -0.0616617809349
+-0.289474 -0.1512610524732
+-0.236842 -0.2676581405563
+-0.184211 -0.3314593226331
+-0.131579 -0.2530697030291
+-0.078947 -0.0930373771551
+-0.026316 -0.0172399268943
+0.026316 -0.0172399268943
+0.078947 -0.0930373771551
+0.131579 -0.2530697030291
+0.184211 -0.3314593226331
+0.236842 -0.2676581405563
+0.289474 -0.1512610524732
+0.342105 -0.0616617809349
+0.394737 -0.0177523942899
+0.447368 -0.0034053135086
+0.500000 0.0000000000000
diff --git a/test/test_wavetoyf90/phi.yl b/test/test_wavetoyf90/phi.yl
new file mode 100644
index 0000000..9bef5dd
--- /dev/null
+++ b/test/test_wavetoyf90/phi.yl
@@ -0,0 +1,138 @@
+
+
+"Time = 0.000000
+-0.500000 0.0000000000121
+-0.447368 0.0000000017699
+-0.394737 0.0000001488657
+-0.342105 0.0000071951364
+-0.289474 0.0001998375962
+-0.236842 0.0031894000956
+-0.184211 0.0292505776823
+-0.131579 0.1541535501874
+-0.078947 0.4668380576006
+-0.026316 0.8124050503725
+0.026316 0.8124050503725
+0.078947 0.4668380576006
+0.131579 0.1541535501874
+0.184211 0.0292505776823
+0.236842 0.0031894000956
+0.289474 0.0001998375962
+0.342105 0.0000071951364
+0.394737 0.0000001488657
+0.447368 0.0000000017699
+0.500000 0.0000000000121
+
+
+"Time = 0.052632
+-0.500000 0.0000000000000
+-0.447368 0.0000002442580
+-0.394737 0.0000055185355
+-0.342105 0.0000636892398
+-0.289474 0.0002832523498
+-0.236842 -0.0010800497738
+-0.184211 -0.0182063021811
+-0.131579 -0.0835854975190
+-0.078947 -0.1767183072710
+-0.026316 -0.1950571619856
+0.026316 -0.1950571619856
+0.078947 -0.1767183072710
+0.131579 -0.0835854975190
+0.184211 -0.0182063021811
+0.236842 -0.0010800497738
+0.289474 0.0002832523498
+0.342105 0.0000636892398
+0.394737 0.0000055185355
+0.447368 0.0000002442580
+0.500000 0.0000000000000
+
+
+"Time = 0.105263
+-0.500000 0.0000000000000
+-0.447368 0.0000074500351
+-0.394737 0.0000571366688
+-0.342105 0.0000891850929
+-0.289474 -0.0021735254063
+-0.236842 -0.0208336611591
+-0.184211 -0.0974778459232
+-0.131579 -0.2995396203857
+-0.078947 -0.6860436385846
+-0.026316 -1.1290503258507
+0.026316 -1.1290503258507
+0.078947 -0.6860436385846
+0.131579 -0.2995396203857
+0.184211 -0.0974778459232
+0.236842 -0.0208336611591
+0.289474 -0.0021735254063
+0.342105 0.0000891850929
+0.394737 0.0000571366688
+0.447368 0.0000074500351
+0.500000 0.0000000000000
+
+
+"Time = 0.157895
+-0.500000 0.0000000000000
+-0.447368 0.0000404464126
+-0.394737 -0.0000934612273
+-0.342105 -0.0028408356519
+-0.289474 -0.0203343223830
+-0.236842 -0.0840586024960
+-0.184211 -0.2362253936422
+-0.131579 -0.4920251452215
+-0.078947 -0.7713978386790
+-0.026316 -0.9019842677611
+0.026316 -0.9019842677611
+0.078947 -0.7713978386790
+0.131579 -0.4920251452215
+0.184211 -0.2362253936422
+0.236842 -0.0840586024960
+0.289474 -0.0203343223830
+0.342105 -0.0028408356519
+0.394737 -0.0000934612273
+0.447368 0.0000404464126
+0.500000 0.0000000000000
+
+
+"Time = 0.210526
+-0.500000 0.0000000000000
+-0.447368 -0.0002560735304
+-0.394737 -0.0032223677845
+-0.342105 -0.0191504024223
+-0.289474 -0.0718425508255
+-0.236842 -0.1869773941527
+-0.184211 -0.3531984196037
+-0.131579 -0.4762760737732
+-0.078947 -0.4212470397782
+-0.026316 -0.2663944260771
+0.026316 -0.2663944260771
+0.078947 -0.4212470397782
+0.131579 -0.4762760737732
+0.184211 -0.3531984196037
+0.236842 -0.1869773941527
+0.289474 -0.0718425508255
+0.342105 -0.0191504024223
+0.394737 -0.0032223677845
+0.447368 -0.0002560735304
+0.500000 0.0000000000000
+
+
+"Time = 0.263158
+-0.500000 0.0000000000000
+-0.447368 -0.0034053135086
+-0.394737 -0.0177523942899
+-0.342105 -0.0616617809349
+-0.289474 -0.1512610524732
+-0.236842 -0.2676581405563
+-0.184211 -0.3314593226331
+-0.131579 -0.2530697030291
+-0.078947 -0.0930373771551
+-0.026316 -0.0172399268943
+0.026316 -0.0172399268943
+0.078947 -0.0930373771551
+0.131579 -0.2530697030291
+0.184211 -0.3314593226331
+0.236842 -0.2676581405563
+0.289474 -0.1512610524732
+0.342105 -0.0616617809349
+0.394737 -0.0177523942899
+0.447368 -0.0034053135086
+0.500000 0.0000000000000
diff --git a/test/test_wavetoyf90/phi_max.tl b/test/test_wavetoyf90/phi_max.tl
new file mode 100644
index 0000000..6355b45
--- /dev/null
+++ b/test/test_wavetoyf90/phi_max.tl
@@ -0,0 +1,7 @@
+"phi max v time
+0.000000 0.8124050503725
+0.052632 0.0002832523498
+0.105263 0.0000891850929
+0.157895 0.0000404464126
+0.210526 0.0000003961843
+0.263158 0.0000001100396
diff --git a/test/test_wavetoyf90/phi_min.tl b/test/test_wavetoyf90/phi_min.tl
new file mode 100644
index 0000000..c002c48
--- /dev/null
+++ b/test/test_wavetoyf90/phi_min.tl
@@ -0,0 +1,7 @@
+"phi min v time
+0.000000 0.0000000000000
+0.052632 -0.1950571619856
+0.105263 -1.1290503258507
+0.157895 -0.9019842677611
+0.210526 -0.4997593550838
+0.263158 -0.3594146186544
diff --git a/test/test_wavetoyf90/phi_nm1.tl b/test/test_wavetoyf90/phi_nm1.tl
new file mode 100644
index 0000000..5ac6c8a
--- /dev/null
+++ b/test/test_wavetoyf90/phi_nm1.tl
@@ -0,0 +1,7 @@
+"phi norm1 v time
+0.000000 0.0047741452163
+0.052632 0.0023586563889
+0.105263 0.0094832901772
+0.157895 0.0166095490057
+0.210526 0.0237365580785
+0.263158 0.0308582835984
diff --git a/test/test_wavetoyf90/phi_nm2.tl b/test/test_wavetoyf90/phi_nm2.tl
new file mode 100644
index 0000000..e9504b4
--- /dev/null
+++ b/test/test_wavetoyf90/phi_nm2.tl
@@ -0,0 +1,7 @@
+"phi norm2 v time
+0.000000 0.0410842432418
+0.052632 0.0158441957039
+0.105263 0.0637392141088
+0.157895 0.0805995803466
+0.210526 0.0821416890830
+0.263158 0.0821638479507