<HTML> <BODY BGCOLOR=#ccccdd LINK=#0000aa VLINK=#0000ff ALINK=#ff0000 ><BASE TARGET="bottom_target"><PRE>
<A NAME='IUPVS01'><A href='../../html_code/bufr/iupvs01.f.html#IUPVS01' TARGET='top_target'><IMG SRC="../../gif/bar_green.gif" border=0></A>
FUNCTION IUPVS01(LUNIT,S01MNEM),5
C$$$ SUBPROGRAM DOCUMENTATION BLOCK
C
C SUBPROGRAM: IUPVS01
C PRGMMR: ATOR ORG: NP12 DATE: 2005-11-29
C
C ABSTRACT: THIS FUNCTION UNPACKS AND RETURNS A SPECIFIED INTEGER VALUE
C FROM SECTION 0 OR SECTION 1 OF THE LAST BUFR MESSAGE THAT WAS READ
C FROM LOGICAL UNIT NUMBER LUNIT VIA BUFR ARCHIVE LIBRARY SUBROUTINE
C READMG, READERME OR EQUIVALENT. IT WILL WORK ON ANY MESSAGE ENCODED
C USING BUFR EDITION 2, 3 OR 4, AND THE VALUE TO BE UNPACKED IS
C SPECIFIED VIA THE MNEMONIC S01MNEM (SEE THE DOCBLOCK OF BUFR ARCHIVE
C LIBRARY FUNCTION IUPBS01 FOR A LISTING OF POSSIBLE VALUES FOR
C S01MNEM). NOTE THAT THIS FUNCTION IS SIMILAR TO BUFR ARCHIVE
C LIBRARY FUNCTION IUPBS01 EXCEPT THAT IT OPERATES ON A BUFR MESSAGE
C THAT HAS ALREADY BEEN READ INTO THE INTERNAL BUFR ARCHIVE LIBRARY
C ARRAYS (VIA A PREVIOUS CALL TO READMG, READERME, ETC.) RATHER THAN
C ON A BUFR MESSAGE PASSED DIRECTLY INTO THE FUNCTION VIA A MEMORY
C ARRAY.
C
C PROGRAM HISTORY LOG:
C 2005-11-29 J. ATOR -- ORIGINAL AUTHOR
C
C USAGE: IUPVS01 (LUNIT, S01MNEM)
C INPUT ARGUMENT LIST:
C LUNIT - INTEGER: FORTRAN LOGICAL UNIT NUMBER FOR BUFR FILE
C S01MNEM - CHARACTER*(*): MNEMONIC SPECIFYING VALUE TO BE
C UNPACKED FROM SECTION 0 OR SECTION 1 OF BUFR MESSAGE
C (SEE DOCBLOCK OF FUNCTION IUPBS01 FOR LISTING OF
C POSSIBLE VALUES)
C
C OUTPUT ARGUMENT LIST:
C IUPVS01 - INTEGER: UNPACKED INTEGER VALUE
C -1 = THE INPUT S01MNEM MNEMONIC WAS INVALID
C
C REMARKS:
C THIS ROUTINE CALLS: BORT IUPBS01 STATUS
C THIS ROUTINE IS CALLED BY: None
C Normally called only by application
C programs.
C
C ATTRIBUTES:
C LANGUAGE: FORTRAN 77
C MACHINE: PORTABLE TO ALL PLATFORMS
C
C$$$
INCLUDE 'bufrlib.prm'
COMMON /BITBUF/ MAXBYT,IBIT,IBAY(MXMSGLD4),MBYT(NFILES),
. MBAY(MXMSGLD4,NFILES)
CHARACTER*(*) S01MNEM
C-----------------------------------------------------------------------
C-----------------------------------------------------------------------
C CHECK THE FILE STATUS
C ---------------------
CALL STATUS
(LUNIT,LUN,ILST,IMST)
IF(ILST.EQ.0) GOTO 900
IF(ILST.GT.0) GOTO 901
IF(IMST.EQ.0) GOTO 902
C UNPACK THE REQUESTED VALUE
C --------------------------
IUPVS01 = IUPBS01
(MBAY(1,LUN),S01MNEM)
C EXITS
C -----
RETURN
900 CALL BORT
('BUFRLIB: IUPVS01 - INPUT BUFR FILE IS CLOSED, IT '//
. 'MUST BE OPEN FOR INPUT')
901 CALL BORT
('BUFRLIB: IUPVS01 - INPUT BUFR FILE IS OPEN FOR '//
. 'OUTPUT, IT MUST BE OPEN FOR INPUT')
902 CALL BORT
('BUFRLIB: IUPVS01 - A MESSAGE MUST BE OPEN IN INPUT '//
. 'BUFR FILE, NONE ARE')
END