<HTML> <BODY BGCOLOR=#ccccdd LINK=#0000aa VLINK=#0000ff ALINK=#ff0000 ><BASE TARGET="bottom_target"><PRE>
<A NAME='GETABDB'><A href='../../html_code/bufr/getabdb.f.html#GETABDB' TARGET='top_target'><IMG SRC="../../gif/bar_red.gif" border=0></A>
SUBROUTINE GETABDB(LUNIT,TABDB,ITAB,JTAB) 1,3
C$$$ SUBPROGRAM DOCUMENTATION BLOCK
C
C SUBPROGRAM: GETABDB
C PRGMMR: ATOR ORG: NP12 DATE: 2005-11-29
C
C ABSTRACT: THIS SUBROUTINE RETURNS INTERNAL TABLE B AND TABLE D
C INFORMATION FOR LOGICAL UNIT LUNIT IN A PRE-DEFINED ASCII FORMAT.
C
C PROGRAM HISTORY LOG:
C 2005-11-29 J. ATOR -- ADDED TO BUFR ARCHIVE LIBRARY (WAS IN-LINED
C IN PROGRAM NAMSND)
C
C USAGE: CALL GETABDB
( LUNIT, TABDB, ITAB, JTAB )
C INPUT ARGUMENT LIST:
C LUNIT - INTEGER: FORTRAN LOGICAL UNIT NUMBER FOR BUFR FILE
C ITAB - INTEGER: DIMENSIONED SIZE OF TABDB ARRAY
C
C OUTPUT ARGUMENT LIST:
C TABDB - CHARACTER*128: (JTAB)-WORD ARRAY OF INTERNAL TABLE B
C AND TABLE D INFORMATION
C JTAB - INTEGER: NUMBER OF ENTRIES STORED WITHIN TABDB
C
C REMARKS:
C THIS ROUTINE CALLS: NEMTBD STATUS
C THIS ROUTINE IS CALLED BY: None
C Normally called only by application
C programs.
C
C ATTRIBUTES:
C LANGUAGE: FORTRAN 77
C MACHINE: PORTABLE TO ALL PLATFORMS
C
C$$$
INCLUDE 'bufrlib.prm'
COMMON /TABABD/ NTBA(0:NFILES),NTBB(0:NFILES),NTBD(0:NFILES),
. MTAB(MAXTBA,NFILES),IDNA(MAXTBA,NFILES,2),
. IDNB(MAXTBB,NFILES),IDND(MAXTBD,NFILES),
. TABA(MAXTBA,NFILES),TABB(MAXTBB,NFILES),
. TABD(MAXTBD,NFILES)
CHARACTER*600 TABD
CHARACTER*128 TABB
CHARACTER*128 TABA
CHARACTER*128 TABDB(*)
CHARACTER*8 NEMO,NEMS(MAXCD)
DIMENSION IRPS(MAXCD),KNTS(MAXCD)
C-----------------------------------------------------------------------
C-----------------------------------------------------------------------
JTAB = 0
C MAKE SURE THE FILE IS OPEN
C --------------------------
CALL STATUS
(LUNIT,LUN,IL,IM)
IF(IL.EQ.0) RETURN
C WRITE OUT THE TABLE D ENTRIES FOR THIS FILE
C -------------------------------------------
DO I=1,NTBD(LUN)
NEMO = TABD(I,LUN)(7:14)
CALL NEMTBD
(LUN,I,NSEQ,NEMS,IRPS,KNTS)
DO J=1,NSEQ,10
JTAB = JTAB+1
IF(JTAB.LE.ITAB) THEN
WRITE(TABDB(JTAB),1) NEMO,(NEMS(K),K=J,MIN(J+9,NSEQ))
1 FORMAT('D ',A8,10(1X,A10))
ENDIF
ENDDO
ENDDO
C ADD THE TABLE B ENTRIES
C -----------------------
DO I=1,NTBB(LUN)
JTAB = JTAB+1
IF(JTAB.LE.ITAB) THEN
WRITE(TABDB(JTAB),2) TABB(I,LUN)(7:14),TABB(I,LUN)(71:112)
2 FORMAT('B ',A8,1X,A42)
ENDIF
ENDDO
RETURN
END