1 INTEGER FUNCTION LCMGDF
(LUNIT
,SUBSET
)
3 C$$$ SUBPROGRAM DOCUMENTATION BLOCK
6 C PRGMMR: J. ATOR ORG: NP20 DATE: 2009-07-09
8 C ABSTRACT: THIS FUNCTION CHECKS WHETHER AT LEAST ONE "LONG" (I.E.
9 C GREATER THAN 8 BYTES) CHARACTER STRING EXISTS WITHIN THE INTERNAL
10 C DICTIONARY DEFINITION FOR THE TABLE A MESSAGE TYPE GIVEN BY SUBSET.
12 C PROGRAM HISTORY LOG:
13 C 2009-07-09 J. ATOR -- ORIGINAL AUTHOR
15 C USAGE: LCMGDF (LUNIT, SUBSET)
16 C INPUT ARGUMENT LIST:
17 C LUNIT - INTEGER: FORTRAN LOGICAL UNIT NUMBER ASSOCIATED WITH
19 C SUBSET - CHARACTER*8: TABLE A MNEMONIC FOR MESSAGE TYPE
21 C OUTPUT ARGUMENT LIST:
22 C LCMGDF - INTEGER: RETURN CODE INDICATING WHETHER SUBSET CONTAINS
23 C AT LEAST ONE "LONG" CHARACTER STRING IN ITS DEFINITION
28 C THIS ROUTINE CALLS: BORT NEMTBA STATUS
29 C THIS ROUTINE IS CALLED BY: None
30 C Normally called only by application
34 C LANGUAGE: FORTRAN 77
35 C MACHINE: PORTABLE TO ALL PLATFORMS
41 COMMON /BTABLES
/ MAXTAB
,NTAB
,TAG
(MAXJL
),TYP
(MAXJL
),KNT
(MAXJL
),
42 . JUMP
(MAXJL
),LINK
(MAXJL
),JMPB
(MAXJL
),
43 . IBT
(MAXJL
),IRF
(MAXJL
),ISC
(MAXJL
),
44 . ITP
(MAXJL
),VALI
(MAXJL
),KNTI
(MAXJL
),
45 . ISEQ
(MAXJL
,2),JSEQ
(MAXJL
)
51 C-----------------------------------------------------------------------
52 C-----------------------------------------------------------------------
56 CALL STATUS
(LUNIT
,LUN
,IL
,IM
)
59 C Confirm that SUBSET is defined for this logical unit.
61 CALL NEMTBA
(LUN
,SUBSET
,MTYP
,MSBT
,INOD
)
63 C Check if there's a long character string in the definition.
68 IF ( (TYP
(INOD
+I
).EQ
.'CHR') .AND
. (IBT
(INOD
+I
).GT
.64) ) THEN
77 900 CALL BORT
('BUFRLIB: LCMGDF - INPUT BUFR FILE IS CLOSED, IT MUST'//