iphreeqc/tests/test_f90.f90
Scott R Charlton cec9449f9c updated tests
git-svn-id: svn://136.177.114.72/svn_GW/IPhreeqc/trunk@4368 1feff8c3-07ed-0310-ac33-dd36852eb9cd
2010-05-11 03:45:10 +00:00

141 lines
2.7 KiB
Fortran

FUNCTION F_MAIN()
IMPLICIT NONE
INCLUDE 'IPhreeqc.f90.inc'
INTEGER(KIND=4) id
INTEGER(KIND=4) r
INTEGER(KIND=4) c
INTEGER(KIND=4) t
REAL(KIND=8) d
CHARACTER(LEN=80) s
INTEGER(KIND=4) F_MAIN
INTEGER(KIND=4) TestGetSet
INTEGER(KIND=4),PARAMETER :: EXIT_SUCCESS = 0
INTEGER(KIND=4),PARAMETER :: EXIT_FAILURE = 1
id = CreateIPhreeqc()
IF (id.LT.0) THEN
F_MAIN = EXIT_FAILURE
RETURN
ENDIF
! Dump
IF (TestGetSet(id,GetDumpOn,SetDumpOn).NE.0) THEN
F_MAIN = EXIT_FAILURE
RETURN
ENDIF
! Dump string
IF (TestGetSet(id,GetDumpStringOn,SetDumpStringOn).NE.0) THEN
F_MAIN = EXIT_FAILURE
RETURN
ENDIF
! Error
IF (TestGetSet(id,GetErrorOn,SetErrorOn).NE.0) THEN
F_MAIN = EXIT_FAILURE
RETURN
ENDIF
! Log
IF (TestGetSet(id,GetLogOn,SetLogOn).NE.0) THEN
F_MAIN = EXIT_FAILURE
RETURN
ENDIF
! Output
IF (TestGetSet(id,GetOutputOn,SetOutputOn).NE.0) THEN
F_MAIN = EXIT_FAILURE
RETURN
ENDIF
! Selected output
IF (TestGetSet(id,GetSelectedOutputOn,SetSelectedOutputOn).NE.0) THEN
F_MAIN = EXIT_FAILURE
RETURN
ENDIF
IF (LoadDatabase(id, "phreeqc.dat").NE.0) THEN
CALL OutputError(id)
F_MAIN = EXIT_FAILURE
RETURN
ENDIF
IF (RunFile(id, "ex2").NE.0) THEN
CALL OutputError(id)
F_MAIN = EXIT_FAILURE
RETURN
ENDIF
DO r=1,GetSelectedOutputRowCount(id)
DO c=1,GetSelectedOutputColumnCount(id)
IF (GetSelectedOutputValue(id,r,c,t,d,s).EQ.IPQ_OK) THEN
F_MAIN = EXIT_FAILURE
RETURN
ENDIF
ENDDO
ENDDO
IF (DestroyIPhreeqc(id).NE.0) THEN
CALL OutputError(id)
F_MAIN = EXIT_FAILURE
RETURN
ENDIF
F_MAIN = EXIT_SUCCESS
RETURN
END FUNCTION F_MAIN
FUNCTION TestGetSet(id,getFunc,setFunc)
IMPLICIT NONE
INCLUDE 'IPhreeqc.f90.inc'
INTEGER(KIND=4) id
INTEGER(KIND=4) TESTGETSET
INTERFACE
FUNCTION getFunc(id)
INTEGER(KIND=4) id
LOGICAL(KIND=4) getFunc
END FUNCTION getFunc
END INTERFACE
INTERFACE
FUNCTION setFunc(id,flag)
INTEGER(KIND=4) id
LOGICAL(KIND=4) flag
INTEGER(KIND=4) setFunc
END FUNCTION setFunc
END INTERFACE
INTEGER(KIND=4),PARAMETER :: EXIT_SUCCESS = 0
INTEGER(KIND=4),PARAMETER :: EXIT_FAILURE = 1
IF (getFunc(id)) THEN
TestGetSet = EXIT_FAILURE
RETURN
ENDIF
IF (setFunc(id,.TRUE.).NE.IPQ_OK) THEN
TestGetSet = EXIT_FAILURE
RETURN
ENDIF
IF (.NOT.getFunc(id)) THEN
TestGetSet = EXIT_FAILURE
RETURN
ENDIF
IF (setFunc(id,.FALSE.).NE.IPQ_OK) THEN
TestGetSet = EXIT_FAILURE
RETURN
ENDIF
TestGetSet = EXIT_SUCCESS
RETURN
END FUNCTION TestGetSet