diff --git a/IPhreeqcF.f b/IPhreeqcF.f index b0df541b..3dae52d1 100644 --- a/IPhreeqcF.f +++ b/IPhreeqcF.f @@ -1,3 +1,12 @@ +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION AccumulateLine(ID,LINE) + IMPLICIT NONE + INTEGER(KIND=4) :: ID + CHARACTER(LEN=*) :: LINE + INTEGER(KIND=4) :: AccumulateLine + INTEGER(KIND=4) :: AccumulateLineF + AccumulateLine = AccumulateLineF(ID,LINE) + END FUNCTION AccumulateLine !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! FUNCTION CreateIPhreeqc() IMPLICIT NONE @@ -13,6 +22,180 @@ INTEGER(KIND=4) :: DestroyIPhreeqcF DestroyIPhreeqc = DestroyIPhreeqcF(ID) END FUNCTION DestroyIPhreeqc +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetComponent(ID,N,COMP) + IMPLICIT NONE + INTEGER(KIND=4) :: ID + INTEGER(KIND=4) :: N + CHARACTER(LEN=*) :: COMP + INTEGER(KIND=4) :: GetComponent + INTEGER(KIND=4) :: GetComponentF + GetComponent = GetComponentF(ID,N,COMP) + END FUNCTION GetComponent +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetComponentCount(ID) + IMPLICIT NONE + INTEGER(KIND=4) :: ID + INTEGER(KIND=4) :: GetComponentCount + INTEGER(KIND=4) :: GetComponentCountF + GetComponentCount = GetComponentCountF(ID) + END FUNCTION GetComponentCount +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetDumpLine(ID,N,LINE) + IMPLICIT NONE + INTEGER(KIND=4) :: ID + INTEGER(KIND=4) :: N + CHARACTER(LEN=*) :: LINE + INTEGER(KIND=4) :: GetDumpLine + INTEGER(KIND=4) :: GetDumpLineF + GetDumpLine = GetDumpLineF(ID,N,LINE) + END FUNCTION GetDumpLine +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetDumpLineCount(ID) + IMPLICIT NONE + INTEGER(KIND=4) :: ID + INTEGER(KIND=4) :: GetDumpLineCount + INTEGER(KIND=4) :: GetDumpLineCountF + GetDumpLineCount = GetDumpLineCountF(ID) + END FUNCTION GetDumpLineCount +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetDumpOn(ID) + IMPLICIT NONE + INTEGER(KIND=4) :: ID + LOGICAL(KIND=4) :: GetDumpOn + INTEGER(KIND=4) :: GetDumpOnF + IF (GetDumpOnF(ID).EQ.0) THEN + GetDumpOn = .FALSE. + ELSE + GetDumpOn = .TRUE. + ENDIF + END FUNCTION GetDumpOn +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetDumpStringOn(ID) + IMPLICIT NONE + INTEGER(KIND=4) :: ID + LOGICAL(KIND=4) :: GetDumpStringOn + INTEGER(KIND=4) :: GetDumpStringOnF + IF (GetDumpStringOnF(ID).EQ.0) THEN + GetDumpStringOn = .FALSE. + ELSE + GetDumpStringOn = .TRUE. + ENDIF + END FUNCTION GetDumpStringOn +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetErrorLine(ID,N,LINE) + IMPLICIT NONE + INTEGER(KIND=4) :: ID + INTEGER(KIND=4) :: N + CHARACTER(LEN=*) :: LINE + INTEGER(KIND=4) :: GetErrorLine + INTEGER(KIND=4) :: GetErrorLineF + GetErrorLine = GetErrorLineF(ID,N,LINE) + END FUNCTION GetErrorLine +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetErrorLineCount(ID) + IMPLICIT NONE + INTEGER(KIND=4) :: ID + INTEGER(KIND=4) :: GetErrorLineCount + INTEGER(KIND=4) :: GetErrorLineCountF + GetErrorLineCount = GetErrorLineCountF(ID) + END FUNCTION GetErrorLineCount +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetErrorOn(ID) + IMPLICIT NONE + INTEGER(KIND=4) :: ID + LOGICAL(KIND=4) :: GetErrorOn + INTEGER(KIND=4) :: GetErrorOnF + IF (GetErrorOnF(ID).EQ.0) THEN + GetErrorOn = .FALSE. + ELSE + GetErrorOn = .TRUE. + ENDIF + END FUNCTION GetErrorOn +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetLogOn(ID) + IMPLICIT NONE + INTEGER(KIND=4) :: ID + LOGICAL(KIND=4) :: GetLogOn + INTEGER(KIND=4) :: GetLogOnF + IF (GetLogOnF(ID).EQ.0) THEN + GetLogOn = .FALSE. + ELSE + GetLogOn = .TRUE. + ENDIF + END FUNCTION GetLogOn +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetOutputOn(ID) + IMPLICIT NONE + INTEGER(KIND=4) :: ID + LOGICAL(KIND=4) :: GetOutputOn + INTEGER(KIND=4) :: GetOutputOnF + IF (GetOutputOnF(ID).EQ.0) THEN + GetOutputOn = .FALSE. + ELSE + GetOutputOn = .TRUE. + ENDIF + END FUNCTION GetOutputOn +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetSelectedOutputColumnCount(ID) + IMPLICIT NONE + INTEGER(KIND=4) :: ID + INTEGER(KIND=4) :: GetSelectedOutputColumnCount + INTEGER(KIND=4) :: GetSelectedOutputColumnCountF + GetSelectedOutputColumnCount = GetSelectedOutputColumnCountF(ID) + END FUNCTION GetSelectedOutputColumnCount +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetSelectedOutputOn(ID) + IMPLICIT NONE + INTEGER(KIND=4) :: ID + LOGICAL(KIND=4) :: GetSelectedOutputOn + INTEGER(KIND=4) :: GetSelectedOutputOnF + IF (GetSelectedOutputOnF(ID).EQ.0) THEN + GetSelectedOutputOn = .FALSE. + ELSE + GetSelectedOutputOn = .TRUE. + ENDIF + END FUNCTION GetSelectedOutputOn +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetSelectedOutputRowCount(ID) + IMPLICIT NONE + INTEGER(KIND=4) :: ID + INTEGER(KIND=4) :: GetSelectedOutputRowCount + INTEGER(KIND=4) :: GetSelectedOutputRowCountF + GetSelectedOutputRowCount = GetSelectedOutputRowCountF(ID) + END FUNCTION GetSelectedOutputRowCount +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetSelectedOutputValue(ID,ROW,COL,VTYPE,DVALUE,SVALUE) + IMPLICIT NONE + INTEGER(KIND=4) :: ID + INTEGER(KIND=4) :: ROW + INTEGER(KIND=4) :: COL + INTEGER(KIND=4) :: VTYPE + REAL(KIND=8) :: DVALUE + CHARACTER(LEN=*) :: SVALUE + INTEGER(KIND=4) :: GetSelectedOutputValue + INTEGER(KIND=4) :: GetSelectedOutputValueF + GetSelectedOutputValue = GetSelectedOutputValueF(ID,ROW, + & COL,VTYPE,DVALUE,SVALUE) + END FUNCTION GetSelectedOutputValue +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetWarningLine(ID,N,LINE) + IMPLICIT NONE + INTEGER(KIND=4) :: ID + INTEGER(KIND=4) :: N + CHARACTER(LEN=*) :: LINE + INTEGER(KIND=4) :: GetWarningLine + INTEGER(KIND=4) :: GetWarningLineF + GetWarningLine = GetWarningLineF(ID,N,LINE) + END FUNCTION GetWarningLine +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION GetWarningLineCount(ID) + IMPLICIT NONE + INTEGER(KIND=4) :: ID + INTEGER(KIND=4) :: GetWarningLineCount + INTEGER(KIND=4) :: GetWarningLineCountF + GetWarningLineCount = GetWarningLineCountF(ID) + END FUNCTION GetWarningLineCount !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! FUNCTION LoadDatabase(ID,FILENAME) IMPLICIT NONE @@ -31,35 +214,24 @@ INTEGER(KIND=4) :: LoadDatabaseStringF LoadDatabaseString = LoadDatabaseStringF(ID,INPUT) END FUNCTION LoadDatabaseString -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION UnLoadDatabase(ID) - IMPLICIT NONE - INTEGER(KIND=4) :: ID - INTEGER(KIND=4) :: UnLoadDatabase - INTEGER(KIND=4) :: UnLoadDatabaseF - UnLoadDatabase = UnLoadDatabaseF(ID) - END FUNCTION UnLoadDatabase !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! SUBROUTINE OutputError(ID) IMPLICIT NONE INTEGER(KIND=4) :: ID CALL OutputErrorF(ID) END SUBROUTINE OutputError +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + SUBROUTINE OutputLines(ID) + IMPLICIT NONE + INTEGER(KIND=4) :: ID + CALL OutputLinesF(ID) + END SUBROUTINE OutputLines !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! SUBROUTINE OutputWarning(ID) IMPLICIT NONE INTEGER(KIND=4) :: ID CALL OutputWarningF(ID) END SUBROUTINE OutputWarning -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION AccumulateLine(ID,LINE) - IMPLICIT NONE - INTEGER(KIND=4) :: ID - CHARACTER(LEN=*) :: LINE - INTEGER(KIND=4) :: AccumulateLine - INTEGER(KIND=4) :: AccumulateLineF - AccumulateLine = AccumulateLineF(ID,LINE) - END FUNCTION AccumulateLine !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! FUNCTION SetSelectedOutputOn(ID,SELECTED_ON) IMPLICIT NONE @@ -114,60 +286,6 @@ INTEGER(KIND=4) :: SetDumpStringOnF SetDumpStringOn = SetDumpStringOnF(ID,DUMP_STRING_ON) END FUNCTION SetDumpStringOn -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION GetDumpLineCount(ID) - IMPLICIT NONE - INTEGER(KIND=4) :: ID - INTEGER(KIND=4) :: GetDumpLineCount - INTEGER(KIND=4) :: GetDumpLineCountF - GetDumpLineCount = GetDumpLineCountF(ID) - END FUNCTION GetDumpLineCount -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION GetDumpLine(ID,N,LINE) - IMPLICIT NONE - INTEGER(KIND=4) :: ID - INTEGER(KIND=4) :: N - CHARACTER(LEN=*) :: LINE - INTEGER(KIND=4) :: GetDumpLine - INTEGER(KIND=4) :: GetDumpLineF - GetDumpLine = GetDumpLineF(ID,N,LINE) - END FUNCTION GetDumpLine -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION GetErrorLineCount(ID) - IMPLICIT NONE - INTEGER(KIND=4) :: ID - INTEGER(KIND=4) :: GetErrorLineCount - INTEGER(KIND=4) :: GetErrorLineCountF - GetErrorLineCount = GetErrorLineCountF(ID) - END FUNCTION GetErrorLineCount -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION GetErrorLine(ID,N,LINE) - IMPLICIT NONE - INTEGER(KIND=4) :: ID - INTEGER(KIND=4) :: N - CHARACTER(LEN=*) :: LINE - INTEGER(KIND=4) :: GetErrorLine - INTEGER(KIND=4) :: GetErrorLineF - GetErrorLine = GetErrorLineF(ID,N,LINE) - END FUNCTION GetErrorLine -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION GetComponentCount(ID) - IMPLICIT NONE - INTEGER(KIND=4) :: ID - INTEGER(KIND=4) :: GetComponentCount - INTEGER(KIND=4) :: GetComponentCountF - GetComponentCount = GetComponentCountF(ID) - END FUNCTION GetComponentCount -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION GetComponent(ID,N,COMP) - IMPLICIT NONE - INTEGER(KIND=4) :: ID - INTEGER(KIND=4) :: N - CHARACTER(LEN=*) :: COMP - INTEGER(KIND=4) :: GetComponent - INTEGER(KIND=4) :: GetComponentF - GetComponent = GetComponentF(ID,N,COMP) - END FUNCTION GetComponent !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! FUNCTION RunAccumulated(ID) IMPLICIT NONE @@ -195,56 +313,10 @@ RunString = RunStringF(ID,INPUT) END FUNCTION RunString !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION GetSelectedOutputRowCount(ID) - IMPLICIT NONE - INTEGER(KIND=4) :: ID - INTEGER(KIND=4) :: GetSelectedOutputRowCount - INTEGER(KIND=4) :: GetSelectedOutputRowCountF - GetSelectedOutputRowCount = GetSelectedOutputRowCountF(ID) - END FUNCTION GetSelectedOutputRowCount -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION GetSelectedOutputColumnCount(ID) - IMPLICIT NONE - INTEGER(KIND=4) :: ID - INTEGER(KIND=4) :: GetSelectedOutputColumnCount - INTEGER(KIND=4) :: GetSelectedOutputColumnCountF - GetSelectedOutputColumnCount = GetSelectedOutputColumnCountF(ID) - END FUNCTION GetSelectedOutputColumnCount -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION GetSelectedOutputValue(ID,ROW,COL,VTYPE,DVALUE,SVALUE) + FUNCTION UnLoadDatabase(ID) IMPLICIT NONE INTEGER(KIND=4) :: ID - INTEGER(KIND=4) :: ROW - INTEGER(KIND=4) :: COL - INTEGER(KIND=4) :: VTYPE - REAL(KIND=8) :: DVALUE - CHARACTER(LEN=*) :: SVALUE - INTEGER(KIND=4) :: GetSelectedOutputValue - INTEGER(KIND=4) :: GetSelectedOutputValueF - GetSelectedOutputValue = GetSelectedOutputValueF(ID,ROW, - & COL,VTYPE,DVALUE,SVALUE) - END FUNCTION GetSelectedOutputValue -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - SUBROUTINE OutputLines(ID) - IMPLICIT NONE - INTEGER(KIND=4) :: ID - CALL OutputLinesF(ID) - END SUBROUTINE OutputLines -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION GetWarningLineCount(ID) - IMPLICIT NONE - INTEGER(KIND=4) :: ID - INTEGER(KIND=4) :: GetWarningLineCount - INTEGER(KIND=4) :: GetWarningLineCountF - GetWarningLineCount = GetWarningLineCountF(ID) - END FUNCTION GetWarningLineCount -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - FUNCTION GetWarningLine(ID,N,LINE) - IMPLICIT NONE - INTEGER(KIND=4) :: ID - INTEGER(KIND=4) :: N - CHARACTER(LEN=*) :: LINE - INTEGER(KIND=4) :: GetWarningLine - INTEGER(KIND=4) :: GetWarningLineF - GetWarningLine = GetWarningLineF(ID,N,LINE) - END FUNCTION GetWarningLine + INTEGER(KIND=4) :: UnLoadDatabase + INTEGER(KIND=4) :: UnLoadDatabaseF + UnLoadDatabase = UnLoadDatabaseF(ID) + END FUNCTION UnLoadDatabase diff --git a/fwrap.cpp b/fwrap.cpp index cc248ec4..d556b3d0 100644 --- a/fwrap.cpp +++ b/fwrap.cpp @@ -36,58 +36,6 @@ padfstring(char *dest, const char *src, unsigned int len) *dest++ = ' '; } -int -CreateIPhreeqcF(void) -{ - return ::CreateIPhreeqc(); -} - -int -DestroyIPhreeqcF(int *id) -{ - return ::DestroyIPhreeqc(*id); -} - -int -LoadDatabaseF(int *id, char* filename, unsigned int filename_length) -{ - char* cfilename; - - cfilename = f2cstring(filename, filename_length); - if (!cfilename) - { - ::AddError(*id, "LoadDatabase: Out of memory.\n"); - return VR_OUTOFMEMORY; - } - - int n = ::LoadDatabase(*id, cfilename); - free(cfilename); - return n; -} - -int -LoadDatabaseStringF(int *id, char* input, unsigned int input_length) -{ - char* cinput; - - cinput = f2cstring(input, input_length); - if (!cinput) - { - ::AddError(*id, "LoadDatabaseString: Out of memory.\n"); - return VR_OUTOFMEMORY; - } - - int n = ::LoadDatabaseString(*id, cinput); - free(cinput); - return n; -} - -int -UnLoadDatabaseF(int *id) -{ - return ::UnLoadDatabase(*id); -} - IPQ_RESULT AccumulateLineF(int *id, char *line, unsigned int line_length) { @@ -106,76 +54,16 @@ AccumulateLineF(int *id, char *line, unsigned int line_length) return n; } -IPQ_RESULT -SetSelectedOutputOnF(int *id, int* sel_on) +int +CreateIPhreeqcF(void) { - return ::SetSelectedOutputOn(*id, *sel_on); -} - -IPQ_RESULT -SetOutputOnF(int *id, int* output_on) -{ - return ::SetOutputOn(*id, *output_on); -} - -IPQ_RESULT -SetErrorOnF(int *id, int* error_on) -{ - return ::SetErrorOn(*id, *error_on); -} - -IPQ_RESULT -SetLogOnF(int *id, int* log_on) -{ - return ::SetLogOn(*id, *log_on); -} - -IPQ_RESULT -SetDumpOnF(int *id, int* dump_on) -{ - return ::SetDumpOn(*id, *dump_on); -} - -IPQ_RESULT -SetDumpStringOnF(int *id, int* dump_string_on) -{ - return ::SetDumpStringOn(*id, *dump_string_on); + return ::CreateIPhreeqc(); } int -GetDumpLineCountF(int *id) +DestroyIPhreeqcF(int *id) { - return ::GetDumpLineCount(*id); -} - -void -GetDumpLineF(int *id, int* n, char* line, unsigned int line_length) -{ - padfstring(line, ::GetDumpLine(*id, (*n) - 1), line_length); -} - -int -GetErrorLineCountF(int *id) -{ - return ::GetErrorLineCount(*id); -} - -void -GetErrorLineF(int *id, int* n, char* line, unsigned int line_length) -{ - padfstring(line, ::GetErrorLine(*id, (*n) - 1), line_length); -} - -int -GetWarningLineCountF(int *id) -{ - return ::GetWarningLineCount(*id); -} - -void -GetWarningLineF(int *id, int* n, char* line, unsigned int line_length) -{ - padfstring(line, ::GetWarningLine(*id, (*n) - 1), line_length); + return ::DestroyIPhreeqc(*id); } int @@ -191,43 +79,69 @@ GetComponentF(int *id, int *n, char* comp, unsigned int line_length) } int -RunAccumulatedF(int *id) +GetDumpLineCountF(int *id) { - return ::RunAccumulated(*id); + return ::GetDumpLineCount(*id); +} + +void +GetDumpLineF(int *id, int* n, char* line, unsigned int line_length) +{ + padfstring(line, ::GetDumpLine(*id, (*n) - 1), line_length); } int -RunFileF(int *id, char* filename, unsigned int filename_length) +GetDumpOnF(int *id) { - char* cfilename; - - cfilename = f2cstring(filename, filename_length); - if (!cfilename) - { - ::AddError(*id, "RunFile: Out of memory.\n"); - return (int)VR_OUTOFMEMORY; - } - - int n = ::RunFile(*id, cfilename); - free(cfilename); - return n; + return ::GetDumpOn(*id); } int -RunStringF(int *id, char* input, unsigned int input_length) +GetDumpStringOnF(int *id) { - char* cinput; + return ::GetDumpStringOn(*id); +} - cinput = f2cstring(input, input_length); - if (!cinput) - { - ::AddError(*id, "RunString: Out of memory.\n"); - return (int)VR_OUTOFMEMORY; - } +int +GetErrorLineCountF(int *id) +{ + return ::GetErrorLineCount(*id); +} - int n = ::RunString(*id, cinput); - free(cinput); - return n; +void +GetErrorLineF(int *id, int* n, char* line, unsigned int line_length) +{ + padfstring(line, ::GetErrorLine(*id, (*n) - 1), line_length); +} + +int +GetErrorOnF(int *id) +{ + return ::GetErrorOn(*id); +} + +int +GetLogOnF(int *id) +{ + return ::GetLogOn(*id); +} + +int +GetOutputOnF(int *id) +{ + return ::GetOutputOn(*id); +} + +int +GetSelectedOutputColumnCountF(int *id) +{ + return ::GetSelectedOutputColumnCount(*id); +} + +int +GetSelectedOutputOnF(int *id) +{ + return ::GetSelectedOutputOn(*id); } int @@ -241,12 +155,6 @@ GetSelectedOutputRowCountF(int *id) return rows; } -int -GetSelectedOutputColumnCountF(int *id) -{ - return ::GetSelectedOutputColumnCount(*id); -} - IPQ_RESULT GetSelectedOutputValueF(int *id, int *row, int *col, int *vtype, double* dvalue, char* svalue, unsigned int svalue_length) { @@ -289,49 +197,151 @@ GetSelectedOutputValueF(int *id, int *row, int *col, int *vtype, double* dvalue, return result; } +int +GetWarningLineCountF(int *id) +{ + return ::GetWarningLineCount(*id); +} + +void +GetWarningLineF(int *id, int* n, char* line, unsigned int line_length) +{ + padfstring(line, ::GetWarningLine(*id, (*n) - 1), line_length); +} + +int +LoadDatabaseF(int *id, char* filename, unsigned int filename_length) +{ + char* cfilename; + + cfilename = f2cstring(filename, filename_length); + if (!cfilename) + { + ::AddError(*id, "LoadDatabase: Out of memory.\n"); + return VR_OUTOFMEMORY; + } + + int n = ::LoadDatabase(*id, cfilename); + free(cfilename); + return n; +} + +int +LoadDatabaseStringF(int *id, char* input, unsigned int input_length) +{ + char* cinput; + + cinput = f2cstring(input, input_length); + if (!cinput) + { + ::AddError(*id, "LoadDatabaseString: Out of memory.\n"); + return VR_OUTOFMEMORY; + } + + int n = ::LoadDatabaseString(*id, cinput); + free(cinput); + return n; +} + void OutputErrorF(int *id) { ::OutputError(*id); } -void -OutputWarningF(int *id) -{ - ::OutputWarning(*id); -} - void OutputLinesF(int *id) { ::OutputLines(*id); } -#if defined(__cplusplus) -extern "C" { -#endif +void +OutputWarningF(int *id) +{ + ::OutputWarning(*id); +} int -SystemF(char* command, unsigned int command_length) +RunAccumulatedF(int *id) { - char* ccommand; + return ::RunAccumulated(*id); +} - ccommand = f2cstring(command, command_length); - if (!ccommand) +int +RunFileF(int *id, char* filename, unsigned int filename_length) +{ + char* cfilename; + + cfilename = f2cstring(filename, filename_length); + if (!cfilename) { - //AddError("System: Out of memory.\n"); + ::AddError(*id, "RunFile: Out of memory.\n"); return (int)VR_OUTOFMEMORY; } - int n = system(ccommand); - free(ccommand); + int n = ::RunFile(*id, cfilename); + free(cfilename); return n; } -#if defined(__cplusplus) -} -#endif +int +RunStringF(int *id, char* input, unsigned int input_length) +{ + char* cinput; + cinput = f2cstring(input, input_length); + if (!cinput) + { + ::AddError(*id, "RunString: Out of memory.\n"); + return (int)VR_OUTOFMEMORY; + } + + int n = ::RunString(*id, cinput); + free(cinput); + return n; +} + +IPQ_RESULT +SetDumpOnF(int *id, int* dump_on) +{ + return ::SetDumpOn(*id, *dump_on); +} + +IPQ_RESULT +SetDumpStringOnF(int *id, int* dump_string_on) +{ + return ::SetDumpStringOn(*id, *dump_string_on); +} + +IPQ_RESULT +SetErrorOnF(int *id, int* error_on) +{ + return ::SetErrorOn(*id, *error_on); +} + +IPQ_RESULT +SetLogOnF(int *id, int* log_on) +{ + return ::SetLogOn(*id, *log_on); +} + +IPQ_RESULT +SetOutputOnF(int *id, int* output_on) +{ + return ::SetOutputOn(*id, *output_on); +} + +IPQ_RESULT +SetSelectedOutputOnF(int *id, int* sel_on) +{ + return ::SetSelectedOutputOn(*id, *sel_on); +} + +int +UnLoadDatabaseF(int *id) +{ + return ::UnLoadDatabase(*id); +} #if defined(_WIN32) @@ -343,6 +353,10 @@ extern "C" { // // Intel Fortran compiler 9.1 /iface:cvf // +DLL_EXPORT int __stdcall ACCUMULATELINE(int *id, char *line, unsigned int len) +{ + return AccumulateLineF(id, line, len); +} DLL_EXPORT int __stdcall CREATEIPHREEQC(void) { return CreateIPhreeqcF(); @@ -351,6 +365,58 @@ DLL_EXPORT int __stdcall DESTROYIPHREEQC(int *id) { return DestroyIPhreeqcF(id); } +DLL_EXPORT void __stdcall GETCOMPONENT(int *id, int *n, char* line, unsigned int line_length) +{ + GetComponentF(id, n, line, line_length); +} +DLL_EXPORT int __stdcall GETCOMPONENTCOUNT(int *id) +{ + return GetComponentCountF(id); +} +DLL_EXPORT void __stdcall GETDUMPLINE(int *id, int *n, char* line, unsigned int line_length) +{ + GetDumpLineF(id, n, line, line_length); +} +DLL_EXPORT int __stdcall GETDUMPLINECOUNT(int *id) +{ + return GetDumpLineCountF(id); +} +DLL_EXPORT void __stdcall GETERRORLINE(int *id, int *n, char* line, unsigned int line_length) +{ + GetErrorLineF(id, n, line, line_length); +} +DLL_EXPORT int __stdcall GETERRORLINECOUNT(int *id) +{ + return GetErrorLineCountF(id); +} +DLL_EXPORT int __stdcall GETLOGON(int *id) +{ + return GetLogonF(id); +} +DLL_EXPORT int __stdcall GETOUTPUTON(int *id) +{ + return GetOutputF(id); +} +DLL_EXPORT int __stdcall GETSELECTEDOUTPUTCOLUMNCOUNT(int *id) +{ + return GetSelectedOutputColumnCountF(id); +} +DLL_EXPORT int __stdcall GETSELECTEDOUTPUTROWCOUNT(int *id) +{ + return GetSelectedOutputRowCountF(id); +} +DLL_EXPORT int __stdcall GETSELECTEDOUTPUTVALUE(int *id, int *row, int *col, int *vtype, double* dvalue, char* svalue, unsigned int svalue_length) +{ + return GetSelectedOutputValueF(id, row, col, vtype, dvalue, svalue, svalue_length); +} +DLL_EXPORT void __stdcall GETWARNINGLINE(int *id, int *n, char* line, unsigned int line_length) +{ + GetWarningLineF(id, n, line, line_length); +} +DLL_EXPORT int __stdcall GETWARNINGLINECOUNT(int *id) +{ + return GetWarningLineCountF(id); +} DLL_EXPORT int __stdcall LOADDATABASE(int *id, char *filename, unsigned int len) { return LoadDatabaseF(id, filename, len); @@ -359,78 +425,18 @@ DLL_EXPORT int __stdcall LOADDATABASESTRING(int *id, char *input, unsigned int l { return LoadDatabaseStringF(id, input, len); } -DLL_EXPORT int __stdcall UNLOADDATABASE(int *id) -{ - return UnLoadDatabaseF(id); -} DLL_EXPORT void __stdcall OUTPUTERROR(int *id) { OutputErrorF(id); } +DLL_EXPORT void __stdcall OUTPUTLINES(int *id) +{ + OutputLinesF(id); +} DLL_EXPORT void __stdcall OUTPUTWARNING(int *id) { OutputWarningF(id); } -DLL_EXPORT int __stdcall ACCUMULATELINE(int *id, char *line, unsigned int len) -{ - return AccumulateLineF(id, line, len); -} -DLL_EXPORT void __stdcall SETSELECTEDOUTPUTON(int *id, int *selected_on) -{ - SetSelectedOutputOnF(id, selected_on); -} -DLL_EXPORT void __stdcall SETOUTPUTON(int *id, int *output_on) -{ - SetOutputOnF(id, output_on); -} -DLL_EXPORT void __stdcall SETERRORON(int *id, int *error_on) -{ - SetErrorOnF(id, error_on); -} -DLL_EXPORT void __stdcall SETLOGON(int *id, int *log_on) -{ - SetLogOnF(id, log_on); -} -DLL_EXPORT void __stdcall SETDUMPON(int *id, int *dump_on) -{ - SetDumpOnF(id, dump_on); -} -DLL_EXPORT void __stdcall SETDUMPSTRINGON(int *id, int *dump_string_on) -{ - SetDumpStringOnF(id, dump_string_on); -} -DLL_EXPORT int __stdcall GETDUMPLINECOUNT(int *id) -{ - return GetDumpLineCountF(id); -} -DLL_EXPORT void __stdcall GETDUMPLINE(int *id, int *n, char* line, unsigned int line_length) -{ - GetDumpLineF(id, n, line, line_length); -} -DLL_EXPORT int __stdcall GETERRORLINECOUNT(int *id) -{ - return GetErrorLineCountF(id); -} -DLL_EXPORT void __stdcall GETERRORLINE(int *id, int *n, char* line, unsigned int line_length) -{ - GetErrorLineF(id, n, line, line_length); -} -DLL_EXPORT int __stdcall GETWARNINGLINECOUNT(int *id) -{ - return GetWarningLineCountF(id); -} -DLL_EXPORT void __stdcall GETWARNINGLINE(int *id, int *n, char* line, unsigned int line_length) -{ - GetWarningLineF(id, n, line, line_length); -} -DLL_EXPORT int __stdcall GETCOMPONENTCOUNT(int *id) -{ - return GetComponentCountF(id); -} -DLL_EXPORT void __stdcall GETCOMPONENT(int *id, int *n, char* line, unsigned int line_length) -{ - GetComponentF(id, n, line, line_length); -} DLL_EXPORT int __stdcall RUNACCUMULATED(int *id) { return RunAccumulatedF(id); @@ -443,21 +449,33 @@ DLL_EXPORT int __stdcall RUNSTRING(int *id, char *input, unsigned int len) { return RunStringF(id, input, len); } -DLL_EXPORT void __stdcall OUTPUTLINES(int *id) +DLL_EXPORT void __stdcall SETDUMPON(int *id, int *dump_on) { - OutputLinesF(id); + SetDumpOnF(id, dump_on); } -DLL_EXPORT int __stdcall GETSELECTEDOUTPUTROWCOUNT(int *id) +DLL_EXPORT void __stdcall SETDUMPSTRINGON(int *id, int *dump_string_on) { - return GetSelectedOutputRowCountF(id); + SetDumpStringOnF(id, dump_string_on); } -DLL_EXPORT int __stdcall GETSELECTEDOUTPUTCOLUMNCOUNT(int *id) +DLL_EXPORT void __stdcall SETERRORON(int *id, int *error_on) { - return GetSelectedOutputColumnCountF(id); + SetErrorOnF(id, error_on); } -DLL_EXPORT int __stdcall GETSELECTEDOUTPUTVALUE(int *id, int *row, int *col, int *vtype, double* dvalue, char* svalue, unsigned int svalue_length) +DLL_EXPORT void __stdcall SETLOGON(int *id, int *log_on) { - return GetSelectedOutputValueF(id, row, col, vtype, dvalue, svalue, svalue_length); + SetLogOnF(id, log_on); +} +DLL_EXPORT void __stdcall SETOUTPUTON(int *id, int *output_on) +{ + SetOutputOnF(id, output_on); +} +DLL_EXPORT void __stdcall SETSELECTEDOUTPUTON(int *id, int *selected_on) +{ + SetSelectedOutputOnF(id, selected_on); +} +DLL_EXPORT int __stdcall UNLOADDATABASE(int *id) +{ + return UnLoadDatabaseF(id); } #if defined(__cplusplus) } diff --git a/fwrap.h b/fwrap.h index 18caaeaa..e9fd1731 100644 --- a/fwrap.h +++ b/fwrap.h @@ -8,99 +8,82 @@ #endif #if defined(FC_FUNC) +#define AccumulateLineF FC_FUNC (accumulatelinef, ACCUMULATELINEF) #define CreateIPhreeqcF FC_FUNC (createiphreeqcf, CREATEIPHREEQCF) #define DestroyIPhreeqcF FC_FUNC (destroyiphreeqcf, DESTROYIPHREEQCF) +#define GetComponentCountF FC_FUNC (getcomponentcountf, GETCOMPONENTCOUNTF) +#define GetComponentF FC_FUNC (getcomponentf, GETCOMPONENTF) +#define GetDumpLineCountF FC_FUNC (getdumplinecountf, GETDUMPLINECOUNTF) +#define GetDumpLineF FC_FUNC (getdumplinef, GETDUMPLINEF) +#define GetDumpOnF FC_FUNC (getdumponf, GETDUMPONF) +#define GetDumpStringOnF FC_FUNC (getdumpstringonf, GETDUMPSTRINGONF) +#define GetErrorLineCountF FC_FUNC (geterrorlinecountf, GETERRORLINECOUNTF) +#define GetErrorLineF FC_FUNC (geterrorlinef, GETERRORLINEF) +#define GetErrorOnF FC_FUNC (geterroronf, GETERRORONF) +#define GetLogOnF FC_FUNC (getlogonf, GETLOGONF) +#define GetOutputOnF FC_FUNC (getoutputonf, GETOUTPUTONF) +#define GetSelectedOutputColumnCountF FC_FUNC (getselectedoutputcolumncountf, GETSELECTEDOUTPUTCOLUMNCOUNTF) +#define GetSelectedOutputOnF FC_FUNC (getselectedoutputonf, GETSELECTEDOUTPUTONF) +#define GetSelectedOutputRowCountF FC_FUNC (getselectedoutputrowcountf, GETSELECTEDOUTPUTROWCOUNTF) +#define GetSelectedOutputValueF FC_FUNC (getselectedoutputvaluef, GETSELECTEDOUTPUTVALUEF) +#define GetWarningLineCountF FC_FUNC (getwarninglinecountf, GETWARNINGLINECOUNTF) +#define GetWarningLineF FC_FUNC (getwarninglinef, GETWARNINGLINEF) #define LoadDatabaseF FC_FUNC (loaddatabasef, LOADDATABASEF) #define LoadDatabaseStringF FC_FUNC (loaddatabasestringf, LOADDATABASESTRINGF) -#define UnLoadDatabaseF FC_FUNC (unloaddatabasef, UNLOADDATABASEF) -#define AccumulateLineF FC_FUNC (accumulatelinef, ACCUMULATELINEF) +#define OutputErrorF FC_FUNC (outputerrorf, OUTPUTERRORF) +#define OutputLinesF FC_FUNC (outputlinesf, OUTPUTLINESF) +#define OutputWarningF FC_FUNC (outputwarningf, OUTPUTWARNINGF) #define RunAccumulatedF FC_FUNC (runaccumulatedf, RUNACCUMULATEDF) #define RunFileF FC_FUNC (runfilef, RUNFILEF) #define RunStringF FC_FUNC (runstringf, RUNSTRINGF) -#define GetSelectedOutputRowCountF FC_FUNC (getselectedoutputrowcountf, GETSELECTEDOUTPUTROWCOUNTF) -#define GetSelectedOutputColumnCountF FC_FUNC (getselectedoutputcolumncountf, GETSELECTEDOUTPUTCOLUMNCOUNTF) -#define GetSelectedOutputValueF FC_FUNC (getselectedoutputvaluef, GETSELECTEDOUTPUTVALUEF) -#define SetSelectedOutputOnF FC_FUNC (setselectedoutputonf, SETSELECTEDOUTPUTONF) -#define SetOutputOnF FC_FUNC (setoutputonf, SETOUTPUTONF) -#define SetErrorOnF FC_FUNC (seterroronf, SETERRORONF) -#define SetLogOnF FC_FUNC (setlogonf, SETLOGONF) #define SetDumpOnF FC_FUNC (setdumponf, SETDUMPONF) #define SetDumpStringOnF FC_FUNC (setdumpstringonf, SETDUMPSTRINGONF) -#define GetDumpLineCountF FC_FUNC (getdumplinecountf, GETDUMPLINECOUNTF) -#define GetDumpLineF FC_FUNC (getdumplinef, GETDUMPLINEF) -#define GetErrorLineCountF FC_FUNC (geterrorlinecountf, GETERRORLINECOUNTF) -#define GetErrorLineF FC_FUNC (geterrorlinef, GETERRORLINEF) -#define GetWarningLineCountF FC_FUNC (getwarninglinecountf, GETWARNINGLINECOUNTF) -#define GetWarningLineF FC_FUNC (getwarninglinef, GETWARNINGLINEF) -#define GetComponentCountF FC_FUNC (getcomponentcountf, GETCOMPONENTCOUNTF) -#define GetComponentF FC_FUNC (getcomponentf, GETCOMPONENTF) -#define OutputErrorF FC_FUNC (outputerrorf, OUTPUTERRORF) -#define OutputWarningF FC_FUNC (outputwarningf, OUTPUTWARNINGF) -#define OutputLinesF FC_FUNC (outputlinesf, OUTPUTLINESF) +#define SetErrorOnF FC_FUNC (seterroronf, SETERRORONF) +#define SetLogOnF FC_FUNC (setlogonf, SETLOGONF) +#define SetOutputOnF FC_FUNC (setoutputonf, SETOUTPUTONF) +#define SetSelectedOutputOnF FC_FUNC (setselectedoutputonf, SETSELECTEDOUTPUTONF) +#define UnLoadDatabaseF FC_FUNC (unloaddatabasef, UNLOADDATABASEF) #endif /* FC_FUNC */ #if defined(__cplusplus) extern "C" { #endif - int CreateIPhreeqcF(void); - - int DestroyIPhreeqcF(int *id); - - int LoadDatabaseF(int *id, char* filename, unsigned int filename_length); - - int LoadDatabaseStringF(int *id, char* input, unsigned int input_length); - - int UnLoadDatabaseF(int *id); - IPQ_RESULT AccumulateLineF(int *id, char *line, unsigned int line_length); - - int RunAccumulatedF(int *id); - - int RunFileF(int *id, char* filename, unsigned int filename_length); - - int RunStringF(int *id, char* input, unsigned int input_length); - - int GetSelectedOutputRowCountF(int *id); - - int GetSelectedOutputColumnCountF(int *id); - + int CreateIPhreeqcF(void); + int DestroyIPhreeqcF(int *id); + int GetComponentCountF(int *id); + void GetComponentF(int *id, int* n, char* line, unsigned int line_length); + int GetDumpLineCountF(int *id); + void GetDumpLineF(int *id, int* n, char* line, unsigned int line_length); + int GetErrorLineCountF(int *id); + void GetErrorLineF(int *id, int* n, char* line, unsigned int line_length); + int GetErrorOnF(int *id); + int GetDumpOnF(int *id); + int GetDumpStringOnF(int *id); + int GetLogOnF(int *id); + int GetOutputOnF(int *id); + int GetSelectedOutputColumnCountF(int *id); + int GetSelectedOutputOnF(int *id); + int GetSelectedOutputRowCountF(int *id); IPQ_RESULT GetSelectedOutputValueF(int *id, int *row, int *col, int *vtype, double* dvalue, char* svalue, unsigned int svalue_length); - - IPQ_RESULT SetSelectedOutputOnF(int *id, int* selected_output_on); - - IPQ_RESULT SetOutputOnF(int *id, int* output_on); - - IPQ_RESULT SetErrorOnF(int *id, int* error_on); - - IPQ_RESULT SetLogOnF(int *id, int* log_on); - + int GetWarningLineCountF(int *id); + void GetWarningLineF(int *id, int* n, char* line, unsigned int line_length); + int LoadDatabaseF(int *id, char* filename, unsigned int filename_length); + int LoadDatabaseStringF(int *id, char* input, unsigned int input_length); + void OutputErrorF(int *id); + void OutputLinesF(int *id); + void OutputWarningF(int *id); + int RunAccumulatedF(int *id); + int RunFileF(int *id, char* filename, unsigned int filename_length); + int RunStringF(int *id, char* input, unsigned int input_length); IPQ_RESULT SetDumpOnF(int *id, int* dump_on); - IPQ_RESULT SetDumpStringOnF(int *id, int* dump_string_on); - - int GetDumpLineCountF(int *id); - - void GetDumpLineF(int *id, int* n, char* line, unsigned int line_length); - - int GetErrorLineCountF(int *id); - - void GetErrorLineF(int *id, int* n, char* line, unsigned int line_length); - - int GetWarningLineCountF(int *id); - - void GetWarningLineF(int *id, int* n, char* line, unsigned int line_length); - - int GetComponentCountF(int *id); - - void GetComponentF(int *id, int* n, char* line, unsigned int line_length); - - void OutputErrorF(int *id); - - void OutputWarningF(int *id); - - void OutputLinesF(int *id); - + IPQ_RESULT SetErrorOnF(int *id, int* error_on); + IPQ_RESULT SetLogOnF(int *id, int* log_on); + IPQ_RESULT SetOutputOnF(int *id, int* output_on); + IPQ_RESULT SetSelectedOutputOnF(int *id, int* selected_output_on); + int UnLoadDatabaseF(int *id); #if defined(__cplusplus) }