diff --git a/GNUmakefile b/GNUmakefile
new file mode 100644
index 00000000..d3ec73b5
--- /dev/null
+++ b/GNUmakefile
@@ -0,0 +1,276 @@
+CC = g++
+CFLAGS = -Wall
+CPPFLAGS = -O3 -DNDEBUG -DSWIG_SHARED_OBJ -Iinclude -Isrc/phreeqcpp -Isrc/phreeqcpp/phreeqc
+#CPPFLAGS = -g -DSWIG_SHARED_OBJ # debug
+TARGET_ARCH =
+FC = g95
+FFLAGS = -fno-second-underscore
+CXX = g++
+CXXFLAGS = -Wall
+RANLIB = ranlib
+RM = rm -f
+MKDIR = mkdir -p
+AR = ar ruv
+TARGET = lib/libiphreeqc.a
+
+VPATH=src:src/phreeqcpp/phreeqc
+
+%.o: %.f
+ $(FC) $(FFLAGS) $(TARGET_ARCH) -c -o $@ $<
+
+%.o: %.F
+ $(FC) $(FFLAGS) $(TARGET_ARCH) -c -o $@ $<
+
+%.o: %.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -o $@ $<
+
+%.o: %.cxx
+ $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -o $@ $<
+
+
+###%.o: %.f
+### $(FC) -MM $<
+###
+###%.o: %.F
+### $(FC) -MM $<
+###
+###%.o: %.c
+### $(CC) -MM $<
+###
+###%.o: %.cxx
+### $(CXX) -MM $<
+
+
+POBJS = \
+ advection.o \
+ basic.o \
+ basicsubs.o \
+ cl1.o \
+ cvdense.o \
+ cvode.o \
+ dense.o \
+ dw.o \
+ input.o \
+ integrate.o \
+ inverse.o \
+ isotopes.o \
+ kinetics.o \
+ mainsubs.o \
+ model.o \
+ nvector.o \
+ nvector_serial.o \
+ p2clib.o \
+ parse.o \
+ phqalloc.o \
+ pitzer.o \
+ pitzer_structures.o \
+ prep.o \
+ print.o \
+ read.o \
+ readtr.o \
+ sit.o \
+ smalldense.o \
+ spread.o \
+ step.o \
+ structures.o \
+ sundialsmath.o \
+ tally.o \
+ tidy.o \
+ transport.o \
+ utilities.o
+
+
+SOBJS = \
+ IPhreeqc.o \
+ IPhreeqcF.o \
+ SelectedOutput.o \
+ Var.o \
+ fwrap.o \
+ global.o \
+ module_files.o \
+ module_output.o \
+ pp_sys.o
+
+
+all: $(TARGET)
+
+$(TARGET): $(POBJS) $(SOBJS)
+ $(MKDIR) lib
+ $(AR) $(TARGET) $(POBJS) $(SOBJS)
+ $(RANLIB) $(TARGET)
+
+clean:
+ $(RM) $(POBJS) $(SOBJS)
+
+R:
+ $(MAKE) -f Makefile
+
+
+# phreeqc (POBJS)
+
+advection.o: src/phreeqcpp/phreeqc/advection.c src/phreeqcpp/phreeqc/global.h \
+ src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h \
+ src/phreeqcpp/phreeqc/phrqproto.h
+
+basic.o: src/phreeqcpp/phreeqc/basic.c src/phreeqcpp/phreeqc/global.h src/phreeqcpp/phreeqc/phrqtype.h \
+ src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h src/phreeqcpp/phreeqc/phrqproto.h \
+ src/phreeqcpp/phreeqc/p2c.h
+
+basicsubs.o: src/phreeqcpp/phreeqc/basicsubs.c src/phreeqcpp/phreeqc/global.h \
+ src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h \
+ src/phreeqcpp/phreeqc/phrqproto.h
+
+cl1.o: src/phreeqcpp/phreeqc/cl1.c src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h \
+ src/phreeqcpp/phreeqc/phrqtype.h
+
+cvdense.o: src/phreeqcpp/phreeqc/cvdense.c src/phreeqcpp/phreeqc/cvdense.h \
+ src/phreeqcpp/phreeqc/cvode.h src/phreeqcpp/phreeqc/sundialstypes.h src/phreeqcpp/phreeqc/phrqtype.h \
+ src/phreeqcpp/phreeqc/nvector.h src/phreeqcpp/phreeqc/dense.h src/phreeqcpp/phreeqc/smalldense.h \
+ src/phreeqcpp/phreeqc/sundialsmath.h src/phreeqcpp/phreeqc/output.h src/phreeqcpp/phreeqc/phqalloc.h
+
+cvode.o: src/phreeqcpp/phreeqc/cvode.c src/phreeqcpp/phreeqc/cvode.h \
+ src/phreeqcpp/phreeqc/sundialstypes.h src/phreeqcpp/phreeqc/phrqtype.h \
+ src/phreeqcpp/phreeqc/nvector.h src/phreeqcpp/phreeqc/sundialsmath.h src/phreeqcpp/phreeqc/output.h \
+ src/phreeqcpp/phreeqc/kinetics.h src/phreeqcpp/phreeqc/phqalloc.h
+
+dense.o: src/phreeqcpp/phreeqc/dense.c src/phreeqcpp/phreeqc/sundialstypes.h \
+ src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/sundialsmath.h src/phreeqcpp/phreeqc/dense.h \
+ src/phreeqcpp/phreeqc/smalldense.h src/phreeqcpp/phreeqc/output.h src/phreeqcpp/phreeqc/phqalloc.h
+
+dw.o: src/phreeqcpp/phreeqc/dw.c src/phreeqcpp/phreeqc/global.h src/phreeqcpp/phreeqc/phrqtype.h \
+ src/phreeqcpp/phreeqc/phrqproto.h src/phreeqcpp/phreeqc/output.h src/phreeqcpp/phreeqc/pitzer.h
+
+input.o: src/phreeqcpp/phreeqc/input.c src/phreeqcpp/phreeqc/global.h src/phreeqcpp/phreeqc/phrqtype.h \
+ src/phreeqcpp/phreeqc/input.h src/phreeqcpp/phreeqc/output.h src/phreeqcpp/phreeqc/phrqproto.h \
+ src/phreeqcpp/phreeqc/phqalloc.h
+
+integrate.o: src/phreeqcpp/phreeqc/integrate.c src/phreeqcpp/phreeqc/global.h \
+ src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h \
+ src/phreeqcpp/phreeqc/phrqproto.h
+
+inverse.o: src/phreeqcpp/phreeqc/inverse.c src/phreeqcpp/phreeqc/global.h \
+ src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h \
+ src/phreeqcpp/phreeqc/phrqproto.h
+
+isotopes.o: src/phreeqcpp/phreeqc/isotopes.c src/phreeqcpp/phreeqc/global.h \
+ src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h \
+ src/phreeqcpp/phreeqc/phrqproto.h
+
+kinetics.o: src/phreeqcpp/phreeqc/kinetics.c src/phreeqcpp/phreeqc/global.h \
+ src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h \
+ src/phreeqcpp/phreeqc/phrqproto.h src/phreeqcpp/phreeqc/sundialstypes.h src/phreeqcpp/phreeqc/cvode.h \
+ src/phreeqcpp/phreeqc/nvector.h src/phreeqcpp/phreeqc/cvdense.h src/phreeqcpp/phreeqc/dense.h \
+ src/phreeqcpp/phreeqc/smalldense.h src/phreeqcpp/phreeqc/nvector_serial.h \
+ src/phreeqcpp/phreeqc/kinetics.h
+
+mainsubs.o: src/phreeqcpp/phreeqc/mainsubs.c src/phreeqcpp/phreeqc/global.h \
+ src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h \
+ src/phreeqcpp/phreeqc/phrqproto.h src/phreeqcpp/phreeqc/input.h
+
+model.o: src/phreeqcpp/phreeqc/model.c src/phreeqcpp/phreeqc/global.h src/phreeqcpp/phreeqc/phrqtype.h \
+ src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h src/phreeqcpp/phreeqc/phrqproto.h
+
+nvector.o: src/phreeqcpp/phreeqc/nvector.c src/phreeqcpp/phreeqc/nvector.h \
+ src/phreeqcpp/phreeqc/sundialstypes.h src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/output.h
+
+nvector_serial.o: src/phreeqcpp/phreeqc/nvector_serial.c \
+ src/phreeqcpp/phreeqc/nvector_serial.h src/phreeqcpp/phreeqc/nvector.h \
+ src/phreeqcpp/phreeqc/sundialstypes.h src/phreeqcpp/phreeqc/phrqtype.h \
+ src/phreeqcpp/phreeqc/sundialsmath.h src/phreeqcpp/phreeqc/output.h src/phreeqcpp/phreeqc/phqalloc.h
+
+p2clib.o: src/phreeqcpp/phreeqc/p2clib.c src/phreeqcpp/phreeqc/p2c.h src/phreeqcpp/phreeqc/output.h
+
+parse.o: src/phreeqcpp/phreeqc/parse.c src/phreeqcpp/phreeqc/global.h src/phreeqcpp/phreeqc/phrqtype.h \
+ src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h src/phreeqcpp/phreeqc/phrqproto.h
+
+phqalloc.o: src/phreeqcpp/phreeqc/phqalloc.c src/phreeqcpp/phreeqc/global.h \
+ src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/output.h
+
+pitzer.o: src/phreeqcpp/phreeqc/pitzer.c src/phreeqcpp/phreeqc/global.h \
+ src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h \
+ src/phreeqcpp/phreeqc/phrqproto.h src/phreeqcpp/phreeqc/pitzer.h
+
+pitzer_structures.o: src/phreeqcpp/phreeqc/pitzer_structures.c src/phreeqcpp/phreeqc/global.h \
+ src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h \
+ src/phreeqcpp/phreeqc/phrqproto.h src/phreeqcpp/phreeqc/pitzer.h
+
+prep.o: src/phreeqcpp/phreeqc/prep.c src/phreeqcpp/phreeqc/global.h src/phreeqcpp/phreeqc/phrqtype.h \
+ src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h src/phreeqcpp/phreeqc/phrqproto.h
+
+print.o: src/phreeqcpp/phreeqc/print.c src/phreeqcpp/phreeqc/global.h src/phreeqcpp/phreeqc/phrqtype.h \
+ src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h src/phreeqcpp/phreeqc/phrqproto.h \
+ src/phreeqcpp/phreeqc/pitzer.h
+
+read.o: src/phreeqcpp/phreeqc/read.c src/phreeqcpp/phreeqc/global.h src/phreeqcpp/phreeqc/phrqtype.h \
+ src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h src/phreeqcpp/phreeqc/phrqproto.h
+
+readtr.o: src/phreeqcpp/phreeqc/readtr.c src/phreeqcpp/phreeqc/global.h \
+ src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h \
+ src/phreeqcpp/phreeqc/phrqproto.h
+
+smalldense.o: src/phreeqcpp/phreeqc/smalldense.c src/phreeqcpp/phreeqc/smalldense.h \
+ src/phreeqcpp/phreeqc/sundialstypes.h src/phreeqcpp/phreeqc/phrqtype.h \
+ src/phreeqcpp/phreeqc/sundialsmath.h src/phreeqcpp/phreeqc/output.h src/phreeqcpp/phreeqc/phqalloc.h
+
+spread.o: src/phreeqcpp/phreeqc/spread.c src/phreeqcpp/phreeqc/global.h \
+ src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h \
+ src/phreeqcpp/phreeqc/phrqproto.h
+
+step.o: src/phreeqcpp/phreeqc/step.c src/phreeqcpp/phreeqc/global.h src/phreeqcpp/phreeqc/phrqtype.h \
+ src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h src/phreeqcpp/phreeqc/phrqproto.h
+
+structures.o: src/phreeqcpp/phreeqc/structures.c src/phreeqcpp/phreeqc/global.h \
+ src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h \
+ src/phreeqcpp/phreeqc/phrqproto.h
+
+sundialsmath.o: src/phreeqcpp/phreeqc/sundialsmath.c src/phreeqcpp/phreeqc/sundialsmath.h \
+ src/phreeqcpp/phreeqc/sundialstypes.h src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/output.h
+
+tally.o: src/phreeqcpp/phreeqc/tally.c src/phreeqcpp/phreeqc/global.h src/phreeqcpp/phreeqc/phrqtype.h \
+ src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h src/phreeqcpp/phreeqc/phrqproto.h
+
+tidy.o: src/phreeqcpp/phreeqc/tidy.c src/phreeqcpp/phreeqc/global.h src/phreeqcpp/phreeqc/phrqtype.h \
+ src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h src/phreeqcpp/phreeqc/phrqproto.h
+
+transport.o: src/phreeqcpp/phreeqc/transport.c src/phreeqcpp/phreeqc/global.h \
+ src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h \
+ src/phreeqcpp/phreeqc/phrqproto.h
+
+utilities.o: src/phreeqcpp/phreeqc/utilities.c src/phreeqcpp/phreeqc/global.h \
+ src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h \
+ src/phreeqcpp/phreeqc/phrqproto.h
+
+IPhreeqc.o: src/IPhreeqc.cpp src/phreeqcns.hxx src/phreeqcpp/phreeqc/global.h \
+ src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/input.h \
+ src/phreeqcpp/phreeqc/output.h src/phreeqcpp/phreeqc/phrqproto.h \
+ src/ErrorReporter.hxx src/SelectedOutput.hxx src/CVar.hxx src/Debug.h \
+ src/../include/Var.h src/../include/IPhreeqc.h src/../include/Var.h \
+ src/module_files.h
+
+# iphreeqc (SOBJS)
+
+IPhreeqcF.o: src/IPhreeqcF.F
+
+Phreeqc.o: src/Phreeqc.cxx
+
+SelectedOutput.o: src/SelectedOutput.cpp src/SelectedOutput.hxx \
+ src/CVar.hxx src/Debug.h src/../include/Var.h src/phreeqcns.hxx \
+ src/phreeqcpp/phreeqc/global.h src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/phqalloc.h \
+ src/phreeqcpp/phreeqc/input.h src/phreeqcpp/phreeqc/output.h src/phreeqcpp/phreeqc/phrqproto.h
+
+Var.o: src/Var.c src/../include/Var.h
+
+fwrap.o: src/fwrap.c src/phreeqcpp/phreeqc/global.h src/phreeqcpp/phreeqc/phrqtype.h \
+ src/../include/IPhreeqc.h src/../include/Var.h
+
+global.o: src/global.c src/phreeqcpp/phreeqc/global.h src/phreeqcpp/phreeqc/phrqtype.h \
+ src/phreeqcpp/phreeqc/phqalloc.h
+
+module_files.o: src/module_files.c src/module_files.h \
+ src/phreeqcpp/phreeqc/phreeqc_files.c src/phreeqcpp/phreeqc/global.h src/phreeqcpp/phreeqc/phrqtype.h \
+ src/phreeqcpp/phreeqc/phqalloc.h src/phreeqcpp/phreeqc/output.h src/phreeqcpp/phreeqc/phrqproto.h \
+ src/phreeqcpp/phreeqc/input.h
+
+module_output.o: src/module_output.c src/module_files.h \
+ src/phreeqcpp/phreeqc/output.c src/phreeqcpp/phreeqc/global.h src/phreeqcpp/phreeqc/phrqtype.h \
+ src/phreeqcpp/phreeqc/output.h src/phreeqcpp/phreeqc/phrqproto.h src/phreeqcpp/phreeqc/phqalloc.h
diff --git a/IPhreeqc.dsp b/IPhreeqc.dsp
new file mode 100644
index 00000000..9bcd05f2
--- /dev/null
+++ b/IPhreeqc.dsp
@@ -0,0 +1,340 @@
+# Microsoft Developer Studio Project File - Name="IPhreeqc" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Static Library" 0x0104
+
+CFG=IPhreeqc - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "IPhreeqc.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "IPhreeqc.mak" CFG="IPhreeqc - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "IPhreeqc - Win32 Release" (based on "Win32 (x86) Static Library")
+!MESSAGE "IPhreeqc - Win32 Debug" (based on "Win32 (x86) Static Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+F90=df.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "IPhreeqc - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+# ADD BASE F90 /compile_only /nologo /warn:nofileopt
+# ADD F90 /compile_only /nologo /warn:nofileopt
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I "$(DEV_GMP_INC)" /I "include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "SWIG_SHARED_OBJ" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"lib\IPhreeqc.lib"
+
+!ELSEIF "$(CFG)" == "IPhreeqc - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+# ADD BASE F90 /check:bounds /compile_only /debug:full /nologo /traceback /warn:argument_checking /warn:nofileopt
+# ADD F90 /check:bounds /compile_only /debug:full /nologo /traceback /warn:argument_checking /warn:nofileopt
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "$(DEV_GMP_INC)" /I "include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "SWIG_SHARED_OBJ" /YX /FD /GZ /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"lib\IPhreeqcd.lib"
+
+!ENDIF
+
+# Begin Target
+
+# Name "IPhreeqc - Win32 Release"
+# Name "IPhreeqc - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;f90;for;f;fpp"
+# Begin Group "phreeqcpp"
+
+# PROP Default_Filter ""
+# Begin Group "phreeqc"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\advection.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\basic.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\basicsubs.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\cl1.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\cl1mp.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\cvdense.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\cvode.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\dense.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\dw.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\input.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\integrate.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\inverse.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\isotopes.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\kinetics.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\main.c
+# PROP Exclude_From_Build 1
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\mainsubs.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\model.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\nvector.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\nvector_serial.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\output.c
+# PROP Exclude_From_Build 1
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\p2clib.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\parse.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\phqalloc.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\phreeqc_files.c
+# PROP Exclude_From_Build 1
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\pitzer.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\pitzer_structures.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\prep.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\print.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\read.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\readtr.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\smalldense.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\spread.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\step.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\structures.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\sundialsmath.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\tally.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\tidy.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\transport.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcpp\phreeqc\utilities.c
+# End Source File
+# End Group
+# End Group
+# Begin Source File
+
+SOURCE=.\src\fwrap.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\global.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\IPhreeqc.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\module_files.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\module_output.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\Phreeqc.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\SelectedOutput.cxx
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\Var.c
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
+# Begin Source File
+
+SOURCE=.\src\CVar.hxx
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ErrorReporter.hxx
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\IPhreeqc.f90.inc
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\IPhreeqc.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\module_files.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\Output.hxx
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\Phreeqc.hxx
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\phreeqcns.hxx
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\PhreeqcParser.hxx
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\SelectedOutput.hxx
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\Var.h
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/IPhreeqc.dsw b/IPhreeqc.dsw
new file mode 100644
index 00000000..5d2e52e3
--- /dev/null
+++ b/IPhreeqc.dsw
@@ -0,0 +1,71 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "IPhreeqc"=.\IPhreeqc.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "test"=.\test\test.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name IPhreeqc
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "test2"=.\test2\test2.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name IPhreeqc
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "unit"=.\unit\unit.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/IPhreeqc.sln b/IPhreeqc.sln
new file mode 100644
index 00000000..9891a789
--- /dev/null
+++ b/IPhreeqc.sln
@@ -0,0 +1,53 @@
+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IPhreeqc", "IPhreeqc.vcproj", "{F9C18E06-F73A-4EB0-92E0-AE1713EA7FD7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unit", "unit\unit.vcproj", "{270BB952-FCB2-4FA8-821E-BB750E83C902}"
+EndProject
+Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "test", "test\test.vfproj", "{14BB3A4C-1ADE-4212-8931-6514BF913874}"
+ ProjectSection(ProjectDependencies) = postProject
+ {F9C18E06-F73A-4EB0-92E0-AE1713EA7FD7} = {F9C18E06-F73A-4EB0-92E0-AE1713EA7FD7}
+ EndProjectSection
+EndProject
+Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "test2", "test2\test2.vfproj", "{0BF09B12-56BE-42FC-B39E-61AE515D8858}"
+ ProjectSection(ProjectDependencies) = postProject
+ {F9C18E06-F73A-4EB0-92E0-AE1713EA7FD7} = {F9C18E06-F73A-4EB0-92E0-AE1713EA7FD7}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ MemDebug|Win32 = MemDebug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {F9C18E06-F73A-4EB0-92E0-AE1713EA7FD7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F9C18E06-F73A-4EB0-92E0-AE1713EA7FD7}.Debug|Win32.Build.0 = Debug|Win32
+ {F9C18E06-F73A-4EB0-92E0-AE1713EA7FD7}.MemDebug|Win32.ActiveCfg = MemDebug|Win32
+ {F9C18E06-F73A-4EB0-92E0-AE1713EA7FD7}.MemDebug|Win32.Build.0 = MemDebug|Win32
+ {F9C18E06-F73A-4EB0-92E0-AE1713EA7FD7}.Release|Win32.ActiveCfg = Release|Win32
+ {F9C18E06-F73A-4EB0-92E0-AE1713EA7FD7}.Release|Win32.Build.0 = Release|Win32
+ {270BB952-FCB2-4FA8-821E-BB750E83C902}.Debug|Win32.ActiveCfg = Debug|Win32
+ {270BB952-FCB2-4FA8-821E-BB750E83C902}.Debug|Win32.Build.0 = Debug|Win32
+ {270BB952-FCB2-4FA8-821E-BB750E83C902}.MemDebug|Win32.ActiveCfg = MemDebug|Win32
+ {270BB952-FCB2-4FA8-821E-BB750E83C902}.MemDebug|Win32.Build.0 = MemDebug|Win32
+ {270BB952-FCB2-4FA8-821E-BB750E83C902}.Release|Win32.ActiveCfg = Release|Win32
+ {270BB952-FCB2-4FA8-821E-BB750E83C902}.Release|Win32.Build.0 = Release|Win32
+ {14BB3A4C-1ADE-4212-8931-6514BF913874}.Debug|Win32.ActiveCfg = Debug|Win32
+ {14BB3A4C-1ADE-4212-8931-6514BF913874}.Debug|Win32.Build.0 = Debug|Win32
+ {14BB3A4C-1ADE-4212-8931-6514BF913874}.MemDebug|Win32.ActiveCfg = MemDebug|Win32
+ {14BB3A4C-1ADE-4212-8931-6514BF913874}.MemDebug|Win32.Build.0 = MemDebug|Win32
+ {14BB3A4C-1ADE-4212-8931-6514BF913874}.Release|Win32.ActiveCfg = Release|Win32
+ {14BB3A4C-1ADE-4212-8931-6514BF913874}.Release|Win32.Build.0 = Release|Win32
+ {0BF09B12-56BE-42FC-B39E-61AE515D8858}.Debug|Win32.ActiveCfg = Debug|Win32
+ {0BF09B12-56BE-42FC-B39E-61AE515D8858}.Debug|Win32.Build.0 = Debug|Win32
+ {0BF09B12-56BE-42FC-B39E-61AE515D8858}.MemDebug|Win32.ActiveCfg = MemDebug|Win32
+ {0BF09B12-56BE-42FC-B39E-61AE515D8858}.MemDebug|Win32.Build.0 = MemDebug|Win32
+ {0BF09B12-56BE-42FC-B39E-61AE515D8858}.Release|Win32.ActiveCfg = Release|Win32
+ {0BF09B12-56BE-42FC-B39E-61AE515D8858}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/IPhreeqc.vcproj b/IPhreeqc.vcproj
new file mode 100644
index 00000000..6a5f9f8a
--- /dev/null
+++ b/IPhreeqc.vcproj
@@ -0,0 +1,1869 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/IPhreeqc71.sln b/IPhreeqc71.sln
new file mode 100644
index 00000000..e20df11b
--- /dev/null
+++ b/IPhreeqc71.sln
@@ -0,0 +1,24 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IPhreeqc", "IPhreeqc71.vcproj", "{F9C18E06-F73A-4EB0-92E0-AE1713EA7FD7}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ Debug = Debug
+ MemDebug = MemDebug
+ Release = Release
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {F9C18E06-F73A-4EB0-92E0-AE1713EA7FD7}.Debug.ActiveCfg = Debug|Win32
+ {F9C18E06-F73A-4EB0-92E0-AE1713EA7FD7}.Debug.Build.0 = Debug|Win32
+ {F9C18E06-F73A-4EB0-92E0-AE1713EA7FD7}.MemDebug.ActiveCfg = MemDebug|Win32
+ {F9C18E06-F73A-4EB0-92E0-AE1713EA7FD7}.MemDebug.Build.0 = MemDebug|Win32
+ {F9C18E06-F73A-4EB0-92E0-AE1713EA7FD7}.Release.ActiveCfg = Release|Win32
+ {F9C18E06-F73A-4EB0-92E0-AE1713EA7FD7}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/IPhreeqc71.vcproj b/IPhreeqc71.vcproj
new file mode 100644
index 00000000..c963c3fe
--- /dev/null
+++ b/IPhreeqc71.vcproj
@@ -0,0 +1,1435 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Makefile b/Makefile
new file mode 100644
index 00000000..4719bd51
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,308 @@
+SRC=src/phreeqcpp/phreeqc
+DEST=RPhreeqc/phreeqc/src
+MODPATH=src
+IPATH=include
+CP=cp -f
+
+PSRC = \
+ $(DEST)/advection.cpp \
+ $(DEST)/basic.cpp \
+ $(DEST)/basicsubs.cpp \
+ $(DEST)/cl1.cpp \
+ $(DEST)/cvdense.cpp \
+ $(DEST)/cvode.cpp \
+ $(DEST)/dense.cpp \
+ $(DEST)/dw.cpp \
+ $(DEST)/input.cpp \
+ $(DEST)/integrate.cpp \
+ $(DEST)/inverse.cpp \
+ $(DEST)/isotopes.cpp \
+ $(DEST)/kinetics.cpp \
+ $(DEST)/mainsubs.cpp \
+ $(DEST)/model.cpp \
+ $(DEST)/nvector.cpp \
+ $(DEST)/nvector_serial.cpp \
+ $(DEST)/p2clib.cpp \
+ $(DEST)/parse.cpp \
+ $(DEST)/phqalloc.cpp \
+ $(DEST)/pitzer.cpp \
+ $(DEST)/pitzer_structures.cpp \
+ $(DEST)/prep.cpp \
+ $(DEST)/print.cpp \
+ $(DEST)/read.cpp \
+ $(DEST)/readtr.cpp \
+ $(DEST)/smalldense.cpp \
+ $(DEST)/spread.cpp \
+ $(DEST)/step.cpp \
+ $(DEST)/structures.cpp \
+ $(DEST)/sundialsmath.cpp \
+ $(DEST)/tally.cpp \
+ $(DEST)/tidy.cpp \
+ $(DEST)/transport.cpp \
+ $(DEST)/utilities.cpp
+
+
+MODSRC = \
+ $(DEST)/IPhreeqc.cpp \
+ $(DEST)/SelectedOutput.cpp \
+ $(DEST)/Var.cpp \
+ $(DEST)/global.cpp \
+ $(DEST)/module_files.cpp \
+ $(DEST)/module_output.cpp
+
+
+HSRC = \
+ $(DEST)/IPhreeqc.h \
+ $(DEST)/Var.h \
+ $(DEST)/CVar.hxx \
+ $(DEST)/Debug.h \
+ $(DEST)/module_files.h \
+ $(DEST)/ErrorReporter.hxx \
+ $(DEST)/phreeqcns.hxx \
+ $(DEST)/PhreeqcParser.hxx \
+ $(DEST)/SelectedOutput.hxx \
+ $(DEST)/cvdense.h \
+ $(DEST)/cvode.h \
+ $(DEST)/dense.h \
+ $(DEST)/global.h \
+ $(DEST)/input.h \
+ $(DEST)/kinetics.h \
+ $(DEST)/nvector.h \
+ $(DEST)/nvector_serial.h \
+ $(DEST)/output.h \
+ $(DEST)/p2c.h \
+ $(DEST)/phqalloc.h \
+ $(DEST)/phrqproto.h \
+ $(DEST)/phrqtype.h \
+ $(DEST)/pitzer.h \
+ $(DEST)/smalldense.h \
+ $(DEST)/sundialsmath.h \
+ $(DEST)/sundialstypes.h \
+ $(DEST)/phreeqc_files.inl \
+ $(DEST)/output.inl
+
+#
+# phreeqc files
+#
+all: $(PSRC) $(MODSRC) $(HSRC)
+
+$(DEST)/advection.cpp : $(SRC)/advection.c
+ $(CP) $< $@
+
+$(DEST)/utilities.cpp : $(SRC)/utilities.c
+ $(CP) $< $@
+
+$(DEST)/basic.cpp : $(SRC)/basic.c
+ $(CP) $< $@
+
+$(DEST)/basicsubs.cpp : $(SRC)/basicsubs.c
+ $(CP) $< $@
+
+$(DEST)/cl1.cpp : $(SRC)/cl1.c
+ $(CP) $< $@
+
+$(DEST)/cvdense.cpp : $(SRC)/cvdense.c
+ $(CP) $< $@
+
+$(DEST)/cvode.cpp : $(SRC)/cvode.c
+ $(CP) $< $@
+
+$(DEST)/dense.cpp : $(SRC)/dense.c
+ $(CP) $< $@
+
+$(DEST)/dw.cpp : $(SRC)/dw.c
+ $(CP) $< $@
+
+$(DEST)/input.cpp : $(SRC)/input.c
+ $(CP) $< $@
+
+$(DEST)/integrate.cpp : $(SRC)/integrate.c
+ $(CP) $< $@
+
+$(DEST)/inverse.cpp : $(SRC)/inverse.c
+ $(CP) $< $@
+
+$(DEST)/isotopes.cpp : $(SRC)/isotopes.c
+ $(CP) $< $@
+
+$(DEST)/kinetics.cpp : $(SRC)/kinetics.c
+ $(CP) $< $@
+
+$(DEST)/mainsubs.cpp : $(SRC)/mainsubs.c
+ $(CP) $< $@
+
+$(DEST)/model.cpp : $(SRC)/model.c
+ $(CP) $< $@
+
+$(DEST)/nvector.cpp : $(SRC)/nvector.c
+ $(CP) $< $@
+
+$(DEST)/nvector_serial.cpp : $(SRC)/nvector_serial.c
+ $(CP) $< $@
+
+$(DEST)/p2clib.cpp : $(SRC)/p2clib.c
+ $(CP) $< $@
+
+$(DEST)/parse.cpp : $(SRC)/parse.c
+ $(CP) $< $@
+
+$(DEST)/phqalloc.cpp : $(SRC)/phqalloc.c
+ $(CP) $< $@
+
+$(DEST)/pitzer.cpp : $(SRC)/pitzer.c
+ $(CP) $< $@
+
+$(DEST)/pitzer_structures.cpp : $(SRC)/pitzer_structures.c
+ $(CP) $< $@
+
+$(DEST)/prep.cpp : $(SRC)/prep.c
+ $(CP) $< $@
+
+$(DEST)/print.cpp : $(SRC)/print.c
+ $(CP) $< $@
+
+$(DEST)/read.cpp : $(SRC)/read.c
+ $(CP) $< $@
+
+$(DEST)/readtr.cpp : $(SRC)/readtr.c
+ $(CP) $< $@
+
+$(DEST)/smalldense.cpp : $(SRC)/smalldense.c
+ $(CP) $< $@
+
+$(DEST)/spread.cpp : $(SRC)/spread.c
+ $(CP) $< $@
+
+$(DEST)/step.cpp : $(SRC)/step.c
+ $(CP) $< $@
+
+$(DEST)/structures.cpp : $(SRC)/structures.c
+ $(CP) $< $@
+
+$(DEST)/sundialsmath.cpp : $(SRC)/sundialsmath.c
+ $(CP) $< $@
+
+$(DEST)/tally.cpp : $(SRC)/tally.c
+ $(CP) $< $@
+
+$(DEST)/tidy.cpp : $(SRC)/tidy.c
+ $(CP) $< $@
+
+$(DEST)/transport.cpp : $(SRC)/transport.c
+ $(CP) $< $@
+
+
+#
+# module files
+#
+$(DEST)/IPhreeqc.cpp : $(MODPATH)/IPhreeqc.cpp
+ $(CP) $< $@
+
+$(DEST)/SelectedOutput.cpp : $(MODPATH)/SelectedOutput.cpp
+ $(CP) $< $@
+
+$(DEST)/Var.cpp : $(MODPATH)/Var.c
+ $(CP) $< $@
+
+##$(DEST)/fwrap.cpp : $(MODPATH)/fwrap.c
+## $(CP) $< $@
+
+$(DEST)/global.cpp : $(MODPATH)/global.c
+ $(CP) $< $@
+
+$(DEST)/module_files.cpp : $(MODPATH)/module_files.c
+ $(CP) $< $@
+
+$(DEST)/module_output.cpp : $(MODPATH)/module_output.c
+ $(CP) $< $@
+
+
+#
+# header files
+#
+$(DEST)/Var.h : $(IPATH)/Var.h
+ $(CP) $< $@
+
+$(DEST)/IPhreeqc.h : $(IPATH)/IPhreeqc.h
+ $(CP) $< $@
+
+$(DEST)/CVar.hxx : $(MODPATH)/CVar.hxx
+ $(CP) $< $@
+
+$(DEST)/Debug.h : $(MODPATH)/Debug.h
+ $(CP) $< $@
+
+##$(DEST)/fwrap.h : $(MODPATH)/fwrap.h
+## $(CP) $< $@
+
+$(DEST)/module_files.h : $(MODPATH)/module_files.h
+ $(CP) $< $@
+
+$(DEST)/ErrorReporter.hxx : $(MODPATH)/ErrorReporter.hxx
+ $(CP) $< $@
+
+$(DEST)/phreeqcns.hxx : $(MODPATH)/phreeqcns.hxx
+ $(CP) $< $@
+
+$(DEST)/PhreeqcParser.hxx : $(MODPATH)/PhreeqcParser.hxx
+ $(CP) $< $@
+
+$(DEST)/SelectedOutput.hxx : $(MODPATH)/SelectedOutput.hxx
+ $(CP) $< $@
+
+$(DEST)/cvdense.h : $(SRC)/cvdense.h
+ $(CP) $< $@
+
+$(DEST)/cvode.h : $(SRC)/cvode.h
+ $(CP) $< $@
+
+$(DEST)/dense.h : $(SRC)/dense.h
+ $(CP) $< $@
+
+$(DEST)/global.h : $(SRC)/global.h
+ $(CP) $< $@
+
+$(DEST)/input.h : $(SRC)/input.h
+ $(CP) $< $@
+
+$(DEST)/kinetics.h : $(SRC)/kinetics.h
+ $(CP) $< $@
+
+$(DEST)/nvector.h : $(SRC)/nvector.h
+ $(CP) $< $@
+
+$(DEST)/nvector_serial.h : $(SRC)/nvector_serial.h
+ $(CP) $< $@
+
+$(DEST)/output.h : $(SRC)/output.h
+ $(CP) $< $@
+
+$(DEST)/p2c.h : $(SRC)/p2c.h
+ $(CP) $< $@
+
+$(DEST)/phqalloc.h : $(SRC)/phqalloc.h
+ $(CP) $< $@
+
+$(DEST)/phrqproto.h : $(SRC)/phrqproto.h
+ $(CP) $< $@
+
+$(DEST)/phrqtype.h : $(SRC)/phrqtype.h
+ $(CP) $< $@
+
+$(DEST)/pitzer.h : $(SRC)/pitzer.h
+ $(CP) $< $@
+
+$(DEST)/smalldense.h : $(SRC)/smalldense.h
+ $(CP) $< $@
+
+$(DEST)/sundialsmath.h : $(SRC)/sundialsmath.h
+ $(CP) $< $@
+
+$(DEST)/sundialstypes.h: $(SRC)/sundialstypes.h
+ $(CP) $< $@
+
+$(DEST)/phreeqc_files.inl : $(SRC)/phreeqc_files.c
+ $(CP) $< $@
+
+$(DEST)/output.inl : $(SRC)/output.c
+ $(CP) $< $@