1 SUBROUTINE INCTAB (ATAG, ATYP, NODE)
3 !$$$ SUBPROGRAM DOCUMENTATION BLOCK
6 ! PRGMMR: WOOLLEN ORG: NP20 DATE: 1994-01-06
8 ! ABSTRACT: THIS SUBROUTINE RETURNS THE NEXT AVAILABLE POSITIONAL INDEX
9 ! FOR WRITING INTO THE INTERNAL JUMP/LINK TABLE IN COMMON BLOCK
10 ! /TABLES/, AND IT ALSO USES THAT INDEX TO STORE ATAG AND ATYP
11 ! WITHIN, RESPECTIVELY, THE INTERNAL JUMP/LINK TABLE ARRAYS TAG(*)
12 ! AND TYP(*). IF THERE IS NO MORE ROOM FOR ADDITIONAL ENTRIES WITHIN
13 ! THE INTERNAL JUMP/LINK TABLE, THEN AN APPROPRIATE CALL IS MADE TO
14 ! BUFR ARCHIVE LIBRARY SUBROUTINE BORT.
16 ! PROGRAM HISTORY LOG:
17 ! 1994-01-06 J. WOOLLEN -- ORIGINAL AUTHOR
18 ! 1998-07-08 J. WOOLLEN -- REPLACED CALL TO CRAY LIBRARY ROUTINE
19 ! "ABORT" WITH CALL TO NEW INTERNAL BUFRLIB
21 ! 2003-11-04 J. ATOR -- ADDED DOCUMENTATION
22 ! 2003-11-04 S. BENDER -- ADDED REMARKS/BUFRLIB ROUTINE
24 ! 2003-11-04 D. KEYSER -- MAXJL (MAXIMUM NUMBER OF JUMP/LINK ENTRIES)
25 ! INCREASED FROM 15000 TO 16000 (WAS IN
26 ! VERIFICATION VERSION); UNIFIED/PORTABLE FOR
27 ! WRF; ADDED HISTORY DOCUMENTATION; OUTPUTS
28 ! MORE COMPLETE DIAGNOSTIC INFO WHEN ROUTINE
29 ! TERMINATES ABNORMALLY
31 ! USAGE: CALL INCTAB (ATAG, ATYP, NODE)
32 ! INPUT ARGUMENT LIST:
33 ! ATAG - CHARACTER*(*): MNEMONIC NAME
34 ! ATYP - CHARACTER*(*): MNEMONIC TYPE
36 ! OUTPUT ARGUMENT LIST:
37 ! NODE - INTEGER: NEXT AVAILABLE POSITIONAL INDEX FOR WRITING
38 ! INTO THE INTERNAL JUMP/LINK TABLE
41 ! THIS ROUTINE CALLS: BORT
42 ! THIS ROUTINE IS CALLED BY: TABENT TABSUB
43 ! Normally not called by any application
47 ! LANGUAGE: FORTRAN 77
48 ! MACHINE: PORTABLE TO ALL PLATFORMS
54 ! COMMON / TABLES / MAXTAB, NTAB, TAG (MAXJL), TYP (MAXJL), KNT ( &
55 ! MAXJL), JUMP (MAXJL), LINK (MAXJL), JMPB (MAXJL), IBT (MAXJL), &
56 ! IRF (MAXJL), ISC (MAXJL), ITP (MAXJL), VALI (MAXJL), KNTI (MAXJL),&
57 ! ISEQ (MAXJL, 2), JSEQ (MAXJL)
59 CHARACTER ( * ) ATAG, ATYP
60 CHARACTER(128) BORT_STR
64 !-----------------------------------------------------------------------
65 !-----------------------------------------------------------------------
68 IF (NTAB.GT.MAXTAB) GOTO 900
77 900 WRITE (BORT_STR, '("BUFRLIB: INCTAB - THE NUMBER OF JUMP/LINK '// &
78 'TABLE ENTRIES EXCEEDS THE LIMIT, MAXTAB (",I7,")")') MAXTAB