SUBROUTINE ENTSRC(IROLD,IRNEW)
C
C THIS ROUTINE RETURNS IROLD = LRECOV AND SETS LRECOV = IRNEW.
C
C IF THERE IS AN ACTIVE ERROR STATE, THE MESSAGE IS PRINTED
C AND EXECUTION STOPS.
C
C IRNEW = 0 LEAVES LRECOV UNCHANGED, WHILE
C IRNEW = 1 GIVES RECOVERY AND
C IRNEW = 2 TURNS RECOVERY OFF.
C
C ERROR STATES -
C
C 1 - ILLEGAL VALUE OF IRNEW.
C 2 - CALLED WHILE IN AN ERROR STATE.
C
C/6S
C IF (IRNEW.LT.0 .OR. IRNEW.GT.2)
C 1 CALL SETERR(31HENTSRC - ILLEGAL VALUE OF IRNEW,31,1,2)
C/7S
IF (IRNEW.LT.0 .OR. IRNEW.GT.2)
1 CALL SETERR('ENTSRC - ILLEGAL VALUE OF IRNEW',31,1,2)
C/
C
IROLD=I8SAVE(2,IRNEW,IRNEW.NE.0)
C
C IF HAVE AN ERROR STATE, STOP EXECUTION.
C
C/6S
C IF (I8SAVE(1,0,.FALSE.) .NE. 0) CALL SETERR
C 1 (39HENTSRC - CALLED WHILE IN AN ERROR STATE,39,2,2)
C/7S
IF (I8SAVE(1,0,.FALSE.) .NE. 0) CALL SETERR
1 ('ENTSRC - CALLED WHILE IN AN ERROR STATE',39,2,2)
C/
C
RETURN
C
END
.