64 COMMON /padesc/ ibct,ipd1,ipd2,ipd3,ipd4
65 COMMON /msgptr/ nby0,nby1,nby2,nby3,nby4,nby5
67 CHARACTER*128 bort_str
81 subtag = tag(inode(lun))
83 CALL
nemtba(lun,subtag,mtyp,msbt,inod)
84 IF(inode(lun).NE.inod) goto 900
85 CALL
nemtab(lun,subtag,isub,tab,iret)
86 IF(iret.EQ.0) goto 901
91 mcen = mod(idate(lun)/10**8,100)+1
92 mear = mod(idate(lun)/10**6,100)
93 mmon = mod(idate(lun)/10**4,100)
94 mday = mod(idate(lun)/10**2,100)
95 mour = mod(idate(lun) ,100)
99 IF(mcen.EQ.1) goto 902
101 IF(mear.EQ.0) mcen = mcen-1
102 IF(mear.EQ.0) mear = 100
114 nbyt = nby0+nby1+nby2+nby3+nby4+nby5
119 CALL
pkc(bufr , 4 , mbay(1,lun),mbit)
120 CALL
pkb(nbyt , 24 , mbay(1,lun),mbit)
121 CALL
pkb( 3 , 8 , mbay(1,lun),mbit)
126 CALL
pkb(nby1 , 24 , mbay(1,lun),mbit)
127 CALL
pkb( 0 , 8 , mbay(1,lun),mbit)
128 CALL
pkb( 3 , 8 , mbay(1,lun),mbit)
129 CALL
pkb( 7 , 8 , mbay(1,lun),mbit)
130 CALL
pkb( 0 , 8 , mbay(1,lun),mbit)
131 CALL
pkb( 0 , 8 , mbay(1,lun),mbit)
132 CALL
pkb(mtyp , 8 , mbay(1,lun),mbit)
133 CALL
pkb(msbt , 8 , mbay(1,lun),mbit)
134 CALL
pkb( 36 , 8 , mbay(1,lun),mbit)
135 CALL
pkb( 0 , 8 , mbay(1,lun),mbit)
136 CALL
pkb(mear , 8 , mbay(1,lun),mbit)
137 CALL
pkb(mmon , 8 , mbay(1,lun),mbit)
138 CALL
pkb(mday , 8 , mbay(1,lun),mbit)
139 CALL
pkb(mour , 8 , mbay(1,lun),mbit)
140 CALL
pkb(mmin , 8 , mbay(1,lun),mbit)
141 CALL
pkb(mcen , 8 , mbay(1,lun),mbit)
146 CALL
pkb(nby3 , 24 , mbay(1,lun),mbit)
147 CALL
pkb( 0 , 8 , mbay(1,lun),mbit)
148 CALL
pkb( 0 , 16 , mbay(1,lun),mbit)
149 CALL
pkb(2**7 , 8 , mbay(1,lun),mbit)
150 CALL
pkb(ibct , 16 , mbay(1,lun),mbit)
151 CALL
pkb(isub , 16 , mbay(1,lun),mbit)
152 CALL
pkb(ipd1 , 16 , mbay(1,lun),mbit)
153 CALL
pkb(ipd2 , 16 , mbay(1,lun),mbit)
154 CALL
pkb(ipd3 , 16 , mbay(1,lun),mbit)
155 CALL
pkb(ipd4 , 16 , mbay(1,lun),mbit)
156 CALL
pkb( 0 , 8 , mbay(1,lun),mbit)
161 CALL
pkb(nby4 , 24 , mbay(1,lun),mbit)
162 CALL
pkb( 0 , 8 , mbay(1,lun),mbit)
167 CALL
pkc(sevn , 4 , mbay(1,lun),mbit)
172 IF(mod(mbit,8).NE.0) goto 903
173 IF(mbit/8.NE.nbyt ) goto 904
175 nmsg(lun) = nmsg(lun)+1
185 900
WRITE(bort_str,
'("BUFRLIB: MSGINI - MISMATCH BETWEEN INODE (=",'//
186 .
'I7,") & POSITIONAL INDEX, INOD (",I7,") OF SUBTAG (",A,") IN '//
187 .
'DICTIONARY")') inode(lun),inod,subtag
189 901
WRITE(bort_str,
'("BUFRLIB: MSGINI - TABLE A MESSAGE TYPE '//
190 .
'MNEMONIC ",A," NOT FOUND IN INTERNAL TABLE D ARRAYS")') subtag
193 . (
'BUFRLIB: MSGINI - BUFR MESSAGE DATE (IDATE) is 0000000000')
194 903 CALL
bort(
'BUFRLIB: MSGINI - INITIALIZED MESSAGE DOES NOT END '//
195 .
'ON A BYTE BOUNDARY')
196 904
WRITE(bort_str,
'("BUFRLIB: MSGINI - NUMBER OF BYTES STORED FOR '//
197 .
'INITIALIZED MESSAGE (",I6,") IS NOT THE SAME AS FIRST '//
198 .
'CALCULATED, NBYT (",I6)') mbit/8,nbyt
subroutine pkc(CHR, NCHR, IBAY, IBIT)
This subroutine encodes a character string within a specified number of bits of an integer array...
This module contains array and variable declarations used to store the internal jump/link table...
subroutine msgini(LUN)
THIS SUBROUTINE INITIALIZES, WITHIN THE INTERNAL ARRAYS, A NEW BUFR MESSAGE FOR OUTPUT.
subroutine nemtab(LUN, NEMO, IDN, TAB, IRET)
This subroutine returns information about a descriptor from the internal DX BUFR tables, based on the mnemonic associated with that descriptor.
subroutine bort(STR)
This subroutine calls subroutine errwrt() to log an error message, then calls subroutine bort_exit() ...
subroutine pkb(NVAL, NBITS, IBAY, IBIT)
This subroutine encodes an integer value within a specified number of bits of an integer array...
This module contains array and variable declarations used to store BUFR messages internally for multi...
subroutine nemtba(LUN, NEMO, MTYP, MSBT, INOD)
This subroutine searches for a descriptor within Table A of the internal DX BUFR tables.