mirror of
https://git.gfz-potsdam.de/naaice/iphreeqc.git
synced 2025-12-15 16:18:22 +01:00
git-svn-id: svn://136.177.114.72/svn_GW/IPhreeqc/trunk@4106 1feff8c3-07ed-0310-ac33-dd36852eb9cd
195 lines
7.2 KiB
Fortran
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
|