mirror of
https://git.gfz-potsdam.de/naaice/iphreeqc.git
synced 2025-12-15 16:18:22 +01:00
getting rid of include driectory to avoid duplicate header files
git-svn-id: svn://136.177.114.72/svn_GW/IPhreeqc/branches/ErrorHandling@6025 1feff8c3-07ed-0310-ac33-dd36852eb9cd
This commit is contained in:
parent
1e2c368e86
commit
4490d97970
85
IPhreeqc.f.inc
Normal file
85
IPhreeqc.f.inc
Normal file
@ -0,0 +1,85 @@
|
||||
C
|
||||
C GetSelectedOutputValue TYPES
|
||||
C
|
||||
INTEGER :: TT_EMPTY
|
||||
PARAMETER (TT_EMPTY=0)
|
||||
|
||||
INTEGER :: TT_ERROR
|
||||
PARAMETER (TT_ERROR=1)
|
||||
|
||||
INTEGER :: TT_DOUBLE
|
||||
PARAMETER (TT_DOUBLE=3)
|
||||
|
||||
INTEGER :: TT_STRING
|
||||
PARAMETER (TT_STRING=4)
|
||||
|
||||
C
|
||||
C IPQ_RESULT TYPES
|
||||
C
|
||||
|
||||
INTEGER :: IPQ_OK
|
||||
PARAMETER (IPQ_OK=0)
|
||||
|
||||
INTEGER :: IPQ_OUTOFMEMORY
|
||||
PARAMETER (IPQ_OUTOFMEMORY=-1)
|
||||
|
||||
INTEGER :: IPQ_BADVARTYPE
|
||||
PARAMETER (IPQ_BADVARTYPE=-2)
|
||||
|
||||
INTEGER :: IPQ_INVALIDARG
|
||||
PARAMETER (IPQ_INVALIDARG=-3)
|
||||
|
||||
INTEGER :: IPQ_INVALIDROW
|
||||
PARAMETER (IPQ_INVALIDROW=-4)
|
||||
|
||||
INTEGER :: IPQ_INVALIDCOL
|
||||
PARAMETER (IPQ_INVALIDCOL=-5)
|
||||
|
||||
INTEGER :: IPQ_BADINSTANCE
|
||||
PARAMETER (IPQ_BADINSTANCE=-6)
|
||||
|
||||
C
|
||||
C function prototypes
|
||||
C
|
||||
|
||||
INTEGER(KIND=4) AccumulateLine
|
||||
INTEGER(KIND=4) AddError
|
||||
INTEGER(KIND=4) AddWarning
|
||||
INTEGER(KIND=4) ClearAccumulatedLines
|
||||
INTEGER(KIND=4) CreateIPhreeqc
|
||||
INTEGER(KIND=4) DestroyIPhreeqc
|
||||
INTEGER(KIND=4) GetComponentCount
|
||||
LOGICAL(KIND=4) GetDumpFileOn
|
||||
INTEGER(KIND=4) GetDumpStringLineCount
|
||||
LOGICAL(KIND=4) GetDumpStringOn
|
||||
LOGICAL(KIND=4) GetErrorFileOn
|
||||
INTEGER(KIND=4) GetErrorStringLine
|
||||
INTEGER(KIND=4) GetErrorStringLineCount
|
||||
LOGICAL(KIND=4) GetLogFileOn
|
||||
LOGICAL(KIND=4) GetLogStringLineCount
|
||||
LOGICAL(KIND=4) GetLogStringOn
|
||||
LOGICAL(KIND=4) GetOutputFileOn
|
||||
INTEGER(KIND=4) GetOutputStringLineCount
|
||||
LOGICAL(KIND=4) GetOutputStringOn
|
||||
INTEGER(KIND=4) GetSelectedOutputColumnCount
|
||||
LOGICAL(KIND=4) GetSelectedOutputFileOn
|
||||
INTEGER(KIND=4) GetSelectedOutputRowCount
|
||||
INTEGER(KIND=4) GetSelectedOutputValue
|
||||
INTEGER(KIND=4) GetWarningStringLine
|
||||
INTEGER(KIND=4) GetWarningStringLineCount
|
||||
INTEGER(KIND=4) LoadDatabase
|
||||
INTEGER(KIND=4) LoadDatabaseString
|
||||
INTEGER(KIND=4) RunAccumulated
|
||||
INTEGER(KIND=4) RunFile
|
||||
INTEGER(KIND=4) RunString
|
||||
INTEGER(KIND=4) SetDumpFileName
|
||||
INTEGER(KIND=4) SetDumpFileOn
|
||||
INTEGER(KIND=4) SetDumpStringOn
|
||||
INTEGER(KIND=4) SetErrorFileOn
|
||||
INTEGER(KIND=4) SetLogFileName
|
||||
INTEGER(KIND=4) SetLogFileOn
|
||||
INTEGER(KIND=4) SetLogStringOn
|
||||
INTEGER(KIND=4) SetOutputFileName
|
||||
INTEGER(KIND=4) SetOutputFileOn
|
||||
INTEGER(KIND=4) SetOutputStringOn
|
||||
INTEGER(KIND=4) SetSelectedOutputFileOn
|
||||
448
IPhreeqc.f90.inc
Normal file
448
IPhreeqc.f90.inc
Normal file
@ -0,0 +1,448 @@
|
||||
! GetSelectedOutputValue TYPES
|
||||
INTEGER(KIND=4),PARAMETER :: TT_EMPTY = 0
|
||||
INTEGER(KIND=4),PARAMETER :: TT_ERROR = 1
|
||||
INTEGER(KIND=4),PARAMETER :: TT_DOUBLE = 3
|
||||
INTEGER(KIND=4),PARAMETER :: TT_STRING = 4
|
||||
|
||||
|
||||
! ERROR RETURN TYPES
|
||||
INTEGER(KIND=4),PARAMETER :: IPQ_OK = 0
|
||||
INTEGER(KIND=4),PARAMETER :: IPQ_OUTOFMEMORY = -1
|
||||
INTEGER(KIND=4),PARAMETER :: IPQ_BADVARTYPE = -2
|
||||
INTEGER(KIND=4),PARAMETER :: IPQ_INVALIDARG = -3
|
||||
INTEGER(KIND=4),PARAMETER :: IPQ_INVALIDROW = -4
|
||||
INTEGER(KIND=4),PARAMETER :: IPQ_INVALIDCOL = -5
|
||||
INTEGER(KIND=4),PARAMETER :: IPQ_BADINSTANCE = -6
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION AccumulateLine(ID,LINE)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
CHARACTER(LEN=*), INTENT(IN) :: LINE
|
||||
INTEGER(KIND=4) :: AccumulateLine
|
||||
END FUNCTION AccumulateLine
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION AddError(ID,ERROR_MSG)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
CHARACTER(LEN=*), INTENT(IN) :: ERROR_MSG
|
||||
INTEGER(KIND=4) :: AddError
|
||||
END FUNCTION AddError
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION AddWarning(ID,WARN_MSG)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
CHARACTER(LEN=*), INTENT(IN) :: WARN_MSG
|
||||
INTEGER(KIND=4) :: AddWarning
|
||||
END FUNCTION AddWarning
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION ClearAccumulatedLines(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
INTEGER(KIND=4) :: ClearAccumulatedLines
|
||||
END FUNCTION ClearAccumulatedLines
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION CreateIPhreeqc()
|
||||
INTEGER(KIND=4) :: CreateIPhreeqc
|
||||
END FUNCTION CreateIPhreeqc
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION DestroyIPhreeqc(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
INTEGER(KIND=4) :: DestroyIPhreeqc
|
||||
END FUNCTION DestroyIPhreeqc
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
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
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION GetComponentCount(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
INTEGER(KIND=4) :: GetComponentCount
|
||||
END FUNCTION GetComponentCount
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
SUBROUTINE GetDumpFileName(ID,FNAME)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
CHARACTER(LEN=*), INTENT(OUT) :: FNAME
|
||||
END SUBROUTINE GetDumpFileName
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION GetDumpFileOn(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
LOGICAL(KIND=4) :: GetDumpFileOn
|
||||
END FUNCTION GetDumpFileOn
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
SUBROUTINE GetDumpStringLine(ID,N,LINE)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
INTEGER(KIND=4), INTENT(IN) :: N
|
||||
CHARACTER(LEN=*), INTENT(OUT) :: LINE
|
||||
END SUBROUTINE
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION GetDumpStringLineCount(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
INTEGER(KIND=4) :: GetDumpStringLineCount
|
||||
END FUNCTION GetDumpStringLineCount
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION GetDumpStringOn(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
LOGICAL(KIND=4) :: GetDumpStringOn
|
||||
END FUNCTION GetDumpStringOn
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION GetErrorFileOn(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
LOGICAL(KIND=4) :: GetErrorFileOn
|
||||
END FUNCTION GetErrorFileOn
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
SUBROUTINE GetErrorStringLine(ID,N,LINE)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
INTEGER(KIND=4), INTENT(IN) :: N
|
||||
CHARACTER(LEN=*), INTENT(OUT) :: LINE
|
||||
END SUBROUTINE
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION GetErrorStringLineCount(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
INTEGER(KIND=4) :: GetErrorStringLineCount
|
||||
END FUNCTION GetErrorStringLineCount
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
SUBROUTINE GetLogFileName(ID,FNAME)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
CHARACTER(LEN=*), INTENT(OUT) :: FNAME
|
||||
END SUBROUTINE GetLogFileName
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION GetLogFileOn(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
LOGICAL(KIND=4) :: GetLogFileOn
|
||||
END FUNCTION GetLogFileOn
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
SUBROUTINE GetLogStringLine(ID,N,LINE)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
INTEGER(KIND=4), INTENT(IN) :: N
|
||||
CHARACTER(LEN=*), INTENT(OUT) :: LINE
|
||||
END SUBROUTINE
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION GetLogStringLineCount(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
INTEGER(KIND=4) :: GetLogStringLineCount
|
||||
END FUNCTION GetLogStringLineCount
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION GetLogStringOn(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
LOGICAL(KIND=4) :: GetLogStringOn
|
||||
END FUNCTION GetLogStringOn
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
SUBROUTINE GetOutputFileName(ID,FNAME)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
CHARACTER(LEN=*), INTENT(OUT) :: FNAME
|
||||
END SUBROUTINE GetOutputFileName
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION GetOutputFileOn(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
LOGICAL(KIND=4) :: GetOutputFileOn
|
||||
END FUNCTION GetOutputFileOn
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
SUBROUTINE GetOutputStringLine(ID,N,LINE)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
INTEGER(KIND=4), INTENT(IN) :: N
|
||||
CHARACTER(LEN=*), INTENT(OUT) :: LINE
|
||||
END SUBROUTINE
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION GetOutputStringLineCount(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
INTEGER(KIND=4) :: GetOutputStringLineCount
|
||||
END FUNCTION GetOutputStringLineCount
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION GetOutputStringOn(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
LOGICAL(KIND=4) :: GetOutputStringOn
|
||||
END FUNCTION GetOutputStringOn
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION GetSelectedOutputColumnCount(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
INTEGER(KIND=4) :: GetSelectedOutputColumnCount
|
||||
END FUNCTION GetSelectedOutputColumnCount
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION GetSelectedOutputFileOn(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
LOGICAL(KIND=4) :: GetSelectedOutputFileOn
|
||||
END FUNCTION GetSelectedOutputFileOn
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION GetSelectedOutputRowCount(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
INTEGER(KIND=4) :: GetSelectedOutputRowCount
|
||||
END FUNCTION GetSelectedOutputRowCount
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
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(KIND=8), INTENT(OUT) :: DVALUE
|
||||
CHARACTER(LEN=*), INTENT(OUT) :: SVALUE
|
||||
INTEGER(KIND=4) :: GetSelectedOutputValue
|
||||
END FUNCTION GetSelectedOutputValue
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
SUBROUTINE GetWarningStringLine(ID,N,LINE)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
INTEGER(KIND=4), INTENT(IN) :: N
|
||||
CHARACTER(LEN=*), INTENT(OUT) :: LINE
|
||||
END SUBROUTINE
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION GetWarningStringLineCount(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
INTEGER(KIND=4) :: GetWarningStringLineCount
|
||||
END FUNCTION GetWarningStringLineCount
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION LoadDatabase(ID,FILENAME)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
CHARACTER(LEN=*), INTENT(IN) :: FILENAME
|
||||
INTEGER(KIND=4) :: LoadDatabase
|
||||
END FUNCTION LoadDatabase
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION LoadDatabaseString(ID,INPUT)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
CHARACTER(LEN=*), INTENT(IN) :: INPUT
|
||||
INTEGER(KIND=4) :: LoadDatabaseString
|
||||
END FUNCTION LoadDatabaseString
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
SUBROUTINE OutputAccumulatedLines(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
END SUBROUTINE OutputAccumulatedLines
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
SUBROUTINE OutputErrorString(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
END SUBROUTINE OutputErrorString
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
SUBROUTINE OutputWarningString(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
END SUBROUTINE OutputWarningString
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION RunAccumulated(ID)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
INTEGER(KIND=4) :: RunAccumulated
|
||||
END FUNCTION RunAccumulated
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION RunFile(ID,FNAME)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
CHARACTER(LEN=*), INTENT(IN) :: FNAME
|
||||
INTEGER(KIND=4) :: RunFile
|
||||
END FUNCTION RunFile
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION RunString(ID,INPUT)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
CHARACTER(LEN=*), INTENT(IN) :: INPUT
|
||||
INTEGER(KIND=4) :: RunString
|
||||
END FUNCTION RunString
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION SetDumpFileName(ID,FNAME)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
CHARACTER(LEN=*), INTENT(IN) :: FNAME
|
||||
INTEGER(KIND=4) :: SetDumpFileName
|
||||
END FUNCTION SetDumpFileName
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION SetDumpFileOn(ID,DUMP_ON)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
LOGICAL(KIND=4), INTENT(IN) :: DUMP_ON
|
||||
INTEGER(KIND=4) :: SetDumpFileOn
|
||||
END FUNCTION SetDumpFileOn
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION SetDumpStringOn(ID,DUMP_STRING_ON)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
LOGICAL(KIND=4), INTENT(IN) :: DUMP_STRING_ON
|
||||
INTEGER(KIND=4) :: SetDumpStringOn
|
||||
END FUNCTION SetDumpStringOn
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION SetErrorFileOn(ID,ERR_ON)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
LOGICAL(KIND=4), INTENT(IN) :: ERR_ON
|
||||
INTEGER(KIND=4) :: SetErrorFileOn
|
||||
END FUNCTION SetErrorFileOn
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION SetLogFileName(ID,FNAME)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
CHARACTER(LEN=*), INTENT(IN) :: FNAME
|
||||
INTEGER(KIND=4) :: SetLogFileName
|
||||
END FUNCTION SetLogFileName
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION SetLogFileOn(ID,LOG_ON)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
LOGICAL(KIND=4), INTENT(IN) :: LOG_ON
|
||||
INTEGER(KIND=4) :: SetLogFileOn
|
||||
END FUNCTION SetLogFileOn
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION SetLogStringOn(ID,LOG_STRING_ON)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
LOGICAL(KIND=4), INTENT(IN) :: LOG_STRING_ON
|
||||
INTEGER(KIND=4) :: SetLogStringOn
|
||||
END FUNCTION SetLogStringOn
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION SetOutputFileName(ID,FNAME)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
CHARACTER(LEN=*), INTENT(IN) :: FNAME
|
||||
INTEGER(KIND=4) :: SetOutputFileName
|
||||
END FUNCTION SetOutputFileName
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION SetOutputFileOn(ID,OUT_ON)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
LOGICAL(KIND=4), INTENT(IN) :: OUT_ON
|
||||
INTEGER(KIND=4) :: SetOutputFileOn
|
||||
END FUNCTION SetOutputFileOn
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION SetOutputStringOn(ID,OUT_STRING_ON)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
LOGICAL(KIND=4), INTENT(IN) :: OUT_STRING_ON
|
||||
INTEGER(KIND=4) :: SetOutputStringOn
|
||||
END FUNCTION SetOutputStringOn
|
||||
END INTERFACE
|
||||
|
||||
|
||||
INTERFACE
|
||||
FUNCTION SetSelectedOutputFileOn(ID,SEL_ON)
|
||||
INTEGER(KIND=4), INTENT(IN) :: ID
|
||||
LOGICAL(KIND=4), INTENT(IN) :: SEL_ON
|
||||
INTEGER(KIND=4) :: SetSelectedOutputFileOn
|
||||
END FUNCTION SetSelectedOutputFileOn
|
||||
END INTERFACE
|
||||
1504
IPhreeqc.h
Normal file
1504
IPhreeqc.h
Normal file
File diff suppressed because it is too large
Load Diff
793
IPhreeqc.hpp
Normal file
793
IPhreeqc.hpp
Normal file
@ -0,0 +1,793 @@
|
||||
/*! @file IPhreeqc.hpp
|
||||
@brief C++ Documentation
|
||||
*/
|
||||
|
||||
#ifndef INC_IPHREEQC_HPP
|
||||
#define INC_IPHREEQC_HPP
|
||||
|
||||
#include <exception>
|
||||
#include <list>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <cstdarg>
|
||||
#include "IPhreeqcCallbacks.h" /* PFN_PRERUN_CALLBACK, PFN_POSTRUN_CALLBACK, PFN_CATCH_CALLBACK */
|
||||
#include "Var.h" /* VRESULT */
|
||||
#include "PHRQ_io.h"
|
||||
|
||||
#if defined(_WINDLL)
|
||||
#define IPQ_DLL_EXPORT __declspec(dllexport)
|
||||
#else
|
||||
#define IPQ_DLL_EXPORT
|
||||
#endif
|
||||
|
||||
class Phreeqc;
|
||||
class IErrorReporter;
|
||||
class CSelectedOutput;
|
||||
|
||||
/**
|
||||
* @class IPhreeqcStop
|
||||
*
|
||||
* @brief This class is derived from std::exception and is thrown
|
||||
* when an unrecoverable error has occured.
|
||||
*/
|
||||
class IPQ_DLL_EXPORT IPhreeqcStop : std::exception
|
||||
{
|
||||
};
|
||||
|
||||
/**
|
||||
* @class IPhreeqc
|
||||
*
|
||||
* @brief Provides an interface to PHREEQC (Version 2)--A Computer
|
||||
* Program for Speciation, Batch-Reaction, One-Dimensional Transport,
|
||||
* and Inverse Geochemical Calculations
|
||||
*/
|
||||
class IPQ_DLL_EXPORT IPhreeqc : public PHRQ_io
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* Constructor.
|
||||
* \anchor IPhreeqc_cpp
|
||||
* @par Example:
|
||||
* \include IPhreeqc.cpp
|
||||
*/
|
||||
IPhreeqc(void);
|
||||
|
||||
/**
|
||||
* Destructor
|
||||
*/
|
||||
virtual ~IPhreeqc(void);
|
||||
|
||||
public:
|
||||
|
||||
/**
|
||||
* Accumlulate line(s) for input to phreeqc.
|
||||
* @param line The line(s) to add for input to phreeqc.
|
||||
* @retval VR_OK Success
|
||||
* @retval VR_OUTOFMEMORY Out of memory
|
||||
* @see ClearAccumulatedLines, OutputAccumulatedLines, RunAccumulated
|
||||
*/
|
||||
VRESULT AccumulateLine(const char *line);
|
||||
|
||||
/**
|
||||
* Appends the given error message and increments the error count.
|
||||
* Internally used to create an error condition.
|
||||
* @param error_msg The error message to display.
|
||||
* @returns The current error count.
|
||||
* @see GetErrorString, GetErrorStringLine, GetErrorStringLineCount, OutputErrorString
|
||||
*/
|
||||
size_t AddError(const char* error_msg);
|
||||
|
||||
/**
|
||||
* Appends the given warning message and increments the warning count.
|
||||
* Internally used to create a warning condition.
|
||||
* @param warning_msg The warning message to display.
|
||||
* @returns The current warning count.
|
||||
* @see GetWarningString, GetWarningStringLine, GetWarningStringLineCount, OutputWarningString
|
||||
*/
|
||||
size_t AddWarning(const char* warning_msg);
|
||||
|
||||
/**
|
||||
* Clears the accumulated input buffer. Input buffer is accumulated from calls to \ref AccumulateLine.
|
||||
* @see AccumulateLine, GetAccumulatedLines, OutputAccumulatedLines, RunAccumulated
|
||||
*/
|
||||
void ClearAccumulatedLines(void);
|
||||
|
||||
/**
|
||||
* Retrieve the accumulated input string. The accumulated input string can be run
|
||||
* with \ref RunAccumulated.
|
||||
* @returns The accumulated input string.
|
||||
* @see AccumulateLine, ClearAccumulatedLines, OutputAccumulatedLines, RunAccumulated
|
||||
*/
|
||||
const std::string& GetAccumulatedLines(void);
|
||||
|
||||
/**
|
||||
* Retrieves the given component.
|
||||
* @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, ListComponents
|
||||
*/
|
||||
const char* GetComponent(int n);
|
||||
|
||||
/**
|
||||
* Retrieves the number of components in the current list of components.
|
||||
* @return The current count of components.
|
||||
* @see GetComponent, ListComponents
|
||||
*/
|
||||
size_t GetComponentCount(void);
|
||||
|
||||
|
||||
/**
|
||||
* Retrieves the name of the dump file. This file name is used if not specified within <B>DUMP</B> input.
|
||||
* The default value is <B><I>dump.id.out</I></B>, where id is obtained from \ref GetId.
|
||||
* @return filename The name of the file to write <B>DUMP</B> output to.
|
||||
* @see GetDumpFileOn, GetDumpString, GetDumpStringOn, GetDumpStringLine, GetDumpStringLineCount, SetDumpFileName, SetDumpFileOn, SetDumpStringOn
|
||||
*/
|
||||
const char* GetDumpFileName(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the current value of the dump file switch.
|
||||
* @retval true Output is written to the <B>DUMP</B> (<B><I>dump.id.out</I></B> if unspecified, where id is obtained from \ref GetId) file.
|
||||
* @retval false No output is written.
|
||||
* @see GetDumpStringLine, GetDumpStringLineCount, GetDumpStringOn, GetDumpString, SetDumpFileOn, SetDumpStringOn
|
||||
*/
|
||||
bool GetDumpFileOn(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the string buffer containing <b>DUMP</b> output.
|
||||
* @return A null terminated string containing <b>DUMP</b> output.
|
||||
* @pre
|
||||
* \ref SetDumpStringOn must have been set to true in order to recieve <b>DUMP</b> output.
|
||||
* @see GetDumpStringLine, GetDumpFileOn, GetDumpStringLineCount, GetDumpStringOn, SetDumpFileOn, SetDumpStringOn
|
||||
*/
|
||||
const char* GetDumpString(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the given dump line.
|
||||
* @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.
|
||||
* @pre \ref SetDumpStringOn must have been set to true.
|
||||
* @see GetDumpFileOn, GetDumpString, GetDumpStringLineCount, GetDumpStringOn, SetDumpFileOn, SetDumpStringOn
|
||||
*/
|
||||
const char* GetDumpStringLine(int n);
|
||||
|
||||
/**
|
||||
* Retrieves the number of lines in the current dump string buffer.
|
||||
* @return The number of lines.
|
||||
* @pre \ref SetDumpStringOn must have been set to true.
|
||||
* @see GetDumpFileOn, GetDumpString, GetDumpStringLine, GetDumpStringOn, SetDumpFileOn, SetDumpStringOn
|
||||
*/
|
||||
int GetDumpStringLineCount(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the current value of the dump string switch.
|
||||
* @retval true Output defined by the <B>DUMP</B> keyword is stored.
|
||||
* @retval false No output is stored.
|
||||
* @see GetDumpFileOn, GetDumpString, GetDumpStringLine, GetDumpStringLineCount, SetDumpFileOn, SetDumpStringOn
|
||||
*/
|
||||
bool GetDumpStringOn(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the current value of the error file switch.
|
||||
* @retval true Errors are written to the <B><I>phreeqc.id.err</I></B> (where id is obtained from \ref GetId) file.
|
||||
* @retval false No errors are written.
|
||||
* @see SetErrorFileOn
|
||||
*/
|
||||
bool GetErrorFileOn(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the error messages from the last call to \ref RunAccumulated, \ref RunFile, \ref RunString, \ref LoadDatabase, or \ref LoadDatabaseString.
|
||||
* @return A null terminated string containing error messages.
|
||||
* @see GetErrorStringLine, GetErrorStringLineCount, GetErrorFileOn, OutputErrorString, SetErrorFileOn
|
||||
*/
|
||||
const char* GetErrorString(void);
|
||||
|
||||
/**
|
||||
* Retrieves the given error line.
|
||||
* @return A null terminated string containing the given line of the error string buffer.
|
||||
* @param n The zero-based index of the line to retrieve.
|
||||
* @see GetErrorStringLineCount, OutputErrorString
|
||||
*/
|
||||
const char* GetErrorStringLine(int n);
|
||||
|
||||
/**
|
||||
* Retrieves the number of lines in the current error string buffer.
|
||||
* @return The number of lines.
|
||||
* @see GetErrorStringLine, OutputErrorString
|
||||
*/
|
||||
int GetErrorStringLineCount(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the id of this object. Each instance receives an id which is incremented for each instance
|
||||
* starting with the value zero.
|
||||
* @return The id.
|
||||
*/
|
||||
int GetId(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the name of the log file. The default value is <B><I>phreeqc.id.log</I></B>, where id is obtained from \ref GetId.
|
||||
* @return filename The name of the file to write to.
|
||||
* @see GetLogFileOn, GetLogString, GetLogStringOn, GetLogStringLine, GetLogStringLineCount, SetLogFileName, SetLogFileOn, SetLogStringOn
|
||||
*/
|
||||
const char* GetLogFileName(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the current value of the log file switch.
|
||||
* @retval true Log messages are written to the <B><I>phreeqc.id.log</I></B> (where id is obtained from \ref GetId) file.
|
||||
* @retval false No log messages are written.
|
||||
* @remarks
|
||||
* Logging must be enabled through the use of the KNOBS -logfile option in order to receive any log messages.
|
||||
* @see SetLogFileOn
|
||||
*/
|
||||
bool GetLogFileOn(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the string buffer containing phreeqc log output.
|
||||
* @return A null terminated string containing log output.
|
||||
* @pre
|
||||
* \ref SetLogStringOn must have been set to true and enabled through the use of the KNOBS -logfile option in order to receive any log messages.
|
||||
* @see GetLogStringLine, GetLogFileOn, GetLogStringLineCount, GetLogStringOn, SetLogFileOn, SetLogStringOn
|
||||
*/
|
||||
const char* GetLogString(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the given log line.
|
||||
* @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.
|
||||
* @pre \ref SetLogStringOn must have been set to true and enabled through the use of the KNOBS -logfile option in order to receive any log messages.
|
||||
* @see GetLogFileOn, GetLogString, GetLogStringLineCount, GetLogStringOn, SetLogFileOn, SetLogStringOn
|
||||
*/
|
||||
const char* GetLogStringLine(int n)const;
|
||||
|
||||
/**
|
||||
* Retrieves the number of lines in the current log string buffer.
|
||||
* @return The number of lines.
|
||||
* @pre \ref SetLogStringOn must have been set to true and enabled through the use of the KNOBS -logfile option in order to receive any log messages.
|
||||
* @see GetLogFileOn, GetLogString, GetLogStringLine, GetLogStringOn, SetLogFileOn, SetLogStringOn
|
||||
*/
|
||||
int GetLogStringLineCount(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the current value of the log string switch.
|
||||
* @retval true Log output is stored.
|
||||
* @retval false No log output is stored.
|
||||
* @see GetLogFileOn, GetLogString, GetLogStringLine, GetLogStringLineCount, SetLogFileOn, SetLogStringOn
|
||||
*/
|
||||
bool GetLogStringOn(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the name of the output file. The default value is <B><I>phreeqc.id.out</I></B>, where id is obtained from \ref GetId.
|
||||
* @return filename The name of the file to write phreeqc output to.
|
||||
* @see GetOutputFileOn, GetOutputString, GetOutputStringOn, GetOutputStringLine, GetOutputStringLineCount, SetOutputFileName, SetOutputFileOn, SetOutputStringOn
|
||||
*/
|
||||
const char* GetOutputFileName(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the current value of the output file switch.
|
||||
* @retval true Output is written to the <B><I>phreeqc.id.out</I></B> (where id is obtained from \ref GetId) file.
|
||||
* @retval false No output is written.
|
||||
* @see GetOutputFileOn, GetOutputString, GetOutputStringOn, GetOutputStringLine, GetOutputStringLineCount, SetOutputFileName, SetOutputFileOn, SetOutputStringOn
|
||||
*/
|
||||
bool GetOutputFileOn(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the string buffer containing phreeqc output.
|
||||
* @return A null terminated string containing phreeqc output.
|
||||
* @pre
|
||||
* \ref SetOutputStringOn must have been set to true in order to recieve output.
|
||||
* @see GetOutputStringLine, GetOutputFileOn, GetOutputStringLineCount, GetOutputStringOn, SetOutputFileOn, SetOutputStringOn
|
||||
*/
|
||||
const char* GetOutputString(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the given output line.
|
||||
* @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.
|
||||
* @pre \ref SetOutputStringOn must have been set to true.
|
||||
* @see GetOutputFileOn, GetOutputString, GetOutputStringLineCount, GetOutputStringOn, SetOutputFileOn, SetOutputStringOn
|
||||
*/
|
||||
const char* GetOutputStringLine(int n)const;
|
||||
|
||||
/**
|
||||
* Retrieves the number of lines in the current output string buffer.
|
||||
* @return The number of lines.
|
||||
* @pre \ref SetOutputStringOn must have been set to true.
|
||||
* @see GetOutputFileOn, GetOutputString, GetOutputStringLine, GetOutputStringOn, SetOutputFileOn, SetOutputStringOn
|
||||
*/
|
||||
int GetOutputStringLineCount(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the current value of the output string switch.
|
||||
* @retval true Phreeqc output is stored.
|
||||
* @retval false No phreeqc output is stored.
|
||||
* @see GetOutputFileOn, GetOutputString, GetOutputStringLine, GetOutputStringLineCount, SetOutputFileOn, SetOutputStringOn
|
||||
*/
|
||||
bool GetOutputStringOn(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the number of columns in the selected-output buffer.
|
||||
* @return The number of columns.
|
||||
* @see GetSelectedOutputRowCount, GetSelectedOutputValue
|
||||
*/
|
||||
int GetSelectedOutputColumnCount(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the selected-output file switch.
|
||||
* @retval true Output is written to the selected-output (<B><I>selected.id.out</I></B> if unspecified, where id is obtained from \ref GetId) file.
|
||||
* @retval false No output is written.
|
||||
* @see GetSelectedOutputValue, GetSelectedOutputColumnCount, GetSelectedOutputRowCount, SetSelectedOutputFileOn
|
||||
*/
|
||||
bool GetSelectedOutputFileOn(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the number of rows in the selected-output buffer.
|
||||
* @return The number of rows.
|
||||
* @see GetSelectedOutputColumnCount, GetSelectedOutputFileOn, GetSelectedOutputValue, SetSelectedOutputFileOn
|
||||
*/
|
||||
int GetSelectedOutputRowCount(void)const;
|
||||
|
||||
/**
|
||||
* Returns the \c VAR associated with the specified row and column.
|
||||
* @param row The row index.
|
||||
* @param col The column index.
|
||||
* @param pVAR Pointer to the \c VAR to recieve the requested data.
|
||||
* @retval VR_OK Success.
|
||||
* @retval VR_INVALIDROW The given row is out of range.
|
||||
* @retval VR_INVALIDCOL The given column is out of range.
|
||||
* @retval VR_OUTOFMEMORY Memory could not be allocated.
|
||||
* @retval VR_BADINSTANCE The given id is invalid.
|
||||
* @see GetSelectedOutputColumnCount, GetSelectedOutputFileOn, GetSelectedOutputRowCount, SetSelectedOutputFileOn
|
||||
* @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
|
||||
<p>
|
||||
<table border=1>
|
||||
|
||||
<TR VALIGN="top">
|
||||
<TH width=65%>
|
||||
Input
|
||||
</TH>
|
||||
<TH width=35%>
|
||||
Headings
|
||||
</TH>
|
||||
</TR>
|
||||
|
||||
<TR VALIGN="top">
|
||||
<TD width=65%>
|
||||
<CODE><PRE>
|
||||
SELECTED_OUTPUT
|
||||
-reset false
|
||||
-totals Ca Na
|
||||
</PRE></CODE>
|
||||
</TD>
|
||||
<TD width=35%>
|
||||
<CODE><PRE>
|
||||
Ca(mol/kgw) Na(mol/kgw)
|
||||
</PRE></CODE>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR VALIGN="top">
|
||||
<TD width=65%>
|
||||
<CODE><PRE>
|
||||
SELECTED_OUTPUT
|
||||
-reset false
|
||||
-molalities Fe+2 Hfo_sOZn+
|
||||
</PRE></CODE>
|
||||
</TD>
|
||||
<TD width=35%>
|
||||
<CODE><PRE>
|
||||
m_Fe+2(mol/kgw) m_Hfo_sOZn+(mol/kgw)
|
||||
</PRE></CODE>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR VALIGN="top">
|
||||
<TD width=65%>
|
||||
<CODE><PRE>
|
||||
SELECTED_OUTPUT
|
||||
-reset false
|
||||
-activities H+ Ca+2
|
||||
</PRE></CODE>
|
||||
</TD>
|
||||
<TD width=35%>
|
||||
<CODE><PRE>
|
||||
la_H+ la_Ca+2
|
||||
</PRE></CODE>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR VALIGN="top">
|
||||
<TD width=65%>
|
||||
<CODE><PRE>
|
||||
SELECTED_OUTPUT
|
||||
-reset false
|
||||
-equilibrium_phases Calcite Dolomite
|
||||
</PRE></CODE>
|
||||
</TD>
|
||||
<TD width=35%>
|
||||
<CODE><PRE>
|
||||
Calcite d_Calcite Dolomite d_Dolomite
|
||||
</PRE></CODE>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR VALIGN="top">
|
||||
<TD width=65%>
|
||||
<CODE><PRE>
|
||||
SELECTED_OUTPUT
|
||||
-reset false
|
||||
-saturation_indices CO2(g) Siderite
|
||||
</PRE></CODE>
|
||||
</TD>
|
||||
<TD width=35%>
|
||||
<CODE><PRE>
|
||||
si_CO2(g) si_Siderite
|
||||
</PRE></CODE>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR VALIGN="top">
|
||||
<TD width=65%>
|
||||
<CODE><PRE>
|
||||
SELECTED_OUTPUT
|
||||
-reset false
|
||||
-gases CO2(g) N2(g)
|
||||
</PRE></CODE>
|
||||
</TD>
|
||||
<TD width=35%>
|
||||
<CODE><PRE>
|
||||
pressure "total mol" volume g_CO2(g) g_N2(g)
|
||||
</PRE></CODE>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR VALIGN="top">
|
||||
<TD width=65%>
|
||||
<CODE><PRE>
|
||||
SELECTED_OUTPUT
|
||||
-reset false
|
||||
-kinetic_reactants CH2O Pyrite
|
||||
</PRE></CODE>
|
||||
</TD>
|
||||
<TD width=35%>
|
||||
<CODE><PRE>
|
||||
k_CH2O dk_CH2O k_Pyrite dk_Pyrite
|
||||
</PRE></CODE>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR VALIGN="top">
|
||||
<TD width=65%>
|
||||
<CODE><PRE>
|
||||
SELECTED_OUTPUT
|
||||
-reset false
|
||||
-solid_solutions CaSO4 SrSO4
|
||||
</PRE></CODE>
|
||||
</TD>
|
||||
<TD width=35%>
|
||||
<CODE><PRE>
|
||||
s_CaSO4 s_SrSO4
|
||||
</PRE></CODE>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
</table>
|
||||
* @endhtmlonly
|
||||
*/
|
||||
VRESULT GetSelectedOutputValue(int row, int col, VAR* pVAR);
|
||||
|
||||
/**
|
||||
* Retrieves the warning messages from the last call to \ref RunAccumulated, \ref RunFile, \ref RunString, \ref LoadDatabase, or \ref LoadDatabaseString.
|
||||
* @return A null terminated string containing warning messages.
|
||||
* @see GetWarningStringLine, GetWarningStringLineCount, OutputWarningString
|
||||
*/
|
||||
const char* GetWarningString(void);
|
||||
|
||||
/**
|
||||
* Retrieves the given warning line.
|
||||
* @param n The zero-based index of the line to retrieve.
|
||||
* @return A null terminated string containing the given warning line message.
|
||||
* @see GetWarningStringLineCount, OutputWarningString
|
||||
*/
|
||||
const char* GetWarningStringLine(int n);
|
||||
|
||||
/**
|
||||
* Retrieves the number of lines in the current warning string buffer.
|
||||
* @return The number of lines.
|
||||
* @see GetWarningStringLine, GetWarningString, OutputWarningString
|
||||
*/
|
||||
int GetWarningStringLineCount(void)const;
|
||||
|
||||
/**
|
||||
* Retrieves the current list of components.
|
||||
* @return The current list of components.
|
||||
* @see GetComponent, GetComponentCount
|
||||
*/
|
||||
std::list< std::string > ListComponents(void);
|
||||
|
||||
/**
|
||||
* Load the specified database file into phreeqc.
|
||||
* @param filename The name of the phreeqc database to load.
|
||||
* The full path (or relative path with respect to the working directory) will be required if the file is not
|
||||
* in the current working directory.
|
||||
* @return The number of errors encountered.
|
||||
* @see LoadDatabaseString
|
||||
* @remarks
|
||||
* All previous definitions are cleared.
|
||||
*/
|
||||
int LoadDatabase(const char* filename);
|
||||
|
||||
/**
|
||||
* Load the specified string as a database into phreeqc.
|
||||
* @param input String containing data to be used as the phreeqc database.
|
||||
* @return The number of errors encountered.
|
||||
* @see LoadDatabaseString
|
||||
* @remarks
|
||||
* All previous definitions are cleared.
|
||||
*/
|
||||
int LoadDatabaseString(const char* input);
|
||||
|
||||
/**
|
||||
* Output the accumulated input buffer to stdout. The input buffer can be run with a call to \ref RunAccumulated.
|
||||
* @see AccumulateLine, ClearAccumulatedLines, RunAccumulated
|
||||
*/
|
||||
void OutputAccumulatedLines(void);
|
||||
|
||||
/**
|
||||
* Output the error messages normally stored in the <B><I>phreeqc.id.err</I></B> (where id is obtained from \ref GetId)
|
||||
* file to stdout.
|
||||
* @see GetErrorStringLine, GetErrorStringLineCount, GetErrorFileOn, SetErrorFileOn
|
||||
*/
|
||||
void OutputErrorString(void);
|
||||
|
||||
/**
|
||||
* Output the warning messages to stdout.
|
||||
* @see GetWarningStringLine, GetWarningStringLineCount, GetWarningString
|
||||
*/
|
||||
void OutputWarningString(void);
|
||||
|
||||
/**
|
||||
* Runs the input buffer as defined by calls to \ref AccumulateLine.
|
||||
* @return The number of errors encountered.
|
||||
* @see AccumulateLine, ClearAccumulatedLines, OutputAccumulatedLines, RunFile, RunString
|
||||
* @remarks
|
||||
* The accumulated input is cleared at the next call to \ref AccumulateLine.
|
||||
* @pre
|
||||
* \ref LoadDatabase/\ref LoadDatabaseString must have been called and returned 0 (zero) errors.
|
||||
*/
|
||||
int RunAccumulated(void);
|
||||
|
||||
/**
|
||||
* Runs the specified phreeqc input file.
|
||||
* @param filename The name of the phreeqc input file to run.
|
||||
* @return The number of errors encountered during the run.
|
||||
* @see RunAccumulated, RunString
|
||||
* @pre
|
||||
* \ref LoadDatabase/\ref LoadDatabaseString must have been called and returned 0 (zero) errors.
|
||||
*/
|
||||
int RunFile(const char* filename);
|
||||
|
||||
/**
|
||||
* Runs the specified string as input to phreeqc.
|
||||
* @param input String containing phreeqc input.
|
||||
* @return The number of errors encountered during the run.
|
||||
* @see RunAccumulated, RunFile
|
||||
* @pre
|
||||
* \ref LoadDatabase/\ref LoadDatabaseString must have been called and returned 0 (zero) errors.
|
||||
*/
|
||||
int RunString(const char* input);
|
||||
|
||||
/**
|
||||
* Sets the name of the dump file. This file name is used if not specified within <B>DUMP</B> input.
|
||||
* The default value is <B><I>dump.id.out</I></B>, where id is obtained from \ref GetId.
|
||||
* @param filename The name of the file to write <B>DUMP</B> output to.
|
||||
* @see GetDumpFileName, GetDumpFileOn, GetDumpString, GetDumpStringOn, GetDumpStringLine, GetDumpStringLineCount, SetDumpStringOn
|
||||
*/
|
||||
void SetDumpFileName(const char *filename);
|
||||
|
||||
/**
|
||||
* Sets the dump file switch on or off. This switch controls whether or not phreeqc writes to the <B>DUMP</B> (<B><I>dump.id.out</I></B>
|
||||
* if unspecified, where id is obtained from \ref GetId) file.
|
||||
* The initial setting is false.
|
||||
* @param bValue If true, turns on output to the <B>DUMP</B> file;
|
||||
* if false, turns off output to the <B>DUMP</B> file.
|
||||
* @see GetDumpFileOn, GetDumpString, GetDumpStringOn, GetDumpStringLine, GetDumpStringLineCount, SetDumpStringOn
|
||||
*/
|
||||
void SetDumpFileOn(bool bValue);
|
||||
|
||||
/**
|
||||
* Sets the dump string switch on or off. This switch controls whether or not the data normally sent
|
||||
* to the dump file are stored in a buffer for retrieval. The initial setting is false.
|
||||
* @param bValue If true, captures the output defined by the <B>DUMP</B> keyword into a string buffer;
|
||||
* if false, output defined by the <B>DUMP</B> keyword is not captured to a string buffer.
|
||||
* @see GetDumpFileOn, GetDumpString, GetDumpStringOn, GetDumpStringLine, GetDumpStringLineCount, SetDumpFileOn
|
||||
*/
|
||||
void SetDumpStringOn(bool bValue);
|
||||
|
||||
/**
|
||||
* Sets the error file switch on or off. This switch controls whether or not
|
||||
* error messages are written to the <B><I>phreeqc.id.err</I></B> (where id is obtained from \ref GetId) file.
|
||||
* The initial setting is false.
|
||||
* @param bValue If true, writes errors to the error file; if false, no errors are written to the error file.
|
||||
* @see GetErrorStringLine, GetErrorStringLineCount, GetErrorFileOn, OutputErrorString
|
||||
*/
|
||||
void SetErrorFileOn(bool bValue);
|
||||
|
||||
/**
|
||||
* Sets the name of the log file. The default value is <B><I>phreeqc.id.log</I></B>, where id is obtained from \ref GetId.
|
||||
* @param filename The name of the file to write log output to.
|
||||
* @see GetLogFileName, GetLogFileOn, GetLogString, GetLogStringOn, GetLogStringLine, GetLogStringLineCount, SetLogFileOn, SetLogStringOn
|
||||
*/
|
||||
void SetLogFileName(const char *filename);
|
||||
|
||||
/**
|
||||
* Sets the log file switch on or off. This switch controls whether or not phreeqc
|
||||
* writes log messages to the <B><I>phreeqc.id.log</I></B> (where id is obtained from \ref GetId) file. The initial setting is false.
|
||||
* @param bValue If true, turns on output to the log file; if false, no log messages are written to the log file.
|
||||
* @remarks
|
||||
* Logging must be enabled through the use of the KNOBS -logfile option in order to receive any log messages.
|
||||
* @see GetLogFileOn
|
||||
*/
|
||||
void SetLogFileOn(bool bValue);
|
||||
|
||||
/**
|
||||
* Sets the log string switch on or off. This switch controls whether or not the data normally sent
|
||||
* to the log file are stored in a buffer for retrieval. The initial setting is false.
|
||||
* @param bValue If true, captures log output into a string buffer; if false, log output is not captured to a string buffer.
|
||||
* @see GetLogFileOn, GetLogString, GetLogStringOn, GetLogStringLine, GetLogStringLineCount, SetLogFileOn
|
||||
*/
|
||||
void SetLogStringOn(bool bValue);
|
||||
|
||||
/**
|
||||
* Sets the name of the output file. The default value is <B><I>phreeqc.id.out</I></B>, where id is obtained from \ref GetId.
|
||||
* @param filename The name of the file to write phreeqc output to.
|
||||
* @see GetOutputFileName, GetOutputFileOn, GetOutputString, GetOutputStringOn, GetOutputStringLine, GetOutputStringLineCount, SetOutputFileOn, SetOutputStringOn
|
||||
*/
|
||||
void SetOutputFileName(const char *filename);
|
||||
|
||||
/**
|
||||
* Sets the output file switch on or off. This switch controls whether or not phreeqc
|
||||
* writes to the <B><I>phreeqc.id.out</I></B> file (where id is obtained from \ref GetId). This is the output that is normally generated
|
||||
* when phreeqc is run. The initial setting is false.
|
||||
* @param bValue If true, writes output to the output file; if false, no output is written to the output file.
|
||||
* @see GetOutputFileOn
|
||||
*/
|
||||
void SetOutputFileOn(bool bValue);
|
||||
|
||||
/**
|
||||
* Sets the output string switch on or off. This switch controls whether or not the data normally sent
|
||||
* to the output file are stored in a buffer for retrieval. The initial setting is false.
|
||||
* @param bValue If true, captures output into a string buffer; if false, output is not captured to a string buffer.
|
||||
* @see GetOutputFileOn, GetOutputString, GetOutputStringOn, GetOutputStringLine, GetOutputStringLineCount, SetOutputFileOn
|
||||
*/
|
||||
void SetOutputStringOn(bool bValue);
|
||||
|
||||
/**
|
||||
* Sets the selected-output file switch on or off. This switch controls whether or not phreeqc writes output to
|
||||
* the <B>SELECTED_OUTPUT</B> (<B><I>selected.id.out</I></B> if unspecified, where id is obtained from \ref GetId) file.
|
||||
* The initial setting is false.
|
||||
* @param bValue If true, writes output to the selected-output file; if false, no output is written to the selected-output file.
|
||||
* @see GetSelectedOutputColumnCount, GetSelectedOutputFileOn, GetSelectedOutputRowCount, GetSelectedOutputValue
|
||||
*/
|
||||
void SetSelectedOutputFileOn(bool bValue);
|
||||
|
||||
public:
|
||||
// overrides
|
||||
virtual void error_msg(const char *str, bool stop=false);
|
||||
virtual void log_msg(const char * str);
|
||||
virtual void output_msg(const char *str);
|
||||
virtual void punch_msg(const char *str);
|
||||
virtual void screen_msg(const char *str);
|
||||
virtual void warning_msg(const char *str);
|
||||
|
||||
virtual void fpunchf(const char *name, const char *format, double d);
|
||||
virtual void fpunchf(const char *name, const char *format, char * d);
|
||||
virtual void fpunchf(const char *name, const char *format, int d);
|
||||
virtual void fpunchf_end_row(const char *format);
|
||||
|
||||
virtual bool output_open(const char *file_name, std::ios_base::openmode mode = std::ios_base::out);
|
||||
virtual bool punch_open(const char *file_name, std::ios_base::openmode mode = std::ios_base::out);
|
||||
|
||||
protected:
|
||||
int EndRow(void);
|
||||
void AddSelectedOutput(const char* name, const char* format, va_list argptr);
|
||||
void UnLoadDatabase(void);
|
||||
|
||||
void check_database(const char* sz_routine);
|
||||
int close_input_files(void);
|
||||
int close_output_files(void);
|
||||
void open_output_files(const char* sz_routine);
|
||||
|
||||
void do_run(const char* sz_routine, std::istream* pis, PFN_PRERUN_CALLBACK pfn_pre, PFN_POSTRUN_CALLBACK pfn_post, void *cookie);
|
||||
|
||||
void update_errors(void);
|
||||
|
||||
|
||||
protected:
|
||||
#if defined(_MSC_VER)
|
||||
/* disable warning C4251: 'identifier' : class 'type' needs to have dll-interface to be used by clients of class 'type2' */
|
||||
#pragma warning(disable:4251)
|
||||
#endif
|
||||
|
||||
bool DatabaseLoaded;
|
||||
bool ClearAccumulated;
|
||||
bool UpdateComponents;
|
||||
bool SelectedOutputOn;
|
||||
bool OutputFileOn;
|
||||
|
||||
bool LogFileOn;
|
||||
bool ErrorOn;
|
||||
bool DumpOn;
|
||||
|
||||
bool DumpStringOn;
|
||||
|
||||
bool OutputStringOn;
|
||||
std::string OutputString;
|
||||
std::vector< std::string > OutputLines;
|
||||
|
||||
bool LogStringOn;
|
||||
std::string LogString;
|
||||
std::vector< std::string > LogLines;
|
||||
|
||||
IErrorReporter *ErrorReporter;
|
||||
std::string ErrorString;
|
||||
std::vector< std::string > ErrorLines;
|
||||
|
||||
IErrorReporter *WarningReporter;
|
||||
std::string WarningString;
|
||||
std::vector< std::string > WarningLines;
|
||||
|
||||
CSelectedOutput *SelectedOutput;
|
||||
std::string StringInput;
|
||||
|
||||
std::string DumpString;
|
||||
std::vector< std::string > DumpLines;
|
||||
|
||||
std::list< std::string > Components;
|
||||
|
||||
std::string PunchFileName;
|
||||
std::string OutputFileName;
|
||||
std::string ErrorFileName;
|
||||
std::string LogFileName;
|
||||
std::string DumpFileName;
|
||||
|
||||
protected:
|
||||
Phreeqc* PhreeqcPtr;
|
||||
FILE *input_file;
|
||||
FILE *database_file;
|
||||
|
||||
friend class IPhreeqcLib;
|
||||
static std::map<size_t, IPhreeqc*> Instances;
|
||||
static size_t InstancesIndex;
|
||||
const size_t Index;
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
/* reset warning C4251 */
|
||||
#pragma warning(default:4251)
|
||||
#endif
|
||||
|
||||
#if defined(CPPUNIT)
|
||||
friend class TestIPhreeqc;
|
||||
friend class TestSelectedOutput;
|
||||
#endif
|
||||
|
||||
private:
|
||||
/**
|
||||
* Copy constructor not supported
|
||||
*/
|
||||
IPhreeqc(const IPhreeqc&);
|
||||
|
||||
/**
|
||||
* operator= not supported
|
||||
*/
|
||||
IPhreeqc& operator=(const IPhreeqc&);
|
||||
};
|
||||
|
||||
#endif // INC_IPHREEQC_HPP
|
||||
19
IPhreeqcCallbacks.h
Normal file
19
IPhreeqcCallbacks.h
Normal file
@ -0,0 +1,19 @@
|
||||
#ifndef _INC_IPHREEQC_CALLBACKS_H
|
||||
#define _INC_IPHREEQC_CALLBACKS_H
|
||||
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
typedef int (*PFN_PRERUN_CALLBACK)(void *cookie);
|
||||
typedef int (*PFN_POSTRUN_CALLBACK)(void *cookie);
|
||||
typedef int (*PFN_CATCH_CALLBACK)(void *cookie);
|
||||
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _INC_IPHREEQC_CALLBACKS_H */
|
||||
16
Makefile.am
16
Makefile.am
@ -1,6 +1,6 @@
|
||||
EXTRA_DIST = fwrap2.cpp fwrap3.cpp
|
||||
|
||||
AM_CPPFLAGS=-I$(top_srcdir)/include -I$(top_srcdir)/src/phreeqcpp -I$(top_srcdir)/src/phreeqcpp/phreeqc
|
||||
AM_CPPFLAGS=-I$(top_srcdir)/src -I$(top_srcdir)/src/phreeqcpp -I$(top_srcdir)/src/phreeqcpp/phreeqc
|
||||
|
||||
# libtool libraries to build
|
||||
lib_LTLIBRARIES=libiphreeqc.la
|
||||
@ -141,10 +141,12 @@ libiphreeqc_la_SOURCES=\
|
||||
phreeqcpp/phreeqc/utilities.cpp
|
||||
|
||||
include_HEADERS=\
|
||||
$(top_srcdir)/include/IPhreeqc.h\
|
||||
$(top_srcdir)/include/IPhreeqc.hpp\
|
||||
$(top_srcdir)/include/IPhreeqcCallbacks.h\
|
||||
$(top_srcdir)/include/Var.h
|
||||
$(top_srcdir)/src/IPhreeqc.h\
|
||||
$(top_srcdir)/src/IPhreeqc.hpp\
|
||||
$(top_srcdir)/src/IPhreeqcCallbacks.h\
|
||||
$(top_srcdir)/src/Var.h\
|
||||
$(top_srcdir)/src/phreeqcpp/PHRQ_io.h\
|
||||
$(top_srcdir)/src/phreeqcpp/Keywords.h
|
||||
|
||||
|
||||
if BUILD_FORTRAN
|
||||
@ -155,8 +157,8 @@ libiphreeqc_la_SOURCES+=\
|
||||
IPhreeqcF.f
|
||||
|
||||
include_HEADERS+=\
|
||||
$(top_srcdir)/include/IPhreeqc.f90.inc\
|
||||
$(top_srcdir)/include/IPhreeqc.f.inc
|
||||
$(top_srcdir)/src/IPhreeqc.f90.inc\
|
||||
$(top_srcdir)/src/IPhreeqc.f.inc
|
||||
|
||||
endif
|
||||
|
||||
|
||||
150
Var.h
Normal file
150
Var.h
Normal file
@ -0,0 +1,150 @@
|
||||
/*! @file Var.h
|
||||
@brief %IPhreeqc VARIANT Documentation
|
||||
*/
|
||||
// Var.h
|
||||
|
||||
#ifndef __VAR_H_INC
|
||||
#define __VAR_H_INC
|
||||
|
||||
#if defined(_WINDLL)
|
||||
#define IPQ_DLL_EXPORT __declspec(dllexport)
|
||||
#else
|
||||
#define IPQ_DLL_EXPORT
|
||||
#endif
|
||||
|
||||
/*! \brief Enumeration used to determine the type of data stored in a VAR.
|
||||
*/
|
||||
typedef enum {
|
||||
TT_EMPTY = 0, /*!< VAR contains no data */
|
||||
TT_ERROR = 1, /*!< vresult is valid */
|
||||
TT_LONG = 2, /*!< lVal is valid */
|
||||
TT_DOUBLE = 3, /*!< dVal is valid */
|
||||
TT_STRING = 4 /*!< sVal is valid */
|
||||
} VAR_TYPE;
|
||||
|
||||
/*! \brief Enumeration used to return error codes.
|
||||
*/
|
||||
typedef enum {
|
||||
VR_OK = 0, /*!< Success */
|
||||
VR_OUTOFMEMORY = -1, /*!< Failure, Out of memory */
|
||||
VR_BADVARTYPE = -2, /*!< Failure, Invalid VAR type */
|
||||
VR_INVALIDARG = -3, /*!< Failure, Invalid argument */
|
||||
VR_INVALIDROW = -4, /*!< Failure, Invalid row */
|
||||
VR_INVALIDCOL = -5 /*!< Failure, Invalid column */
|
||||
} VRESULT;
|
||||
|
||||
/*! \brief Datatype used to store SELECTED_OUTPUT values.
|
||||
*/
|
||||
typedef struct {
|
||||
VAR_TYPE type; /*!< holds datatype of <code>VAR</code> */
|
||||
union {
|
||||
long lVal; /*!< valid when <code>(type == TT_LONG)</code> */
|
||||
double dVal; /*!< valid when <code>(type == TT_DOUBLE)</code> */
|
||||
char* sVal; /*!< valid when <code>(type == TT_STRING)</code> */
|
||||
VRESULT vresult; /*!< valid when <code>(type == TT_ERROR)</code> */
|
||||
};
|
||||
} VAR;
|
||||
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/** Allocates a new string for use in a VAR and copies the passed string into it.
|
||||
* @param pSrc Pointer to the VAR that will be initialized.
|
||||
* @return A pointer to the string on success NULL otherwise.
|
||||
*/
|
||||
IPQ_DLL_EXPORT char* VarAllocString(const char* pSrc);
|
||||
|
||||
/** Clears a VAR.
|
||||
* @param pvar Pointer to the VAR that will be freed and initialized.
|
||||
* @retval VR_OK Success.
|
||||
* @retval VR_BADVARTYPE The \c VAR was invalid (probably uninitialized).
|
||||
*/
|
||||
IPQ_DLL_EXPORT VRESULT VarClear(VAR* pvar);
|
||||
|
||||
/** Frees the destination VAR and makes a copy of the source VAR.
|
||||
* @param pvarDest Pointer to the VAR to receive the copy.
|
||||
* @param pvarSrc Pointer to the VAR to be copied.
|
||||
* @retval VR_OK Success.
|
||||
* @retval VR_BADVARTYPE The source and/or the destination are invalid (usually uninitialized).
|
||||
* @retval VR_OUTOFMEMORY Memory could not be allocated for the copy.
|
||||
* @return The return value is one of the following.
|
||||
*/
|
||||
IPQ_DLL_EXPORT VRESULT VarCopy(VAR* pvarDest, const VAR* pvarSrc);
|
||||
|
||||
/** Frees a string allocated using VarAllocString.
|
||||
* @param pSrc Pointer to the string to be freed.
|
||||
*/
|
||||
IPQ_DLL_EXPORT void VarFreeString(char* pSrc);
|
||||
|
||||
/** Initializes a VAR.
|
||||
* @param pvar Pointer to the VAR that will be initialized.
|
||||
*/
|
||||
IPQ_DLL_EXPORT void VarInit(VAR* pvar);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus)
|
||||
|
||||
#include <ostream> // std::ostream
|
||||
|
||||
inline std::ostream& operator<< (std::ostream &os, const VAR_TYPE& vt)
|
||||
{
|
||||
switch(vt)
|
||||
{
|
||||
case TT_EMPTY:
|
||||
os << "TT_EMPTY";
|
||||
break;
|
||||
case TT_ERROR:
|
||||
os << "TT_ERROR";
|
||||
break;
|
||||
case TT_LONG:
|
||||
os << "TT_LONG";
|
||||
break;
|
||||
case TT_DOUBLE:
|
||||
os << "TT_DOUBLE";
|
||||
break;
|
||||
case TT_STRING:
|
||||
os << "TT_STRING";
|
||||
break;
|
||||
default:
|
||||
os << (int)vt;
|
||||
break;
|
||||
}
|
||||
return os;
|
||||
}
|
||||
|
||||
inline std::ostream& operator<< (std::ostream &os, const VRESULT& vr)
|
||||
{
|
||||
switch(vr)
|
||||
{
|
||||
case VR_OK:
|
||||
os << "VR_OK";
|
||||
break;
|
||||
case VR_OUTOFMEMORY:
|
||||
os << "VR_OUTOFMEMORY";
|
||||
break;
|
||||
case VR_BADVARTYPE:
|
||||
os << "VR_BADVARTYPE";
|
||||
break;
|
||||
case VR_INVALIDARG:
|
||||
os << "VR_INVALIDARG";
|
||||
break;
|
||||
case VR_INVALIDROW:
|
||||
os << "VR_INVALIDROW";
|
||||
break;
|
||||
case VR_INVALIDCOL:
|
||||
os << "VR_INVALIDCOL";
|
||||
break;
|
||||
default:
|
||||
os << (int)vr;
|
||||
break;
|
||||
}
|
||||
return os;
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* __VAR_H_INC */
|
||||
Loading…
x
Reference in New Issue
Block a user