LogInit Subroutine

public subroutine LogInit()

initialize global parameters

Arguments

None

Variables

Type Visibility Attributes Name Initial
character(len=stringLen), public :: arg

command line arguments

character(len=stringLen), public :: auxString
integer(kind=short), public :: i
character(len=stringLen), public :: sep

Source Code

SUBROUTINE LogInit 

IMPLICIT NONE

! Local scalars:
INTEGER (KIND = short)      :: i
CHARACTER (LEN = stringLen) :: arg !! command line arguments
CHARACTER (LEN = stringLen) :: auxString
CHARACTER (LEN = stringLen) :: sep
!------------end of declaration------------------------------------------------

i = 1
DO WHILE ( .not. (arg == '') )

	CALL Getarg ( i, arg )
	SELECT CASE (arg)
		CASE ( '-noverbose' )
			verbose = .FALSE.
			logToScreen = .FALSE.
		CASE ( '-logfile' )
			i = i + 1
			CALL Getarg ( i , logFile ) 
			logUnit = GetUnit() 
			OPEN (UNIT = logUnit, FILE = logFile, position = 'APPEND', &
						ACTION = 'WRITE', IOSTAT = ios)
			IF ( ios /= 0 ) THEN
				!verbose = .TRUE.
				CALL Catch ('error', 'initialization',   &
									'error in opening log file: ' ,  &
									code = OpenFileError, argument = logFile )
			ENDIF
			logToFile = .TRUE.
			CALL TimeStamp (logUnit)
			sep = " "//logsep//" "//"logging start"
			WRITE(UNIT = logUnit, FMT='(a)') TRIM(sep)
		CASE ( '-loglevel' )
			i = i + 1
			CALL Getarg ( i , arg ) 
				SELECT CASE (arg)
					CASE ( 'error' ) !report only error messages
						logLevel = 1
					CASE ( 'warning' ) !report error and warning messages
						logLevel = 2
					CASE ( 'info' ) !report error, warning and info messages
						logLevel = 3
					CASE default
						WRITE(stdOut,*) 'Unknown loglevel option: ', TRIM(arg)
						WRITE(stdOut,*) 'Program terminated'
						STOP ''      
				END SELECT        
		CASE DEFAULT
			!case unknown
	END SELECT
	i = i + 1
  
ENDDO


RETURN

END SUBROUTINE LogInit