SUBROUTINE EL_GDRC ( iubfma, nivr, naha, niii, ncld, + nive, nivs, nr8ot, iret ) C************************************************************************ C* EL_GDRC * C* * C* This subroutine gets the delayed replication counts from a satellite * C* wind report which uses the 310077 sequence. * C* * C* EL_GDRC ( IUBFMA, NIVR, NAHA, NIII, NCLD, NIVE, NIVS, NR8OT, IRET ) * C* * C* Input parameters: * C* IUBFMA INTEGER Logical unit number of messages * C* file for BUFR input stream * C* * C* Output parameters: * C* NIVR INTEGER Number of AMVIVR replications * C* NAHA INTEGER Number of AMVAHA replications * C* NIII INTEGER Number of AMVIII replications * C* NCLD INTEGER Number of AMVCLD replications * C* NIVE INTEGER(*) Number of AMVIVE replications * C* nested within each AMVIVR * C* NIVS INTEGER(*) Number of AMVIVS replications * C* nested within each AMVIVR * C* NR8OT INTEGER Total count of output values * C* IRET INTEGER Return code: * C* 0 = normal return * C** * C* Log: * C* J. Ator/NCEP 09/23 * C************************************************************************ INCLUDE 'GEMPRM.PRM' INCLUDE 'elcmn.cmn' INTEGER nive(*), nivs(*) CHARACTER tagivr*10, tagaha*10, tagiii*10, tagcld*10, + tagive*10, tagivs*10 C*----------------------------------------------------------------------- iret = 0 C* Get the tags for the delayed replication sequences. CALL GETTAGPR ( iubfma, 'TCOV', 1, tagivr, iertg ) CALL GETTAGPR ( iubfma, 'EHAM', 2, tagaha, iertg ) CALL GETTAGPR ( iubfma, 'BEARAZ', 1, tagiii, iertg ) CALL GETTAGPR ( iubfma, 'CDTP', 1, tagcld, iertg ) CALL GETTAGPR ( iubfma, 'XEEM', 1, tagive, iertg ) CALL GETTAGPR ( iubfma, 'UWND', 3, tagivs, iertg ) C* Get the delayed replication counts, along with the total count C* of output values for the fully-expanded 310077 sequence. CALL UFBINT ( iubfma, r8wk, MXP, MXL, ierufb, + '{' // tagivr(1:8) // '} ' // + '{' // tagaha(1:8) // '} ' // + '{' // tagiii(1:8) // '} ' // + '{' // tagcld(1:8) // '}' ) nivr = IDNINT ( r8wk (1,1) ) naha = IDNINT ( r8wk (2,1) ) niii = IDNINT ( r8wk (3,1) ) ncld = IDNINT ( r8wk (4,1) ) nr8ot = ( naha * 4 ) + ( niii * 13 ) + + ( ncld * 17 ) + 69 CALL UFBINT ( iubfma, r8wk, MXP, MXL, ierufb, + '{' // tagive(1:8) // '} ' // + '{' // tagivs(1:8) // '}' ) DO jj = 1, nivr nive (jj) = IDNINT ( r8wk (1,jj) ) nivs (jj) = IDNINT ( r8wk (2,jj) ) nr8ot = nr8ot + ( nive (jj) * 3 ) + + ( nivs (jj) * 3 ) + 9 END DO RETURN END