iphreeqc/IPhreeqcF.F
Scott R Charlton e180be69b0 Rearranging IPhreeqc
git-svn-id: svn://136.177.114.72/svn_GW/IPhreeqc/trunk@4106 1feff8c3-07ed-0310-ac33-dd36852eb9cd
2010-02-23 05:04:35 +00:00

195 lines
7.2 KiB
Fortran

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
FUNCTION LoadDatabase(FILENAME)
IMPLICIT NONE
CHARACTER(LEN=*) :: FILENAME
INTEGER :: LoadDatabase
#if defined(_WIN32)
INTERFACE
FUNCTION LoadDatabaseF(FILENAME)
!DEC$ ATTRIBUTES C,REFERENCE::LoadDatabaseF
!DEC$ ATTRIBUTES ALIAS:'_LoadDatabaseF'::LoadDatabaseF
CHARACTER(LEN=*) :: FILENAME
INTEGER(KIND=4) :: LoadDatabaseF
END FUNCTION LoadDatabaseF
END INTERFACE
#else
INTEGER :: LoadDatabaseF
#endif
LoadDatabase = LoadDatabaseF(FILENAME)
END FUNCTION LoadDatabase
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
SUBROUTINE OutputLastError
IMPLICIT NONE
#if defined(_WIN32)
INTERFACE
SUBROUTINE OutputLastErrorF
!DEC$ ATTRIBUTES C,REFERENCE::OutputLastErrorF
!DEC$ ATTRIBUTES ALIAS:'_OutputLastError'::OutputLastErrorF
END SUBROUTINE OutputLastErrorF
END INTERFACE
#endif
CALL OutputLastErrorF
END SUBROUTINE OutputLastError
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
FUNCTION AccumulateLine(LINE)
IMPLICIT NONE
CHARACTER(LEN=*) :: LINE
INTEGER :: AccumulateLine
#if defined(_WIN32)
INTERFACE
FUNCTION AccumulateLineF(LINE)
!DEC$ ATTRIBUTES C,REFERENCE::AccumulateLineF
!DEC$ ATTRIBUTES ALIAS:'_AccumulateLineF'::AccumulateLineF
CHARACTER(LEN=*) :: LINE
INTEGER(KIND=4) :: AccumulateLineF
END FUNCTION AccumulateLineF
END INTERFACE
#else
INTEGER :: AccumulateLineF
#endif
AccumulateLine = AccumulateLineF(LINE)
END FUNCTION AccumulateLine
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
FUNCTION Run(OUTPUT_ON, ERROR_ON, LOG_ON, SELECTED_ON)
IMPLICIT NONE
LOGICAL :: OUTPUT_ON
LOGICAL :: ERROR_ON
LOGICAL :: LOG_ON
LOGICAL :: SELECTED_ON
INTEGER :: Run
#if defined(_WIN32)
INTERFACE
FUNCTION RunF(OUTPUT_ON, ERROR_ON, LOG_ON, SELECTED_ON)
!DEC$ ATTRIBUTES C,REFERENCE::RunF
!DEC$ ATTRIBUTES ALIAS:'_RunF'::RunF
LOGICAL(KIND=4) :: OUTPUT_ON
LOGICAL(KIND=4) :: ERROR_ON
LOGICAL(KIND=4) :: LOG_ON
LOGICAL(KIND=4) :: SELECTED_ON
INTEGER(KIND=4) :: RunF
END FUNCTION RunF
END INTERFACE
#else
INTEGER :: RunF
#endif
Run = RunF(OUTPUT_ON, ERROR_ON, LOG_ON, SELECTED_ON)
END FUNCTION Run
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
FUNCTION RunFile(FILENAME,OUTPUT_ON,ERROR_ON,LOG_ON,SELECTED_ON)
IMPLICIT NONE
CHARACTER(LEN=*) :: FILENAME
LOGICAL :: OUTPUT_ON
LOGICAL :: ERROR_ON
LOGICAL :: LOG_ON
LOGICAL :: SELECTED_ON
INTEGER :: RunFile
#if defined(_WIN32)
INTERFACE
FUNCTION RunFileF(OUT_ON, ERR_ON, LOG_ON, SEL_ON, FILE)
!DEC$ ATTRIBUTES C,REFERENCE::RunFileF
!DEC$ ATTRIBUTES ALIAS:'_RunFileF'::RunFileF
LOGICAL(KIND=4) :: OUT_ON
LOGICAL(KIND=4) :: ERR_ON
LOGICAL(KIND=4) :: LOG_ON
LOGICAL(KIND=4) :: SEL_ON
CHARACTER(LEN=*) :: FILE
INTEGER(KIND=4) :: RunFileF
END FUNCTION RunFileF
END INTERFACE
#else
INTEGER :: RunFileF
#endif
RunFile = RunFileF(OUTPUT_ON, ERROR_ON, LOG_ON,
& SELECTED_ON, FILENAME)
END FUNCTION RunFile
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
SUBROUTINE OutputLines
IMPLICIT NONE
#if defined(_WIN32)
INTERFACE
SUBROUTINE OutputLinesF
!DEC$ ATTRIBUTES C,REFERENCE::OutputLinesF
!DEC$ ATTRIBUTES ALIAS:'_OutputLines'::OutputLinesF
END SUBROUTINE OutputLinesF
END INTERFACE
#endif
CALL OutputLinesF
END SUBROUTINE OutputLines
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
FUNCTION GetSelectedOutputRowCount()
IMPLICIT NONE
INTEGER :: GetSelectedOutputRowCount
#if defined(_WIN32)
INTERFACE
FUNCTION FRows
!DEC$ ATTRIBUTES C,REFERENCE::FRows
!DEC$ ATTRIBUTES ALIAS:'_GetSelectedOutputRowCountF'::FRows
INTEGER(KIND=4) :: FRows
END FUNCTION FRows
END INTERFACE
GetSelectedOutputRowCount = FRows() - 1
#else
INTEGER :: GetSelectedOutputRowCountF
GetSelectedOutputRowCount = GetSelectedOutputRowCountF() - 1
#endif
END FUNCTION GetSelectedOutputRowCount
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
FUNCTION GetSelectedOutputColumnCount()
IMPLICIT NONE
INTEGER :: GetSelectedOutputColumnCount
#if defined(_WIN32)
INTERFACE
FUNCTION FCols
!DEC$ ATTRIBUTES C,REFERENCE::FCols
!DEC$ ATTRIBUTES ALIAS:'_GetSelectedOutputColumnCount'::FCols
INTEGER(KIND=4) :: FCols
END FUNCTION FCols
END INTERFACE
GetSelectedOutputColumnCount = FCols()
#else
INTEGER :: GetSelectedOutputColumnCountF
GetSelectedOutputColumnCount = GetSelectedOutputColumnCountF()
#endif
END FUNCTION GetSelectedOutputColumnCount
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
FUNCTION GetSelectedOutputValue(ROW,COL,VTYPE,DVALUE,SVALUE)
IMPLICIT NONE
INTEGER :: ROW
INTEGER :: COL
INTEGER :: VTYPE
REAL*8 :: DVALUE
CHARACTER(LEN=*) :: SVALUE
INTEGER :: GetSelectedOutputValue
INTEGER :: adjcol
#if defined(_WIN32)
INTERFACE
FUNCTION Get(ROW,COL,VTYPE,DVALUE,SVALUE)
!DEC$ ATTRIBUTES C,REFERENCE::Get
!DEC$ ATTRIBUTES ALIAS:'_GetSelectedOutputValueF'::Get
INTEGER(KIND=4) :: ROW
INTEGER(KIND=4) :: COL
INTEGER(KIND=4) :: VTYPE
REAL(KIND=8) :: DVALUE
CHARACTER(LEN=*) :: SVALUE
INTEGER(KIND=4) :: Get
END FUNCTION Get
END INTERFACE
adjcol = col - 1
GetSelectedOutputValue = Get(ROW,adjcol,VTYPE,DVALUE,SVALUE)
#else
INTEGER :: GetSelectedOutputValueF
adjcol = col - 1
GetSelectedOutputValue = GetSelectedOutputValueF(ROW,
& adjcol,VTYPE,DVALUE,SVALUE)
#endif
END FUNCTION GetSelectedOutputValue
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
FUNCTION System(COMMAND)
IMPLICIT NONE
CHARACTER(LEN=*) :: COMMAND
INTEGER :: System
INTEGER :: SystemF
System = SystemF(COMMAND)
END FUNCTION System