<HTML> <BODY BGCOLOR=#ccccdd LINK=#0000aa VLINK=#0000ff ALINK=#ff0000 ><BASE TARGET="bottom_target"><PRE>
<A NAME='ISIZE'><A href='../../html_code/bufr/isize.f.html#ISIZE' TARGET='top_target'><IMG SRC="../../gif/bar_green.gif" border=0></A>
INTEGER FUNCTION ISIZE (NUM) 3,2
C$$$ SUBPROGRAM DOCUMENTATION BLOCK
C
C SUBPROGRAM: ISIZE
C PRGMMR: ATOR ORG: NP12 DATE: 2009-03-23
C
C ABSTRACT: THIS FUNCTION COMPUTES AND RETURNS THE NUMBER OF CHARACTERS
C NEEDED TO ENCODE THE INPUT INTEGER NUM AS A STRING. IT DOES NOT
C ACTUALLY ENCODE THE STRING BUT RATHER ONLY FIGURES OUT THE REQUIRED
C SIZE. NUM MUST BE AN INTEGER IN THE RANGE OF 0 TO 99999.
C
C PROGRAM HISTORY LOG:
C 2009-03-23 J. ATOR -- ORIGINAL AUTHOR
C
C USAGE: CALL ISIZE
( NUM )
C INPUT ARGUMENT LIST:
C NUM - INTEGER: NUMBER TO BE ENCODED
C
C OUTPUT ARGUMENT LIST:
C ISIZE - INTEGER: NUMBER OF CHARACTERS NECESSARY TO ENCODE NUM
C AS A STRING
C
C REMARKS:
C THIS ROUTINE CALLS: BORT
C THIS ROUTINE IS CALLED BY: READMT UFBDMP UFDUMP
C Normally not called by any application
C programs but it could be.
C
C ATTRIBUTES:
C LANGUAGE: FORTRAN 77
C MACHINE: PORTABLE TO ALL PLATFORMS
C
C$$$
CHARACTER*128 BORT_STR
C-----------------------------------------------------------------------
C-----------------------------------------------------------------------
IF ( NUM .LT. 0 ) GOTO 900
DO ISIZE = 1, 5
IF ( NUM .LT. 10**ISIZE ) RETURN
ENDDO
GOTO 900
RETURN
900 WRITE(BORT_STR,'("BUFRLIB: ISIZE - INPUT NUMBER (",I7,'//
. '") IS OUT OF RANGE")') NUM
CALL BORT
(BORT_STR)
END