Merge remote-tracking branch 'origin/release-v4.6.1'
[WRF.git] / var / external / bufr / nenubd.f
blob83c04083b02f1308050d84e714c58ed9f7cebe26
1 SUBROUTINE NENUBD(NEMO,NUMB,LUN)
3 C$$$ SUBPROGRAM DOCUMENTATION BLOCK
5 C SUBPROGRAM: NENUBD
6 C PRGMMR: WOOLLEN ORG: NP20 DATE: 1994-01-06
8 C ABSTRACT: THIS SUBROUTINE CHECKS A MNEMONIC AND FXY VALUE PAIR THAT
9 C WERE READ FROM A USER-SUPPLIED BUFR DICTIONARY TABLE IN CHARACTER
10 C FORMAT, IN ORDER TO MAKE SURE THAT NEITHER VALUE HAS ALREADY BEEN
11 C DEFINED WITHIN INTERNAL BUFR TABLE B OR D (IN COMMON BLOCK
12 C /TABABD/) FOR THE GIVEN LUN. IF EITHER VALUE HAS ALREADY BEEN
13 C DEFINED FOR THIS LUN, THEN AN APPROPRIATE CALL IS MADE TO
14 C BUFR ARCHIVE LIBRARY SUBROUTINE BORT.
16 C PROGRAM HISTORY LOG:
17 C 1994-01-06 J. WOOLLEN -- ORIGINAL AUTHOR (ENTRY POINT IN NENUCK)
18 C 1995-06-28 J. WOOLLEN -- INCREASED THE SIZE OF INTERNAL BUFR TABLE
19 C ARRAYS IN ORDER TO HANDLE BIGGER FILES
20 C 1998-07-08 J. WOOLLEN -- REPLACED CALL TO CRAY LIBRARY ROUTINE
21 C "ABORT" WITH CALL TO NEW INTERNAL BUFRLIB
22 C ROUTINE "BORT" (IN PARENT ROUTINE NENUCK)
23 C 1999-11-18 J. WOOLLEN -- THE NUMBER OF BUFR FILES WHICH CAN BE
24 C OPENED AT ONE TIME INCREASED FROM 10 TO 32
25 C (NECESSARY IN ORDER TO PROCESS MULTIPLE
26 C BUFR FILES UNDER THE MPI) (IN PARENT
27 C ROUTINE NENUCK)
28 C 2002-05-14 J. WOOLLEN -- CHANGED FROM AN ENTRY POINT TO INCREASE
29 C PORTABILITY TO OTHER PLATFORMS (NENUCK WAS
30 C THEN REMOVED BECAUSE IT WAS JUST A DUMMY
31 C ROUTINE WITH ENTRIES)
32 C 2003-11-04 J. ATOR -- ADDED DOCUMENTATION
33 C 2003-11-04 S. BENDER -- ADDED REMARKS/BUFRLIB ROUTINE
34 C INTERDEPENDENCIES
35 C 2003-11-04 D. KEYSER -- UNIFIED/PORTABLE FOR WRF; ADDED HISTORY
36 C DOCUMENTATION; OUTPUTS MORE COMPLETE
37 C DIAGNOSTIC INFO WHEN ROUTINE TERMINATES
38 C ABNORMALLY
40 C USAGE: CALL NENUBD (NEMO, NUMB, LUN)
41 C INPUT ARGUMENT LIST:
42 C NEMO - CHARACTER*8: MNEMONIC
43 C NUMB - CHARACTER*6: FXY VALUE ASSOCIATED WITH NEMO
44 C LUN - INTEGER: I/O STREAM INDEX INTO INTERNAL MEMORY ARRAYS
46 C THIS ROUTINE CALLS: BORT
47 C THIS ROUTINE IS CALLED BY: STBFDX STNTBI
48 C Normally not called by any application
49 C programs.
51 C ATTRIBUTES:
52 C LANGUAGE: FORTRAN 77
53 C MACHINE: PORTABLE TO ALL PLATFORMS
55 C$$$
57 INCLUDE 'bufrlib.prm'
59 COMMON /TABABD/ NTBA(0:NFILES),NTBB(0:NFILES),NTBD(0:NFILES),
60 . MTAB(MAXTBA,NFILES),IDNA(MAXTBA,NFILES,2),
61 . IDNB(MAXTBB,NFILES),IDND(MAXTBD,NFILES),
62 . TABA(MAXTBA,NFILES),TABB(MAXTBB,NFILES),
63 . TABD(MAXTBD,NFILES)
65 CHARACTER*600 TABD
66 CHARACTER*128 BORT_STR
67 CHARACTER*128 TABB
68 CHARACTER*128 TABA
69 CHARACTER*8 NEMO
70 CHARACTER*6 NUMB
72 C-----------------------------------------------------------------------
73 C-----------------------------------------------------------------------
74 C CHECK TABLE B AND D
75 C -------------------
77 DO N=1,NTBB(LUN)
78 IF(NUMB.EQ.TABB(N,LUN)(1: 6)) GOTO 900
79 IF(NEMO.EQ.TABB(N,LUN)(7:14)) GOTO 901
80 ENDDO
82 DO N=1,NTBD(LUN)
83 IF(NUMB.EQ.TABD(N,LUN)(1: 6)) GOTO 902
84 IF(NEMO.EQ.TABD(N,LUN)(7:14)) GOTO 903
85 ENDDO
87 C EXITS
88 C -----
90 RETURN
91 900 WRITE(BORT_STR,'("BUFRLIB: NENUBD - TABLE B FXY VALUE (",A,") '//
92 . 'HAS ALREADY BEEN DEFINED (DUPLICATE)")') NUMB
93 CALL BORT(BORT_STR)
94 901 WRITE(BORT_STR,'("BUFRLIB: NENUBD - TABLE B MNEMONIC (",A,") '//
95 . 'HAS ALREADY BEEN DEFINED (DUPLICATE)")') NEMO
96 CALL BORT(BORT_STR)
97 902 WRITE(BORT_STR,'("BUFRLIB: NENUBD - TABLE D FXY VALUE (",A,") '//
98 . 'HAS ALREADY BEEN DEFINED (DUPLICATE)")') NUMB
99 CALL BORT(BORT_STR)
100 903 WRITE(BORT_STR,'("BUFRLIB: NENUBD - TABLE D MNEMONIC (",A,") '//
101 . 'HAS ALREADY BEEN DEFINED (DUPLICATE)")') NEMO
102 CALL BORT(BORT_STR)