SUBROUTINE SY_EXTM ( iubfma, iubfmn ) C************************************************************************ C* SY_EXTM * C* * C* This routine gets and stores the extreme temperature data. * C* * C* SY_EXTM ( 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 09/12 * C************************************************************************ INCLUDE 'GEMPRM.PRM' INCLUDE 'sycmn.cmn' C* REAL*8 r8extm (12) C*----------------------------------------------------------------------- C C* Initialize the output array. C DO ii = 1, 12 r8extm (ii) = r8bfms END DO C C* Check for data in the EXTRTEM2 sequence. C CALL UFBSEQ ( iubfma, r8wk, MXMN, MXLV, nlv, 'EXTRTEM2' ) r8extm (1) = r8wk (1,1) DO ii = 2, 7 r8extm (ii+1) = r8wk (ii,1) END DO C IF ( ( gots96 .or. gots91 ) .and. + ( IBFMS ( r8extm (5) ) .eq. 1 ) .and. + ( IBFMS ( r8extm (8) ) .eq. 1 ) ) THEN C C* Check for data in the EXTRTEMP sequence. C CALL UFBSEQ ( iubfma, r8wk, MXMN, MXLV, nlv, 'EXTRTEMP' ) r8extm (1) = r8wk (1,1) r8extm (2) = r8wk (2,1) IF ( IBFMS ( r8wk (3,1) ) .eq. 1 ) THEN r8extm (3) = r8bfms r8extm (4) = r8bfms r8extm (6) = r8bfms r8extm (7) = r8bfms ELSE r8extm (3) = r8wk(3,1) / 60. r8extm (4) = 0. r8extm (6) = r8wk(3,1) / 60. r8extm (7) = 0. END IF r8extm (5) = r8wk (4,1) r8extm (8) = r8wk (5,1) r8extm (9) = r8wk (6,1) r8extm (11) = r8wk (7,1) r8extm (12) = r8wk (8,1) END IF C C* Check if there is any data to store. C IF ( ( IBFMS ( r8extm (5) ) .eq. 0 ) .or. + ( IBFMS ( r8extm (8) ) .eq. 0 ) .or. + ( IBFMS ( r8extm (12) ) .eq. 0 ) ) THEN CALL DRFINI ( iubfmn, 1, 1, '' ) CALL UFBSEQ ( iubfmn, r8extm, 12, 1, nlv, 'BSYEXTM' ) END IF C* RETURN END