NCEPLIBS-bufr 11.7.1
stdmsg.f
Go to the documentation of this file.
1C> @file
2C> @brief Specify the use of standardization when writing BUFR messages.
3
4C> This subroutine is used to specify whether BUFR messages output by
5C> future calls to [message-writing subroutines](@ref hierarchy) and
6C> [subset-writing subroutines](@ref hierarchy) should be internally
7C> reformatted to remove all BUFRLIB software extensions to the
8C> WMO standard, prior to actually writing each message.
9C>
10C> <p>It is strongly recommended to use this subroutine (or,
11C> alternatively, subroutine stndrd() for messages which already exist
12C> in memory arrays) whenever BUFR messages are being written that will
13C> potentially be read using software other than the BUFRLIB software.
14C> Otherwise, by default the output messages will contain a number of
15C> extensions to allow for faster reading and more efficient storage,
16C> but which will be encoded using non-standard descriptors in
17C> Section 3, and therefore likely be unrecognizable to other software
18C> packages.
19C>
20C> <p>This subroutine can be called at any time after the first call
21C> to subroutine openbf(), and the specified value for CF will remain
22C> in effect for all future calls to
23C> [message-writing subroutines](@ref hierarchy) and
24C> [subset-writing subroutines](@ref hierarchy) for all Fortran logical
25C> units that are open for output within the application program,
26C> unless a subsequent call is made to this subroutine to reset the
27C> value of CF again. If this subroutine is never called, a default
28C> value of 'N' is used for CF, as set within subroutine bfrini().
29C>
30C> @author J. Ator
31C> @date 2004-08-18
32C>
33C> @param[in] CF -- character*1: Flag indicating whether future BUFR
34C> output messages are to be standardized
35C> - 'N' = No (the default)
36C> - 'Y' = Yes
37C>
38C> <b>Program history log:</b>
39C> | Date | Programmer | Comments |
40C> | -----|------------|----------|
41C> | 2004-08-18 | J. Ator | Original author |
42C>
43 SUBROUTINE stdmsg(CF)
44
45 COMMON /msgstd/ csmf
46
47 CHARACTER*128 BORT_STR
48 CHARACTER*1 CSMF, CF
49
50C-----------------------------------------------------------------------
51C-----------------------------------------------------------------------
52
53 CALL capit(cf)
54 IF(cf.NE.'Y'.AND. cf.NE.'N') GOTO 900
55 csmf = cf
56
57C EXITS
58C -----
59
60 RETURN
61900 WRITE(bort_str,'("BUFRLIB: STDMSG - INPUT ARGUMENT IS ",A1,'//
62 . '", IT MUST BE EITHER Y OR N")') cf
63 CALL bort(bort_str)
64 END
subroutine bort(STR)
This subroutine calls subroutine errwrt() to log an error message, then calls subroutine bort_exit() ...
Definition: bort.f:23
subroutine capit(STR)
This subroutine capitalizes all of the alphabetic characters in a string.
Definition: capit.f:19
subroutine stdmsg(CF)
This subroutine is used to specify whether BUFR messages output by future calls to message-writing su...
Definition: stdmsg.f:44