wrf svn trunk commit r4103
[wrffire.git] / wrfv2_fire / var / external / bufr / inctab.inc
blob96c5b672eb4052f9e14dabfec418e0343cfc40c9
1       SUBROUTINE INCTAB (ATAG, ATYP, NODE) 
2                                                                         
3 !$$$  SUBPROGRAM DOCUMENTATION BLOCK                                    
4 !                                                                       
5 ! SUBPROGRAM:    INCTAB                                                 
6 !   PRGMMR: WOOLLEN          ORG: NP20       DATE: 1994-01-06           
7 !                                                                       
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.                               
15 !                                                                       
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   
20 !                           ROUTINE "BORT"                              
21 ! 2003-11-04  J. ATOR    -- ADDED DOCUMENTATION                         
22 ! 2003-11-04  S. BENDER  -- ADDED REMARKS/BUFRLIB ROUTINE               
23 !                           INTERDEPENDENCIES                           
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                       
30 !                                                                       
31 ! USAGE:    CALL INCTAB (ATAG, ATYP, NODE)                              
32 !   INPUT ARGUMENT LIST:                                                
33 !     ATAG     - CHARACTER*(*): MNEMONIC NAME                           
34 !     ATYP     - CHARACTER*(*): MNEMONIC TYPE                           
35 !                                                                       
36 !   OUTPUT ARGUMENT LIST:                                               
37 !     NODE     - INTEGER: NEXT AVAILABLE POSITIONAL INDEX FOR WRITING   
38 !                INTO THE INTERNAL JUMP/LINK TABLE                      
39 !                                                                       
40 ! REMARKS:                                                              
41 !    THIS ROUTINE CALLS:        BORT                                    
42 !    THIS ROUTINE IS CALLED BY: TABENT   TABSUB                         
43 !                               Normally not called by any application  
44 !                               programs.                               
45 !                                                                       
46 ! ATTRIBUTES:                                                           
47 !   LANGUAGE: FORTRAN 77                                                
48 !   MACHINE:  PORTABLE TO ALL PLATFORMS                                 
49 !                                                                       
50 !$$$                                                                    
51                                                                         
52       INCLUDE 'bufrlib.prm' 
53                                                                         
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)                                     
58                                                                         
59       CHARACTER ( * ) ATAG, ATYP 
60       CHARACTER(128) BORT_STR 
61 !     CHARACTER(10) TAG 
62 !     CHARACTER(3) TYP 
63                                                                         
64 !-----------------------------------------------------------------------
65 !-----------------------------------------------------------------------
66                                                                         
67       NTAB = NTAB + 1 
68       IF (NTAB.GT.MAXTAB) GOTO 900 
69       TAG (NTAB) = ATAG 
70       TYP (NTAB) = ATYP 
71       NODE = NTAB 
72                                                                         
73 !  EXITS                                                                
74 !  -----                                                                
75                                                                         
76       RETURN 
77   900 WRITE (BORT_STR, '("BUFRLIB: INCTAB - THE NUMBER OF JUMP/LINK '// &
78       'TABLE ENTRIES EXCEEDS THE LIMIT, MAXTAB (",I7,")")') MAXTAB      
79       CALL BORT (BORT_STR) 
80       END SUBROUTINE INCTAB