NCEPLIBS-bufr
11.5.0
Main Page
Related Pages
Data Types List
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Pages
numbck.f
Go to the documentation of this file.
1
C> @file
2
C> @author WOOLLEN @date 1994-01-06
3
4
C> THIS FUNCTION CHECKS THE INPUT CHARACTER STRING TO DETERMINE
5
C> WHETHER IT CONTAINS A VALID FXY (DESCRIPTOR) VALUE.
6
C>
7
C> PROGRAM HISTORY LOG:
8
C> 1994-01-06 J. WOOLLEN -- ORIGINAL AUTHOR
9
C> 2003-11-04 J. ATOR -- ADDED DOCUMENTATION
10
C> 2003-11-04 S. BENDER -- ADDED REMARKS/BUFRLIB ROUTINE
11
C> INTERDEPENDENCIES
12
C> 2003-11-04 D. KEYSER -- SPLIT NON-ZERO RETURN INTO -1 FOR INVALID
13
C> CHARACTER IN POSITION 1, -2 FOR INVALID
14
C> CHARACTERS IN POSITIONS 2 THROUGH 6, -3 FOR
15
C> INVALID CHARACTERS IN POSITIONS 2 AND 3 DUE
16
C> TO BEING OUT OF RANGE, AND -4 FOR INVALID
17
C> CHARACTERS IN POSITIONS 4 THROUGH 6 DUE TO
18
C> BEING OUT OF RANGE (RETURN ONLY -1 BEFORE
19
C> FOR ALL PROBLEMATIC CASES); UNIFIED/
20
C> PORTABLE FOR WRF; ADDED HISTORY
21
C> DOCUMENTATION
22
C> 2007-01-19 J. ATOR -- CLEANED UP AND SIMPLIFIED LOGIC
23
C>
24
C> USAGE: NUMBCK (NUMB)
25
C> INPUT ARGUMENT LIST:
26
C> NUMB - CHARACTER*6: FXY VALUE TO BE CHECKED
27
C>
28
C> OUTPUT ARGUMENT LIST:
29
C> NUMBCK - INTEGER: INDICATOR AS TO WHETHER NUMB IS VALID:
30
C> 0 = YES
31
C> -1 = NO - first character ("F" value) is not '0',
32
C> '1', '2' OR '3'
33
C> -2 = NO - remaining characters (2-6) ("X" and "Y"
34
C> values) are not all numeric
35
C> -3 = NO - characters 2-3 ("X" value) are not
36
C> between '00' and '63'
37
C> -4 = NO - characters 4-6 ("Y" value) are not
38
C> between '000' and '255'
39
C>
40
C> REMARKS:
41
C> THIS ROUTINE CALLS: DIGIT
42
C> THIS ROUTINE IS CALLED BY: IGETFXY RDUSDX
43
C> Normally not called by any application
44
C> programs.
45
C>
46
FUNCTION
numbck
(NUMB)
47
48
49
50
CHARACTER*6
numb
51
LOGICAL
digit
52
53
C-----------------------------------------------------------------------
54
C-----------------------------------------------------------------------
55
56
C CHECK THE FIRST CHARACTER OF NUMB
57
C ---------------------------------
58
59
IF
( llt(numb(1:1),
'0'
) .OR. lgt(numb(1:1),
'3'
) )
THEN
60
numbck
= -1
61
RETURN
62
ENDIF
63
64
C CHECK FOR A VALID DESCRIPTOR
65
C ----------------------------
66
67
IF
(
digit
(numb(2:6)))
THEN
68
READ
(numb,
'(1X,I2,I3)'
) ix,iy
69
ELSE
70
numbck
= -2
71
RETURN
72
ENDIF
73
74
IF
(ix.LT.0 .OR. ix.GT. 63)
THEN
75
numbck
= -3
76
RETURN
77
ELSE
IF
(iy.LT.0 .OR. iy.GT.255)
THEN
78
numbck
= -4
79
RETURN
80
ENDIF
81
82
numbck
= 0
83
84
RETURN
85
END
numbck
function numbck(NUMB)
THIS FUNCTION CHECKS THE INPUT CHARACTER STRING TO DETERMINE WHETHER IT CONTAINS A VALID FXY (DESCRIP...
Definition:
numbck.f:46
digit
LOGICAL function digit(STR)
THIS LOGICAL FUNCTION TESTS THE CHARACTERS IN A STRING TO DETERMINE IF THEY ARE ALL DIGITS ('0'...
Definition:
digit.f:31
nceplibs-bufr
src
numbck.f
Generated by
1.8.5