mirror of
https://git.gfz-potsdam.de/naaice/iphreeqc.git
synced 2025-12-15 16:18:22 +01:00
working on configure script and testing on linux
git-svn-id: svn://136.177.114.72/svn_GW/IPhreeqc/trunk@4271 1feff8c3-07ed-0310-ac33-dd36852eb9cd
This commit is contained in:
parent
37bc8baffb
commit
4793b2a682
24
configure.ac
24
configure.ac
@ -1,8 +1,12 @@
|
|||||||
# Prelude.
|
# -*- Autoconf -*-
|
||||||
|
# Process this file with autoconf to produce a configure script.
|
||||||
|
|
||||||
|
AC_PREREQ([2.64])
|
||||||
AC_INIT([IPhreeqc], [1.0], [charlton@usgs.gov])
|
AC_INIT([IPhreeqc], [1.0], [charlton@usgs.gov])
|
||||||
AC_CONFIG_AUX_DIR([config])
|
AC_CONFIG_AUX_DIR([config])
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
|
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
|
||||||
|
AC_CONFIG_SRCDIR([src/IPhreeqc.cpp])
|
||||||
|
|
||||||
# Checks for programs.
|
# Checks for programs.
|
||||||
AC_PROG_CXX
|
AC_PROG_CXX
|
||||||
@ -17,9 +21,12 @@ AC_ARG_ENABLE([fortran],
|
|||||||
|
|
||||||
if test "X$IPQ_FORTRAN" = "Xyes"; then
|
if test "X$IPQ_FORTRAN" = "Xyes"; then
|
||||||
echo "yes"
|
echo "yes"
|
||||||
AC_PROG_F77
|
AC_PROG_FC
|
||||||
AC_F77_LIBRARY_LDFLAGS
|
AC_FC_LIBRARY_LDFLAGS
|
||||||
AC_F77_WRAPPERS
|
AC_FC_WRAPPERS
|
||||||
|
AC_FC_MAIN
|
||||||
|
AC_SUBST(F77, $FC)
|
||||||
|
AC_SUBST(FFLAGS, $FCFLAGS)
|
||||||
else
|
else
|
||||||
echo "no"
|
echo "no"
|
||||||
fi
|
fi
|
||||||
@ -29,7 +36,14 @@ AM_CONDITIONAL([BUILD_FORTRAN], [test "X$IPQ_FORTRAN" = "Xyes"])
|
|||||||
AC_DISABLE_SHARED
|
AC_DISABLE_SHARED
|
||||||
AC_PROG_LIBTOOL
|
AC_PROG_LIBTOOL
|
||||||
|
|
||||||
# Output files.
|
# Checks for libraries.
|
||||||
|
|
||||||
|
# Checks for header files.
|
||||||
|
|
||||||
|
# Checks for typedefs, structures, and compiler characteristics.
|
||||||
|
|
||||||
|
# Checks for library functions.
|
||||||
|
|
||||||
AC_CONFIG_FILES([Makefile src/Makefile test/Makefile testcpp/Makefile])
|
AC_CONFIG_FILES([Makefile src/Makefile test/Makefile testcpp/Makefile])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
||||||
|
|||||||
@ -59,7 +59,7 @@ C
|
|||||||
INTEGER LoadDatabase
|
INTEGER LoadDatabase
|
||||||
INTEGER LoadDatabaseString
|
INTEGER LoadDatabaseString
|
||||||
C INTEGER OutputLastError
|
C INTEGER OutputLastError
|
||||||
INTEGER OutputLastWarning
|
C INTEGER OutputLastWarning
|
||||||
INTEGER OutputLines
|
INTEGER OutputLines
|
||||||
INTEGER RunAccumulated
|
INTEGER RunAccumulated
|
||||||
INTEGER RunFile
|
INTEGER RunFile
|
||||||
|
|||||||
@ -91,50 +91,56 @@
|
|||||||
|
|
||||||
|
|
||||||
INTERFACE
|
INTERFACE
|
||||||
SUBROUTINE SetSelectedOutputOn(ID,SEL_ON)
|
FUNCTION SetSelectedOutputOn(ID,SEL_ON)
|
||||||
INTEGER(KIND=4) :: ID
|
INTEGER(KIND=4) :: ID
|
||||||
LOGICAL(KIND=4) :: SEL_ON
|
LOGICAL(KIND=4) :: SEL_ON
|
||||||
END SUBROUTINE SetSelectedOutputOn
|
INTEGER(KIND=4) :: SetSelectedOutputOn
|
||||||
|
END FUNCTION SetSelectedOutputOn
|
||||||
END INTERFACE
|
END INTERFACE
|
||||||
|
|
||||||
|
|
||||||
INTERFACE
|
INTERFACE
|
||||||
SUBROUTINE SetOutputOn(ID,OUT_ON)
|
FUNCTION SetOutputOn(ID,OUT_ON)
|
||||||
INTEGER(KIND=4) :: ID
|
INTEGER(KIND=4) :: ID
|
||||||
LOGICAL(KIND=4) :: OUT_ON
|
LOGICAL(KIND=4) :: OUT_ON
|
||||||
END SUBROUTINE SetOutputOn
|
INTEGER(KIND=4) :: SetOutputOn
|
||||||
|
END FUNCTION SetOutputOn
|
||||||
END INTERFACE
|
END INTERFACE
|
||||||
|
|
||||||
|
|
||||||
INTERFACE
|
INTERFACE
|
||||||
SUBROUTINE SetErrorOn(ID,ERR_ON)
|
FUNCTION SetErrorOn(ID,ERR_ON)
|
||||||
INTEGER(KIND=4) :: ID
|
INTEGER(KIND=4) :: ID
|
||||||
LOGICAL(KIND=4) :: ERR_ON
|
LOGICAL(KIND=4) :: ERR_ON
|
||||||
END SUBROUTINE SetErrorOn
|
INTEGER(KIND=4) :: SetErrorOn
|
||||||
|
END FUNCTION SetErrorOn
|
||||||
END INTERFACE
|
END INTERFACE
|
||||||
|
|
||||||
|
|
||||||
INTERFACE
|
INTERFACE
|
||||||
SUBROUTINE SetLogOn(ID,LOG_ON)
|
FUNCTION SetLogOn(ID,LOG_ON)
|
||||||
INTEGER(KIND=4) :: ID
|
INTEGER(KIND=4) :: ID
|
||||||
LOGICAL(KIND=4) :: LOG_ON
|
LOGICAL(KIND=4) :: LOG_ON
|
||||||
END SUBROUTINE SetLogOn
|
INTEGER(KIND=4) :: SetLogOn
|
||||||
|
END FUNCTION SetLogOn
|
||||||
END INTERFACE
|
END INTERFACE
|
||||||
|
|
||||||
|
|
||||||
INTERFACE
|
INTERFACE
|
||||||
SUBROUTINE SetDumpOn(ID,DUMP_ON)
|
FUNCTION SetDumpOn(ID,DUMP_ON)
|
||||||
INTEGER(KIND=4) :: ID
|
INTEGER(KIND=4) :: ID
|
||||||
LOGICAL(KIND=4) :: DUMP_ON
|
LOGICAL(KIND=4) :: DUMP_ON
|
||||||
END SUBROUTINE SetDumpOn
|
INTEGER(KIND=4) :: SetDumpOn
|
||||||
|
END FUNCTION SetDumpOn
|
||||||
END INTERFACE
|
END INTERFACE
|
||||||
|
|
||||||
|
|
||||||
INTERFACE
|
INTERFACE
|
||||||
SUBROUTINE SetDumpStringOn(ID,DUMP_STRING_ON)
|
FUNCTION SetDumpStringOn(ID,DUMP_STRING_ON)
|
||||||
INTEGER(KIND=4) :: ID
|
INTEGER(KIND=4) :: ID
|
||||||
LOGICAL(KIND=4) :: DUMP_STRING_ON
|
LOGICAL(KIND=4) :: DUMP_STRING_ON
|
||||||
END SUBROUTINE SetDumpStringOn
|
INTEGER(KIND=4) :: SetDumpStringOn
|
||||||
|
END FUNCTION SetDumpStringOn
|
||||||
END INTERFACE
|
END INTERFACE
|
||||||
|
|
||||||
|
|
||||||
@ -234,9 +240,10 @@
|
|||||||
|
|
||||||
|
|
||||||
INTERFACE
|
INTERFACE
|
||||||
SUBROUTINE GetComponent(ID,N,COMP)
|
FUNCTION GetComponent(ID,N,COMP)
|
||||||
INTEGER(KIND=4) :: ID
|
INTEGER(KIND=4) :: ID
|
||||||
INTEGER(KIND=4) :: N
|
INTEGER(KIND=4) :: N
|
||||||
CHARACTER(LEN=*) :: COMP
|
CHARACTER(LEN=*) :: COMP
|
||||||
END SUBROUTINE
|
INTEGER(KIND=4) :: GetComponent
|
||||||
|
END FUNCTION GetComponent
|
||||||
END INTERFACE
|
END INTERFACE
|
||||||
|
|||||||
@ -40,14 +40,17 @@
|
|||||||
UnLoadDatabase = UnLoadDatabaseF(ID)
|
UnLoadDatabase = UnLoadDatabaseF(ID)
|
||||||
END FUNCTION UnLoadDatabase
|
END FUNCTION UnLoadDatabase
|
||||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
SUBROUTINE OutputLastError
|
SUBROUTINE OutputLastError(ID)
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
CALL OutputLastErrorF
|
INTEGER :: ID
|
||||||
|
WRITE(*,*) "fortran OutputLastError ID = ", ID
|
||||||
|
CALL OutputLastErrorF(ID)
|
||||||
END SUBROUTINE OutputLastError
|
END SUBROUTINE OutputLastError
|
||||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
SUBROUTINE OutputLastWarning
|
SUBROUTINE OutputLastWarning(ID)
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
CALL OutputLastWarningF
|
INTEGER :: ID
|
||||||
|
CALL OutputLastWarningF(ID)
|
||||||
END SUBROUTINE OutputLastWarning
|
END SUBROUTINE OutputLastWarning
|
||||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
FUNCTION AccumulateLine(ID,LINE)
|
FUNCTION AccumulateLine(ID,LINE)
|
||||||
@ -18,18 +18,25 @@ private:
|
|||||||
int
|
int
|
||||||
CreateIPhreeqc(void)
|
CreateIPhreeqc(void)
|
||||||
{
|
{
|
||||||
return IPhreeqcLib::CreateIPhreeqc();
|
// return IPhreeqcLib::CreateIPhreeqc();
|
||||||
|
int i = IPhreeqcLib::CreateIPhreeqc();
|
||||||
|
std::cout << "CreateIPhreeqc " << i << "\n";
|
||||||
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
IPQ_RESULT
|
IPQ_RESULT
|
||||||
DestroyIPhreeqc(int id)
|
DestroyIPhreeqc(int id)
|
||||||
{
|
{
|
||||||
return IPhreeqcLib::DestroyIPhreeqc(id);
|
// return IPhreeqcLib::DestroyIPhreeqc(id);
|
||||||
|
IPQ_RESULT i = IPhreeqcLib::DestroyIPhreeqc(id);
|
||||||
|
std::cout << "DestroyIPhreeqc( " << id << ") = " << i << "\n";
|
||||||
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
LoadDatabase(int id, const char* filename)
|
LoadDatabase(int id, const char* filename)
|
||||||
{
|
{
|
||||||
|
std::cout << "In LoadDatabase id = " << id << "\n";
|
||||||
IPhreeqc* IPhreeqcPtr = IPhreeqcLib::GetInstance(id);
|
IPhreeqc* IPhreeqcPtr = IPhreeqcLib::GetInstance(id);
|
||||||
if (IPhreeqcPtr)
|
if (IPhreeqcPtr)
|
||||||
{
|
{
|
||||||
@ -65,6 +72,7 @@ void
|
|||||||
OutputLastError(int id)
|
OutputLastError(int id)
|
||||||
{
|
{
|
||||||
static const char err_msg[] = "OutputLastError: Bad instance.\n";
|
static const char err_msg[] = "OutputLastError: Bad instance.\n";
|
||||||
|
std::cout << "In OutputLastError id = " << id << "\n";
|
||||||
IPhreeqc* IPhreeqcPtr = IPhreeqcLib::GetInstance(id);
|
IPhreeqc* IPhreeqcPtr = IPhreeqcLib::GetInstance(id);
|
||||||
if (IPhreeqcPtr)
|
if (IPhreeqcPtr)
|
||||||
{
|
{
|
||||||
@ -134,7 +142,7 @@ GetDumpLineCount(int id)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char*
|
const char*
|
||||||
GetDumpLine(int id, int n)
|
GetDumpLine(int id, int n)
|
||||||
{
|
{
|
||||||
static const char err_msg[] = "GetDumpLine: Bad instance.\n";
|
static const char err_msg[] = "GetDumpLine: Bad instance.\n";
|
||||||
|
|||||||
@ -148,11 +148,11 @@ include_HEADERS=\
|
|||||||
if BUILD_FORTRAN
|
if BUILD_FORTRAN
|
||||||
|
|
||||||
libiphreeqc_la_SOURCES+=\
|
libiphreeqc_la_SOURCES+=\
|
||||||
fwrap.cpp\
|
|
||||||
fwrap.h\
|
fwrap.h\
|
||||||
|
fwrap.cpp\
|
||||||
fwrap2.cpp\
|
fwrap2.cpp\
|
||||||
fwrap3.cpp\
|
fwrap3.cpp\
|
||||||
IPhreeqcF.F
|
IPhreeqcF.f
|
||||||
|
|
||||||
include_HEADERS+=\
|
include_HEADERS+=\
|
||||||
$(top_srcdir)/include/IPhreeqc.f90.inc\
|
$(top_srcdir)/include/IPhreeqc.f90.inc\
|
||||||
|
|||||||
62
src/fwrap.h
62
src/fwrap.h
@ -7,37 +7,37 @@
|
|||||||
#define DLL_EXPORT
|
#define DLL_EXPORT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(F77_FUNC)
|
#if defined(FC_FUNC)
|
||||||
#define CreateIPhreeqcF F77_FUNC (createiphreeqcf, CREATEIPHREEQCF)
|
#define CreateIPhreeqcF FC_FUNC (createiphreeqcf, CREATEIPHREEQCF)
|
||||||
#define DestroyIPhreeqcF F77_FUNC (destroyiphreeqcf, DESTROYIPHREEQCF)
|
#define DestroyIPhreeqcF FC_FUNC (destroyiphreeqcf, DESTROYIPHREEQCF)
|
||||||
#define LoadDatabaseF F77_FUNC (loaddatabasef, LOADDATABASEF)
|
#define LoadDatabaseF FC_FUNC (loaddatabasef, LOADDATABASEF)
|
||||||
#define LoadDatabaseStringF F77_FUNC (loaddatabasestringf, LOADDATABASESTRINGF)
|
#define LoadDatabaseStringF FC_FUNC (loaddatabasestringf, LOADDATABASESTRINGF)
|
||||||
#define UnLoadDatabaseF F77_FUNC (unloaddatabasef, UNLOADDATABASEF)
|
#define UnLoadDatabaseF FC_FUNC (unloaddatabasef, UNLOADDATABASEF)
|
||||||
#define AccumulateLineF F77_FUNC (accumulatelinef, ACCUMULATELINEF)
|
#define AccumulateLineF FC_FUNC (accumulatelinef, ACCUMULATELINEF)
|
||||||
#define RunAccumulatedF F77_FUNC (runaccumulatedf, RUNACCUMULATEDF)
|
#define RunAccumulatedF FC_FUNC (runaccumulatedf, RUNACCUMULATEDF)
|
||||||
#define RunFileF F77_FUNC (runfilef, RUNFILEF)
|
#define RunFileF FC_FUNC (runfilef, RUNFILEF)
|
||||||
#define RunStringF F77_FUNC (runstringf, RUNSTRINGF)
|
#define RunStringF FC_FUNC (runstringf, RUNSTRINGF)
|
||||||
#define GetSelectedOutputRowCountF F77_FUNC (getselectedoutputrowcountf, GETSELECTEDOUTPUTROWCOUNTF)
|
#define GetSelectedOutputRowCountF FC_FUNC (getselectedoutputrowcountf, GETSELECTEDOUTPUTROWCOUNTF)
|
||||||
#define GetSelectedOutputColumnCountF F77_FUNC (getselectedoutputcolumncountf, GETSELECTEDOUTPUTCOLUMNCOUNTF)
|
#define GetSelectedOutputColumnCountF FC_FUNC (getselectedoutputcolumncountf, GETSELECTEDOUTPUTCOLUMNCOUNTF)
|
||||||
#define GetSelectedOutputValueF F77_FUNC (getselectedoutputvaluef, GETSELECTEDOUTPUTVALUEF)
|
#define GetSelectedOutputValueF FC_FUNC (getselectedoutputvaluef, GETSELECTEDOUTPUTVALUEF)
|
||||||
#define SetSelectedOutputOnF F77_FUNC (setselectedoutputonf, SETSELECTEDOUTPUTONF)
|
#define SetSelectedOutputOnF FC_FUNC (setselectedoutputonf, SETSELECTEDOUTPUTONF)
|
||||||
#define SetOutputOnF F77_FUNC (setoutputonf, SETOUTPUTONF)
|
#define SetOutputOnF FC_FUNC (setoutputonf, SETOUTPUTONF)
|
||||||
#define SetErrorOnF F77_FUNC (seterroronf, SETERRORONF)
|
#define SetErrorOnF FC_FUNC (seterroronf, SETERRORONF)
|
||||||
#define SetLogOnF F77_FUNC (setlogonf, SETLOGONF)
|
#define SetLogOnF FC_FUNC (setlogonf, SETLOGONF)
|
||||||
#define SetDumpOnF F77_FUNC (setdumponf, SETDUMPONF)
|
#define SetDumpOnF FC_FUNC (setdumponf, SETDUMPONF)
|
||||||
#define SetDumpStringOnF F77_FUNC (setdumpstringonf, SETDUMPSTRINGONF)
|
#define SetDumpStringOnF FC_FUNC (setdumpstringonf, SETDUMPSTRINGONF)
|
||||||
#define GetDumpLineCountF F77_FUNC (getdumplinecountf, GETDUMPLINECOUNTF)
|
#define GetDumpLineCountF FC_FUNC (getdumplinecountf, GETDUMPLINECOUNTF)
|
||||||
#define GetDumpLineF F77_FUNC (getdumplinef, GETDUMPLINEF)
|
#define GetDumpLineF FC_FUNC (getdumplinef, GETDUMPLINEF)
|
||||||
#define GetErrorLineCountF F77_FUNC (geterrorlinecountf, GETERRORLINECOUNTF)
|
#define GetErrorLineCountF FC_FUNC (geterrorlinecountf, GETERRORLINECOUNTF)
|
||||||
#define GetErrorLineF F77_FUNC (geterrorlinef, GETERRORLINEF)
|
#define GetErrorLineF FC_FUNC (geterrorlinef, GETERRORLINEF)
|
||||||
#define GetWarningLineCountF F77_FUNC (getwarninglinecountf, GETWARNINGLINECOUNTF)
|
#define GetWarningLineCountF FC_FUNC (getwarninglinecountf, GETWARNINGLINECOUNTF)
|
||||||
#define GetWarningLineF F77_FUNC (getwarninglinef, GETWARNINGLINEF)
|
#define GetWarningLineF FC_FUNC (getwarninglinef, GETWARNINGLINEF)
|
||||||
#define GetComponentCountF F77_FUNC (getcomponentcountf, GETCOMPONENTCOUNTF)
|
#define GetComponentCountF FC_FUNC (getcomponentcountf, GETCOMPONENTCOUNTF)
|
||||||
#define GetComponentF F77_FUNC (getcomponentf, GETCOMPONENTF)
|
#define GetComponentF FC_FUNC (getcomponentf, GETCOMPONENTF)
|
||||||
#define OutputLastErrorF F77_FUNC (outputlasterrorf, OUTPUTLASTERRORF)
|
#define OutputLastErrorF FC_FUNC (outputlasterrorf, OUTPUTLASTERRORF)
|
||||||
#define OutputLastWarningF F77_FUNC (outputlastwarningf, OUTPUTLASTWARNINGF)
|
#define OutputLastWarningF FC_FUNC (outputlastwarningf, OUTPUTLASTWARNINGF)
|
||||||
#define OutputLinesF F77_FUNC (outputlinesf, OUTPUTLINESF)
|
#define OutputLinesF FC_FUNC (outputlinesf, OUTPUTLINESF)
|
||||||
#endif /* F77_FUNC */
|
#endif /* FC_FUNC */
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
#if defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
EXTRA_DIST = phreeqc.dat llnl.dat
|
EXTRA_DIST = phreeqc.dat llnl.dat
|
||||||
|
AM_FCFLAGS = -I$(top_srcdir)/include
|
||||||
AM_FFLAGS = -I$(top_srcdir)/include
|
AM_FFLAGS = -I$(top_srcdir)/include
|
||||||
|
|
||||||
noinst_PROGRAMS = kinn
|
noinst_PROGRAMS = kinn
|
||||||
kinn_SOURCES = kinn.f dummy.cxx
|
kinn_SOURCES = kinn.f main.cxx
|
||||||
kinn_LDADD = ../src/libiphreeqc.la $(FLIBS)
|
kinn_LDADD = $(top_builddir)/src/libiphreeqc.la $(FCLIBS)
|
||||||
|
|||||||
58
test/kinn.f
58
test/kinn.f
@ -1,5 +1,6 @@
|
|||||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
PROGRAM DRIVER
|
C PROGRAM DRIVER
|
||||||
|
SUBROUTINE F_MAIN
|
||||||
|
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
INCLUDE 'IPhreeqc.f.inc'
|
INCLUDE 'IPhreeqc.f.inc'
|
||||||
@ -10,18 +11,22 @@
|
|||||||
CHARACTER(30) comp
|
CHARACTER(30) comp
|
||||||
INTEGER n
|
INTEGER n
|
||||||
INTEGER len
|
INTEGER len
|
||||||
INTEGER id
|
INTEGER(KIND=4) id
|
||||||
REAL*8 dvalue
|
REAL*8 dvalue
|
||||||
|
|
||||||
id = CreateIPhreeqc()
|
id = CreateIPhreeqc()
|
||||||
|
write (*,*) "id = ", id
|
||||||
IF (id.LT.0) THEN
|
IF (id.LT.0) THEN
|
||||||
CALL OutputLastError(id)
|
CALL OutputLastError(id)
|
||||||
STOP
|
STOP
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
write (*,*) "id = ", id
|
||||||
iresult = LoadDatabase(id, 'llnl.dat')
|
iresult = LoadDatabase(id, 'llnl.dat')
|
||||||
|
write (*,*) "id = ", id
|
||||||
|
|
||||||
IF (iresult.NE.0) THEN
|
IF (iresult.NE.0) THEN
|
||||||
|
write (*,*) "id = ", id
|
||||||
CALL OutputLastError(id)
|
CALL OutputLastError(id)
|
||||||
STOP
|
STOP
|
||||||
ENDIF
|
ENDIF
|
||||||
@ -103,7 +108,8 @@
|
|||||||
|
|
||||||
50 FORMAT(A15,A,$)
|
50 FORMAT(A15,A,$)
|
||||||
60 FORMAT(1PG15.7E2,A,$)
|
60 FORMAT(1PG15.7E2,A,$)
|
||||||
END PROGRAM DRIVER
|
C END PROGRAM DRIVER
|
||||||
|
END SUBROUTINE F_MAIN
|
||||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
SUBROUTINE SOLUTION(id, C, Ca, Na)
|
SUBROUTINE SOLUTION(id, C, Ca, Na)
|
||||||
INCLUDE 'IPhreeqc.f90.inc'
|
INCLUDE 'IPhreeqc.f90.inc'
|
||||||
@ -111,13 +117,13 @@
|
|||||||
INTEGER err
|
INTEGER err
|
||||||
REAL C, Ca, Na
|
REAL C, Ca, Na
|
||||||
CHARACTER(80) line
|
CHARACTER(80) line
|
||||||
WRITE (line,100),'SOLUTION 1'
|
WRITE (line,100) 'SOLUTION 1'
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
WRITE (line,110),'C ', C
|
WRITE (line,110) 'C ', C
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
WRITE (line,110),'Ca ', Ca
|
WRITE (line,110) 'Ca ', Ca
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
WRITE (line,110),'Na ', Na
|
WRITE (line,110) 'Na ', Na
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
100 FORMAT(A)
|
100 FORMAT(A)
|
||||||
110 FORMAT(TR4,A,F8.4)
|
110 FORMAT(TR4,A,F8.4)
|
||||||
@ -130,9 +136,9 @@
|
|||||||
REAL si, amount
|
REAL si, amount
|
||||||
CHARACTER*(*) phase
|
CHARACTER*(*) phase
|
||||||
CHARACTER(80) line
|
CHARACTER(80) line
|
||||||
WRITE (line,'(A)'),'EQUILIBRIUM_PHASES'
|
WRITE (line,'(A)') 'EQUILIBRIUM_PHASES'
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
WRITE (line,'(TR4, A, F8.4, F8.4)'), phase, si, amount
|
WRITE (line,'(TR4, A, F8.4, F8.4)') phase, si, amount
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
END SUBROUTINE EQUILIBRIUM_PHASES
|
END SUBROUTINE EQUILIBRIUM_PHASES
|
||||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
@ -146,37 +152,37 @@
|
|||||||
CHARACTER(800) line
|
CHARACTER(800) line
|
||||||
CHARACTER(80) form
|
CHARACTER(80) form
|
||||||
CHARACTER(30) heading(20)
|
CHARACTER(30) heading(20)
|
||||||
WRITE (line,200),'USER_PUNCH'
|
WRITE (line,200) 'USER_PUNCH'
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
DO i = 1,max
|
DO i = 1,max
|
||||||
WRITE (heading(i), 210),
|
WRITE (heading(i), 210)
|
||||||
& i, '.name ',
|
& i, '.name ',
|
||||||
& i, '.type ',
|
& i, '.type ',
|
||||||
& i, '.moles '
|
& i, '.moles '
|
||||||
END DO
|
END DO
|
||||||
WRITE (line, *), '-head ', (heading(i), i=1,max)
|
WRITE (line, *) '-head ', (heading(i), i=1,max)
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
WRITE (line, 200), '-start'
|
WRITE (line, 200) '-start'
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
WRITE (line, 220), '10 n = sys("'
|
WRITE (line, 220) '10 n = sys("'
|
||||||
& , element, '", count, names$, types$, moles)'
|
& , element, '", count, names$, types$, moles)'
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
WRITE (line, 230), '20 n = ', max
|
WRITE (line, 230) '20 n = ', max
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
WRITE (line, 240), '30 if count < ', max
|
WRITE (line, 240) '30 if count < ', max
|
||||||
& , ' then n = count'
|
& , ' then n = count'
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
WRITE (line, 200), '40 for i = 1 to count'
|
WRITE (line, 200) '40 for i = 1 to count'
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
WRITE (line, 200), '50 PUNCH names$(i), types$(i), moles(i)'
|
WRITE (line, 200) '50 PUNCH names$(i), types$(i), moles(i)'
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
WRITE (line, 200), '60 next i'
|
WRITE (line, 200) '60 next i'
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
WRITE (line, 200), '70 list'
|
WRITE (line, 200) '70 list'
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
WRITE (line, 200), '-end'
|
WRITE (line, 200) '-end'
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
WRITE (line, 200), 'SELECTED_OUTPUT'
|
WRITE (line, 200) 'SELECTED_OUTPUT'
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
!!! WRITE (line, 200), '-file srctest.txt'
|
!!! WRITE (line, 200), '-file srctest.txt'
|
||||||
!!! CALL AccumulateLine(line)
|
!!! CALL AccumulateLine(line)
|
||||||
@ -193,13 +199,13 @@
|
|||||||
INTEGER err
|
INTEGER err
|
||||||
CHARACTER(80) line
|
CHARACTER(80) line
|
||||||
INTEGER i
|
INTEGER i
|
||||||
WRITE (line,500),'PHASES'
|
WRITE (line,500) 'PHASES'
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
WRITE (line,510),'Fix_H+'
|
WRITE (line,510) 'Fix_H+'
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
WRITE (line,510),'H+ = H+'
|
WRITE (line,510) 'H+ = H+'
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
WRITE (line,510),'log_k 0.0'
|
WRITE (line,510) 'log_k 0.0'
|
||||||
err = AccumulateLine(id, line)
|
err = AccumulateLine(id, line)
|
||||||
500 FORMAT(A)
|
500 FORMAT(A)
|
||||||
510 FORMAT(TR4,A)
|
510 FORMAT(TR4,A)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user