SUBROUTINE SY_PRWX ( iubfma, iubfmn )
C************************************************************************
C* SY_PRWX								*
C*									*
C* This routine gets and stores the present and past weather data.	*
C*									*
C* SY_PRWX ( IUBFMA, IUBFMN )						*
C*									*
C* Input parameters:							*
C*	IUBFMA		INTEGER		Logical unit number of messages	*
C*					file for BUFR input stream	*
C*	IUBFMN		INTEGER		Logical unit number of messages	*
C*					file for BUFR output stream	*
C**									*
C* Log:									*
C* J. Ator/NCEP		01/13						*
C* J. Ator/NCEP         06/23   Process 3-07-092 messages               *
C************************************************************************
	INCLUDE		'GEMPRM.PRM'
	INCLUDE		'sycmn.cmn'
C*
	REAL*8		r8prwx (4)
C*
	CHARACTER	tagpr*10
C*-----------------------------------------------------------------------
C
C*	Get the data.
C
	IF ( gots96 .or. gots92 ) THEN
	    DO ii = 1, 4
		r8prwx (ii) = r8bfms
	    END DO
	    CALL GETTAGPR ( iubfma, 'PRWE', 1, tagpr, ierctg )
	    IF ( ierctg .eq. 0 ) THEN
		CALL UFBSEQ ( iubfma, r8wk, MXMN, MXLV, nlv, tagpr )
		IF ( nlv .eq. 1 ) THEN
                    IF ( gots92 ) THEN
		      r8prwx (1) = r8wk (4,1)
                    ELSE
		      r8prwx (1) = r8wk (1,1)
		      r8prwx (2) = r8wk (5,1)
		      r8prwx (3) = r8wk (6,1)
		      r8prwx (4) = r8wk (7,1)
                    END IF
		END IF
	    END IF 
	ELSE IF ( gots91 ) THEN
	    CALL UFBSEQ ( iubfma, r8prwx, 4, 1, nlv, 'PREPSTWX' )
	    IF ( IBFMS ( r8prwx (2) ) .eq. 0 ) THEN
C
C*		Convert TPMI to TPHR.
C
		r8prwx (2) = FLOAT( IDNINT( r8prwx (2) / 60. ) )
	    END IF
	ELSE
	    CALL UFBSEQ ( iubfma, r8prwx, 4, 1, nlv, 'PWEATHER' )
	END IF
C
C*	Store the data, unless it's missing.
C
	IF ( ( IBFMS ( r8prwx (1) ) .eq. 0 ) .or.
     +	     ( IBFMS ( r8prwx (3) ) .eq. 0 ) .or.
     +	     ( IBFMS ( r8prwx (4) ) .eq. 0 ) )  THEN
	    CALL DRFINI ( iubfmn, 1, 1, '<PWEATHER>' )
	    CALL UFBSEQ ( iubfmn, r8prwx, 4, 1, nlv, 'PWEATHER' )
	END IF
C*
	RETURN
	END