NCEPLIBS-bufr 11.7.1
ufbin3.f File Reference

Go to the source code of this file.

Functions/Subroutines

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

Detailed Description

Author
WOOLLEN
Date
2003-11-04

Definition in file ufbin3.f.

Function/Subroutine Documentation

◆ ufbin3()

subroutine ufbin3 (   LUNIT,
real*8, dimension(i1,i2,i3)  USR,
  I1,
  I2,
  I3,
  IRET,
  JRET,
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). THIS SUBROUTINE IS DESIGNED TO READ EVENT INFORMATION FROM "PREPFITS" TYPE BUFR FILES (BUT NOT FROM "PREPBUFR" TYPE FILES!!). PREPFITS 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 ITP
PLEVL CAT PRC PQM QQM TQM ZQM WQM CDTP_QM [OBLVL]
OBLVL SRC FHR <PEVN> <QEVN> <TEVN> <ZEVN> <WEVN> <CEVN>
OBLVL <CTPEVN>
PEVN POB PMO
QEVN QOB
TEVN TOB
ZEVN ZOB
WEVN UOB VOB
CEVN CAPE CINH LI
CTPEVN CDTP GCDTT TOCC

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

PROGRAM HISTORY LOG: 2003-11-04 J. WOOLLEN – ORIGINAL AUTHOR (WAS IN VERIFICATION VERSION) 2003-11-04 D. KEYSER – UNIFIED/PORTABLE FOR WRF; ADDED DOCUMENTATION; 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 UFBIN3 (LUNIT, USR, I1, I2, I3, IRET, JRET, 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) JRET - INTEGER: MAXIMUM NUMBER OF "EVENTS" FOUND FOR ALL DATA VALUES SPECIFIED AMONGST ALL LEVELS READ FROM DATA SUBSET (MUST BE NO LARGER THAN I3)

REMARKS: IMPORTANT: THIS ROUTINE SHOULD ONLY BE CALLED BY THE VERIFICATION APPLICATION PROGRAM "GRIDTOBS", WHERE IT WAS PREVIOUSLY AN IN-LINE SUBROUTINE. IN GENERAL, UFBIN3 DOES NOT WORK PROPERLY IN OTHER APPLICATION PROGRAMS (I.E, THOSE THAT ARE READING PREPBUFR FILES) AT THIS TIME. ALWAYS USE UFBEVN INSTEAD!!

THIS ROUTINE CALLS: BORT CONWIN ERRWRT GETWIN NEVN NXTWIN STATUS STRING THIS ROUTINE IS CALLED BY: None SHOULD NOT BE CALLED BY ANY APPLICATION PROGRAMS EXCEPT GRIDTOBS!!

Definition at line 105 of file ufbin3.f.

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