diff --git a/GNUmakefile b/GNUmakefile index 5f45af9a..67c621be 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -52,9 +52,9 @@ OBJS = \ input.o \ integrate.o \ inverse.o \ - IPhreeqc.o \ IPhreeqc2.o \ IPhreeqcF.o \ + IPhreeqcLib.o \ ISolution.o \ ISolutionComp.o \ isotopes.o \ @@ -62,8 +62,6 @@ OBJS = \ KineticsComp.o \ mainsubs.o \ model.o \ - module_files.o \ - module_output.o \ NameDouble.o \ NumKeyword.o \ nvector.o \ @@ -1215,7 +1213,7 @@ Phreeqc.o: src/phreeqcpp/Phreeqc.cpp src/phreeqcpp/Phreeqc.h \ dumper.o: src/phreeqcpp/dumper.cpp src/phreeqcpp/dumper.h \ src/phreeqcpp/StorageBinList.h src/phreeqcpp/Parser.h \ src/phreeqcpp/Phreeqc_class.h -IPhreeqc.o: src/IPhreeqc.cpp include/IPhreeqc.h \ +IPhreeqc.o: src/IPhreeqc.cpp \ include/IPhreeqcCallbacks.h src/CVar.hxx src/Debug.h include/Var.h \ include/IPhreeqc.hpp src/phreeqcpp/Phreeqc.h \ src/phreeqcpp/phreeqc/phrqtype.h src/phreeqcpp/phreeqc/sundialstypes.h \ @@ -1286,7 +1284,7 @@ SelectedOutput.o: src/SelectedOutput.cpp src/phreeqcpp/phreeqc/phrqtype.h \ src/phreeqcpp/phreeqc/global_structures.h src/SelectedOutput.hxx \ src/CVar.hxx src/Debug.h include/Var.h pp_sys.o: src/pp_sys.cpp -fwrap.o: src/fwrap.cpp src/phreeqcpp/phreeqc/phrqtype.h include/IPhreeqc.h \ +fwrap.o: src/fwrap.cpp src/phreeqcpp/phreeqc/phrqtype.h \ include/IPhreeqcCallbacks.h src/CVar.hxx src/Debug.h include/Var.h \ src/fwrap.h Var.o: src/Var.c include/Var.h diff --git a/include/IPhreeqc.f90.inc b/include/IPhreeqc.f90.inc index 1b233014..ff139158 100644 --- a/include/IPhreeqc.f90.inc +++ b/include/IPhreeqc.f90.inc @@ -15,7 +15,7 @@ INTERFACE - FUNCTION CreateIPhreeqc + FUNCTION CreateIPhreeqc() INTEGER(KIND=4) :: CreateIPhreeqc END FUNCTION CreateIPhreeqc END INTERFACE diff --git a/src/IPhreeqcF.F b/src/IPhreeqcF.F index a0dcb2d5..8a31436d 100644 --- a/src/IPhreeqcF.F +++ b/src/IPhreeqcF.F @@ -1,193 +1,217 @@ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION LoadDatabase(FILENAME) + FUNCTION CreateIPhreeqc() IMPLICIT NONE + INTEGER :: CreateIPhreeqc + INTEGER :: CreateIPhreeqcF + CreateIPhreeqc = CreateIPhreeqcF() + END FUNCTION CreateIPhreeqc +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION LoadDatabase(ID,FILENAME) + IMPLICIT NONE + INTEGER :: ID CHARACTER(LEN=*) :: FILENAME INTEGER :: LoadDatabase -#if defined(_WIN32) - INTERFACE - FUNCTION LoadDatabaseF(FILENAME) - !DEC$ ATTRIBUTES C,REFERENCE::LoadDatabaseF - !DEC$ ATTRIBUTES ALIAS:'_LoadDatabaseF'::LoadDatabaseF - CHARACTER(LEN=*) :: FILENAME - INTEGER(KIND=4) :: LoadDatabaseF - END FUNCTION LoadDatabaseF - END INTERFACE -#else INTEGER :: LoadDatabaseF -#endif - - LoadDatabase = LoadDatabaseF(FILENAME) + LoadDatabase = LoadDatabaseF(ID,FILENAME) END FUNCTION LoadDatabase !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - SUBROUTINE OutputLastError + FUNCTION LoadDatabaseString(ID,INPUT) IMPLICIT NONE -#if defined(_WIN32) - INTERFACE - SUBROUTINE OutputLastErrorF - !DEC$ ATTRIBUTES C,REFERENCE::OutputLastErrorF - !DEC$ ATTRIBUTES ALIAS:'_OutputLastError'::OutputLastErrorF - END SUBROUTINE OutputLastErrorF - END INTERFACE -#endif - CALL OutputLastErrorF - END SUBROUTINE OutputLastError + INTEGER :: ID + CHARACTER(LEN=*) :: INPUT + INTEGER :: LoadDatabaseString + INTEGER :: LoadDatabaseStringF + LoadDatabaseString = LoadDatabaseStringF(ID,INPUT) + END FUNCTION LoadDatabaseString !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION AccumulateLine(LINE) + FUNCTION AccumulateLine(ID,LINE) IMPLICIT NONE + INTEGER :: ID CHARACTER(LEN=*) :: LINE INTEGER :: AccumulateLine -#if defined(_WIN32) - INTERFACE - FUNCTION AccumulateLineF(LINE) - !DEC$ ATTRIBUTES C,REFERENCE::AccumulateLineF - !DEC$ ATTRIBUTES ALIAS:'_AccumulateLineF'::AccumulateLineF - CHARACTER(LEN=*) :: LINE - INTEGER(KIND=4) :: AccumulateLineF - END FUNCTION AccumulateLineF - END INTERFACE -#else INTEGER :: AccumulateLineF -#endif - AccumulateLine = AccumulateLineF(LINE) + AccumulateLine = AccumulateLineF(ID,LINE) END FUNCTION AccumulateLine !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION RunAccumulated(OUTPUT_ON, ERROR_ON, LOG_ON, SELECTED_ON) + FUNCTION SetSelectedOutputOn(ID,SELECTED_ON) IMPLICIT NONE - LOGICAL :: OUTPUT_ON - LOGICAL :: ERROR_ON - LOGICAL :: LOG_ON - LOGICAL :: SELECTED_ON + INTEGER :: ID + LOGICAL :: SELECTED_ON + INTEGER :: SetSelectedOutputOn + INTEGER :: SetSelectedOutputOnF + SetSelectedOutputOn = SetSelectedOutputOnF(ID,SELECTED_ON) + END FUNCTION SetSelectedOutputOn +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION SetOutputOn(ID,OUTPUT_ON) + IMPLICIT NONE + INTEGER :: ID + LOGICAL :: OUTPUT_ON + INTEGER :: SetOutputOn + INTEGER :: SetOutputOnF + SetOutputOn = SetOutputOnF(ID,OUTPUT_ON) + END FUNCTION SetOutputOn +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION SetErrorOn(ID,ERROR_ON) + IMPLICIT NONE + INTEGER :: ID + LOGICAL :: ERROR_ON + INTEGER :: SetErrorOn + INTEGER :: SetErrorOnF + SetErrorOn = SetErrorOnF(ID,ERROR_ON) + END FUNCTION SetErrorOn +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION SetLogOn(ID,LOG_ON) + IMPLICIT NONE + INTEGER :: ID + LOGICAL :: LOG_ON + INTEGER :: SetLogOn + INTEGER :: SetLogOnF + SetLogOn = SetLogOnF(ID,LOG_ON) + END FUNCTION SetLogOn +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION SetDumpOn(ID,DUMP_ON) + IMPLICIT NONE + INTEGER :: ID + LOGICAL :: DUMP_ON + INTEGER :: SetDumpOn + INTEGER :: SetDumpOnF + SetDumpOn = SetDumpOnF(ID,DUMP_ON) + END FUNCTION SetDumpOn +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION SetDumpStringOn(ID,DUMP_STRING_ON) + IMPLICIT NONE + INTEGER :: ID + LOGICAL :: DUMP_STRING_ON + INTEGER :: SetDumpStringOn + INTEGER :: SetDumpStringOnF + SetDumpStringOn = SetDumpStringOnF(ID,DUMP_STRING_ON) + END FUNCTION SetDumpStringOn +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetDumpLineCount(ID) + IMPLICIT NONE + INTEGER :: ID + INTEGER :: GetDumpLineCount + INTEGER :: GetDumpLineCountF + GetDumpLineCount = GetDumpLineCountF(ID) + END FUNCTION GetDumpLineCount +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetDumpLine(ID,N,LINE) + IMPLICIT NONE + INTEGER :: ID + INTEGER :: N + CHARACTER(LEN=*) :: LINE + INTEGER :: GetDumpLine + INTEGER :: GetDumpLineF + GetDumpLine = GetDumpLineF(ID,N,LINE) + END FUNCTION GetDumpLine +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetErrorLineCount(ID) + IMPLICIT NONE + INTEGER :: ID + INTEGER :: GetErrorLineCount + INTEGER :: GetErrorLineCountF + GetErrorLineCount = GetErrorLineCountF(ID) + END FUNCTION GetErrorLineCount +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetErrorLine(ID,N,LINE) + IMPLICIT NONE + INTEGER :: ID + INTEGER :: N + CHARACTER(LEN=*) :: LINE + INTEGER :: GetErrorLine + INTEGER :: GetErrorLineF + GetErrorLine = GetErrorLineF(ID,N,LINE) + END FUNCTION GetErrorLine +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetComponentCount(ID) + IMPLICIT NONE + INTEGER :: ID + INTEGER :: GetComponentCount + INTEGER :: GetComponentCountF + GetComponentCount = GetComponentCountF(ID) + END FUNCTION GetComponentCount +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetComponent(ID,N,COMP) + IMPLICIT NONE + INTEGER :: ID + INTEGER :: N + CHARACTER(LEN=*) :: COMP + INTEGER :: GetComponent + INTEGER :: GetComponentF + GetComponent = GetComponentF(ID,N,COMP) + END FUNCTION GetComponent +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION RunAccumulated(ID) + IMPLICIT NONE + INTEGER :: ID INTEGER :: RunAccumulated -#if defined(_WIN32) - INTERFACE - FUNCTION RunAccumulatedF(OUTPUT_ON, ERROR_ON, LOG_ON, SELECTED_ON) - !DEC$ ATTRIBUTES C,REFERENCE::RunF - !DEC$ ATTRIBUTES ALIAS:'_RunF'::RunF - LOGICAL(KIND=4) :: OUTPUT_ON - LOGICAL(KIND=4) :: ERROR_ON - LOGICAL(KIND=4) :: LOG_ON - LOGICAL(KIND=4) :: SELECTED_ON - INTEGER(KIND=4) :: RunF - END FUNCTION RunAccumulatedF - END INTERFACE -#else INTEGER :: RunAccumulatedF -#endif - RunAccumulated = RunAccumulatedF(OUTPUT_ON, ERROR_ON, - & LOG_ON, SELECTED_ON) + RunAccumulated = RunAccumulatedF(ID) END FUNCTION RunAccumulated !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION RunFile(FILENAME,OUTPUT_ON,ERROR_ON,LOG_ON,SELECTED_ON) + FUNCTION RunFile(ID,FILENAME) IMPLICIT NONE + INTEGER :: ID CHARACTER(LEN=*) :: FILENAME - LOGICAL :: OUTPUT_ON - LOGICAL :: ERROR_ON - LOGICAL :: LOG_ON - LOGICAL :: SELECTED_ON INTEGER :: RunFile -#if defined(_WIN32) - INTERFACE - FUNCTION RunFileF(OUT_ON, ERR_ON, LOG_ON, SEL_ON, FILE) - !DEC$ ATTRIBUTES C,REFERENCE::RunFileF - !DEC$ ATTRIBUTES ALIAS:'_RunFileF'::RunFileF - LOGICAL(KIND=4) :: OUT_ON - LOGICAL(KIND=4) :: ERR_ON - LOGICAL(KIND=4) :: LOG_ON - LOGICAL(KIND=4) :: SEL_ON - CHARACTER(LEN=*) :: FILE - INTEGER(KIND=4) :: RunFileF - END FUNCTION RunFileF - END INTERFACE -#else INTEGER :: RunFileF -#endif - RunFile = RunFileF(OUTPUT_ON, ERROR_ON, LOG_ON, - & SELECTED_ON, FILENAME) + RunFile = RunFileF(ID,FILENAME) END FUNCTION RunFile !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - SUBROUTINE OutputLines + FUNCTION RunString(ID,INPUT) IMPLICIT NONE -#if defined(_WIN32) - INTERFACE - SUBROUTINE OutputLinesF - !DEC$ ATTRIBUTES C,REFERENCE::OutputLinesF - !DEC$ ATTRIBUTES ALIAS:'_OutputLines'::OutputLinesF - END SUBROUTINE OutputLinesF - END INTERFACE -#endif - CALL OutputLinesF - END SUBROUTINE OutputLines + INTEGER :: ID + CHARACTER(LEN=*) :: INPUT + INTEGER :: RunString + INTEGER :: RunStringF + RunString = RunStringF(ID,INPUT) + END FUNCTION RunString !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION GetSelectedOutputRowCount() + FUNCTION GetSelectedOutputRowCount(ID) IMPLICIT NONE - INTEGER :: GetSelectedOutputRowCount -#if defined(_WIN32) - INTERFACE - FUNCTION FRows - !DEC$ ATTRIBUTES C,REFERENCE::FRows - !DEC$ ATTRIBUTES ALIAS:'_GetSelectedOutputRowCountF'::FRows - INTEGER(KIND=4) :: FRows - END FUNCTION FRows - END INTERFACE - GetSelectedOutputRowCount = FRows() - 1 -#else - INTEGER :: GetSelectedOutputRowCountF - GetSelectedOutputRowCount = GetSelectedOutputRowCountF() - 1 -#endif + INTEGER :: ID + INTEGER :: GetSelectedOutputRowCount + INTEGER :: GetSelectedOutputRowCountF + GetSelectedOutputRowCount = GetSelectedOutputRowCountF(ID) END FUNCTION GetSelectedOutputRowCount !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION GetSelectedOutputColumnCount() + FUNCTION GetSelectedOutputColumnCount(ID) IMPLICIT NONE + INTEGER :: ID INTEGER :: GetSelectedOutputColumnCount -#if defined(_WIN32) - INTERFACE - FUNCTION FCols - !DEC$ ATTRIBUTES C,REFERENCE::FCols - !DEC$ ATTRIBUTES ALIAS:'_GetSelectedOutputColumnCount'::FCols - INTEGER(KIND=4) :: FCols - END FUNCTION FCols - END INTERFACE - GetSelectedOutputColumnCount = FCols() -#else INTEGER :: GetSelectedOutputColumnCountF - GetSelectedOutputColumnCount = GetSelectedOutputColumnCountF() -#endif + GetSelectedOutputColumnCount = GetSelectedOutputColumnCountF(ID) END FUNCTION GetSelectedOutputColumnCount !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION GetSelectedOutputValue(ROW,COL,VTYPE,DVALUE,SVALUE) + FUNCTION GetSelectedOutputValue(ID,ROW,COL,VTYPE,DVALUE,SVALUE) IMPLICIT NONE + INTEGER :: ID INTEGER :: ROW INTEGER :: COL INTEGER :: VTYPE REAL*8 :: DVALUE CHARACTER(LEN=*) :: SVALUE INTEGER :: GetSelectedOutputValue -#if defined(_WIN32) - INTERFACE - FUNCTION Get(ROW,COL,VTYPE,DVALUE,SVALUE) - !DEC$ ATTRIBUTES C,REFERENCE::Get - !DEC$ ATTRIBUTES ALIAS:'_GetSelectedOutputValueF'::Get - INTEGER(KIND=4) :: ROW - INTEGER(KIND=4) :: COL - INTEGER(KIND=4) :: VTYPE - REAL(KIND=8) :: DVALUE - CHARACTER(LEN=*) :: SVALUE - INTEGER(KIND=4) :: Get - END FUNCTION Get - END INTERFACE - adjcol = col - 1 - GetSelectedOutputValue = Get(ROW,adjcol,VTYPE,DVALUE,SVALUE) -#else INTEGER :: GetSelectedOutputValueF - GetSelectedOutputValue = GetSelectedOutputValueF(ROW, + GetSelectedOutputValue = GetSelectedOutputValueF(ID,ROW, & COL,VTYPE,DVALUE,SVALUE) -#endif END FUNCTION GetSelectedOutputValue !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION System(COMMAND) + SUBROUTINE OutputLastError IMPLICIT NONE - CHARACTER(LEN=*) :: COMMAND - INTEGER :: System - INTEGER :: SystemF - System = SystemF(COMMAND) - END FUNCTION System + CALL OutputLastErrorF + END SUBROUTINE OutputLastError +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + SUBROUTINE OutputLines(ID) + IMPLICIT NONE + INTEGER :: ID + CALL OutputLinesF(ID) + END SUBROUTINE OutputLines +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!! FUNCTION System(COMMAND) +!! IMPLICIT NONE +!! CHARACTER(LEN=*) :: COMMAND +!! INTEGER :: System +!! INTEGER :: SystemF +!! System = SystemF(COMMAND) +!! END FUNCTION System diff --git a/src/fwrap.cpp b/src/fwrap.cpp index fefe79de..78854e4c 100644 --- a/src/fwrap.cpp +++ b/src/fwrap.cpp @@ -12,17 +12,31 @@ compile fortran with: g77 -fno-second-underscore ********************************/ #if defined(__GNUC__) -#define LoadDatabaseF loaddatabasef_ #define AccumulateLineF accumulatelinef_ -#define RunAccumulatedF runaccumulatedf_ -#define RunFileF runfilef_ +#define CreateIPhreeqcF createiphreeqcf_ +#define GetComponentCountF getcomponentcountf_ +#define GetComponentF getcomponentf_ +#define GetDumpLineCountF getdumplinecountf_ +#define GetDumpLineF getdumplinef_ +#define GetErrorLineCountF geterrorlinecountf_ +#define GetErrorLineF geterrorlinef_ +#define GetSelectedOutputColumnCountF getselectedoutputcolumncountf_ +#define GetSelectedOutputRowCountF getselectedoutputrowcountf_ #define GetSelectedOutputValueF getselectedoutputvaluef_ +#define LoadDatabaseF loaddatabasef_ +#define LoadDatabaseStringF loaddatabasestringf_ #define OutputLastErrorF outputlasterrorf_ #define OutputLinesF outputlinesf_ -#define GetSelectedOutputRowCountF getselectedoutputrowcountf_ -#define GetSelectedOutputColumnCountF getselectedoutputcolumncountf_ -#define GetSelectedOutputValueF getselectedoutputvaluef_ -#define SystemF systemf_ +#define RunAccumulatedF runaccumulatedf_ +#define RunFileF runfilef_ +#define RunStringF runstringf_ +#define SetDumpOnF setdumponf_ +#define SetDumpStringOnF setdumpstringonf_ +#define SetErrorOnF seterroronf_ +#define SetLogOnF setlogonf_ +#define SetOutputOnF setoutputonf_ +#define SetSelectedOutputOnF setselectedoutputonf_ +//#define SystemF systemf_ #endif #include "fwrap.h" @@ -86,7 +100,7 @@ LoadDatabaseStringF(int *id, char* input, unsigned int input_length) cinput = f2cstring(input, input_length); if (!cinput) { - ::AddErrorM(*id, "LoadDatabase: Out of memory.\n"); + ::AddErrorM(*id, "LoadDatabaseString: Out of memory.\n"); return VR_OUTOFMEMORY; } @@ -95,7 +109,6 @@ LoadDatabaseStringF(int *id, char* input, unsigned int input_length) return n; } - IPQ_RESULT AccumulateLineF(int *id, char *line, unsigned int line_length) { @@ -181,9 +194,9 @@ GetComponentCountF(int *id) } void -GetComponentF(int *id, int *n, char* line, unsigned int line_length) +GetComponentF(int *id, int *n, char* comp, unsigned int line_length) { - padfstring(line, ::GetComponentM(*id, (*n) - 1), line_length); + padfstring(comp, ::GetComponentM(*id, (*n) - 1), line_length); } int @@ -301,22 +314,22 @@ OutputLinesF(int *id) extern "C" { #endif -// COMMENT: {4/5/2010 7:12:55 PM}int -// COMMENT: {4/5/2010 7:12:55 PM}SystemF(char* command, unsigned int command_length) -// COMMENT: {4/5/2010 7:12:55 PM}{ -// COMMENT: {4/5/2010 7:12:55 PM} char* ccommand; -// COMMENT: {4/5/2010 7:12:55 PM} -// COMMENT: {4/5/2010 7:12:55 PM} ccommand = f2cstring(command, command_length); -// COMMENT: {4/5/2010 7:12:55 PM} if (!ccommand) -// COMMENT: {4/5/2010 7:12:55 PM} { -// COMMENT: {4/5/2010 7:12:55 PM} AddError("System: Out of memory.\n"); -// COMMENT: {4/5/2010 7:12:55 PM} return (int)VR_OUTOFMEMORY; -// COMMENT: {4/5/2010 7:12:55 PM} } -// COMMENT: {4/5/2010 7:12:55 PM} -// COMMENT: {4/5/2010 7:12:55 PM} int n = system(ccommand); -// COMMENT: {4/5/2010 7:12:55 PM} free(ccommand); -// COMMENT: {4/5/2010 7:12:55 PM} return n; -// COMMENT: {4/5/2010 7:12:55 PM}} +int +SystemF(char* command, unsigned int command_length) +{ + char* ccommand; + + ccommand = f2cstring(command, command_length); + if (!ccommand) + { + //AddError("System: Out of memory.\n"); + return (int)VR_OUTOFMEMORY; + } + + int n = system(ccommand); + free(ccommand); + return n; +} #if defined(__cplusplus) } diff --git a/src/fwrap.h b/src/fwrap.h index fdfab211..3b1c0a16 100644 --- a/src/fwrap.h +++ b/src/fwrap.h @@ -10,6 +10,8 @@ extern "C" { int LoadDatabaseF(int *id, char* filename, unsigned int filename_length); + int LoadDatabaseStringF(int *id, char* input, unsigned int input_length); + IPQ_RESULT AccumulateLineF(int *id, char *line, unsigned int line_length); int RunAccumulatedF(int *id); diff --git a/unit/GNUmakefile b/unit/GNUmakefile index ec4fc478..f516ae36 100644 --- a/unit/GNUmakefile +++ b/unit/GNUmakefile @@ -1,6 +1,6 @@ CPPUNIT = /z/parkplace/home/charlton CC = g++ -DEFINES = -DNDEBUG -DSWIG_SHARED_OBJ -DPHREEQC_CPP -DPHREEQC_CLASS -DUSE_PHRQ_ALLOC +DEFINES = -DNDEBUG -DSWIG_SHARED_OBJ -DPHREEQC_CPP -DPHREEQC_CLASS -DUSE_PHRQ_ALLOC -DCPPUNIT CFLAGS = -Wall -O3 CPPFLAGS = $(DEFINES) -I$(CPPUNIT)/include -I../include -I../src -I../src/phreeqcpp -I../src/phreeqcpp/phreeqc TARGET_ARCH = @@ -33,7 +33,6 @@ VPATH=.:../src:../src/phreeqcpp:../src/phreeqcpp/phreeqc TOBJS = \ TestCVar.o \ - TestInterface.o \ TestIPhreeqc.o \ TestIPhreeqcLib.o \ TestSelectedOutput.o \ @@ -42,14 +41,10 @@ TOBJS = \ SOBJS = \ - IPhreeqc.o \ IPhreeqc2.o \ IPhreeqcLib.o \ SelectedOutput.o \ - Var.o \ - fwrap.o \ - module_files.o \ - module_output.o + Var.o PPOBJS = \ cxxKinetics.o \ @@ -136,11 +131,6 @@ clean: # TOBJS TestCVar.o: TestCVar.cpp TestCVar.h ../src/CVar.hxx ../src/Debug.h \ ../src/../include/Var.h -TestInterface.o: TestInterface.cpp TestInterface.h ../include/IPhreeqc.h \ - ../include/Var.h ../src/CVar.hxx ../src/Debug.h ../src/../include/Var.h \ - ../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 TestSelectedOutput.o: TestSelectedOutput.cpp TestSelectedOutput.h \ ../src/SelectedOutput.hxx ../src/CVar.hxx ../src/Debug.h \ ../src/../include/Var.h ../src/phreeqcpp/phreeqc/global.h \ @@ -150,7 +140,7 @@ TestSelectedOutput.o: TestSelectedOutput.cpp TestSelectedOutput.h \ TestVar.o: TestVar.cpp TestVar.h ../include/Var.h unit.o: unit.cpp TestVar.h ../include/Var.h TestCVar.h ../src/CVar.hxx \ ../src/Debug.h ../src/../include/Var.h TestSelectedOutput.h \ - ../src/SelectedOutput.hxx ../src/CVar.hxx TestInterface.h + ../src/SelectedOutput.hxx ../src/CVar.hxx # POBJS advection.o: ../src/phreeqcpp/phreeqc/advection.c \ @@ -306,33 +296,11 @@ utilities.o: ../src/phreeqcpp/phreeqc/utilities.c \ ../src/phreeqcpp/phreeqc/phrqproto.h # SOBJS -IPhreeqc.o: ../src/IPhreeqc.cpp ../include/IPhreeqc.h \ - ../include/IPhreeqcCallbacks.h ../include/Var.h ../include/IPhreeqc.hpp \ - ../src/phreeqcpp/Phreeqc.h ../src/phreeqcpp/phreeqc/phrqtype.h \ - ../src/phreeqcpp/phreeqc/sundialstypes.h \ - ../src/phreeqcpp/phreeqc/phrqtype.h ../src/phreeqcpp/phreeqc/nvector.h \ - ../src/phreeqcpp/phreeqc/sundialstypes.h \ - ../src/phreeqcpp/phreeqc/cvdense.h ../src/phreeqcpp/phreeqc/cvode.h \ - ../src/phreeqcpp/phreeqc/nvector.h ../src/phreeqcpp/phreeqc/dense.h \ - ../src/phreeqcpp/phreeqc/smalldense.h \ - ../src/phreeqcpp/phreeqc/nvector_serial.h \ - ../src/phreeqcpp/phreeqc/dense.h ../src/phreeqcpp/runner.h \ - ../src/phreeqcpp/StorageBinList.h ../src/phreeqcpp/dumper.h \ - ../src/phreeqcpp/phreeqc/p2c.h \ - ../src/phreeqcpp/phreeqc/global_structures.h \ - ../src/phreeqcpp/phreeqc/basic.h \ - ../src/phreeqcpp/phreeqc/pitzer_structures.h \ - ../src/phreeqcpp/phreeqc/pitzer.h ../src/phreeqcpp/phreeqc/input.h \ - ../src/phreeqcpp/phreeqc/output.h ../src/phreeqcpp/phreeqc/global.h \ - ../src/phreeqcpp/phreeqc/global_structures.h \ - ../include/IPhreeqcCallbacks.h ../include/Var.h \ - ../src/SelectedOutput.hxx ../src/CVar.hxx ../src/Debug.h \ - ../src/ErrorReporter.hxx SelectedOutput.o: ../src/SelectedOutput.cpp ../src/SelectedOutput.hxx \ ../src/CVar.hxx ../src/Debug.h ../include/Var.h Var.o: ../src/Var.c ../src/../include/Var.h fwrap.o: ../src/fwrap.cpp ../src/phreeqcpp/phreeqc/global.h \ - ../src/phreeqcpp/phreeqc/phrqtype.h ../src/../include/IPhreeqc.h \ + ../src/phreeqcpp/phreeqc/phrqtype.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