NCEPLIBS-bufr 11.7.1
cpbfdx.f
Go to the documentation of this file.
1C> @file
2C> @author WOOLLEN @date 1994-01-06
3
4C> THIS SUBROUTINE COPIES BUFR TABLE (DICTIONARY) MESSAGES
5C> FROM ONE LOCATION TO ANOTHER WITHIN INTERNAL MEMORY (ARRAYS IN
6C> MODULE MSGCWD AND TABABD).
7C>
8C> PROGRAM HISTORY LOG:
9C> 1994-01-06 J. WOOLLEN -- ORIGINAL AUTHOR
10C> 1995-06-28 J. WOOLLEN -- INCREASED THE SIZE OF INTERNAL BUFR TABLE
11C> ARRAYS IN ORDER TO HANDLE BIGGER FILES
12C> 1999-11-18 J. WOOLLEN -- THE NUMBER OF BUFR FILES WHICH CAN BE
13C> OPENED AT ONE TIME INCREASED FROM 10 TO 32
14C> (NECESSARY IN ORDER TO PROCESS MULTIPLE
15C> BUFR FILES UNDER THE MPI)
16C> 2003-11-04 S. BENDER -- ADDED REMARKS/BUFRLIB ROUTINE
17C> INTERDEPENDENCIES
18C> 2003-11-04 D. KEYSER -- UNIFIED/PORTABLE FOR WRF; ADDED
19C> DOCUMENTATION (INCLUDING HISTORY)
20C> 2014-12-10 J. ATOR -- USE MODULES INSTEAD OF COMMON BLOCKS
21C>
22C> USAGE: CALL CPBFDX (LUD, LUN)
23C> INPUT ARGUMENT LIST:
24C> LUD - INTEGER: I/O STREAM INDEX INTO INTERNAL MEMORY ARRAYS
25C> FOR INPUT TABLE LOCATION
26C> LUN - INTEGER: I/O STREAM INDEX INTO INTERNAL MEMORY ARRAYS
27C> FOR OUTPUT TABLE LOCATION
28C>
29C> REMARKS:
30C> THIS ROUTINE CALLS: DXINIT
31C> THIS ROUTINE IS CALLED BY: MAKESTAB READDX WRDXTB
32C> Normally not called by any application
33C> programs.
34C>
35 SUBROUTINE cpbfdx(LUD,LUN)
36
37 USE moda_msgcwd
38 USE moda_tababd
39
40C-----------------------------------------------------------------------
41C-----------------------------------------------------------------------
42
43C INITIALIZE THE DICTIONARY TABLE PARTITION
44C -----------------------------------------
45
46 CALL dxinit(lun,0)
47
48C COPY ONE TABLE PARTITION TO ANOTHER
49C -----------------------------------
50
51c .... Positional index for Table A mnem.
52 inode(lun) = inode(lud)
53
54c .... Set the number of Table A entries
55 ntba(lun) = ntba(lud)
56c .... Set the number of Table B entries
57 ntbb(lun) = ntbb(lud)
58c .... Set the number of Table D entries
59 ntbd(lun) = ntbd(lud)
60
61c .... Copy Table A entries
62 DO i=1,ntba(lud)
63c .... Message type
64 idna(i,lun,1) = idna(i,lud,1)
65c .... Message subtype
66 idna(i,lun,2) = idna(i,lud,2)
67c .... Table A entries
68 taba(i,lun) = taba(i,lud)
69c .... Pointer indices into internal tbl
70 mtab(i,lun) = mtab(i,lud)
71 ENDDO
72
73c .... Copy Table B entries
74 DO i=1,ntbb(lud)
75c .... Integer repr. of FXY descr.
76 idnb(i,lun) = idnb(i,lud)
77c .... Table B entries
78 tabb(i,lun) = tabb(i,lud)
79 ENDDO
80
81c .... Copy Table D entries
82 DO i=1,ntbd(lud)
83c .... Integer repr. of FXY descr.
84 idnd(i,lun) = idnd(i,lud)
85c .... Table B entries
86 tabd(i,lun) = tabd(i,lud)
87 ENDDO
88
89 RETURN
90 END
subroutine cpbfdx(LUD, LUN)
THIS SUBROUTINE COPIES BUFR TABLE (DICTIONARY) MESSAGES FROM ONE LOCATION TO ANOTHER WITHIN INTERNAL ...
Definition: cpbfdx.f:36
subroutine dxinit(LUN, IOI)
THIS SUBROUTINE INITIALIZES THE INTERNAL ARRAYS (IN MODULE TABABD) HOLDING THE DICTIONARY TABLE.
Definition: dxinit.f:41
This module contains array and variable declarations used to store DX BUFR tables internally for mult...
Definition: moda_tababd.F:10
integer, dimension(:,:), allocatable idnb
Bit-wise representations of the FXY values corresponding to tabb.
Definition: moda_tababd.F:56
character *128, dimension(:,:), allocatable tabb
Table B entries for each internal I/O stream.
Definition: moda_tababd.F:59
character *128, dimension(:,:), allocatable taba
Table A entries for each internal I/O stream.
Definition: moda_tababd.F:58
integer, dimension(:,:), allocatable mtab
Entries within jump/link table corresponding to taba.
Definition: moda_tababd.F:54
integer, dimension(:), allocatable ntbd
Number of Table D entries for each internal I/O stream (up to a maximum of MAXTBD,...
Definition: moda_tababd.F:53
integer, dimension(:), allocatable ntbb
Number of Table B entries for each internal I/O stream (up to a maximum of MAXTBB,...
Definition: moda_tababd.F:52
integer, dimension(:), allocatable ntba
Number of Table A entries for each internal I/O stream (up to a maximum of MAXTBA,...
Definition: moda_tababd.F:51
integer, dimension(:,:), allocatable idnd
Bit-wise representations of the FXY values corresponding to tabd.
Definition: moda_tababd.F:57
integer, dimension(:,:,:), allocatable idna
Message types (in array element 1) and subtypes (in array element 2) corresponding to taba.
Definition: moda_tababd.F:55
character *600, dimension(:,:), allocatable tabd
Table D entries for each internal I/O stream.
Definition: moda_tababd.F:60