21 SUBROUTINE nemtbb(LUN,ITAB,UNIT,ISCL,IREF,IBIT)
25 CHARACTER*128 BORT_STR
35 IF(itab.LE.0 .OR. itab.GT.
ntbb(lun))
GOTO 900
41 nemo =
tabb(itab,lun)( 7:14)
42 unit =
tabb(itab,lun)(71:94)
43 CALL strnum(
tabb(itab,lun)( 95: 98),iscl,ierns)
44 CALL strnum(
tabb(itab,lun)( 99:109),iref,ierns)
45 CALL strnum(
tabb(itab,lun)(110:112),ibit,ierns)
50 IF(idn.LT.
ifxy(
'000000'))
GOTO 901
51 IF(idn.GT.
ifxy(
'063255'))
GOTO 901
53 IF(iscl.LT.-999 .OR. iscl.GT.999)
GOTO 902
54 IF(iref.LE.-mxr .OR. iref.GE.mxr)
GOTO 903
55 IF(ibit.LE.0)
GOTO 904
56 IF(unit(1:5).NE.
'CCITT' .AND. ibit.GT.32 )
GOTO 904
57 IF(unit(1:5).EQ.
'CCITT' .AND. mod(ibit,8).NE.0)
GOTO 905
63 900
WRITE(bort_str,
'("BUFRLIB: NEMTBB - ITAB (",I7,") NOT FOUND IN '//
66 901
WRITE(bort_str,
'("BUFRLIB: NEMTBB - INTEGER REPRESENTATION OF '//
67 .
'DESCRIPTOR FOR TABLE B MNEMONIC ",A," (",I7,") IS OUTSIDE '//
68 .
'RANGE 0-16383 (16383 -> 0-63-255)")') nemo,idn
70 902
WRITE(bort_str,
'("BUFRLIB: NEMTBB - SCALE VALUE FOR TABLE B '//
71 .
'MNEMONIC ",A," (",I7,") IS OUTSIDE RANGE -999 TO 999")')
74 903
WRITE(bort_str,
'("BUFRLIB: NEMTBB - REFERENCE VALUE FOR TABLE B'//
75 .
' MNEMONIC ",A," (",I7,") IS OUTSIDE RANGE +/- 1E11-1")')
78 904
WRITE(bort_str,
'("BUFRLIB: NEMTBB - BIT WIDTH FOR NON-CHARACTER'//
79 .
' TABLE B MNEMONIC ",A," (",I7,") IS > 32")') nemo,ibit
81 905
WRITE(bort_str,
'("BUFRLIB: NEMTBB - BIT WIDTH FOR CHARACTER '//
82 .
'TABLE B MNEMONIC ",A," (",I7,") IS NOT A MULTIPLE OF 8")')
subroutine bort(STR)
Log one error message and abort application program.
function ifxy(ADSC)
Convert an FXY value from its 6 character representation to its WMO bit-wise representation.
This module contains array and variable declarations used to store DX BUFR tables internally for mult...
integer, dimension(:), allocatable ntbb
Number of Table B entries for each internal I/O stream (up to a maximum of MAXTBB,...
integer, dimension(:,:), allocatable idnb
Bit-wise representations of the FXY values corresponding to tabb.
character *128, dimension(:,:), allocatable tabb
Table B entries for each internal I/O stream.
subroutine nemtbb(LUN, ITAB, UNIT, ISCL, IREF, IBIT)
Get information about a Table B descriptor.
recursive subroutine strnum(str, num, iret)
Decode an integer from a character string.