SUBROUTINE MAXOUT(MAXO) 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 C AFTER THE INITIAL CALL TO BUFR ARCHIVE LIBRARY SUBROUTINE OPENBF 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 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 OUTPUT FILES: C UNIT 06 - STANDARD OUTPUT PRINT C C REMARKS: C THIS ROUTINE CALLS: None 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) COMMON /DXTAB / LD30(10),DXSTR(10) COMMON /QUIET / IPRT CHARACTER*56 DXSTR IF((MAXO.EQ.0).OR.(MAXO.GT.MXMSGL)) THEN NEWSIZ = MXMSGL ELSE NEWSIZ = MAXO ENDIF IF(IPRT.GE.0) THEN PRINT* PRINT*,'+++++++++++++++++BUFR ARCHIVE LIBRARY++++++++++++++++++++' PRINT 101, MAXBYT,NEWSIZ 101 FORMAT(' BUFRLIB: MAXOUT - THE RECORD LENGTH OF ALL BUFR ', . 'MESSAGES CREATED FROM THIS POINT ON IS BEING CHANGED FROM ',I7, . ' TO ',I7) PRINT*,'+++++++++++++++++BUFR ARCHIVE LIBRARY++++++++++++++++++++' PRINT* ENDIF MAXBYT = NEWSIZ MAXCMB = NEWSIZ MAXDX = NEWSIZ RETURN END