LOGICAL :: L = .FALSE.
SELECT CASE (L)
   CASE (.TRUE.)
      STOP 1
   CASE (.FALSE.)
      CONTINUE
   CASE DEFAULT
      STOP 2
END SELECT
SELECT CASE (L)
   CASE (.TRUE., .FALSE.)
      CONTINUE
   CASE DEFAULT
      STOP 3
END SELECT
SELECT CASE (L)
   CASE (.FALSE.)
      CONTINUE
   CASE DEFAULT
      STOP 4
END SELECT
SELECT CASE (L)
   CASE (.NOT. .TRUE.)
      CONTINUE
   CASE DEFAULT
      STOP 5
END SELECT
SELECT CASE (.NOT. L)
   CASE (.TRUE.)
      CONTINUE
   CASE DEFAULT
      STOP 6
END SELECT
SELECT CASE (Truth_or_Dare() .OR. L)
   CASE (.TRUE.)
      CONTINUE
   CASE DEFAULT
      STOP 7
END SELECT
CONTAINS
   FUNCTION Truth_or_Dare ()
      LOGICAL Truth_or_Dare
      Truth_or_Dare = .TRUE.
   END FUNCTION
END