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