NCEPLIBS-bufr 11.7.1
rdmemm.f File Reference

Read a specified BUFR message from internal arrays. More...

Go to the source code of this file.

Functions/Subroutines

subroutine rdmemm (IMSG, SUBSET, JDATE, IRET)
 This subroutine reads a specified BUFR message from internal arrays in memory, so that it is now in scope for processing via a subsequent call to subroutine rdmems(). More...
 

Detailed Description

Read a specified BUFR message from internal arrays.

Definition in file rdmemm.f.

Function/Subroutine Documentation

◆ rdmemm()

subroutine rdmemm (   IMSG,
character*8  SUBSET,
  JDATE,
  IRET 
)

This subroutine reads a specified BUFR message from internal arrays in memory, so that it is now in scope for processing via a subsequent call to subroutine rdmems().

BUFR messages should already be stored within internal arrays in memory via one or more previous calls to subroutine ufbmem().

Author
J. Woollen
Date
1994-01-06
Parameters
[in]IMSG– integer: Number of BUFR message to be read into scope for further processing, counting from the beginning of the internal arrays in memory
[out]SUBSET– character*8: Table A mnemonic for type of BUFR message that was read into scope (see DX BUFR Tables for further information about Table A mnemonics)
[out]JDATE– integer: Date-time stored within Section 1 of BUFR message that was read into scope, in format of either YYMMDDHH or YYYYMMDDHH, depending on the most recent call to subroutine datelen()
[out]IRET– integer: return code
  • 0 = requested message was successfully read into scope
  • -1 = requested message number could not be found in internal arrays

Program history log:

Date Programmer Comments
1994-01-06 J. Woollen Original author
1998-07-08 J. Woollen Replaced call to Cray library routine "ABORT" with call to new internal routine bort(); modified to make Y2K compliant
1999-11-18 J. Woollen The number of BUFR files which can be opened at one time increased from 10 to 32; increased MAXMEM from 4 Mb to 8 Mb
2000-09-19 J. Woollen Removed logic that had been replicated in this and other read routines and consolidated it into a new routine cktaba(); maximum message length increased from 10,000 to 20,000 bytes
2001-08-15 D. Keyser Increased MAXMEM from 8 Mb to 16 Mb
2003-11-04 S. Bender Added remarks and routine interdependencies
2003-11-04 D. Keyser Unified/portable for WRF; added documentation
2004-08-09 J. Ator Maximum message length increased from 20,000 to 50,000 bytes
2004-11-15 D. Keyser Increased MAXMEM from 16 Mb to 50 Mb
2009-03-23 J. Ator Modified to handle embedded BUFR table (dictionary) messages; use errwrt()
2014-12-10 J. Ator Use modules instead of COMMON blocks

Definition at line 49 of file rdmemm.f.

References bort(), cktaba(), dxinit(), errwrt(), moda_msgmem::icdxts, moda_msgmem::ifdxts, moda_msgmem::ipdxm, moda_msgmem::ipmsgs, moda_msgmem::ldxm, moda_msgmem::ldxts, makestab(), moda_bitbuf::mbay, moda_msgmem::mdx, moda_msgmem::mlast, moda_msgmem::msgp, moda_msgmem::msgs, moda_msgmem::munit, moda_msgmem::ndxm, moda_msgmem::ndxts, status(), stbfdx(), and wtstat().

Referenced by readmm(), ufbmms(), ufbrms(), and ufbtam().