49 SUBROUTINE nemtbb(LUN,ITAB,UNIT,ISCL,IREF,IBIT)
53 CHARACTER*128 bort_str
63 IF(itab.LE.0 .OR. itab.GT.ntbb(lun)) goto 900
69 nemo = tabb(itab,lun)( 7:14)
70 unit = tabb(itab,lun)(71:94)
71 iscl =
valx(tabb(itab,lun)( 95: 98))
72 iref =
valx(tabb(itab,lun)( 99:109))
73 ibit =
valx(tabb(itab,lun)(110:112))
78 IF(idn.LT.
ifxy(
'000000')) goto 901
79 IF(idn.GT.
ifxy(
'063255')) goto 901
81 IF(iscl.LT.-999 .OR. iscl.GT.999) goto 902
82 IF(iref.LE.-mxr .OR. iref.GE.mxr) goto 903
83 IF(ibit.LE.0) goto 904
84 IF(unit(1:5).NE.
'CCITT' .AND. ibit.GT.32 ) goto 904
85 IF(unit(1:5).EQ.
'CCITT' .AND. mod(ibit,8).NE.0) goto 905
91 900
WRITE(bort_str,
'("BUFRLIB: NEMTBB - ITAB (",I7,") NOT FOUND IN '//
94 901
WRITE(bort_str,
'("BUFRLIB: NEMTBB - INTEGER REPRESENTATION OF '//
95 .
'DESCRIPTOR FOR TABLE B MNEMONIC ",A," (",I7,") IS OUTSIDE '//
96 .
'RANGE 0-16383 (16383 -> 0-63-255)")') nemo,idn
98 902
WRITE(bort_str,
'("BUFRLIB: NEMTBB - SCALE VALUE FOR TABLE B '//
99 .
'MNEMONIC ",A," (",I7,") IS OUTSIDE RANGE -999 TO 999")')
102 903
WRITE(bort_str,
'("BUFRLIB: NEMTBB - REFERENCE VALUE FOR TABLE B'//
103 .
' MNEMONIC ",A," (",I7,") IS OUTSIDE RANGE +/- 1E11-1")')
106 904
WRITE(bort_str,
'("BUFRLIB: NEMTBB - BIT WIDTH FOR NON-CHARACTER'//
107 .
' TABLE B MNEMONIC ",A," (",I7,") IS > 32")') nemo,ibit
109 905
WRITE(bort_str,
'("BUFRLIB: NEMTBB - BIT WIDTH FOR CHARACTER '//
110 .
'TABLE B MNEMONIC ",A," (",I7,") IS NOT A MULTIPLE OF 8")')
function valx(STR)
THIS FUNCTION DECODES A REAL NUMBER FROM A CHARACTER STRING.
This module contains array and variable declarations used to store DX BUFR tables internally for mult...
subroutine nemtbb(LUN, ITAB, UNIT, ISCL, IREF, IBIT)
THIS SUBROUTINE CHECKS ALL OF THE PROPERTIES (E.G.
function ifxy(ADSC)
THIS FUNCTION RETURNS THE INTEGER CORRESPONDING TO THE BIT-WISE REPRESENTATION OF AN INPUT CHARACTER ...
subroutine bort(STR)
This subroutine calls subroutine errwrt() to log an error message, then calls subroutine bort_exit() ...