SUBROUTINE EP_BFIF ( iubfma, corr, iret ) C************************************************************************ C* EP_BFIF * C* * C* This subroutine decodes a report from a European profiler BUFR * C* message, converts it into interface output, and then writes the * C* interface output into the interface arrays. * C* * C* EP_BFIF ( IUBFMA, CORR, IRET ) * C* * C* Input parameters: * C* IUBFMA INTEGER Logical unit number of European * C* profiler BUFR messages file * C* Output parameters: * C* R8VALS (IRMEFR) REAL*8 Mean frequency * C* RIVALS (IRWMOB) REAL WMO block number * C* RIVALS (IRWMOS) REAL WMO station number * C* RIVALS (IRTOST) REAL Type of station * C* (WMO BUFR Table 0 02 001) * C* RIVALS (IRSLAT) REAL Latitude in degrees * C* RIVALS (IRSLON) REAL Longitude in degrees * C* RIVALS (IRSELV) REAL Station elevation in meters * C* RIVALS (IRYEAR) REAL Report year * C* RIVALS (IRMNTH) REAL Report month * C* RIVALS (IRDAYS) REAL Report day * C* RIVALS (IRHOUR) REAL Report hour * C* RIVALS (IRMINU) REAL Report minute * C* RIVALS (IRA4ME) REAL Type of measuring equipment * C* (WMO BUFR Table 0 02 003) * C* RIVALS (IRATYP) REAL Type of antenna * C* (WMO BUFR Table 0 02 121) * C* RIVALS (IRBEMW) REAL 3-dB beam width in degrees * C* RIVALS (IRRAGL) REAL Range-gate length in meters * C* RIVALS (IRMSPE) REAL Mean speed estimation * C* (WMO BUFR Table 0 25 020) * C* RIVALS (IRWICE) REAL Wind computation enhancement * C* (WMO BUFR Table 0 25 021) * C* RIVALS (IRTSIG) REAL Time significance * C* (WMO BUFR Table 0 08 021) * C* RIVALS (IRTPMI) REAL Time displacement in minutes * C* RIVALS (IRNLEV) REAL Total number of profiler levels * C* RIVALS (IRHGTM) REAL Height in meters * C* RIVALS (IRQMDR) REAL Wind direction quality mark * C* (WMO BUFR Table 0 33 002) * C* RIVALS (IRDRCT) REAL Wind direction in degrees * C* RIVALS (IRSPED) REAL Wind speed in m/s * C* RIVALS (IRQMWC) REAL W component quality mark * C* (WMO BUFR Table 0 33 002) * C* RIVALS (IRWCMP) REAL W component in m/s * C* RIVALS (IRSTNR) REAL Signal to noise ratio in dB * C* CORR LOGICAL Corrected report indicator * C* IRET INTEGER Return code: * C* 0 = normal return * C** * C* Log: * C* J. Ator/NCEP 03/06 * C************************************************************************ INCLUDE 'GEMPRM.PRM' INCLUDE 'epcmn.cmn' C* LOGICAL corr C* REAL*8 r8mlv ( 9, MXBFLV ) C*----------------------------------------------------------------------- iret = 0 C C* Decode the single-level data into the interface arrays. C CALL UFBINT ( iubfma, r8vals ( irmefr ), 1, 1, ierufb, 'MEFR' ) C CALL UT_BFRI ( iubfma, 'WMOB', rivals ( irwmob ), ierbri ) CALL UT_BFRI ( iubfma, 'WMOS', rivals ( irwmos ), ierbri ) CALL UT_BFRI ( iubfma, 'TOST', rivals ( irtost ), ierbri ) CALL UT_BFRI ( iubfma, 'CLAT', rivals ( irslat ), ierbri ) CALL UT_BFRI ( iubfma, 'CLON', rivals ( irslon ), ierbri ) CALL UT_BFRI ( iubfma, 'SELV', rivals ( irselv ), ierbri ) CALL UT_BFRI ( iubfma, 'YEAR', rivals ( iryear ), ierbri ) CALL UT_BFRI ( iubfma, 'MNTH', rivals ( irmnth ), ierbri ) CALL UT_BFRI ( iubfma, 'DAYS', rivals ( irdays ), ierbri ) CALL UT_BFRI ( iubfma, 'HOUR', rivals ( irhour ), ierbri ) CALL UT_BFRI ( iubfma, 'MINU', rivals ( irminu ), ierbri ) CALL UT_BFRI ( iubfma, 'A4ME', rivals ( ira4me ), ierbri ) CALL UT_BFRI ( iubfma, 'ANTYP', rivals ( iratyp ), ierbri ) CALL UT_BFRI ( iubfma, 'BEAMW', rivals ( irbemw ), ierbri ) CALL UT_BFRI ( iubfma, 'RAGL', rivals ( irragl ), ierbri ) CALL UT_BFRI ( iubfma, 'MSPE', rivals ( irmspe ), ierbri ) CALL UT_BFRI ( iubfma, 'WICE', rivals ( irwice ), ierbri ) CALL UT_BFRI ( iubfma, 'TSIG', rivals ( irtsig ), ierbri ) CALL UT_BFRI ( iubfma, 'TPMI', rivals ( irtpmi ), ierbri ) C C* Decode the multi-level data into the interface arrays. C CALL UFBSEQ ( iubfma, r8mlv, 9, MXBFLV, nlev, 'EPSEQF' ) C rivals ( irnlev ) = FLOAT ( nlev ) C IF ( nlev .gt. 0 ) THEN DO jj = 1, nlev rivals ( irhgtm ( jj ) ) = UT_BMRI ( r8mlv ( 1, jj ) ) rivals ( irdrct ( jj ) ) = UT_BMRI ( r8mlv ( 4, jj ) ) rivals ( irsped ( jj ) ) = UT_BMRI ( r8mlv ( 5, jj ) ) rivals ( irwcmp ( jj ) ) = UT_BMRI ( r8mlv ( 8, jj ) ) rivals ( irstnr ( jj ) ) = UT_BMRI ( r8mlv ( 9, jj ) ) CALL EP_AFQM ( UT_BMRI ( r8mlv ( 2, jj ) ), + UT_BMRI ( r8mlv ( 3, jj ) ), + rivals ( irqmdr ( jj ) ), corr ) CALL EP_AFQM ( UT_BMRI ( r8mlv ( 6, jj ) ), + UT_BMRI ( r8mlv ( 7, jj ) ), + rivals ( irqmwc ( jj ) ), corr ) END DO END IF C* RETURN END