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