44 lines
1.1 KiB
Fortran
44 lines
1.1 KiB
Fortran
!moduleErrors: Manages the different type of errors the program can produce.
|
|
! By errors we understand critical errors (that stop the program),
|
|
! warnings (that only output a message with a WARNING tag),
|
|
! o verbose outputs that can be used for debugging porpouse.
|
|
MODULE moduleErrors
|
|
CONTAINS
|
|
SUBROUTINE criticalError(msg, pgr)
|
|
IMPLICIT NONE
|
|
|
|
CHARACTER(*), INTENT(in):: msg, pgr
|
|
CHARACTER(:), ALLOCATABLE:: errorMsg
|
|
|
|
errorMsg = "CRITICAL error in " // pgr // " with message:" // NEW_LINE('A') // msg
|
|
|
|
ERROR STOP errorMsg
|
|
|
|
END SUBROUTINE criticalError
|
|
|
|
SUBROUTINE warningError(msg)
|
|
IMPLICIT NONE
|
|
|
|
CHARACTER(*), INTENT(in):: msg
|
|
CHARACTER(:), ALLOCATABLE:: errorMsg
|
|
|
|
errorMsg = "WARNING: " // msg
|
|
|
|
WRITE (*, '(A)') errorMsg
|
|
|
|
END SUBROUTINE warningError
|
|
|
|
SUBROUTINE verboseError(msg)
|
|
IMPLICIT NONE
|
|
|
|
CHARACTER(*), INTENT(in):: msg
|
|
CHARACTER(:), ALLOCATABLE:: errorMsg
|
|
|
|
errorMsg = msg
|
|
|
|
WRITE (*, '(A)') errorMsg
|
|
WRITE (*, *)
|
|
|
|
END SUBROUTINE verboseError
|
|
|
|
END MODULE moduleErrors
|