<HTML> <BODY BGCOLOR=#ccccdd LINK=#0000aa VLINK=#0000ff ALINK=#ff0000 ><BASE TARGET="bottom_target"><PRE>
<A NAME='MAXOUT'><A href='../../html_code/bufr/maxout.f.html#MAXOUT' TARGET='top_target'><IMG SRC="../../gif/bar_red.gif" border=0></A>
SUBROUTINE MAXOUT(MAXO) 1
C$$$ SUBPROGRAM DOCUMENTATION BLOCK
C
C SUBPROGRAM: MAXOUT
C PRGMMR: WOOLLEN ORG: NP20 DATE: 2002-05-14
C
C ABSTRACT: THIS SUBROUTINE ALLOWS AN APPLICATION PROGRAM TO SET THE
C RECORD LENGTH OF NEWLY CREATED BUFR MESSAGES, OVERRIDING THE VALUE
C SET IN BUFR ARCHIVE LIBRARY SUBROUTINE BFRINI. THIS MUST BE CALLED
<A NAME='OPENBF'><A href='../../html_code/bufr/maxout.f.html#OPENBF' TARGET='top_target'><IMG SRC="../../gif/bar_red.gif" border=0></A>
C AFTER THE INITIAL CALL TO BUFR ARCHIVE LIBRARY SUBROUTINE OPENBF 29,6
C SINCE OPENBF CALLS BFRINI. THE RECORD LENGTH WILL REMAIN MAX0
C UNLESS THIS SUBROUTINE IS CALLED AGAIN WITH A NEW MAX0.
C
C PROGRAM HISTORY LOG:
C 2002-05-14 J. WOOLLEN -- ORIGINAL AUTHOR
C 2003-11-04 S. BENDER -- ADDED REMARKS/BUFRLIB ROUTINE
C INTERDEPENDENCIES
C 2003-11-04 D. KEYSER -- UNIFIED/PORTABLE FOR WRF; ADDED
C DOCUMENTATION (INCLUDING HISTORY); OUTPUTS
C MORE COMPLETE DIAGNOSTIC INFO FOR
C INFORMATIONAL PURPOSES
C 2004-08-09 J. ATOR -- MAXIMUM MESSAGE LENGTH INCREASED FROM
C 20,000 TO 50,000 BYTES
C 2006-04-14 J. ATOR -- ADDED MAX0=0 OPTION AND OVERFLOW CHECK
C 2009-03-23 D. KEYSER -- NO LONGER PRINTS THE RECORD LENGTH CHANGE
C DIAGNOSTIC IF THE REQUESTED RECORD LENGTH
C PASSED IN AS MAX0 IS ACTUALLY THE SAME AS
C THE PREVIOUS RECORD LENGTH
C 2009-04-21 J. ATOR -- USE ERRWRT
C
C USAGE: CALL MAXOUT
(MAXO)
C INPUT ARGUMENT LIST:
C MAXO - INTEGER: DESIRED MESSAGE LENGTH (BYTES):
C 0 = SET RECORD LENGTH TO THE MAXIMUM ALLOWABLE
C
C REMARKS:
C THIS ROUTINE CALLS: ERRWRT
C THIS ROUTINE IS CALLED BY: None
C Normally called only by application
C programs.
C
C ATTRIBUTES:
C LANGUAGE: FORTRAN 77
C MACHINE: PORTABLE TO ALL PLATFORMS
C
C$$$
INCLUDE 'bufrlib.prm'
COMMON /BITBUF/ MAXBYT,IBIT,IBAY(MXMSGLD4),MBYT(NFILES),
. MBAY(MXMSGLD4,NFILES)
COMMON /MAXCMP/ MAXCMB,MAXROW,MAXCOL,NCMSGS,NCSUBS,NCBYTS
COMMON /DXTAB / MAXDX,IDXV,NXSTR(10),LDXA(10),LDXB(10),LDXD(10),
. LD30(10),DXSTR(10)
COMMON /QUIET / IPRT
CHARACTER*128 ERRSTR
CHARACTER*56 DXSTR
C-----------------------------------------------------------------------
C-----------------------------------------------------------------------
IF((MAXO.EQ.0).OR.(MAXO.GT.MXMSGL)) THEN
NEWSIZ = MXMSGL
ELSE
NEWSIZ = MAXO
ENDIF
IF(IPRT.GE.0) THEN
IF(MAXBYT.NE.NEWSIZ) THEN
CALL ERRWRT
('++++++++++++++BUFR ARCHIVE LIBRARY+++++++++++++++++')
WRITE ( UNIT=ERRSTR, FMT='(A,A,I7,A,I7)' )
. 'BUFRLIB: MAXOUT - THE RECORD LENGTH OF ALL BUFR MESSAGES ',
. 'CREATED FROM THIS POINT ON IS BEING CHANGED FROM ', MAXBYT,
. ' TO ', NEWSIZ
CALL ERRWRT
(ERRSTR)
CALL ERRWRT
('++++++++++++++BUFR ARCHIVE LIBRARY+++++++++++++++++')
CALL ERRWRT
(' ')
ENDIF
ENDIF
MAXBYT = NEWSIZ
MAXCMB = NEWSIZ
MAXDX = NEWSIZ
RETURN
END