aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgoodale <goodale@daab82bb-f315-4ad1-b6d0-9353ff8b6e27>1999-11-24 21:22:15 +0000
committergoodale <goodale@daab82bb-f315-4ad1-b6d0-9353ff8b6e27>1999-11-24 21:22:15 +0000
commit65b1300b73dc032b4d0f0aafe4aa733c53f21910 (patch)
tree0b2b85d4a76f5fd0327e115f1c9d58fa195f77e1
parent8fa319775b09834f9fc093badc450aa7f6e9e904 (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/WaveToyFreeF90/trunk@3 daab82bb-f315-4ad1-b6d0-9353ff8b6e27
-rw-r--r--COPYRIGHT377
-rw-r--r--README10
-rw-r--r--interface.ccl22
-rw-r--r--par/wavetoyfortran.par18
-rw-r--r--par/wavetoyfortran_flat.par45
-rw-r--r--par/wavetoyfortran_none.par45
-rw-r--r--par/wavetoyfortran_rad.par45
-rw-r--r--param.ccl13
-rw-r--r--schedule.ccl21
-rw-r--r--src/InitSymBound.F9039
-rw-r--r--src/Startup.c22
-rw-r--r--src/WaveToy.F90138
-rw-r--r--src/make.code.defn8
-rw-r--r--test/test_rad.par42
-rw-r--r--test/test_rad/phi.xl198
-rw-r--r--test/test_rad/phi_max.tl12
-rw-r--r--test/test_rad/phi_min.tl12
-rw-r--r--test/test_rad/phi_nm1.tl12
-rw-r--r--test/test_rad/phi_nm2.tl12
-rw-r--r--test/test_wavetoyfreef90.par29
-rw-r--r--test/test_wavetoyfreef90/phi.dl138
-rw-r--r--test/test_wavetoyfreef90/phi.xl138
-rw-r--r--test/test_wavetoyfreef90/phi.yl138
-rw-r--r--test/test_wavetoyfreef90/phi_max.tl7
-rw-r--r--test/test_wavetoyfreef90/phi_min.tl7
-rw-r--r--test/test_wavetoyfreef90/phi_nm1.tl7
-rw-r--r--test/test_wavetoyfreef90/phi_nm2.tl7
27 files changed, 1562 insertions, 0 deletions
diff --git a/COPYRIGHT b/COPYRIGHT
new file mode 100644
index 0000000..45b8425
--- /dev/null
+++ b/COPYRIGHT
@@ -0,0 +1,377 @@
+ ********************************
+ Welcome to the Cactus Code
+ Version 4.0
+ ********************************
+
+All Cactus source code is (c) Copyright by the Authors listed in the
+respective README and source files that you will find scattered thru
+the directory structure of all the thorns. This is a truly
+collaborative development project that benefits from input of many
+people worldwide and we try our best to give credit to every
+contribution. The cactus code web page at
+ http://www.cactuscode.org
+contains an extensive list of authors to all the thorns that are
+part of the Cactus Code project.
+
+The flesh of the Cactus Code and the design of the project is (c)
+Copyright 1997-99 by Gabrielle Allen, Tom Goodale, Joan Masso and Paul
+Walker from the Numerical Relativity group of the Max-Planck-Institut
+fuer Gravitationphysik / Albert Einstein Institute
+(http://www.aei-potsdam.mpg.de).
+
+The Cactus Code is distributed under the GNU general public license
+version 2 which is available below. All thorns distributed with Cactus
+follow this license unless it is explicitly stated otherwise in the
+corresponding README files.
+
+Please, take a look at the documentation in the main doc directory or
+check the cactus web page for instructions on how to run the code,
+report bugs, give feedback, etc.
+
+Thanks for using cactus. We hope you find it useful. Love it or hate
+it, please let us know what you think.
+- The Cactus Team <cactus@cactuscode.org>
+
+**************************************************************************
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
+
+
diff --git a/README b/README
new file mode 100644
index 0000000..70fa1ca
--- /dev/null
+++ b/README
@@ -0,0 +1,10 @@
+Cactus Code Thorn WaveToyFreeF90
+Authors : Tom Goodale, Erik Schnetter
+CVS info : $Header$
+--------------------------------------------------------------------------
+
+1. Purpose of the thorn
+
+This thorn solves the linear wave equation
+
+
diff --git a/interface.ccl b/interface.ccl
new file mode 100644
index 0000000..99223b6
--- /dev/null
+++ b/interface.ccl
@@ -0,0 +1,22 @@
+# Interface definition for thorn WaveToyFreeF90
+# $Header$
+
+implements: wavetoy
+
+public:
+
+cctk_real scalarevolve type = GF
+{
+ phi
+ phi_old
+} "The evolved scalar field"
+
+private:
+
+cctk_real temps type = GF
+{
+ phi_tmp
+} "Temporary grid functions"
+
+
+
diff --git a/par/wavetoyfortran.par b/par/wavetoyfortran.par
new file mode 100644
index 0000000..a451d56
--- /dev/null
+++ b/par/wavetoyfortran.par
@@ -0,0 +1,18 @@
+# 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 = "idscalarwave time wavetoyfortran pugh cartgrid3d ioutil ioascii"
+
+time::dtfac = 0.5
+
+IOASCII::out1D_vars = "wavetoyfortran::phi"
+
diff --git a/par/wavetoyfortran_flat.par b/par/wavetoyfortran_flat.par
new file mode 100644
index 0000000..6474c8d
--- /dev/null
+++ b/par/wavetoyfortran_flat.par
@@ -0,0 +1,45 @@
+# 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 = "idscalarwave time wavetoyfortran pugh cartgrid3d ioutil ioascii iobasic"
+
+time::dtfac = 0.5
+
+IDScalarWave::initial_data = "gaussian"
+IDScalarWave::sigma = 2.8
+IDScalarWave::radius = 0
+
+wavetoy::bound = "flat"
+
+grid::type = "BySpacing"
+grid::domain = "octant"
+grid::dxyx = 0.3
+
+driver::global_nx = 30
+driver::global_ny = 30
+driver::global_nz = 30
+
+cactus::cctk_itlast = 500
+
+IOBasic::outScalar_every = 10
+IOBasic::outScalar_vars = "wavetoy::phi"
+
+IOASCII::out1D_every = 10
+IOASCII::out1D_z = "no"
+IOASCII::out1D_y = "no"
+IOASCII::out1D_vars = "wavetoy::phi "
+
+IOBasic::outInfo_every = 50
+IOBasic::outInfo_vars = "wavetoy::phi"
+
+IO::outdir = "wavetoyfortran_flat"
+
diff --git a/par/wavetoyfortran_none.par b/par/wavetoyfortran_none.par
new file mode 100644
index 0000000..84c3021
--- /dev/null
+++ b/par/wavetoyfortran_none.par
@@ -0,0 +1,45 @@
+# 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 = "idscalarwave time wavetoyfortran pugh cartgrid3d ioutil ioascii iobasic"
+
+time::dtfac = 0.5
+
+IDScalarWave::initial_data = "gaussian"
+IDScalarWave::sigma = 2.8
+IDScalarWave::radius = 0
+
+wavetoy::bound = "none"
+
+grid::type = "BySpacing"
+grid::domain = "octant"
+grid::dxyx = 0.3
+
+driver::global_nx = 30
+driver::global_ny = 30
+driver::global_nz = 30
+
+cactus::cctk_itlast = 500
+
+IOBasic::outScalar_every = 10
+IOBasic::outScalar_vars = "wavetoy::phi"
+
+IOASCII::out1D_every = 10
+IOASCII::out1D_z = "no"
+IOASCII::out1D_y = "no"
+IOASCII::out1D_vars = "wavetoy::phi "
+
+IOBasic::outInfo_every = 50
+IOBasic::outInfo_vars = "wavetoy::phi"
+
+IO::outdir = "wavetoyfortran_none"
+
diff --git a/par/wavetoyfortran_rad.par b/par/wavetoyfortran_rad.par
new file mode 100644
index 0000000..e030d94
--- /dev/null
+++ b/par/wavetoyfortran_rad.par
@@ -0,0 +1,45 @@
+# 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 = "idscalarwave time wavetoyfortran pugh cartgrid3d ioutil ioascii iobasic"
+
+time::dtfac = 0.5
+
+IDScalarWave::initial_data = "gaussian"
+IDScalarWave::sigma = 2.8
+IDScalarWave::radius = 0
+
+wavetoyfortran::bound = "radiation"
+
+grid::type = "BySpacing"
+grid::domain = "octant"
+grid::dxyz = 0.3
+
+driver::global_nx = 30
+driver::global_ny = 30
+driver::global_nz = 30
+
+cactus::cctk_itlast = 120
+
+IOBasic::outScalar_every = 2
+IOBasic::outScalar_vars = "wavetoy::phi"
+
+IOASCII::out1D_every = 2
+IOASCII::out1D_z = "no"
+IOASCII::out1D_y = "no"
+IOASCII::out1D_vars = "wavetoy::phi "
+
+IOBasic::outInfo_every = 10
+IOBasic::outInfo_vars = "wavetoy::phi"
+
+IO::outdir = "wavetoyfortran_rad"
+
diff --git a/param.ccl b/param.ccl
new file mode 100644
index 0000000..162d5b4
--- /dev/null
+++ b/param.ccl
@@ -0,0 +1,13 @@
+# Parameter definitions for thorn WaveToyFreeF90
+# $Header$
+
+private:
+
+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..ce8688e
--- /dev/null
+++ b/schedule.ccl
@@ -0,0 +1,21 @@
+# Schedule definitions for thorn WaveToyFreeF90
+# $Header$
+
+STORAGE: scalarevolve
+
+schedule WaveToyFreeF90_Startup at STARTUP
+{
+ LANG: C
+} "Register banner"
+
+schedule WaveToyFreeF90_InitSymBound at BASEGRID
+{
+ LANG: Fortran
+} "Schedule symmetries"
+
+schedule WaveToyFreeF90_Evolution at EVOL
+{
+ LANG: Fortran
+ STORAGE: temps
+ COMM: temps
+} "Evolution of 3D wave equation"
diff --git a/src/InitSymBound.F90 b/src/InitSymBound.F90
new file mode 100644
index 0000000..f8f0171
--- /dev/null
+++ b/src/InitSymBound.F90
@@ -0,0 +1,39 @@
+ /*@@
+ @file InitSymBound.F90
+ @date
+ @author Gabrielle Allen
+ @desc
+ Sets the symmetries across the coordinate axes
+ @enddesc
+ @@*/
+
+#include "cctk.h"
+#include "cctk_arguments.h"
+
+ /*@@
+ @routine WaveToyFreeF90_InitSymBound
+ @date
+ @author Gabrielle Allen
+ @desc
+ Sets the symmetries for Wave Toy
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
+
+subroutine WaveToyFreeF90_InitSymBound(CCTK_FARGUMENTS)
+
+ implicit none
+
+ DECLARE_CCTK_FARGUMENTS
+
+ INTEGER, DIMENSION(3) :: sym = 1
+
+ call SetCartSymmetry(cctkGH, sym, 'wavetoy::phi')
+ call SetCartSymmetry(cctkGH, sym, 'wavetoyfreef90::phi_tmp')
+
+end subroutine WaveToyFreeF90_InitSymbound
diff --git a/src/Startup.c b/src/Startup.c
new file mode 100644
index 0000000..81e5df6
--- /dev/null
+++ b/src/Startup.c
@@ -0,0 +1,22 @@
+ /*@@
+ @file Startup.c
+ @date
+ @author Gabrielle Allen
+ @desc
+ Register banner
+ @enddesc
+ @@*/
+
+static char *rcsid = "$Header$";
+
+#include "cctk.h"
+
+int WaveToyFreeF90_Startup(void)
+{
+
+ const char *banner = "WaveToyFreeF90: Evolutions of a Scalar Field";
+
+ CCTK_RegisterBanner(banner);
+
+ return 0;
+}
diff --git a/src/WaveToy.F90 b/src/WaveToy.F90
new file mode 100644
index 0000000..7042c90
--- /dev/null
+++ b/src/WaveToy.F90
@@ -0,0 +1,138 @@
+ /*@@
+ @file WaveToyFortran.F90
+ @date
+ @author Tom Goodale
+ @desc
+ Evolution routines for the wave equation solver
+ @enddesc
+ @@*/
+
+! Using Cactus infrastructure
+#include "cctk.h"
+
+! Using Cactus parameters
+#include "cctk_parameters.h"
+
+! Using Cactus arguments lists
+#include "cctk_arguments.h"
+
+
+ /*@@
+ @routine WaveToyFortran_Evolution
+ @date
+ @author Tom Goodale
+ @desc
+ Evolution for the wave equation
+ @enddesc
+ @calls CCTK_SyncGroup, wavetoy_boundaries
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
+
+subroutine WaveToyFreeF90_Evolution(CCTK_FARGUMENTS)
+
+ implicit none
+
+ DECLARE_CCTK_FARGUMENTS
+ DECLARE_CCTK_PARAMETERS
+
+ ! Declare local variables
+ INTEGER :: i,j,k
+ INTEGER :: istart, jstart, kstart, iend, jend, kend
+ CCTK_REAL :: dx,dy,dz,dt
+
+ ! Set up shorthands
+ ! -----------------
+ 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
+
+ ! Do the evolution
+ ! ----------------
+ do k = kstart, kend
+ do j = jstart, jend
+ do i = istart, iend
+
+ phi_tmp(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)
+
+ end do
+ end do
+ end do
+
+ ! Synchronize
+ ! -----------
+ call CCTK_SyncGroup(cctkGH,"wavetoyFreeF90::temps")
+
+ ! Apply boundary conditions
+ ! -------------------------
+ call WaveToyFreeF90_Boundaries(CCTK_PASS_FTOF)
+
+ ! Update timeslices
+ ! -----------------
+ phi_old = phi
+ phi = phi_tmp
+
+
+end subroutine WaveToyFreeF90_Evolution
+
+
+ /*@@
+ @routine WaveToyFortran_Boundaries
+ @date
+ @author Tom Goodale
+ @desc
+ Boundary conditions for the wave equation
+ @enddesc
+ @calls FlatBC,RadiativeBC
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
+
+subroutine WaveToyFreeF90_Boundaries(CCTK_FARGUMENTS)
+
+ implicit none
+
+ DECLARE_CCTK_FARGUMENTS
+ DECLARE_CCTK_PARAMETERS
+
+ integer :: ierr
+ integer CCTK_Equals
+ integer, dimension(3):: sw(3)=1
+ CCTK_REAL, parameter :: zero = 0.0
+ CCTK_REAL, parameter :: one = 1.0
+
+ call CartSymBCGroup(ierr,cctkGH,"wavetoyfreef90::temps")
+
+ if (CCTK_EQUALS(bound,"flat")) then
+ call ApplyFlatBC(ierr,cctkGH,sw,"wavetoyfreef90::phi_tmp")
+ else if (CCTK_EQUALS(bound,"radiation")) then
+ call ApplyRadiativeBC(ierr,cctkGH,zero,one,sw, &
+ "wavetoyfreef90::phi_tmp","wavetoy::phi")
+ end if
+
+ if (ierr < 0) then
+ call CCTK_WARN(0,"Boundary conditions not applied - giving up!")
+ end if
+
+end subroutine WaveToyFreeF90_Boundaries
diff --git a/src/make.code.defn b/src/make.code.defn
new file mode 100644
index 0000000..9bc1376
--- /dev/null
+++ b/src/make.code.defn
@@ -0,0 +1,8 @@
+# Main make.code.defn file for thorn WaveToy
+# $Header$
+
+# Source files in this directory
+SRCS = InitSymBound.F90 WaveToy.F90 Startup.c
+
+# Subdirectories containing source files
+SUBDIRS =
diff --git a/test/test_rad.par b/test/test_rad.par
new file mode 100644
index 0000000..8a548a8
--- /dev/null
+++ b/test/test_rad.par
@@ -0,0 +1,42 @@
+!DESC "Octant evolution with radiation boundaries"
+# $Id$
+#
+# /*@@
+# @file test_rad.par
+# @date Saturday 18th September 1999
+# @author Gabrielle Allen
+# @desc
+# Wavetoy parameter file demonstrating radiation boundaries in Octant
+# @enddesc
+# @@*/
+
+ActiveThorns = "iobasic idscalarwave time wavetoyfreef90 pugh cartgrid3d ioutil ioascii"
+
+time::dtfac = 0.5
+
+idscalarwave::initial_data = "gaussian"
+idscalarwave::sigma = 2.8
+idscalarwave::radius = 5
+
+wavetoyfreef90::bound = "radiation"
+
+grid::type = "BySpacing"
+grid::domain = "octant"
+grid::dxyz = 0.6
+
+driver::global_nx = 15
+driver::global_ny = 15
+driver::global_nz = 15
+
+cactus::cctk_itlast = 10
+
+IOBasic::outScalar_every = 1
+IOBasic::outScalar_vars = "wavetoy::phi"
+
+IOASCII::out1D_every = 1
+IOASCII::out1D_z = "no"
+IOASCII::out1D_y = "no"
+IOASCII::out1D_d = "no"
+IOASCII::out1D_vars = "wavetoy::phi "
+
+IO::outdir = "test_rad"
diff --git a/test/test_rad/phi.xl b/test/test_rad/phi.xl
new file mode 100644
index 0000000..3289eb3
--- /dev/null
+++ b/test/test_rad/phi.xl
@@ -0,0 +1,198 @@
+
+
+"Time = 0.000000
+-0.300000 0.0772707537752
+0.300000 0.0772707537752
+0.900000 0.1292593546971
+1.500000 0.2208214420284
+2.100000 0.3529089299372
+2.700000 0.5192102694005
+3.300000 0.6998161919677
+3.900000 0.8624762718586
+4.500000 0.9710346043534
+5.100000 0.9982370567948
+5.700000 0.9367420144351
+6.300000 0.8022624770949
+6.900000 0.6270073768484
+7.500000 0.4471508970148
+8.100000 0.2909622162579
+
+
+"Time = 0.300000
+-0.300000 0.1393184064019
+0.300000 0.1393184064019
+0.900000 0.1975847110096
+1.500000 0.3062741452991
+2.100000 0.4554646524072
+2.700000 0.6299296619766
+3.300000 0.8021921868134
+3.900000 0.9366725320316
+4.500000 1.0007334088932
+5.100000 0.9771783117087
+5.700000 0.8714871457426
+6.300000 0.7095808925903
+6.900000 0.5273417858140
+7.500000 0.3576688235253
+8.100000 0.4056514703201
+
+
+"Time = 0.600000
+-0.300000 0.2450657874844
+0.300000 0.2450657874844
+0.900000 0.3063938562633
+1.500000 0.4275754994725
+2.100000 0.5875326742492
+2.700000 0.7594519468076
+3.300000 0.9090544974737
+3.900000 1.0007207893735
+4.500000 1.0095375644101
+5.100000 0.9313582488327
+5.700000 0.7847341927681
+6.300000 0.6033335286836
+6.900000 0.4230286782330
+7.500000 0.3164729091787
+8.100000 0.3688224314238
+
+
+"Time = 0.900000
+-0.300000 0.3968092201510
+0.300000 0.3968092201510
+0.900000 0.4612542907489
+1.500000 0.5868097261730
+2.100000 0.7462961828157
+2.700000 0.9011863559196
+3.300000 1.0121890493922
+3.900000 1.0475533118886
+4.500000 0.9938122606057
+5.100000 0.8613525959984
+5.700000 0.6803008397561
+6.300000 0.4885565892616
+6.900000 0.3298778872437
+7.500000 0.3093159503407
+8.100000 0.3194643862378
+
+
+"Time = 1.200000
+-0.300000 0.5968864557660
+0.300000 0.5968864557660
+0.900000 0.6634200568401
+1.500000 0.7832867114987
+2.100000 0.9262870132775
+2.700000 1.0464509311060
+3.300000 1.1026365452681
+3.900000 1.0708606286750
+4.500000 0.9516509078131
+5.100000 0.7695373165573
+5.700000 0.5631271680828
+6.300000 0.3733607640958
+6.900000 0.2646768441670
+7.500000 0.3042741459498
+8.100000 0.2985904139956
+
+
+"Time = 1.500000
+-0.300000 0.8468638921866
+0.300000 0.8468638921866
+0.900000 0.9096824905158
+1.500000 1.0118902155622
+2.100000 1.1191797723429
+2.700000 1.1850521641053
+3.300000 1.1715777583589
+3.900000 1.0658428285460
+4.500000 0.8831617240967
+5.100000 0.6598679115944
+5.700000 0.4394941203286
+6.300000 0.2702381613842
+6.900000 0.2305879299107
+7.500000 0.2823771591228
+8.100000 0.2945518023220
+
+
+"Time = 1.800000
+-0.300000 1.1439552773541
+0.300000 1.1439552773541
+0.900000 1.1928303039108
+1.500000 1.2623590177638
+2.100000 1.3137084038740
+2.700000 1.3061063451054
+3.300000 1.2112923140727
+3.900000 1.0298141343834
+4.500000 0.7905117480480
+5.100000 0.5376561030314
+5.700000 0.3179991588455
+6.300000 0.1920175476677
+6.900000 0.2137804389116
+7.500000 0.2451913224103
+8.100000 0.2846392839016
+
+
+"Time = 2.100000
+-0.300000 1.4777029324391
+0.300000 1.4777029324391
+0.900000 1.5007144586172
+1.500000 1.5197917554214
+2.100000 1.4960135325299
+2.700000 1.3989571738336
+3.300000 1.2160435134256
+3.900000 0.9625645974774
+4.500000 0.6777629948704
+5.100000 0.4096910832064
+5.700000 0.2097192375672
+6.300000 0.1439266896346
+6.900000 0.1939713841434
+7.500000 0.2049466941312
+8.100000 0.2590132157317
+
+
+"Time = 2.400000
+-0.300000 1.8287092321577
+0.300000 1.8287092321577
+0.900000 1.8146817721101
+1.500000 1.7655652525217
+2.100000 1.6506551991274
+2.700000 1.4540918571554
+3.300000 1.1827266218174
+3.900000 0.8664271594561
+4.500000 0.5506710041608
+5.100000 0.2846305324622
+5.700000 0.1255209253476
+6.300000 0.1185029029684
+6.900000 0.1591056400564
+7.500000 0.1707872255917
+8.100000 0.2233538039083
+
+
+"Time = 2.700000
+-0.300000 2.1691949368406
+0.300000 2.1691949368406
+0.900000 2.1093269062751
+1.500000 1.9782272412690
+2.100000 1.7620671001176
+2.700000 1.4640042823334
+3.300000 1.1111608790632
+3.900000 0.7460809101689
+4.500000 0.4166384492980
+5.100000 0.1727348795036
+5.700000 0.0707183446983
+6.300000 0.0989920048448
+6.900000 0.1119737653124
+7.500000 0.1424880579888
+8.100000 0.1884467757646
+
+
+"Time = 3.000000
+-0.300000 2.4647796185994
+0.300000 2.4647796185994
+0.900000 2.3541828216963
+1.500000 2.1347782118799
+2.100000 1.8160434930701
+2.700000 1.4238960014253
+3.300000 1.0039991040679
+3.900000 0.6082179395041
+4.500000 0.2847201194241
+5.100000 0.0837362794307
+5.700000 0.0406070302546
+6.300000 0.0698724518537
+6.900000 0.0646120372763
+7.500000 0.1139375181146
+8.100000 0.1595748375786
diff --git a/test/test_rad/phi_max.tl b/test/test_rad/phi_max.tl
new file mode 100644
index 0000000..7f2f952
--- /dev/null
+++ b/test/test_rad/phi_max.tl
@@ -0,0 +1,12 @@
+"phi max v time
+0.000000 0.9999198827161
+0.300000 1.0032036387356
+0.600000 1.0165679308821
+0.900000 1.0475533118886
+1.200000 1.1036047450756
+1.500000 1.1902041732567
+1.800000 1.3188502049547
+2.100000 1.5204576862657
+2.400000 1.8287092321577
+2.700000 2.1691949368406
+3.000000 2.4647796185994
diff --git a/test/test_rad/phi_min.tl b/test/test_rad/phi_min.tl
new file mode 100644
index 0000000..cbfc2bf
--- /dev/null
+++ b/test/test_rad/phi_min.tl
@@ -0,0 +1,12 @@
+"phi min v time
+0.000000 0.0000304406955
+0.300000 0.0000587880473
+0.600000 0.0001066220773
+0.900000 0.0001528733824
+1.200000 -0.0013007895418
+1.500000 -0.0114373299182
+1.800000 -0.0351282211240
+2.100000 -0.0714935979610
+2.400000 -0.1141742235382
+2.700000 -0.1588348486246
+3.000000 -0.2022833272751
diff --git a/test/test_rad/phi_nm1.tl b/test/test_rad/phi_nm1.tl
new file mode 100644
index 0000000..bc32803
--- /dev/null
+++ b/test/test_rad/phi_nm1.tl
@@ -0,0 +1,12 @@
+"phi norm1 v time
+0.000000 0.3981503311756
+0.300000 0.3752018026277
+0.600000 0.3435276039045
+0.900000 0.3126496420779
+1.200000 0.2838333296070
+1.500000 0.2563863030009
+1.800000 0.2319741194982
+2.100000 0.2118209125547
+2.400000 0.1954829734317
+2.700000 0.1828967131275
+3.000000 0.1733128464220
diff --git a/test/test_rad/phi_nm2.tl b/test/test_rad/phi_nm2.tl
new file mode 100644
index 0000000..f363a7d
--- /dev/null
+++ b/test/test_rad/phi_nm2.tl
@@ -0,0 +1,12 @@
+"phi norm2 v time
+0.000000 0.5254444636163
+0.300000 0.5037530928451
+0.600000 0.4799071761854
+0.900000 0.4590512493988
+1.200000 0.4432820729590
+1.500000 0.4330548472628
+1.800000 0.4281580299168
+2.100000 0.4276503193089
+2.400000 0.4296880249513
+2.700000 0.4314929499377
+3.000000 0.4295647147745
diff --git a/test/test_wavetoyfreef90.par b/test/test_wavetoyfreef90.par
new file mode 100644
index 0000000..10cbfe6
--- /dev/null
+++ b/test/test_wavetoyfreef90.par
@@ -0,0 +1,29 @@
+!DESC "Octant evolution with no boundary condition"
+
+ActiveThorns = "iobasic time idscalarwave wavetoyfreef90 pugh cartgrid3d ioutil ioascii"
+
+time::dtfac = 0.5
+
+grid::type = "box"
+
+idscalarwave::initial_data = "gaussian"
+idscalarwave::sigma = 0.1
+idscalarwave::radius = 0
+
+driver::global_nx = 20
+driver::global_ny = 20
+driver::global_nz = 20
+
+cactus::cctk_itlast = 10
+
+IOASCII::out1D_every = 2
+IOASCII::out1D_vars = "wavetoy::phi "
+IOASCII::out1D_z = "no"
+
+IOBasic::outScalar_every = 2
+IOBasic::outScalar_vars = "wavetoy::phi "
+
+IOBasic::outInfo_every = 2
+IOBasic::outInfo_vars = "wavetoy::phi "
+
+IO::outdir = "test_wavetoyfreef90"
diff --git a/test/test_wavetoyfreef90/phi.dl b/test/test_wavetoyfreef90/phi.dl
new file mode 100644
index 0000000..16493b0
--- /dev/null
+++ b/test/test_wavetoyfreef90/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_wavetoyfreef90/phi.xl b/test/test_wavetoyfreef90/phi.xl
new file mode 100644
index 0000000..9bef5dd
--- /dev/null
+++ b/test/test_wavetoyfreef90/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_wavetoyfreef90/phi.yl b/test/test_wavetoyfreef90/phi.yl
new file mode 100644
index 0000000..9bef5dd
--- /dev/null
+++ b/test/test_wavetoyfreef90/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_wavetoyfreef90/phi_max.tl b/test/test_wavetoyfreef90/phi_max.tl
new file mode 100644
index 0000000..6355b45
--- /dev/null
+++ b/test/test_wavetoyfreef90/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_wavetoyfreef90/phi_min.tl b/test/test_wavetoyfreef90/phi_min.tl
new file mode 100644
index 0000000..c002c48
--- /dev/null
+++ b/test/test_wavetoyfreef90/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_wavetoyfreef90/phi_nm1.tl b/test/test_wavetoyfreef90/phi_nm1.tl
new file mode 100644
index 0000000..5ac6c8a
--- /dev/null
+++ b/test/test_wavetoyfreef90/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_wavetoyfreef90/phi_nm2.tl b/test/test_wavetoyfreef90/phi_nm2.tl
new file mode 100644
index 0000000..e9504b4
--- /dev/null
+++ b/test/test_wavetoyfreef90/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