71 CHARACTER*128 bort_str
72 dimension nbmp(2,maxrcr),newn(2,maxrcr)
84 inv(1,lun) = inode(lun)
104 IF(nr.GT.maxrcr) goto 900
110 IF(n1.EQ.0 ) goto 901
111 IF(n2-n1+1.GT.maxjl)
THEN
113 CALL
errwrt(
'++++++++++++++BUFR ARCHIVE LIBRARY+++++++++++++++++')
114 CALL
errwrt(
'BUFRLIB: RCSTPL - MAXJL OVERFLOW; SUBSET SKIPPED')
115 CALL
errwrt(
'++++++++++++++BUFR ARCHIVE LIBRARY+++++++++++++++++')
126 vutmp(n,nr) = vali(nn)
132 20
DO i=nbmp(1,nr),nbmp(2,nr)
133 IF(knx(nr).EQ.0000) knx(nr) = knvn
134 IF(i.GT.nbmp(1,nr)) newn(1,nr) = 1
135 DO j=newn(1,nr),newn(2,nr)
136 IF(knvn+1.GT.maxss)
THEN
138 CALL
errwrt(
'++++++++++++++BUFR ARCHIVE LIBRARY+++++++++++++++++')
139 CALL
errwrt(
'BUFRLIB: RCSTPL - MAXSS OVERFLOW; SUBSET SKIPPED')
140 CALL
errwrt(
'++++++++++++++BUFR ARCHIVE LIBRARY+++++++++++++++++')
152 mbit(knvn) = mbit(knvn-1)+nbit(knvn-1)
155 nrfelm(knvn,lun) =
igetrfel(knvn,lun)
156 nbit(knvn) = ibt(node)
157 IF(tag(node)(1:5).EQ.
'DPRI ')
THEN
159 CALL
upbb(idpri,nbit(knvn),mbit(knvn),mbay(1,lun))
163 val(knvn,lun) = bmiss
169 val(knvn,lun) = vutmp(j,nr)
170 IF(itp(node).EQ.1)
THEN
171 CALL
upbb(mbmp,nbit(knvn),mbit(knvn),mbay(1,lun))
178 val(knx(nr)+1,lun) = val(knx(nr)+1,lun) + new
199 900
WRITE(bort_str,
'("BUFRLIB: RCSTPL - THE NUMBER OF RECURSION '//
200 .
'LEVELS EXCEEDS THE LIMIT (",I3,")")') maxrcr
202 901
WRITE(bort_str,
'("BUFRLIB: RCSTPL - UNSET EXPANSION SEGMENT ",A)')
subroutine upbb(NVAL, NBITS, IBIT, IBAY)
THIS SUBROUTINE UNPACKS AND RETURNS A BINARY INTEGER CONTAINED WITHIN NBITS BITS OF IBAY...
subroutine strbtm(N, LUN)
THIS SUBROUTINE STORES INTERNAL INFORMATION IN MODULE BITMAPS IF THE INPUT ELEMENT IS PART OF A BITMA...
This module declares and initializes the BMISS variable.
subroutine rcstpl(LUN, IRET)
THIS SUBROUTINE STORES THE SUBSET TEMPLATE INTO INTERNAL SUBSET ARRAYS IN MODULES USRINT AND USRBIT...
This module contains array and variable declarations used to store the internal jump/link table...
subroutine errwrt(STR)
This subroutine allows the user to specify a custom location for the logging of error and diagnostic ...
subroutine bort(STR)
This subroutine calls subroutine errwrt() to log an error message, then calls subroutine bort_exit() ...
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...