FTN SUBROUTINE DBER2(LU1,IERR,NAMR,MESS,ABORT) +,92069-16184 REV.2013 790927 C C C***************************************************************** C (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS RESERVED. C NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, REPRODUCED, OR C TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT THE PRIOR C WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. C****************************************************************** C C C SOURCE: 92069-18184 C RELOC: 92069-16184 C C C****************************************************************: C C C******************************************************* C DBER2 PRINTS OUT AN ERROR MESSAGE. C C THE FORM OF THE ERROR MESSAGE IS AS FOLLOWS: C C ERROR NUMBER XXXXX FOR YYYYY ZZZZZZ C WHERE XXXXX IS THE ERROR NUMBER C YYYYY IS EITHER "LU" OR "FILE" C ZZZZZZ IS EITHER THE LU NUMBER OR THE FILE NAME. C C IF NAMR IS "XXXXXX" UPON ENTRY, THE ERROR MESSAGE IS AS FOLLOWS: C ERROR NUMBER XXXXX C C THE NAMR PASSED IN IS ONE OF THE FOUR FOLLOWING TYPES: C 1) 6HXXXXXX C 2) AN LU NUMBER FOR AN FMP ERROR C 3) A FILE NAME FOR AN FMP ERROR OR A DATA BASE ERROR. C 4) A FILE OR ITEM NUMBER FOR A DATA BASE NUMBER. C C AFTER THIS: C IF ABORT=AB, IT DOES A STOP C IF ABORT=XX, IT RETURNS. C ELSE IT CALLS IN THE SEGMENT NAMED BY ABORT. C C******************************************************* INTEGER LU1,IERR,MESS(1),ABORT INTEGER NAMR(1) INTEGER NAMR1(3) INTEGER NOSEG(8 ),NOSGL DOUBLE PRECISION NAMR3(1) EQUIVALENCE (NAMR1,NAMR3) DOUBLE PRECISION ERROR(6) DATA ERROR/6HERROR ,6HNUMBER,6H000000,6H FOR ,6H ,6H / DATA NOSEG/2H S,2HEG,2HME,2HNT,2H M,2HIS,2HSI,2HNG/ DATA NOSGL/8 / C********************************************************** C IF (IERR .EQ. 0) RETURN IERR2=IABS(IERR) C*************************************************************** C PUT THE THREE WORDS OF NAMR INTO NAMR3 (NAMR1 EQU NAMR3). C NAMR1=NAMR NAMR1(2)=NAMR(2) NAMR1(3)=NAMR(3) C***************************************************************** C CONVERT THE ERROR NUMBER AND INSERT INTO MESSAGE. INSERT THE C NAMR INTO THE MESSAGE. C CALL REIO(2,LU1,2H _,1) CALL CNUMD(IERR2,ERROR(3)) ERROR(5)=6H FILE ERROR(6)=NAMR3 C************************************************************* C ON AN FMP ERROR WHERE THE NAMR PASSED IN IS AN LU NUMBER. C IF(NAMR .GE. 64) GOTO 10 CALL CNUMD(NAMR,ERROR(6)) IF(IERR2 .LT. 100) ERROR(5) = 6H LU C*************************************************************** C SEE HOW MANY WORDS OF THE MESSAGE TO PRINT OUT. C 10 CONTINUE LEN=18 IF (NAMR3 .EQ. 6HXXXXXX) LEN=9 CALL REIO(2,LU1,ERROR,LEN) C********************************************************* C SEE ABOUT ABORTING OR RETURNING. C 9000 IF (ABORT .EQ. 2HXX) RETURN IF (ABORT .EQ. 2HAB) STOP CALL SEGLD(ABORT,IERR) CALL REIO(2,LU1,NOSEG,NOSGL) CALL REIO(2,LU1,ABORT,3) STOP END