SUBROUTINE MF_CRPF ( iubfma, iubfmn ) C************************************************************************ C* MF_CRPF * C* * C* This routine gets and stores the current profile data. * C* * C* MF_CRPF ( 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* Log: * C* J. Ator/NCEP 08/16 * C************************************************************************ INCLUDE 'GEMPRM.PRM' INCLUDE 'mfcmn.cmn' C* REAL*8 GETVALNB, r8v C* CHARACTER tagpr*10 C*----------------------------------------------------------------------- C C* First, check whether the report even contains a current profile. C CALL GETTAGPR ( iubfma, 'CURRNTPF', 1, tagpr, iertg ) IF ( iertg .ne. 0 ) RETURN CALL ST_LSTR ( tagpr, ltagpr, ier ) CALL UFBINT ( iubfma, r8in, MXMN, MXLV, nlv, + '<' // tagpr(1:ltagpr) // '>' ) IF ( IDNINT( r8in(1,1) ) .eq. 0 ) RETURN C C* Get and store the current profile data. C CALL DRFINI ( iubfmn, 1, 1, '' ) r8v = GETVALNB ( iubfma, 'CURRNTPF', 1, 'IDGT', -1 ) CALL SETVALNB ( iubfmn, 'CURRNTPF', 1, 'IDGT', -1, r8v, ier ) r8v = GETVALNB ( iubfma, 'CURRNTPF', 1, 'MSCM', -1 ) CALL SETVALNB ( iubfmn, 'CURRNTPF', 1, 'MSCM', -1, r8v, ier ) r8v = GETVALNB ( iubfma, 'CURRNTPF', 1, 'DTCC', -1 ) CALL SETVALNB ( iubfmn, 'CURRNTPF', 1, 'DTCC', -1, r8v, ier ) r8v = GETVALNB ( iubfma, 'CURRNTPF', 1, 'MRMV', -1 ) CALL SETVALNB ( iubfmn, 'CURRNTPF', 1, 'MRMV', -1, r8v, ier ) r8v = GETVALNB ( iubfma, 'CURRNTPF', 1, 'DIPR', -1 ) CALL SETVALNB ( iubfmn, 'CURRNTPF', 1, 'DIPR', -1, r8v, ier ) r8v = GETVALNB ( iubfma, 'CURRNTPF', 1, 'MDCL', -1 ) CALL SETVALNB ( iubfmn, 'CURRNTPF', 1, 'MDCL', -1, r8v, ier ) C CALL GETTAGPR ( iubfma, 'SPOC', 1, tagpr, iertg ) CALL UFBSEQ ( iubfma, r8in, MXMN, MXLV, nlv, tagpr ) IF ( nlv .gt. 0 ) THEN CALL DRFINI ( iubfmn, nlv, 1, '(CURRPFSQ)' ) CALL UFBSEQ ( iubfmn, r8in, MXMN, nlv, nlv2, 'CURRPFSQ' ) END IF C* RETURN END