NCEPLIBS-bufr 11.7.1
ufbevn.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine ufbevn (LUNIT, USR, I1, I2, I3, IRET, STR)
 THIS SUBROUTINE READS SPECIFIED VALUES FROM THE CURRENT BUFR DATA SUBSET WITHIN INTERNAL ARRAYS. More...
 

Detailed Description

Author
WOOLLEN
Date
1994-01-06

Definition in file ufbevn.f.

Function/Subroutine Documentation

◆ ufbevn()

subroutine ufbevn (   LUNIT,
real*8, dimension(i1,i2,i3)  USR,
  I1,
  I2,
  I3,
  IRET,
character*(*)  STR 
)

THIS SUBROUTINE READS SPECIFIED VALUES FROM THE CURRENT BUFR DATA SUBSET WITHIN INTERNAL ARRAYS.

THE DATA VALUES CORRESPOND TO MNEMONICS WHICH ARE PART OF A MULTIPLE-REPLICATION SEQUENCE WITHIN ANOTHER MULTIPLE-REPLICATION SEQUENCE. THE INNER SEQUENCE IS USUALLY ASSOCIATED WITH DATA "LEVELS" AND THE OUTER SEQUENCE WITH DATA "EVENTS". THE BUFR FILE IN LOGICAL UNIT LUNIT MUST HAVE BEEN OPENED FOR INPUT VIA A PREVIOUS CALL TO BUFR ARCHIVE LIBRARY SUBROUTINE OPENBF. IN ADDITION, THE DATA SUBSET MUST HAVE SUBSEQUENTLY BEEN READ INTO THE INTERNAL BUFR ARCHIVE LIBRARY ARRAYS VIA CALLS TO BUFR ARCHIVE LIBRARY SUBROUTINE READMG OR READERME FOLLOWED BY A CALL TO BUFR ARCHIVE LIBRARY SUBROUTINE READSB (OR VIA A SINGLE CALL TO BUFR ARCHIVE LIBRARY SUBROUTINE READNS). OTHER THAN THE ADDITION OF A THIRD DIMENSION AND THE READ ONLY RESTRICTION, THE CONTEXT AND USAGE OF UFBEVN IS EXACTLY THE SAME AS FOR BUFR ARCHIVE LIBRARY SUBROUTINES UFBINT, UFBREP AND UFBSEQ. THIS SUBROUTINE IS DESIGNED TO READ EVENT INFORMATION FROM "PREPBUFR" TYPE BUFR FILES. PREPBUFR FILES HAVE THE FOLLOWING BUFR TABLE EVENT STRUCTURE (NOTE SIXTEEN CHARACTERS HAVE BEEN REMOVED FROM THE LAST COLUMN TO ALLOW THE TABLE TO FIT IN THIS DOCBLOCK):

ADPUPA HEADR {PLEVL}
HEADR SID XOB YOB DHR ELV TYP T29 TSB ITP SQN
PLEVL CAT <PINFO> <QINFO> <TINFO> <ZINFO> <WINFO>
PINFO [PEVN] <PBACKG> <PPOSTP>
QINFO [QEVN] TDO <QBACKG> <QPOSTP>
TINFO [TEVN] TVO <TBACKG> <TPOSTP>
ZINFO [ZEVN] <ZBACKG> <ZPOSTP>
WINFO [WEVN] <WBACKG> <WPOSTP>
PEVN POB PQM PPC PRC
QEVN QOB QQM QPC QRC
TEVN TOB TQM TPC TRC
ZEVN ZOB ZQM ZPC ZRC
WEVN UOB WQM WPC WRC VOB
PBACKG POE PFC
QBACKG QOE QFC
TBACKG TOE TFC
ZBACKG ZOE ZFC
WBACKG WOE UFC VFC
PPOSTP PAN
QPOSTP QAN
TPOSTP TAN
ZPOSTP ZAN
WPOSTP UAN VAN

NOTE THAT THE EIGHT-BIT DELAYED REPLIATION EVENT SEQUENCES "[xxxx]" ARE NESTED INSIDE ONE-BIT DELAYED REPLICATED SEQUENCES "<yyyy>". THE ANALOGOUS BUFR ARCHIVE LIBRARY SUBROUTINE UFBIN3 DOES NOT WORK PROPERLY ON THIS TYPE OF EVENT STRUCTURE. IT WORKS ONLY ON THE EVENT STRUCTURE FOUND IN "PREPFITS" TYPE BUFR FILES (SEE UFBIN3 FOR MORE DETAILS). IN TURN, UFBEVN DOES NOT WORK PROPERLY ON THE EVENT STRUCTURE FOUND IN PREPFITS FILES (ALWAYS USE UFBIN3 IN THIS CASE). ONE OTHER DIFFERENCE BETWEEN UFBEVN AND UFBIN3 IS THAT UFBEVN STORES THE MAXIMUM NUMBER OF EVENTS FOUND FOR ALL DATA VALUES SPECIFIED AMONGST ALL LEVELS RETURNED INTERNALLY IN COMMON BLOCK /UFBN3C/. UFBIN3 RETURNS THIS VALUE AS AN ADDITIONAL OUTPUT ARGUMENT.

PROGRAM HISTORY LOG: 1994-01-06 J. WOOLLEN – ORIGINAL AUTHOR 1998-07-08 J. WOOLLEN – REPLACED CALL TO CRAY LIBRARY ROUTINE "ABORT" WITH CALL TO NEW INTERNAL BUFRLIB ROUTINE "BORT"; IMPROVED MACHINE PORTABILITY 1999-11-18 J. WOOLLEN – THE NUMBER OF BUFR FILES WHICH CAN BE OPENED AT ONE TIME INCREASED FROM 10 TO 32 (NECESSARY IN ORDER TO PROCESS MULTIPLE BUFR FILES UNDER THE MPI) 2003-11-04 J. WOOLLEN – SAVES THE MAXIMUM NUMBER OF EVENTS FOUND FOR ALL DATA VALUES SPECIFIED AMONGST ALL LEVELS RETURNED AS VARIABLE MAXEVN IN NEW COMMON BLOCK /UFBN3C/ 2003-11-04 S. BENDER – ADDED REMARKS/BUFRLIB ROUTINE INTERDEPENDENCIES 2003-11-04 D. KEYSER – MAXJL (MAXIMUM NUMBER OF JUMP/LINK ENTRIES) INCREASED FROM 15000 TO 16000 (WAS IN VERIFICATION VERSION); ADDED CALL TO BORT IF BUFR FILE IS OPEN FOR OUTPUT; UNIFIED/ PORTABLE FOR WRF; ADDED DOCUMENTATION (INCLUDING HISTORY); OUTPUTS MORE COMPLETE DIAGNOSTIC INFO WHEN ROUTINE TERMINATES ABNORMALLY OR UNUSUAL THINGS HAPPEN 2009-04-21 J. ATOR – USE ERRWRT 2014-12-10 J. ATOR – USE MODULES INSTEAD OF COMMON BLOCKS

USAGE: CALL UFBEVN (LUNIT, USR, I1, I2, I3, IRET, STR) INPUT ARGUMENT LIST: LUNIT - INTEGER: FORTRAN LOGICAL UNIT NUMBER FOR BUFR FILE I1 - INTEGER: LENGTH OF FIRST DIMENSION OF USR (MUST BE AT LEAST AS LARGE AS THE NUMBER OF BLANK-SEPARATED MNEMONICS IN STR) I2 - INTEGER: LENGTH OF SECOND DIMENSION OF USR I3 - INTEGER: LENGTH OF THIRD DIMENSION OF USR (MAXIMUM VALUE IS 255) STR - CHARACTER*(*): STRING OF BLANK-SEPARATED TABLE B MNEMONICS IN ONE-TO-ONE CORRESPONDENCE WITH FIRST DIMENSION OF USR

  • THERE ARE THREE "GENERIC" MNEMONICS NOT RELATED TO TABLE B, THESE RETURN THE FOLLOWING INFORMATION IN CORRESPONDING USR LOCATION: 'NUL' WHICH ALWAYS RETURNS BMISS ("MISSING") 'IREC' WHICH ALWAYS RETURNS THE CURRENT BUFR MESSAGE (RECORD) NUMBER IN WHICH THIS SUBSET RESIDES 'ISUB' WHICH ALWAYS RETURNS THE CURRENT SUBSET NUMBER OF THIS SUBSET WITHIN THE BUFR MESSAGE (RECORD) NUMBER 'IREC'

OUTPUT ARGUMENT LIST: USR - REAL*8: (I1,I2,I3) STARTING ADDRESS OF DATA VALUES READ FROM DATA SUBSET IRET - INTEGER: NUMBER OF "LEVELS" OF DATA VALUES READ FROM DATA SUBSET (MUST BE NO LARGER THAN I2)

REMARKS: APPLICATION PROGRAMS READING PREPFITS FILES SHOULD NOT CALL THIS ROUTINE.

THIS ROUTINE CALLS: BORT CONWIN ERRWRT GETWIN NVNWIN NXTWIN STATUS STRING THIS ROUTINE IS CALLED BY: None Normally called only by application programs.

Definition at line 129 of file ufbevn.f.

References modv_bmiss::bmiss, bort(), conwin(), errwrt(), getwin(), nvnwin(), nxtwin(), status(), and string().