NCEPLIBS-bufr
11.5.0
|
Go to the source code of this file.
Functions/Subroutines | |
subroutine | ufbtam (TAB, I1, I2, IRET, STR) |
THIS SUBROUTINE READS SPECIFIED VALUES INTO INTERNAL ARRAYS FROM ALL DATA SUBSETS IN BUFR MESSAGES STORED IN INTERNAL MEMORY. More... | |
Definition in file ufbtam.f.
subroutine ufbtam | ( | real*8, dimension(i1,i2) | TAB, |
I1, | |||
I2, | |||
IRET, | |||
character*(*) | STR | ||
) |
THIS SUBROUTINE READS SPECIFIED VALUES INTO INTERNAL ARRAYS FROM ALL DATA SUBSETS IN BUFR MESSAGES STORED IN INTERNAL MEMORY.
THE DATA VALUES CORRESPOND TO MNEMONICS, NORMALLY WHERE THERE IS NO REPLICATION (THERE CAN BE REGULAR OR DELAYED REPLICATION, BUT THIS SUBROUTINE WILL ONLY READ THE FIRST OCCURRENCE OF THE MNEMONIC IN EACH SUBSET). UFBTAM PROVIDES A MECHANISM WHEREBY A USER CAN DO A QUICK SCAN OF THE RANGE OF VALUES CORRESPONDING TO ONE OR MORE MNEMNONICS AMONGST ALL DATA SUBSETS FOR A GROUP OF BUFR MESSAGES STORED IN INTERNAL MEMORY, NO OTHER BUFR ARCHIVE LIBRARY ROUTINES HAVE TO BE CALLED. THIS SUBROUTINE IS SIMILAR TO BUFR ARCHIVE LIBRARY SUBROUTINE UFBTAB EXCEPT UFBTAB READS SUBSETS FROM MESSAGES IN A PHYSICAL BUFR FILE. UFBTAM CURRENTLY CANNOT READ DATA FROM COMPRESSED BUFR MESSAGES.
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" 1998-10-27 J. WOOLLEN – MODIFIED TO CORRECT PROBLEMS CAUSED BY IN- LINING CODE WITH FPP DIRECTIVES 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) 2000-09-19 J. WOOLLEN – MAXIMUM MESSAGE LENGTH INCREASED FROM 10,000 TO 20,000 BYTES 2001-08-15 D. KEYSER – PARAMETER MAXMEM (THE MAXIMUM NUMBER OF BYTES REQUIRED TO STORE ALL MESSAGES INTERNALLY) WAS INCREASED FROM 8 MBYTES TO 16 MBYTES; MODIFIED TO NOT ABORT WHEN THERE ARE TOO MANY SUBSETS COMING IN (I.E., .GT. I2), BUT RATHER JUST PROCESS I2 REPORTS AND PRINT A DIAGNOSTIC 2002-05-14 J. WOOLLEN – REMOVED OLD CRAY COMPILER DIRECTIVES 2003-11-04 S. BENDER – ADDED REMARKS/BUFRLIB ROUTINE INTERDEPENDENCIES 2003-11-04 D. KEYSER – PARAMETER MAXMSG (THE MAXIMUM NUMBER OF BUFR MESSAGES WHICH CAN BE STORED INTERNALLY) INCREASED FROM 50000 TO 200000; MAXJL (MAXIMUM NUMBER OF JUMP/LINK ENTRIES) INCREASED FROM 15000 TO 16000 (WAS IN VERIFICATION VERSION); UNIFIED/PORTABLE FOR WRF; ADDED DOCUMENTATION (INCLUDING HISTORY); OUTPUTS MORE COMPLETE DIAGNOSTIC INFO WHEN ROUTINE TERMINATES ABNORMALLY 2004-08-09 J. ATOR – MAXIMUM MESSAGE LENGTH INCREASED FROM 20,000 TO 50,000 BYTES 2004-11-15 D. KEYSER – PARAMETER MAXMEM (THE MAXIMUM NUMBER OF BYTES REQUIRED TO STORE ALL MESSAGES INTERNALLY) WAS INCREASED FROM 16 MBYTES TO 50 MBYTES 2007-01-19 J. ATOR – REPLACED CALL TO PARSEQ WITH CALL TO PARSTR 2009-04-21 J. ATOR – USE ERRWRT 2009-10-21 D. KEYSER – ADDED OPTION TO INPUT NEW MNEMONIC "ITBL" IN ARGUMENT STR, RETURNS THE BUFR DICTIONARY TABLE NUMBER ASSOCIATED WITH EACH SUBSET IN INTERNAL MEMORY 2012-03-02 J. ATOR – USE FUNCTION UPS 2014-12-10 J. ATOR – USE MODULES INSTEAD OF COMMON BLOCKS
USAGE: CALL UFBTAM (TAB, I1, I2, IRET, STR) INPUT ARGUMENT LIST: I1 - INTEGER: LENGTH OF FIRST DIMENSION OF TAB (MUST BE AT LEAST AS LARGE AS THE NUMBER OF BLANK-SEPARATED MNEMONICS IN STR) I2 - INTEGER: LENGTH OF SECOND DIMENSION OF TAB STR - CHARACTER*(*): STRING OF BLANK-SEPARATED TABLE B MNEMONICS IN ONE-TO-ONE CORRESPONDENCE WITH FIRST DIMENSION OF TAB
OUTPUT ARGUMENT LIST: TAB - REAL*8: (I1,I2) STARTING ADDRESS OF DATA VALUES READ FROM INTERNAL MEMORY IRET - INTEGER: NUMBER OF DATA SUBSETS IN INTERNAL MEMORY (MUST BE NO LARGER THAN I2)
REMARKS: NOTE THAT UFBMEM IS CALLED PRIOR TO THIS TO STORE THE BUFR MESSAGES INTO INTERNAL MEMORY.
THIS ROUTINE CALLS: BORT ERRWRT NMSUB PARSTR RDMEMM STATUS STRING UPB UPBB UPC UPS USRTPL THIS ROUTINE IS CALLED BY: None Normally called only by application programs.
Definition at line 105 of file ufbtam.f.
References bort(), errwrt(), nmsub(), parstr(), rdmemm(), status(), string(), upb(), upbb(), upc(), ups(), and usrtpl().