reads /proc/cpuinfo if it exists (i.e. Linux) to return relevant info
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=default_string_length) | :: | model_name |
as obtained from the 'model name' field, UNKNOWN otherwise |
SUBROUTINE m_cpuinfo(model_name)
!! reads /proc/cpuinfo if it exists (i.e. Linux) to return relevant info
CHARACTER(LEN=default_string_length) :: model_name
!! as obtained from the 'model name' field, UNKNOWN otherwise
INTEGER, PARAMETER :: bufferlen = 2048
CHARACTER(LEN=bufferlen) :: buffer
INTEGER :: i, icol, iline, imod, stat
model_name = "UNKNOWN"
buffer = ""
OPEN (121245, FILE="/proc/cpuinfo", ACTION="READ", STATUS="OLD", ACCESS="STREAM", IOSTAT=stat)
IF (stat == 0) THEN
DO i = 1, bufferlen
READ (121245, END=999) buffer(I:I)
END DO
999 CLOSE (121245)
imod = INDEX(buffer, "model name")
IF (imod > 0) THEN
icol = imod - 1 + INDEX(buffer(imod:), ":")
iline = icol - 1 + INDEX(buffer(icol:), NEW_LINE('A'))
IF (iline == icol - 1) iline = bufferlen + 1
model_name = buffer(icol + 1:iline - 1)
END IF
END IF
END SUBROUTINE m_cpuinfo