#ifndef INC_IPHREEQC_H #define INC_IPHREEQC_H #include "Var.h" #if defined(_WINDLL) #define DLL_EXPORT __declspec(dllexport) #else #define DLL_EXPORT #endif /*! \brief Enumeration used to return error codes. */ typedef enum { IPQ_OK = 0, /*!< Success */ IPQ_OUTOFMEMORY = -1, /*!< Failure, Out of memory */ IPQ_BADVARTYPE = -2, /*!< Failure, Invalid VAR type */ IPQ_INVALIDARG = -3, /*!< Failure, Invalid argument */ IPQ_INVALIDROW = -4, /*!< Failure, Invalid row */ IPQ_INVALIDCOL = -5, /*!< Failure, Invalid column */ IPQ_BADINSTANCE = -6, /*!< Failure, Invalid instance id */ } IPQ_RESULT; #if defined(__cplusplus) extern "C" { #endif /** * Accumlulate line(s) for input to phreeqc. * @param id The instance id returned from \ref CreateIPhreeqc. * @param line The line(s) to add for input to phreeqc. * @retval IPQ_OK Success * @retval IPQ_OUTOFMEMORY Out of memory * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION AccumulateLine(LINE)
 *    INTEGER(KIND=4),   INTENT(IN)  :: ID
 *    CHARACTER(LEN=*),  INTENT(IN)  :: LINE
 *    INTEGER(KIND=4)                :: AccumulateLine
 *  END FUNCTION AccumulateLine
 *  
*
* @endhtmlonly */ DLL_EXPORT IPQ_RESULT AccumulateLine(int id, const char *line); /** * Appends the given error message and increments the error count. * Internally used to create an error condition. * @param id The instance id returned from \ref CreateIPhreeqc. * @param error_msg The error message to display. * @returns The current error count if successful; otherwise a negative value indicates an error occured (see \ref IPQ_RESULT). * @par Fortran90 Interface: * @htmlonly * Not implemented. * @endhtmlonly */ DLL_EXPORT int AddError(int id, const char* error_msg); /** * Create a new IPhreeqc instance. * @return A non-negative value if successful; otherwise a negative value indicates an error occured (see \ref IPQ_RESULT). * @see DestroyIPhreeqc * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION CreateIPhreeqc()
 *    INTEGER(KIND=4)  :: CreateIPhreeqc
 *  END FUNCTION CreateIPhreeqc
 *  
*
* @endhtmlonly */ DLL_EXPORT int CreateIPhreeqc(void); /** * Release an IPhreeqc instance from memory. * @param id The instance id returned from \ref CreateIPhreeqc. * @retval IPQ_OK Success * @retval IPQ_BADINSTANCE The given id is invalid. * @see CreateIPhreeqc * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION DestroyIPhreeqc(ID)
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *    INTEGER(KIND=4)               :: DestroyIPhreeqc
 *  END FUNCTION DestroyIPhreeqc
 *  
*
* @endhtmlonly */ DLL_EXPORT IPQ_RESULT DestroyIPhreeqc(int id); /** * Retrieves the given component. * @param id The instance id returned from \ref CreateIPhreeqc. * @param n The zero-based index of the component to retrieve. * @return A null terminated string containing the given component. * Returns an empty string if n is out of range. * @see GetComponentCount * @par Fortran90 Interface: * (Note: N is one-based for the fortran interface) * @htmlonly * *
 *  SUBROUTINE GetComponent(ID,N,COMP)
 *    INTEGER(KIND=4),   INTENT(IN)   :: ID
 *    INTEGER(KIND=4),   INTENT(IN)   :: N
 *    CHARACTER(LEN=*),  INTENT(OUT)  :: COMP
 *  END SUBROUTINE GetComponent
 *  
*
* @endhtmlonly */ DLL_EXPORT const char* GetComponent(int id, int n); /** * Retrieves the number of components in the current simulation. * @param id The instance id returned from \ref CreateIPhreeqc. * @return The current count of components. * A negative value indicates an error occured (see \ref IPQ_RESULT). * @see GetComponent * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION GetComponentCount(ID)
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *    INTEGER(KIND=4)               :: GetComponentCount
 *  END FUNCTION GetComponentCount
 *  
*
* @endhtmlonly */ DLL_EXPORT int GetComponentCount(int id); /** * Retrieves the given dump line. * @param id The instance id returned from \ref CreateIPhreeqc. * @param n The zero-based index of the line to retrieve. * @return A null terminated string containing the given line. * Returns an empty string if n is out of range. * @see GetDumpLineCount, SetDumpStringOn * @par Fortran90 Interface: * @htmlonly * (Note: N is one-based for the fortran interface.) * *
 *  SUBROUTINE GetDumpLine(ID,N,LINE)
 *    INTEGER(KIND=4),   INTENT(IN)   :: ID
 *    INTEGER(KIND=4),   INTENT(IN)   :: N
 *    CHARACTER(LEN=*),  INTENT(OUT)  :: LINE
 *  END SUBROUTINE GetComponent
 *  
*
* @endhtmlonly */ DLL_EXPORT const char* GetDumpLine(int id, int n); /** * Retrieves the number of lines in the current dump string buffer. * @param id The instance id returned from \ref CreateIPhreeqc. * @return The number of lines. * @see GetDumpLineCount, SetDumpStringOn * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION GetDumpLineCount(ID)
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *    INTEGER(KIND=4)               :: GetDumpLineCount
 *  END FUNCTION GetDumpLineCount
 *  
*
* @endhtmlonly */ DLL_EXPORT int GetDumpLineCount(int id); /** * Retrieves the current value of the dump flag. * @param id The instance id returned from \ref CreateIPhreeqc. * @see SetDumpOn * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION GetDumpOn(DUMP_ON)
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *    LOGICAL(KIND=4)               :: GetDumpOn
 *  END FUNCTION SetDumpOn
 *  
*
* @endhtmlonly */ DLL_EXPORT int GetDumpOn(int id); /** * Retrieves the string buffer containing DUMP output. * @param id The instance id returned from \ref CreateIPhreeqc. * @pre \ref SetDumpStringOn must have been set to true (non-zero) in order to recieve DUMP output. * @see SetDumpStringOn * @par Fortran90 Interface: * Not implemented. (see \ref GetDumpLineCount, \ref GetDumpLine) */ DLL_EXPORT const char* GetDumpString(int id); /** * Retrieves the current value of the dump string flag. * @param id The instance id returned from \ref CreateIPhreeqc. * @see SetDumpStringOn, GetDumpString * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION GetDumpStringOn(DUMP_STRING_ON)
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *    LOGICAL(KIND=4)               :: GetDumpStringOn
 *  END FUNCTION GetDumpStringOn
 *  
*
* @endhtmlonly */ DLL_EXPORT int GetDumpStringOn(int id); /** * Retrieves the given error line. * @param id The instance id returned from \ref CreateIPhreeqc. * @param n The zero-based index of the line to retrieve. * @see GetErrorLineCount * @par Fortran90 Interface: * (Note: N is one-based for the fortran interface.) * @htmlonly * *
 *  SUBROUTINE GetErrorLine
 *    INTEGER(KIND=4),   INTENT(IN)   :: ID
 *    INTEGER(KIND=4),   INTENT(IN)   :: N
 *    CHARACTER(LEN=*),  INTENT(OUT)  :: LINE
 *  END SUBROUTINE GetErrorLine
 *  
*
* @endhtmlonly */ DLL_EXPORT const char* GetErrorLine(int id, int n); /** * Retrieves the number of lines in the current error string buffer. * @param id The instance id returned from \ref CreateIPhreeqc. * @see GetErrorLine * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION GetErrorLineCount
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *    INTEGER(KIND=4)               :: GetErrorLineCount
 *  END FUNCTION GetErrorLineCount
 *  
*
* @endhtmlonly */ DLL_EXPORT int GetErrorLineCount(int id); /** * Retrieves the current value of the error flag. * @param id The instance id returned from \ref CreateIPhreeqc. * @see SetErrorOn * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION GetErrorOn(ERROR_ON)
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *    LOGICAL(KIND=4)               :: GetErrorOn
 *  END FUNCTION GetErrorOn
 *  
*
* @endhtmlonly */ DLL_EXPORT int GetErrorOn(int id); /** * Retrieves the error messages from the last call to \ref RunAccumulated, \ref RunFile, \ref LoadDatabase, or \ref LoadDatabaseString. * @param id The instance id returned from \ref CreateIPhreeqc. * @par Fortran90 Interface: * Not implemented. (see \ref GetErrorLineCount, \ref GetErrorLine, \ref OutputError) */ DLL_EXPORT const char* GetErrorString(int id); /** * Retrieves the current value of the log flag. * @param id The instance id returned from \ref CreateIPhreeqc. * @see SetLogOn * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION GetLogOn(ID)
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *    LOGICAL(KIND=4)               :: GetLogOn
 *  END FUNCTION GetLogOn
 *  
*
* @endhtmlonly */ DLL_EXPORT int GetLogOn(int id); /** * Retrieves the current value of the output flag. * @param id The instance id returned from \ref CreateIPhreeqc. * @see SetOutputOn * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION GetOutputOn(ID)
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *  END FUNCTION GetOutputOn
 *  
*
* @endhtmlonly */ DLL_EXPORT int GetOutputOn(int id); /** * Returns the number of columns currently contained within selected_output. * @param id The instance id returned from \ref CreateIPhreeqc. * @see GetSelectedOutputRowCount, GetSelectedOutputValue * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION GetSelectedOutputColumnCount
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *    INTEGER(KIND=4)               :: GetSelectedOutputColumnCount
 *  END FUNCTION GetSelectedOutputColumnCount
 *  
*
* @endhtmlonly */ DLL_EXPORT int GetSelectedOutputColumnCount(int id); /** * Retrieves the selected_output flag. * @param id The instance id returned from \ref CreateIPhreeqc. * @see SetSelectedOutputOn * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION GetSelectedOutputOn(SELECTED_ON)
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *    LOGICAL(KIND=4)               :: GetSelectedOutputOn
 *  END FUNCTION GetSelectedOutputOn
 *  
*
* @endhtmlonly */ DLL_EXPORT int GetSelectedOutputOn(int id); /** * Returns the number of rows currently contained within selected_output. * @param id The instance id returned from \ref CreateIPhreeqc. * @see GetSelectedOutputColumnCount, GetSelectedOutputValue * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION GetSelectedOutputRowCount
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *    INTEGER(KIND=4)               :: GetSelectedOutputRowCount
 *  END FUNCTION GetSelectedOutputRowCount
 *  
*
* @endhtmlonly */ DLL_EXPORT int GetSelectedOutputRowCount(int id); /** * Returns the \c VAR associated with the specified row and column. * @param id The instance id returned from \ref CreateIPhreeqc. * @param row The row index. * @param col The column index. * @param pVAR Pointer to the \c VAR to recieve the requested data. * @retval IPQ_OK Success * @retval IPQ_INVALIDROW The given row is out of range. * @retval IPQ_INVALIDCOL The given column is out of range. * @retval IPQ_OUTOFMEMORY Memory could not be allocated. * @retval IPQ_BADINSTANCE The given id is invalid. * @remarks * Row 0 contains the column headings to the selected_ouput. * @par Examples: * The headings will include a suffix and/or prefix in order to differentiate the * columns. * @htmlonly

Input Headings
  SELECTED_OUTPUT
    -reset false
    -totals Ca Na
  Ca(mol/kgw)  Na(mol/kgw)
  SELECTED_OUTPUT
    -reset false
    -molalities Fe+2 Hfo_sOZn+
  m_Fe+2(mol/kgw)  m_Hfo_sOZn+(mol/kgw)
  SELECTED_OUTPUT
    -reset false
    -activities H+ Ca+2
  la_H+  la_Ca+2
  SELECTED_OUTPUT
    -reset false
    -equilibrium_phases Calcite Dolomite
  Calcite  d_Calcite  Dolomite  d_Dolomite
  SELECTED_OUTPUT
    -reset false
    -saturation_indices CO2(g) Siderite
  si_CO2(g)  si_Siderite
  SELECTED_OUTPUT
    -reset false
    -gases CO2(g) N2(g)
  pressure "total mol" volume g_CO2(g) g_N2(g)
  SELECTED_OUTPUT
    -reset false
    -kinetic_reactants CH2O Pyrite
  k_CH2O dk_CH2O k_Pyrite dk_Pyrite
  SELECTED_OUTPUT
    -reset false
    -solid_solutions CaSO4 SrSO4
  s_CaSO4 s_SrSO4
* @endhtmlonly * @par Fortran90 Interface: * ROW is 1-based for the fortran interface except that the column headings are stored in ROW=0. * COL is 1-based for the fortran interface. * @htmlonly * *

 *  FUNCTION GetSelectedOutputValue(ID,ROW,COL,VTYPE,DVALUE,SVALUE)
 *    INTEGER(KIND=4),   INTENT(IN)   :: ID
 *    INTEGER(KIND=4),   INTENT(IN)   :: ROW
 *    INTEGER(KIND=4),   INTENT(IN)   :: COL
 *    INTEGER(KIND=4),   INTENT(OUT)  :: VTYPE
 *    REAL*8,            INTENT(OUT)  :: DVALUE
 *    CHARACTER(LEN=*),  INTENT(OUT)  :: SVALUE
 *    INTEGER(KIND=4)                 :: GetSelectedOutputValue
 *  END FUNCTION GetSelectedOutputValue
 *  
* * @endhtmlonly */ DLL_EXPORT IPQ_RESULT GetSelectedOutputValue(int id, int row, int col, VAR* pVAR); /** * Retrieves the current value of the dump flag. * @param id The instance id returned from \ref CreateIPhreeqc. * @param n The zero-based index of the line to retrieve. * @see GetWarningLineCount, OutputWarning * @par Fortran90 Interface: * (Note: N is one-based for the fortran interface.) * @htmlonly * *
 *  SUBROUTINE GetWarningLine(ID,N,LINE)
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *    LOGICAL(KIND=4),  INTENT(IN)  :: DUMP_ON
 *  END SUBROUTINE GetWarningLine
 *  
*
* @endhtmlonly */ DLL_EXPORT const char* GetWarningLine(int id, int n); /** * Retrieves the number of lines in the current warning string buffer. * @param id The instance id returned from \ref CreateIPhreeqc. * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION GetWarningLineCount(ID)
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *    INTEGER(KIND=4)               :: GetWarningLineCount
 *  END FUNCTION GetWarningLineCount
 *  
*
* @endhtmlonly */ DLL_EXPORT int GetWarningLineCount(int id); /** * Retrieves the warning messages from the last call to \ref RunAccumulated, \ref RunFile, \ref LoadDatabase, or \ref LoadDatabaseString. * @param id The instance id returned from \ref CreateIPhreeqc. * @par Fortran90 Interface: * Not implemented. (see \ref GetWarningLineCount, \ref GetWarningLine, \ref OutputWarning) */ DLL_EXPORT const char* GetWarningString(int id); /** * Load the specified database file into phreeqc. * @param id The instance id returned from \ref CreateIPhreeqc. * @param filename The name of the phreeqc database to load. * The full path will be required if the file is not * in the current working directory. * @return The number of errors encountered. * @remarks * Any previous database definitions are cleared. * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION LoadDatabase(FILENAME)
 *    INTEGER(KIND=4),   INTENT(IN)  :: ID
 *    CHARACTER(LEN=*),  INTENT(IN)  :: FILENAME
 *    INTEGER(KIND=4)                :: LoadDatabase
 *  END FUNCTION LoadDatabase
 *  
*
* @endhtmlonly */ DLL_EXPORT int LoadDatabase(int id, const char* filename); /** * Load the specified string as a database into phreeqc. * @param id The instance id returned from \ref CreateIPhreeqc. * @param input String containing data to be used as the phreeqc database. * @return The number of errors encountered. * @remarks * Any previous database definitions are cleared. * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION LoadDatabaseString(INPUT)
 *    INTEGER(KIND=4),   INTENT(IN)  :: ID
 *    CHARACTER(LEN=*),  INTENT(IN)  :: INPUT
 *    INTEGER(KIND=4)                :: LoadDatabaseString
 *  END FUNCTION LoadDatabaseString
 *  
*
* @endhtmlonly */ DLL_EXPORT int LoadDatabaseString(int id, const char* input); /** * Output the error messages normally stored in the phreeqc.err file to stdout. * @param id The instance id returned from \ref CreateIPhreeqc. * @par Fortran90 Interface: * @htmlonly * *
 *  SUBROUTINE OutputError
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *  END SUBROUTINE OutputError
 *  
*
* @endhtmlonly */ DLL_EXPORT void OutputError(int id); /** * Output the accumulated input to stdout. This is the input that will be * used for the next call to RunAccumulated. * @param id The instance id returned from \ref CreateIPhreeqc. * @par Fortran90 Interface: * @htmlonly * *
 *  SUBROUTINE OutputLines
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *  END SUBROUTINE OutputLines
 *  
*
* @endhtmlonly */ DLL_EXPORT void OutputLines(int id); /** * Output the warning messages to stdout. * @param id The instance id returned from \ref CreateIPhreeqc. * @par Fortran90 Interface: * @htmlonly * *
 *  SUBROUTINE OutputWarning
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *  END SUBROUTINE OutputWarning
 *  
*
* @endhtmlonly */ DLL_EXPORT void OutputWarning(int id); /** * Runs the accumulated input sent to AccumulateLine. * @param id The instance id returned from \ref CreateIPhreeqc. * @return The number of errors encountered. * @remarks * The accumulated input is cleared upon a successful run (no errors). * @pre \ref LoadDatabase/\ref LoadDatabaseString must have been called and returned 0 (zero) errors. * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION RunAccumulated()
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *    INTEGER(KIND=4)               :: RunAccumulated
 *  END FUNCTION RunAccumulated
 *  
*
* @endhtmlonly */ DLL_EXPORT int RunAccumulated(int id); /** * Runs the specified phreeqc input file. * @param id The instance id returned from \ref CreateIPhreeqc. * @param filename The name of the phreeqc input file to run. * @return The number of errors encountered during the run. * @pre \ref LoadDatabase/\ref LoadDatabaseString must have been called and returned 0 (zero) errors. * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION RunFile(FILENAME)
 *    INTEGER(KIND=4),   INTENT(IN)  :: ID
 *    CHARACTER(LEN=*),  INTENT(IN)  :: FILENAME
 *    INTEGER(KIND=4)                :: RunFile
 *  END FUNCTION RunFile
 *  
*
* @endhtmlonly */ DLL_EXPORT int RunFile(int id, const char* filename); /** * Runs the specified string as input to phreeqc. * @param id The instance id returned from \ref CreateIPhreeqc. * @param input String containing phreeqc input. * @return The number of errors encountered during the run. * @pre \ref LoadDatabase/\ref LoadDatabaseString must have been called and returned 0 (zero) errors. * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION RunString(INPUT)
 *    INTEGER(KIND=4),  INTENT(IN)   :: ID
 *    CHARACTER(LEN=*),  INTENT(IN)  :: INPUT
 *    INTEGER(KIND=4)                :: RunString
 *  END FUNCTION RunString
 *  
*
* @endhtmlonly */ DLL_EXPORT int RunString(int id, const char* input); /** * Sets the dump flag on or off. This flag controls whether or not phreeqc writes to the dump file. * The default after calling \ref CreateIPhreeqc is off. * @param id The instance id returned from \ref CreateIPhreeqc. * @param dump_on If non-zero turns on output to the DUMP (dump.out if unspecified) file. * @retval IPQ_OK Success * @retval IPQ_BADINSTANCE The given id is invalid. * @see * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION SetDumpOn(ID,DUMP_ON)
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *    LOGICAL(KIND=4),  INTENT(IN)  :: DUMP_ON
 *  END FUNCTION SetDumpOn
 *  
*
* @endhtmlonly */ DLL_EXPORT IPQ_RESULT SetDumpOn(int id, int dump_on); /** * Sets the dump string flag on or off. This flag controls whether or not the data normally sent * to the dump file is stored in a buffer for later retrieval. The default after calling * \ref CreateIPhreeqc is off. * @param id The instance id returned from \ref CreateIPhreeqc. * @param dump_string_on If non-zero captures the output defined by the DUMP keyword into a string buffer. * @retval IPQ_OK Success * @retval IPQ_BADINSTANCE The given id is invalid. * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION SetDumpStringOn(ID,DUMP_STRING_ON)
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *    LOGICAL(KIND=4),  INTENT(IN)  :: DUMP_STRING_ON
 *  END FUNCTION SetDumpStringOn
 *  
*
* @endhtmlonly */ DLL_EXPORT IPQ_RESULT SetDumpStringOn(int id, int dump_string_on); /** * Sets the error flag on or off. This flag controls whether or not * error messages are written to the phreeqc.err file. The default after calling * \ref CreateIPhreeqc is off. * @param id The instance id returned from \ref CreateIPhreeqc. * @param error_on If non-zero turns on output to the phreeqc.err file. * @retval IPQ_OK Success * @retval IPQ_BADINSTANCE The given id is invalid. * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION SetErrorOn(ERROR_ON)
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *    LOGICAL(KIND=4),  INTENT(IN)  :: ERROR_ON
 *  END FUNCTION SetErrorOn
 *  
*
* @endhtmlonly */ DLL_EXPORT IPQ_RESULT SetErrorOn(int id, int error_on); /** * Sets the log flag on or off. This flag controls whether or not phreeqc * writes log messages to the phreeqc.log file. The default after calling * \ref CreateIPhreeqc is off. * @param id The instance id returned from \ref CreateIPhreeqc. * @param log_on If non-zero turns on output to the phreeqc.log file. * @retval IPQ_OK Success * @retval IPQ_BADINSTANCE The given id is invalid. * @see GetLogOn * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION SetLogOn(ID,LOG_ON)
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *    LOGICAL(KIND=4),  INTENT(IN)  :: LOG_ON
 *    INTEGER(KIND=4)               :: SetLogOn
 *  END FUNCTION SetLogOn
 *  
*
* @endhtmlonly */ DLL_EXPORT IPQ_RESULT SetLogOn(int id, int log_on); /** * Sets the output flag on or off. This flag controls whether or not phreeqc * writes output to phreeqc.out. This output is the output normally generated * when phreeqc is run. The default after calling \ref CreateIPhreeqc is off. * @param id The instance id returned from \ref CreateIPhreeqc. * @param output_on If non-zero turns on output to the phreeqc.out file. * @retval IPQ_OK Success * @retval IPQ_BADINSTANCE The given id is invalid. * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION SetOutputOn(ID,OUTPUT_ON)
 *    INTEGER(KIND=4),  INTENT(IN)  :: ID
 *    LOGICAL(KIND=4),  INTENT(IN)  :: OUTPUT_ON
 *    INTEGER(KIND=4)               :: SetOutputOn
 *  END FUNCTION SetOutputOn
 *  
*
* @endhtmlonly */ DLL_EXPORT IPQ_RESULT SetOutputOn(int id, int output_on); /** * Sets the selected output flag on or off. This flag controls whether or not phreeqc writes output to * the selected output file. The default after calling \ref CreateIPhreeqc is off. * @param id The instance id returned from \ref CreateIPhreeqc. * @param sel_on If non-zero turns on output to the SELECTED_OUTPUT (selected.out if unspecified) file. * @retval IPQ_OK Success * @retval IPQ_BADINSTANCE The given id is invalid. * @par Fortran90 Interface: * @htmlonly * *
 *  FUNCTION SetSelectedOutputOn(ID,SEL_ON)
 *    INTEGER(KIND=4),  INTENT(IN) :: ID
 *    LOGICAL(KIND=4),  INTENT(IN) :: SEL_ON
 *    INTEGER(KIND=4)              :: SetSelectedOutputOn
 *  END FUNCTION SetSelectedOutputOn
 *  
*
* @endhtmlonly */ DLL_EXPORT IPQ_RESULT SetSelectedOutputOn(int id, int sel_on); /** * Unloads any database currently loaded into phreeqc. In addition, all * previous phreeqc definitions (ie SOLUTIONS, EXCHANGERS, etc) are cleared from memory. * @param id The instance id returned from \ref CreateIPhreeqc. * @remarks * Use of the method is not normally necessary. It is called automatically * before each call to \ref LoadDatabase or \ref LoadDatabaseString. */ DLL_EXPORT IPQ_RESULT UnLoadDatabase(int id); // TODO int RunWithCallback(PFN_PRERUN_CALLBACK pfn_pre, PFN_POSTRUN_CALLBACK pfn_post, void *cookie, int output_on, int error_on, int log_on, int selected_output_on); // TODO int CatchErrors(PFN_CATCH_CALLBACK pfn, void *cookie); #if defined(__cplusplus) } #endif #endif // INC_IPHREEQC_H