anchor.diff:          ELSE
             message = ' ERROR IN XTAB FILE: CANNOT READ RODDED ABSORPTION XSEC'
           END IF
  -        CALL er_message(ounit, iost, ln, message, mnum)
  +        CALL er_message(ounit, iost, ln, message, XTAB=mnum)
         END DO
       END DO
     END DO
  
positive.code:     DO
          READ(xbunit, *, IOSTAT=ios) ind, ln, x1, x2, y1, y2, z1, z2
          message = ' error in reading ADF Rotation'
          CALL er_message(ounit, ios, ln, message)
          IF (x1 < 1 .OR. x2 < 1 .OR. y1 < 1 .OR. y2 < 1 .OR. z1 < 1 .OR. z2 < 1) EXIT
          IF (x1 > nx .OR. x2 > nx .OR. y1 > ny .OR. y2 > ny .OR. z1 > nz .OR. z2 > nz) THEN
              WRITE(ounit,*) '  ERROR: WRONG POSITION FOR ADF ROTATION. ' // &
  
negative.code: IMPLICIT NONE
  
  INTEGER, INTENT(IN) :: funit, iost, ln
  CHARACTER(LEN=*), INTENT(IN) :: mess
  INTEGER, OPTIONAL, INTENT(IN) :: xtab, buf
  
  IF (iost < 0) THEN
    WRITE(funit,*)
    WRITE(*,*)
    WRITE(*,*)''//achar(27)//'[31m OOPS! WE FOUND AN ERROR.'//achar(27)//'[0m'
  
    IF (PRESENT(xtab)) THEN
      WRITE(funit, 1014) ln, xtab
    ELSE
      WRITE(funit, 1006) carr(FINDLOC(uarr,buf))
      WRITE(funit, 1013) ln, farr(FINDLOC(uarr,buf))
    END IF
    WRITE(funit,*) mess
    IF (PRESENT(xtab)) THEN
      WRITE(*, 1014) ln, xtab
    ELSE
      WRITE(*, 1006) carr(FINDLOC(uarr,buf))
      WRITE(*, 1013) ln, farr(FINDLOC(uarr,buf))
    END IF
    WRITE(*,*) mess
    1013 FORMAT(2x, 'THIS LINE NEEDS MORE INPUT DATA. LINE', I4, &
    ' IN FILE : ', A100)
    1014 FORMAT(2x, 'ERROR: LINE', I4, &
    'IN XTAB FILE FOR MATERIAL NUMBER' , I4, '. IT NEEDS MORE DATA')
    STOP
  