working on fortran interfaces

git-svn-id: svn://136.177.114.72/svn_GW/IPhreeqc/trunk@4349 1feff8c3-07ed-0310-ac33-dd36852eb9cd
This commit is contained in:
Scott R Charlton 2010-05-06 06:48:20 +00:00
parent 4a9fdcfffb
commit c3c27d34d8
3 changed files with 509 additions and 436 deletions

View File

@ -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

498
fwrap.cpp
View File

@ -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)
}

131
fwrap.h
View File

@ -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)
}