Skip to content

Instantly share code, notes, and snippets.

@ComingNine
Created July 6, 2012 20:09
Show Gist options
  • Save ComingNine/3dd70d740a3e372a3415 to your computer and use it in GitHub Desktop.
Save ComingNine/3dd70d740a3e372a3415 to your computer and use it in GitHub Desktop.
Fortran version of Delphi's System.f90
!***|****1****|****2****|****3****|****4****|****5****|****6****|****7**
MODULE System
IMPLICIT NONE
PRIVATE
PUBLIC :: I1, I8, DP !! INTEGER constants
PUBLIC :: MAX_INT, MAX_LIST_SIZE
PUBLIC :: GetThreadFileIO
PUBLIC :: NUL, CR, LF, sLineBreak, PathDelim, DriveDelim, PathSep
INTEGER, PARAMETER :: I1 = SELECTED_INT_KIND (1)
INTEGER, PARAMETER :: I8 = SELECTED_INT_KIND (8)
INTEGER, PARAMETER :: DP = SELECTED_REAL_KIND (15, 307)
INTEGER, PARAMETER :: MAX_INT = HUGE(I8) ! 2147483647
INTEGER, PARAMETER :: MAX_LIST_SIZE = MAX_INT / 16
INTEGER, PARAMETER :: FCLX_FILEIO_BASE = 500
CHARACTER(LEN=*), PARAMETER :: NUL = ACHAR(0);
CHARACTER(LEN=*), PARAMETER :: CR = ACHAR(13);
CHARACTER(LEN=*), PARAMETER :: LF = ACHAR(10);
!DEC$ IF DEFINED (MSWINDOWS)
CHARACTER(LEN=*), PARAMETER :: sLineBreak = CR // LF
CHARACTER(LEN=*), PARAMETER :: PathDelim = '\'
CHARACTER(LEN=*), PARAMETER :: DriveDelim = ':'
CHARACTER(LEN=*), PARAMETER :: PathSep = ';'
!DEC$ ELSE
CHARACTER(LEN=*), PARAMETER :: sLineBreak = LF
CHARACTER(LEN=*), PARAMETER :: PathDelim = '/'
CHARACTER(LEN=*), PARAMETER :: DriveDelim = ''
CHARACTER(LEN=*), PARAMETER :: PathSep = ':'
!DEC$ END IF
CONTAINS
!***|****1****|****2****|****3****|****4****|****5****|****6****|****7**
FUNCTION GetThreadFileIO ()
!$ USE OMP_LIB
IMPLICIT NONE
INTEGER :: GetThreadFileIO
INTEGER :: ThreadId
ThreadId = 0
!$ ThreadId = OMP_GET_THREAD_NUM()
GetThreadFileIO = FCLX_FILEIO_BASE + ThreadId
END FUNCTION GetThreadFileIO
END MODULE System
!***|****1****|****2****|****3****|****4****|****5****|****6****|****7**
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment