74 CHARACTER*128 BORT_STR
75 dimension nbmp(2,maxrcr),newn(2,maxrcr)
87 inv(1,lun) = inode(lun)
107 IF(nr.GT.maxrcr)
GOTO 900
113 IF(n1.EQ.0 )
GOTO 901
114 IF(n2-n1+1.GT.
maxjl)
THEN
116 CALL errwrt(
'++++++++++++++BUFR ARCHIVE LIBRARY+++++++++++++++++')
117 CALL errwrt(
'BUFRLIB: RCSTPL - MAXJL OVERFLOW; SUBSET SKIPPED')
118 CALL errwrt(
'++++++++++++++BUFR ARCHIVE LIBRARY+++++++++++++++++')
129 vutmp(n,nr) =
vali(nn)
13520
DO i=nbmp(1,nr),nbmp(2,nr)
136 IF(knx(nr).EQ.0000) knx(nr) = knvn
137 IF(i.GT.nbmp(1,nr)) newn(1,nr) = 1
138 DO j=newn(1,nr),newn(2,nr)
139 IF(knvn+1.GT.
maxss)
THEN
141 CALL errwrt(
'++++++++++++++BUFR ARCHIVE LIBRARY+++++++++++++++++')
142 CALL errwrt(
'BUFRLIB: RCSTPL - MAXSS OVERFLOW; SUBSET SKIPPED')
143 CALL errwrt(
'++++++++++++++BUFR ARCHIVE LIBRARY+++++++++++++++++')
155 mbit(knvn) = mbit(knvn-1)+nbit(knvn-1)
158 nrfelm(knvn,lun) =
igetrfel(knvn,lun)
159 nbit(knvn) =
ibt(node)
160 IF(
tag(node)(1:5).EQ.
'DPRI ')
THEN
162 CALL upbb(idpri,nbit(knvn),mbit(knvn),
mbay(1,lun))
166 val(knvn,lun) =
bmiss
172 val(knvn,lun) = vutmp(j,nr)
173 IF(
itp(node).EQ.1)
THEN
174 CALL upbb(mbmp,nbit(knvn),mbit(knvn),
mbay(1,lun))
181 val(knx(nr)+1,lun) = val(knx(nr)+1,lun) + new
202900
WRITE(bort_str,
'("BUFRLIB: RCSTPL - THE NUMBER OF RECURSION '//
203 .
'LEVELS EXCEEDS THE LIMIT (",I3,")")') maxrcr
205901
WRITE(bort_str,
'("BUFRLIB: RCSTPL - UNSET EXPANSION SEGMENT ",A)')
subroutine bort(STR)
This subroutine calls subroutine errwrt() to log an error message, then calls subroutine bort_exit() ...
subroutine errwrt(STR)
This subroutine allows the user to specify a custom location for the logging of error and diagnostic ...
integer function igetrfel(N, LUN)
THIS FUNCTION CHECKS WHETHER THE INPUT ELEMENT REFERS TO A PREVIOUS ELEMENT WITHIN THE SAME SUBSET VI...
This module contains array and variable declarations used to store BUFR messages internally for multi...
integer, dimension(:,:), allocatable mbay
Current BUFR message for each internal I/O stream.
This module contains array and variable declarations used to store the internal jump/link table.
integer, dimension(:), allocatable itp
Integer type values corresponding to typ:
integer, dimension(:), allocatable ibt
Bit widths corresponding to tag and typ:
character *10, dimension(:), allocatable tag
Mnemonics in the jump/link table.
real *8, dimension(:), allocatable vali
Initialized data values corresponding to typ:
This module declares and initializes the BMISS variable.
real *8, public bmiss
Current placeholder value to represent "missing" data when reading from or writing to BUFR files; thi...
This module declares and initializes the MAXJL variable.
integer maxjl
Maximum number of entries in the internal jump/link table.
This module declares and initializes the MAXSS variable.
integer maxss
Maximum number of data values that can be read from or written into a data subset by the BUFRLIB soft...
subroutine rcstpl(LUN, IRET)
THIS SUBROUTINE STORES THE SUBSET TEMPLATE INTO INTERNAL SUBSET ARRAYS IN MODULES USRINT AND USRBIT.
subroutine strbtm(N, LUN)
THIS SUBROUTINE STORES INTERNAL INFORMATION IN MODULE BITMAPS IF THE INPUT ELEMENT IS PART OF A BITMA...
subroutine upbb(NVAL, NBITS, IBIT, IBAY)
THIS SUBROUTINE UNPACKS AND RETURNS A BINARY INTEGER CONTAINED WITHIN NBITS BITS OF IBAY,...