51 COMMON /mrgcom/ nrpl,nmrg,namb,ntot
53 CHARACTER*128 bort_str
54 LOGICAL herei,herej,missi,missj,samei
65 CALL
status(lubfi,luni,il,im)
66 CALL
status(lubfj,lunj,jl,jm)
71 DO WHILE(is.LE.nval(luni))
78 IF(node.NE.nodj) goto 900
86 IF(typ(node).EQ.
'DRB') ioff = 0
87 IF(typ(node).NE.
'DRB') ioff = 1
88 iwrds =
nwords(is,luni)+ioff
89 jwrds =
nwords(js,lunj)+ioff
90 IF(iwrds.GT.ioff .AND. jwrds.EQ.ioff)
THEN
91 DO n=nval(lunj),js+1,-1
92 inv(n+iwrds-jwrds,lunj) = inv(n,lunj)
93 val(n+iwrds-jwrds,lunj) = val(n,lunj)
96 inv(js+n,lunj) = inv(is+n,luni)
97 val(js+n,lunj) = val(is+n,luni)
99 nval(lunj) = nval(lunj)+iwrds-jwrds
110 IF((ityp.EQ.2).OR.(ityp.EQ.3))
THEN
111 herei =
ibfms(val(is,luni)).EQ.0
112 herej =
ibfms(val(js,lunj)).EQ.0
115 samei = val(is,luni).EQ.val(js,lunj)
116 IF(herei.AND.missj)
THEN
117 val(js,lunj) = val(is,luni)
119 ELSEIF(herei.AND.herej.AND..NOT.samei)
THEN
137 900
WRITE(bort_str,
'("BUFRLIB: INVMRG - NODE FROM INPUT BUFR FILE '//
138 .
'(",I7,") DOES NOT EQUAL NODE FROM OUTPUT BUFR FILE (",I7,"), '//
139 .
'TABULAR MISMATCH")') node,nodj
subroutine invmrg(LUBFI, LUBFJ)
THIS SUBROUTINE MERGES "PARTS" OF SUBSETS WHICH HAVE DUPLICATE SPACE AND TIME COORDINATES BUT DIFFERE...
function nwords(N, LUN)
THIS FUNCTION ADDS UP THE COMPLETE LENGTH OF THE DELAYED REPLICATION SEQUENCE BEGINNING AT INDEX N OF...
INTEGER function ibfms(R8VAL)
This function provides a handy way to check whether a real*8 data value returned from a previous call...
This module contains array and variable declarations used to store the internal jump/link table...
subroutine status(LUNIT, LUN, IL, IM)
This subroutine checks whether a specified Fortran logical unit number is currently connected to the ...
subroutine bort(STR)
This subroutine calls subroutine errwrt() to log an error message, then calls subroutine bort_exit() ...