diff --git a/src/IPhreeqc.cpp b/src/IPhreeqc.cpp index 0f201060..e9512a0d 100644 --- a/src/IPhreeqc.cpp +++ b/src/IPhreeqc.cpp @@ -879,7 +879,7 @@ void IPhreeqc::SetBasicFortranCallback(double (*fcn)(double *x1, double *x2, cha this->PhreeqcPtr->register_fortran_basic_callback(fcn); } #else -void IPhreeqc::SetBasicFortranCallback(double (*fcn)(double *x1, double *x2, char *str)) +void IPhreeqc::SetBasicFortranCallback(double (*fcn)(double *x1, double *x2, char *str, int l)) { this->PhreeqcPtr->register_fortran_basic_callback(fcn); } diff --git a/src/IPhreeqc.h b/src/IPhreeqc.h index f2758f51..3d4d008b 100644 --- a/src/IPhreeqc.h +++ b/src/IPhreeqc.h @@ -1666,7 +1666,7 @@ Headings #ifdef IPHREEQC_NO_FORTRAN_MODULE IPQ_DLL_EXPORT IPQ_RESULT SetBasicFortranCallback(int id, double (*fcn)(double *x1, double *x2, char *str, size_t l)); #else - IPQ_DLL_EXPORT IPQ_RESULT SetBasicFortranCallback(int id, double (*fcn)(double *x1, double *x2, char *str)); + IPQ_DLL_EXPORT IPQ_RESULT SetBasicFortranCallback(int id, double (*fcn)(double *x1, double *x2, char *str, int l)); #endif diff --git a/src/IPhreeqc.hpp b/src/IPhreeqc.hpp index cbd4efe8..f4060825 100644 --- a/src/IPhreeqc.hpp +++ b/src/IPhreeqc.hpp @@ -713,7 +713,7 @@ public: #ifdef IPHREEQC_NO_FORTRAN_MODULE void SetBasicFortranCallback(double (*fcn)(double *x1, double *x2, char *str, size_t l)); #else - void SetBasicFortranCallback(double (*fcn)(double *x1, double *x2, char *str)); + void SetBasicFortranCallback(double (*fcn)(double *x1, double *x2, char *str, int l)); #endif /** diff --git a/src/IPhreeqcLib.cpp b/src/IPhreeqcLib.cpp index 13fbe98a..46e8d893 100644 --- a/src/IPhreeqcLib.cpp +++ b/src/IPhreeqcLib.cpp @@ -795,7 +795,7 @@ SetBasicFortranCallback(int id, double (*fcn)(double *x1, double *x2, char *str, } #else IPQ_RESULT -SetBasicFortranCallback(int id, double (*fcn)(double *x1, double *x2, char *str)) +SetBasicFortranCallback(int id, double (*fcn)(double *x1, double *x2, char *str, int l)) { IPhreeqc* IPhreeqcPtr = IPhreeqcLib::GetInstance(id); if (IPhreeqcPtr) diff --git a/src/IPhreeqc_interface.F90 b/src/IPhreeqc_interface.F90 index 61fe2609..8164114b 100644 --- a/src/IPhreeqc_interface.F90 +++ b/src/IPhreeqc_interface.F90 @@ -853,22 +853,24 @@ INTEGER FUNCTION SetBasicFortranCallback(id, fcn) IMPLICIT NONE INTEGER(KIND=C_INT), INTENT(in) :: id INTERFACE - REAL(KIND=C_DOUBLE) FUNCTION fcn(x1, x2, str) BIND(C) + REAL(KIND=C_DOUBLE) FUNCTION fcn(x1, x2, str, l) BIND(C) USE ISO_C_BINDING IMPLICIT none REAL(KIND=C_DOUBLE), INTENT(in) :: x1, x2 CHARACTER(KIND=C_CHAR), INTENT(in) :: str(*) + INTEGER(KIND=C_INT), INTENT(in) :: l END FUNCTION fcn END INTERFACE END FUNCTION SetBasicFortranCallbackF END INTERFACE INTEGER, INTENT(in) :: id INTERFACE - REAL(KIND=C_DOUBLE) FUNCTION fcn(x1, x2, str) BIND(C) + REAL(KIND=C_DOUBLE) FUNCTION fcn(x1, x2, str, l) BIND(C) USE ISO_C_BINDING IMPLICIT none REAL(KIND=C_DOUBLE), INTENT(in) :: x1, x2 CHARACTER(KIND=C_CHAR), INTENT(in) :: str(*) + INTEGER(KIND=C_INT), INTENT(in) :: l END FUNCTION fcn END INTERFACE SetBasicFortranCallback = SetBasicFortranCallbackF(id, fcn) diff --git a/src/IPhreeqc_interface_F.cpp b/src/IPhreeqc_interface_F.cpp index b40b5ed8..2f8f24fd 100644 --- a/src/IPhreeqc_interface_F.cpp +++ b/src/IPhreeqc_interface_F.cpp @@ -410,7 +410,7 @@ SetBasicFortranCallbackF(int *id, double (*fcn)(double *x1, double *x2, char *st } #else IPQ_RESULT -SetBasicFortranCallbackF(int *id, double (*fcn)(double *x1, double *x2, char *str)) +SetBasicFortranCallbackF(int *id, double (*fcn)(double *x1, double *x2, char *str, int l)) { return ::SetBasicFortranCallback(*id, fcn); } diff --git a/src/IPhreeqc_interface_F.h b/src/IPhreeqc_interface_F.h index f594f956..2dde6160 100644 --- a/src/IPhreeqc_interface_F.h +++ b/src/IPhreeqc_interface_F.h @@ -136,7 +136,7 @@ extern "C" { #ifdef IPHREEQC_NO_FORTRAN_MODULE IPQ_DLL_EXPORT IPQ_RESULT SetBasicFortranCallbackF(int *id, double (*fcn)(double *x1, double *x2, char *str, size_t l)); #else - IPQ_DLL_EXPORT IPQ_RESULT SetBasicFortranCallbackF(int *id, double (*fcn)(double *x1, double *x2, char *str)); + IPQ_DLL_EXPORT IPQ_RESULT SetBasicFortranCallbackF(int *id, double (*fcn)(double *x1, double *x2, char *str, int l)); #endif IPQ_DLL_EXPORT IPQ_RESULT SetCurrentSelectedOutputUserNumberF(int *id, int *n); IPQ_DLL_EXPORT IPQ_RESULT SetDumpFileNameF(int *id, char* fname);