62 COMMON /padesc/ ibct,ipd1,ipd2,ipd3,ipd4
63 COMMON /msgptr/ nby0,nby1,nby2,nby3,nby4,nby5
65 CHARACTER*128 bort_str
79 subtag = tag(inode(lun))
81 CALL
nemtba(lun,subtag,mtyp,msbt,inod)
82 IF(inode(lun).NE.inod) goto 900
83 CALL
nemtab(lun,subtag,isub,tab,iret)
84 IF(iret.EQ.0) goto 901
89 mcen = mod(idate(lun)/10**8,100)+1
90 mear = mod(idate(lun)/10**6,100)
91 mmon = mod(idate(lun)/10**4,100)
92 mday = mod(idate(lun)/10**2,100)
93 mour = mod(idate(lun) ,100)
97 IF(mcen.EQ.1) goto 902
99 IF(mear.EQ.0) mcen = mcen-1
100 IF(mear.EQ.0) mear = 100
112 nbyt = nby0+nby1+nby2+nby3+nby4+nby5
117 CALL
pkc(bufr , 4 , mbay(1,lun),mbit)
118 CALL
pkb(nbyt , 24 , mbay(1,lun),mbit)
119 CALL
pkb( 3 , 8 , mbay(1,lun),mbit)
124 CALL
pkb(nby1 , 24 , mbay(1,lun),mbit)
125 CALL
pkb( 0 , 8 , mbay(1,lun),mbit)
126 CALL
pkb( 3 , 8 , mbay(1,lun),mbit)
127 CALL
pkb( 7 , 8 , mbay(1,lun),mbit)
128 CALL
pkb( 0 , 8 , mbay(1,lun),mbit)
129 CALL
pkb( 0 , 8 , mbay(1,lun),mbit)
130 CALL
pkb(mtyp , 8 , mbay(1,lun),mbit)
131 CALL
pkb(msbt , 8 , mbay(1,lun),mbit)
132 CALL
pkb( 29 , 8 , mbay(1,lun),mbit)
133 CALL
pkb( 0 , 8 , mbay(1,lun),mbit)
134 CALL
pkb(mear , 8 , mbay(1,lun),mbit)
135 CALL
pkb(mmon , 8 , mbay(1,lun),mbit)
136 CALL
pkb(mday , 8 , mbay(1,lun),mbit)
137 CALL
pkb(mour , 8 , mbay(1,lun),mbit)
138 CALL
pkb(mmin , 8 , mbay(1,lun),mbit)
139 CALL
pkb(mcen , 8 , mbay(1,lun),mbit)
144 CALL
pkb(nby3 , 24 , mbay(1,lun),mbit)
145 CALL
pkb( 0 , 8 , mbay(1,lun),mbit)
146 CALL
pkb( 0 , 16 , mbay(1,lun),mbit)
147 CALL
pkb(2**7 , 8 , mbay(1,lun),mbit)
148 CALL
pkb(ibct , 16 , mbay(1,lun),mbit)
149 CALL
pkb(isub , 16 , mbay(1,lun),mbit)
150 CALL
pkb(ipd1 , 16 , mbay(1,lun),mbit)
151 CALL
pkb(ipd2 , 16 , mbay(1,lun),mbit)
152 CALL
pkb(ipd3 , 16 , mbay(1,lun),mbit)
153 CALL
pkb(ipd4 , 16 , mbay(1,lun),mbit)
154 CALL
pkb( 0 , 8 , mbay(1,lun),mbit)
159 CALL
pkb(nby4 , 24 , mbay(1,lun),mbit)
160 CALL
pkb( 0 , 8 , mbay(1,lun),mbit)
165 CALL
pkc(sevn , 4 , mbay(1,lun),mbit)
170 IF(mod(mbit,8).NE.0) goto 903
171 IF(mbit/8.NE.nbyt ) goto 904
173 nmsg(lun) = nmsg(lun)+1
183 900
WRITE(bort_str,
'("BUFRLIB: MSGINI - MISMATCH BETWEEN INODE (=",'//
184 .
'I7,") & POSITIONAL INDEX, INOD (",I7,") OF SUBTAG (",A,") IN '//
185 .
'DICTIONARY")') inode(lun),inod,subtag
187 901
WRITE(bort_str,
'("BUFRLIB: MSGINI - TABLE A MESSAGE TYPE '//
188 .
'MNEMONIC ",A," NOT FOUND IN INTERNAL TABLE D ARRAYS")') subtag
191 . (
'BUFRLIB: MSGINI - BUFR MESSAGE DATE (IDATE) is 0000000000')
192 903 CALL
bort(
'BUFRLIB: MSGINI - INITIALIZED MESSAGE DOES NOT END '//
193 .
'ON A BYTE BOUNDARY')
194 904
WRITE(bort_str,
'("BUFRLIB: MSGINI - NUMBER OF BYTES STORED FOR '//
195 .
'INITIALIZED MESSAGE (",I6,") IS NOT THE SAME AS FIRST '//
196 .
'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 SEARCHES FOR MNEMONIC NEMO WITHIN THE INTERNAL TABLE B AND D ARRAYS HOLDING THE DICTI...
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 MNEMONIC NEMO WITHIN THE INTERNAL TABLE A ARRAYS HOLDING THE DICTIONARY ...