NCEPLIBS-bufr 11.7.1
inctab.f
Go to the documentation of this file.
1C> @file
2C> @author WOOLLEN @date 1994-01-06
3
4C> THIS SUBROUTINE RETURNS THE NEXT AVAILABLE POSITIONAL INDEX
5C> FOR WRITING INTO THE INTERNAL JUMP/LINK TABLE IN MODULE TABLES,
6C> AND IT ALSO USES THAT INDEX TO STORE ATAG AND ATYP WITHIN,
7C> RESPECTIVELY, THE INTERNAL JUMP/LINK TABLE ARRAYS TAG(*) AND TYP(*).
8C> IF THERE IS NO MORE ROOM FOR ADDITIONAL ENTRIES WITHIN THE INTERNAL
9C> JUMP/LINK TABLE, THEN AN APPROPRIATE CALL IS MADE TO BUFR ARCHIVE
10C> LIBRARY SUBROUTINE BORT.
11C>
12C> PROGRAM HISTORY LOG:
13C> 1994-01-06 J. WOOLLEN -- ORIGINAL AUTHOR
14C> 1998-07-08 J. WOOLLEN -- REPLACED CALL TO CRAY LIBRARY ROUTINE
15C> "ABORT" WITH CALL TO NEW INTERNAL BUFRLIB
16C> ROUTINE "BORT"
17C> 2003-11-04 J. ATOR -- ADDED DOCUMENTATION
18C> 2003-11-04 S. BENDER -- ADDED REMARKS/BUFRLIB ROUTINE
19C> INTERDEPENDENCIES
20C> 2003-11-04 D. KEYSER -- MAXJL (MAXIMUM NUMBER OF JUMP/LINK ENTRIES)
21C> INCREASED FROM 15000 TO 16000 (WAS IN
22C> VERIFICATION VERSION); UNIFIED/PORTABLE FOR
23C> WRF; ADDED HISTORY DOCUMENTATION; OUTPUTS
24C> MORE COMPLETE DIAGNOSTIC INFO WHEN ROUTINE
25C> TERMINATES ABNORMALLY
26C> 2014-12-10 J. ATOR -- USE MODULES INSTEAD OF COMMON BLOCKS
27C>
28C> USAGE: CALL INCTAB (ATAG, ATYP, NODE)
29C> INPUT ARGUMENT LIST:
30C> ATAG - CHARACTER*(*): MNEMONIC NAME
31C> ATYP - CHARACTER*(*): MNEMONIC TYPE
32C>
33C> OUTPUT ARGUMENT LIST:
34C> NODE - INTEGER: NEXT AVAILABLE POSITIONAL INDEX FOR WRITING
35C> INTO THE INTERNAL JUMP/LINK TABLE
36C>
37C> REMARKS:
38C> THIS ROUTINE CALLS: BORT
39C> THIS ROUTINE IS CALLED BY: TABENT TABSUB
40C> Normally not called by any application
41C> programs.
42C>
43 SUBROUTINE inctab(ATAG,ATYP,NODE)
44
45 USE moda_tables
46
47 CHARACTER*(*) ATAG,ATYP
48 CHARACTER*128 BORT_STR
49
50C-----------------------------------------------------------------------
51C-----------------------------------------------------------------------
52
53 ntab = ntab+1
54 IF(ntab.GT.maxtab) GOTO 900
55 tag(ntab) = atag
56 typ(ntab) = atyp
57 node = ntab
58
59C EXITS
60C -----
61
62 RETURN
63 900 WRITE(bort_str,'("BUFRLIB: INCTAB - THE NUMBER OF JUMP/LINK '//
64 . 'TABLE ENTRIES EXCEEDS THE LIMIT, MAXTAB (",I7,")")') maxtab
65 CALL bort(bort_str)
66 END
subroutine bort(STR)
This subroutine calls subroutine errwrt() to log an error message, then calls subroutine bort_exit() ...
Definition: bort.f:23
subroutine inctab(ATAG, ATYP, NODE)
THIS SUBROUTINE RETURNS THE NEXT AVAILABLE POSITIONAL INDEX FOR WRITING INTO THE INTERNAL JUMP/LINK T...
Definition: inctab.f:44
This module contains array and variable declarations used to store the internal jump/link table.
Definition: moda_tables.F:13
character *3, dimension(:), allocatable typ
Type indicators corresponding to tag:
Definition: moda_tables.F:133
character *10, dimension(:), allocatable tag
Mnemonics in the jump/link table.
Definition: moda_tables.F:132
integer maxtab
Maximum number of entries in the jump/link table; equivalent to MAXJL.
Definition: moda_tables.F:130
integer ntab
Number of entries in the jump/link table.
Definition: moda_tables.F:131