NCEPLIBS-bufr  12.0.1
lmsg.f
Go to the documentation of this file.
1 C> @file
2 C> @brief Determine the array size needed to store a BUFR message.
3 C>
4 C> @author J. Woollen @date 1994-01-06
5 
6 C> Given a character string containing Section 0 from a BUFR
7 C> message, this function determines the array size (in integers)
8 C> needed to store the entire BUFR message.
9 C>
10 C> This function is similar to function nmwrd(), except that it
11 C> takes a character string as input rather than an integer array.
12 C>
13 C> @param[in] SEC0 -- character*8: Section 0 from a BUFR message
14 C> @returns lmsg -- integer: Array size (in integers) needed to
15 C> store entire BUFR message
16 C>
17 C> @remarks
18 C> - In some cases, the value returned may be slightly larger than
19 C> the minimum number of integers needed to store the entire BUFR
20 C> message.
21 C>
22 C> @author J. Woollen @date 1994-01-06
23  RECURSIVE FUNCTION lmsg(SEC0) RESULT(IRET)
24 
25  USE modv_im8b
26 
27  CHARACTER*8 sec0,csec0
28  dimension msec0(2)
29 
30  equivalence(msec0,csec0)
31 
32 C-----------------------------------------------------------------------
33 C-----------------------------------------------------------------------
34 
35 C Check for I8 integers.
36 
37  IF (im8b) THEN
38  im8b = .false.
39 
40  iret = lmsg(sec0)
41 
42  im8b = .true.
43  RETURN
44  END IF
45 
46  csec0 = sec0
47  iret = nmwrd(msec0)
48 
49 C EXIT
50 C ----
51 
52  RETURN
53  END
recursive function lmsg(SEC0)
Given a character string containing Section 0 from a BUFR message, this function determines the array...
Definition: lmsg.f:24
This module declares and initializes the IM8B variable.
logical, public im8b
Status indicator to keep track of whether all future calls to BUFRLIB subroutines and functions from ...
recursive function nmwrd(MBAY)
Given an integer array containing Section 0 from a BUFR message, this function determines the array s...
Definition: nmwrd.f:24