NCEPLIBS-bufr  12.0.0
cpbfdx.f
Go to the documentation of this file.
1 C> @file
2 C> @brief Copy DX BUFR table information within internal memory.
3 C>
4 C> @author Woollen @date 1994-01-06
5 
6 C> This subroutine copies all of the DX BUFR table information from
7 C> one unit to another within internal memory.
8 C>
9 C> @param[in] LUD - integer: I/O stream index into internal memory
10 C> arrays for input unit.
11 C> @param[in] LUN - integer: I/O stream index into internal memory
12 C> arrays for output unit.
13 C>
14 C> @author Woollen @date 1994-01-06
15 
16  SUBROUTINE cpbfdx(LUD,LUN)
17 
18  USE moda_msgcwd
19  USE moda_tababd
20 
21 C-----------------------------------------------------------------------
22 C-----------------------------------------------------------------------
23 
24 C INITIALIZE THE DICTIONARY TABLE PARTITION
25 C -----------------------------------------
26 
27  CALL dxinit(lun,0)
28 
29 C COPY ONE TABLE PARTITION TO ANOTHER
30 C -----------------------------------
31 
32 c .... Positional index for Table A mnem.
33  inode(lun) = inode(lud)
34 
35 c .... Set the number of Table A entries
36  ntba(lun) = ntba(lud)
37 c .... Set the number of Table B entries
38  ntbb(lun) = ntbb(lud)
39 c .... Set the number of Table D entries
40  ntbd(lun) = ntbd(lud)
41 
42 c .... Copy Table A entries
43  DO i=1,ntba(lud)
44 c .... Message type
45  idna(i,lun,1) = idna(i,lud,1)
46 c .... Message subtype
47  idna(i,lun,2) = idna(i,lud,2)
48 c .... Table A entries
49  taba(i,lun) = taba(i,lud)
50 c .... Pointer indices into internal tbl
51  mtab(i,lun) = mtab(i,lud)
52  ENDDO
53 
54 c .... Copy Table B entries
55  DO i=1,ntbb(lud)
56 c .... Integer repr. of FXY descr.
57  idnb(i,lun) = idnb(i,lud)
58 c .... Table B entries
59  tabb(i,lun) = tabb(i,lud)
60  ENDDO
61 
62 c .... Copy Table D entries
63  DO i=1,ntbd(lud)
64 c .... Integer repr. of FXY descr.
65  idnd(i,lun) = idnd(i,lud)
66 c .... Table B entries
67  tabd(i,lun) = tabd(i,lud)
68  ENDDO
69 
70  RETURN
71  END
subroutine cpbfdx(LUD, LUN)
This subroutine copies all of the DX BUFR table information from one unit to another within internal ...
Definition: cpbfdx.f:17
subroutine dxinit(LUN, IOI)
This subroutine initializes the internal arrays (in module moda_tababd) holding the DX BUFR table.
Definition: dxinit.f:18
This module contains declarations for arrays used to store information about the current BUFR message...
integer, dimension(:), allocatable inode
Table A mnemonic for type of BUFR message.
This module contains array and variable declarations used to store DX BUFR tables internally for mult...
integer, dimension(:), allocatable ntba
Number of Table A entries for each internal I/O stream (up to a maximum of MAXTBA,...
character *600, dimension(:,:), allocatable tabd
Table D entries for each internal I/O stream.
character *128, dimension(:,:), allocatable taba
Table A entries for each internal I/O stream.
integer, dimension(:,:), allocatable mtab
Entries within jump/link table corresponding to taba.
integer, dimension(:,:,:), allocatable idna
Message types (in array element 1) and subtypes (in array element 2) corresponding to taba.
integer, dimension(:), allocatable ntbd
Number of Table D entries for each internal I/O stream (up to a maximum of MAXTBD,...
integer, dimension(:), allocatable ntbb
Number of Table B entries for each internal I/O stream (up to a maximum of MAXTBB,...
integer, dimension(:,:), allocatable idnd
Bit-wise representations of the FXY values corresponding to tabd.
integer, dimension(:,:), allocatable idnb
Bit-wise representations of the FXY values corresponding to tabb.
character *128, dimension(:,:), allocatable tabb
Table B entries for each internal I/O stream.