NCEPLIBS-bufr  11.5.0
 All Data Structures Files Functions Variables Pages
arallocf.F
Go to the documentation of this file.
1 C> @file
2 C> @brief Dynamically allocate Fortran language arrays within internal
3 C> memory.
4 
5 C> For dynamic allocation builds of the library, this subroutine is
6 C> called internally during the first call to subroutine openbf() from
7 C> an application program, in order to dynamically allocate internal
8 C> Fortran language arrays based on parameter values set during one or
9 C> more previous calls to function isetprm().
10 C>
11 C> <p>This subroutine isn't normally called directly from an application
12 C> program, since it's automatically called internally during the first
13 C> call to subroutine openbf() from an application program.
14 C>
15 C> @author J. Ator
16 C> @date 2014-12-04
17 C>
18 C> @remarks
19 C> - All memory allocated within this subroutine can be freed via a
20 C> subsequent call to subroutine exitbufr() from within the
21 C> application program, or else it will be freed automatically by the
22 C> operating system once the application program terminates.
23 C>
24 C> <b>Program history log:</b>
25 C> - 2014-12-04 J. Ator -- Original author
26 C> - 2016-05-24 J. Ator -- Added allocations for MODA_BITMAPS
27 C> and MODA_NRV203
28 C> - 2017-05-22 J. Ator -- Added allocations for MODA_RLCCMN
29 C> - 2019-05-09 J. Ator -- Modified allocations for MODA_BUFRMG
30 C> - 2021-01-08 J. Ator -- Modified mstabs array declarations
31 C> for GNUv10 portability
32 C>
33  SUBROUTINE arallocf
34 
35 #ifdef DYNAMIC_ALLOCATION
36 
37  USE moda_usrint
38  USE moda_usrbit
39  USE moda_ival
40  USE moda_msgcwd
41  USE moda_stbfr
42  USE moda_ufbcpl
43  USE moda_sc3bfr
44  USE moda_unptyp
45  USE moda_lushr
46  USE moda_nulbfr
47  USE moda_stcode
48  USE moda_idrdm
49  USE moda_xtab
50  USE moda_msglim
51  USE moda_bitbuf
52  USE moda_mgwa
53  USE moda_mgwb
54  USE moda_bufrmg
55  USE moda_bufrsr
56  USE moda_msgmem
57  USE moda_tababd
58  USE moda_tables
59  USE moda_usrtmp
60  USE moda_ivttmp
61  USE moda_comprx
62  USE moda_comprs
63  USE moda_mstabs
64  USE moda_rdmtb
65  USE moda_nmikrp
66  USE moda_s01cm
67  USE moda_bitmaps
68  USE moda_nrv203
69  USE moda_rlccmn
70 
71  CHARACTER*80 errstr
72  CHARACTER*36 brtstr
73 
74  COMMON /quiet/ iprt
75 
76 C-----------------------------------------------------------------------
77 C-----------------------------------------------------------------------
78 
79  IF ( iprt .GE. 1 ) THEN
80  CALL errwrt
81  . ('++++++++++++++BUFR ARCHIVE LIBRARY+++++++++++++++++')
82  errstr = 'BUFRLIB: ARRAYS WILL BE DYNAMICALLY ALLOCATED' //
83  . ' USING THE FOLLOWING VALUES:'
84  CALL errwrt(errstr)
85  WRITE ( errstr, '(A,I7)' ) ' MAXSS = ', maxss
86  CALL errwrt(errstr)
87  WRITE ( errstr, '(A,I4)' ) ' NFILES = ', nfiles
88  CALL errwrt(errstr)
89  WRITE ( errstr, '(A,I7)' ) ' MXMSGL = ', mxmsgl
90  CALL errwrt(errstr)
91  WRITE ( errstr, '(A,I5)' ) ' MXDXTS = ', mxdxts
92  CALL errwrt(errstr)
93  WRITE ( errstr, '(A,I7)' ) ' MAXMSG = ', maxmsg
94  CALL errwrt(errstr)
95  WRITE ( errstr, '(A,I9)' ) ' MAXMEM = ', maxmem
96  CALL errwrt(errstr)
97  WRITE ( errstr, '(A,I5)' ) ' MAXTBA = ', maxtba
98  CALL errwrt(errstr)
99  WRITE ( errstr, '(A,I5)' ) ' MAXTBB = ', maxtbb
100  CALL errwrt(errstr)
101  WRITE ( errstr, '(A,I5)' ) ' MAXTBD = ', maxtbd
102  CALL errwrt(errstr)
103  WRITE ( errstr, '(A,I7)' ) ' MAXJL = ', maxjl
104  CALL errwrt(errstr)
105  WRITE ( errstr, '(A,I6)' ) ' MXCDV = ', mxcdv
106  CALL errwrt(errstr)
107  WRITE ( errstr, '(A,I4)' ) ' MXLCC = ', mxlcc
108  CALL errwrt(errstr)
109  WRITE ( errstr, '(A,I6)' ) ' MXCSB = ', mxcsb
110  CALL errwrt(errstr)
111  WRITE ( errstr, '(A,I5)' ) ' MXMTBB = ', mxmtbb
112  CALL errwrt(errstr)
113  WRITE ( errstr, '(A,I5)' ) ' MXMTBD = ', mxmtbd
114  CALL errwrt(errstr)
115  WRITE ( errstr, '(A,I4)' ) ' MAXCD = ', maxcd
116  CALL errwrt(errstr)
117  WRITE ( errstr, '(A,I4)' ) ' MXNRV = ', mxnrv
118  CALL errwrt(errstr)
119  WRITE ( errstr, '(A,I4)' ) ' MXS01V = ', mxs01v
120  CALL errwrt(errstr)
121  WRITE ( errstr, '(A,I4)' ) ' MXTAMC = ', mxtamc
122  CALL errwrt(errstr)
123  WRITE ( errstr, '(A,I4)' ) ' MXTCO = ', mxtco
124  CALL errwrt(errstr)
125  WRITE ( errstr, '(A,I4)' ) ' MXBTM = ', mxbtm
126  CALL errwrt(errstr)
127  WRITE ( errstr, '(A,I4)' ) ' MXBTMSE = ', mxbtmse
128  CALL errwrt(errstr)
129  WRITE ( errstr, '(A,I4)' ) ' MXRST = ', mxrst
130  CALL errwrt(errstr)
131  CALL errwrt
132  . ('++++++++++++++BUFR ARCHIVE LIBRARY+++++++++++++++++')
133  END IF
134 
135  brtstr = 'BUFRLIB: ARALLOCF FAILED ALLOCATING '
136 
137 C MODA_USRINT arrays.
138 
139  ALLOCATE( nval(nfiles), stat=iost )
140  IF ( iost .ne. 0 ) CALL bort( brtstr // 'NVAL' )
141 
142  ALLOCATE( inv(maxss,nfiles), stat=iost )
143  IF ( iost .ne. 0 ) CALL bort( brtstr // 'INV' )
144 
145  ALLOCATE( nrfelm(maxss,nfiles), stat=iost )
146  IF ( iost .ne. 0 ) CALL bort( brtstr // 'NRFELM' )
147 
148  ALLOCATE( val(maxss,nfiles), stat=iost )
149  IF ( iost .ne. 0 ) CALL bort( brtstr // 'VAL' )
150 
151 C MODA_USRBIT arrays.
152 
153  ALLOCATE( nbit(maxss), stat=iost )
154  IF ( iost .ne. 0 ) CALL bort( brtstr // 'NBIT' )
155 
156  ALLOCATE( mbit(maxss), stat=iost )
157  IF ( iost .ne. 0 ) CALL bort( brtstr // 'MBIT' )
158 
159 C MODA_IVAL arrays.
160 
161  ALLOCATE( ival(maxss), stat=iost )
162  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IVAL' )
163 
164 C MODA_MSGCWD arrays.
165 
166  ALLOCATE( nmsg(nfiles), stat=iost )
167  IF ( iost .ne. 0 ) CALL bort( brtstr // 'NMSG' )
168 
169  ALLOCATE( nsub(nfiles), stat=iost )
170  IF ( iost .ne. 0 ) CALL bort( brtstr // 'NSUB' )
171 
172  ALLOCATE( msub(nfiles), stat=iost )
173  IF ( iost .ne. 0 ) CALL bort( brtstr // 'MSUB' )
174 
175  ALLOCATE( inode(nfiles), stat=iost )
176  IF ( iost .ne. 0 ) CALL bort( brtstr // 'INODE' )
177 
178  ALLOCATE( idate(nfiles), stat=iost )
179  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IDATE' )
180 
181 C MODA_STBFR arrays.
182 
183  ALLOCATE( iolun(nfiles), stat=iost )
184  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IOLUN' )
185 
186  ALLOCATE( iomsg(nfiles), stat=iost )
187  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IOMSG' )
188 
189 C MODA_UFBCPL arrays.
190 
191  ALLOCATE( luncpy(nfiles), stat=iost )
192  IF ( iost .ne. 0 ) CALL bort( brtstr // 'LUNCPY' )
193 
194 C MODA_SC3BFR arrays.
195 
196  ALLOCATE( isc3(nfiles), stat=iost )
197  IF ( iost .ne. 0 ) CALL bort( brtstr // 'ISC3' )
198 
199  ALLOCATE( tamnem(nfiles), stat=iost )
200  IF ( iost .ne. 0 ) CALL bort( brtstr // 'TAMNEM' )
201 
202 C MODA_UNPTYP arrays.
203 
204  ALLOCATE( msgunp(nfiles), stat=iost )
205  IF ( iost .ne. 0 ) CALL bort( brtstr // 'MSGUNP' )
206 
207 C MODA_LUSHR arrays.
208 
209  ALLOCATE( lus(nfiles), stat=iost )
210  IF ( iost .ne. 0 ) CALL bort( brtstr // 'LUS' )
211 
212 C MODA_NULBFR arrays.
213 
214  ALLOCATE( null(nfiles), stat=iost )
215  IF ( iost .ne. 0 ) CALL bort( brtstr // 'NULL' )
216 
217 C MODA_STCODE arrays.
218 
219  ALLOCATE( iscodes(nfiles), stat=iost )
220  IF ( iost .ne. 0 ) CALL bort( brtstr // 'ISCODES' )
221 
222 C MODA_IDRDM arrays.
223 
224  ALLOCATE( idrdm(nfiles), stat=iost )
225  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IDRDM' )
226 
227 C MODA_XTAB arrays.
228 
229  ALLOCATE( xtab(nfiles), stat=iost )
230  IF ( iost .ne. 0 ) CALL bort( brtstr // 'XTAB' )
231 
232 C MODA_MSGLIM arrays.
233 
234  ALLOCATE( msglim(nfiles), stat=iost )
235  IF ( iost .ne. 0 ) CALL bort( brtstr // 'MSGLIM' )
236 
237 C Calculate MXMSGLD4 from MXMSGL.
238 
239  IF ( mod(mxmsgl,4) .eq. 0 ) THEN
240  mxmsgld4 = mxmsgl/4
241  ELSE
242  mxmsgld4 = mxmsgl/4 + 1
243  END IF
244 
245 C MODA_BITBUF arrays.
246 
247  ALLOCATE( ibay(mxmsgld4), stat=iost )
248  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IBAY' )
249 
250  ALLOCATE( mbyt(nfiles), stat=iost )
251  IF ( iost .ne. 0 ) CALL bort( brtstr // 'MBYT' )
252 
253  ALLOCATE( mbay(mxmsgld4,nfiles), stat=iost )
254  IF ( iost .ne. 0 ) CALL bort( brtstr // 'MBAY' )
255 
256 C MODA_MGWA arrays.
257 
258  ALLOCATE( mgwa(mxmsgld4), stat=iost )
259  IF ( iost .ne. 0 ) CALL bort( brtstr // 'MGWA' )
260 
261 C MODA_MGWB arrays.
262 
263  ALLOCATE( mgwb(mxmsgld4), stat=iost )
264  IF ( iost .ne. 0 ) CALL bort( brtstr // 'MGWB' )
265 
266 C MODA_BUFRMG arrays.
267 
268  ALLOCATE( msglen(nfiles), stat=iost )
269  IF ( iost .ne. 0 ) CALL bort( brtstr // 'MSGLEN' )
270  ALLOCATE( msgtxt(mxmsgld4,nfiles), stat=iost )
271  IF ( iost .ne. 0 ) CALL bort( brtstr // 'MSGTXT' )
272 
273 C MODA_BUFRSR arrays.
274 
275  ALLOCATE( jsr(nfiles), stat=iost )
276  IF ( iost .ne. 0 ) CALL bort( brtstr // 'JSR' )
277 
278  ALLOCATE( jbay(mxmsgld4), stat=iost )
279  IF ( iost .ne. 0 ) CALL bort( brtstr // 'JBAY' )
280 
281 C Calculate MXDXM and MXDXW from MXDXTS and MXMSGLD4.
282 
283  mxdxm = mxdxts*3
284  mxdxw = mxdxm*mxmsgld4
285 
286 C MODA_MSGMEM arrays.
287 
288  ALLOCATE( msgp(0:maxmsg), stat=iost )
289  IF ( iost .ne. 0 ) CALL bort( brtstr // 'MSGP' )
290 
291  ALLOCATE( msgs(maxmem), stat=iost )
292  IF ( iost .ne. 0 ) CALL bort( brtstr // 'MSGS' )
293 
294  ALLOCATE( mdx(mxdxw), stat=iost )
295  IF ( iost .ne. 0 ) CALL bort( brtstr // 'MDX' )
296 
297  ALLOCATE( ipdxm(mxdxm), stat=iost )
298  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IPDXM' )
299 
300  ALLOCATE( ifdxts(mxdxts), stat=iost )
301  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IFDXTS' )
302 
303  ALLOCATE( icdxts(mxdxts), stat=iost )
304  IF ( iost .ne. 0 ) CALL bort( brtstr // 'ICDXTS' )
305 
306  ALLOCATE( ipmsgs(mxdxts), stat=iost )
307  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IPMSGS' )
308 
309 C MODA_TABABD arrays.
310 
311  ALLOCATE( ntba(0:nfiles), stat=iost )
312  IF ( iost .ne. 0 ) CALL bort( brtstr // 'NTBA' )
313 
314  ALLOCATE( ntbb(0:nfiles), stat=iost )
315  IF ( iost .ne. 0 ) CALL bort( brtstr // 'NTBB' )
316 
317  ALLOCATE( ntbd(0:nfiles), stat=iost )
318  IF ( iost .ne. 0 ) CALL bort( brtstr // 'NTBD' )
319 
320  ALLOCATE( mtab(maxtba,nfiles), stat=iost )
321  IF ( iost .ne. 0 ) CALL bort( brtstr // 'MTAB' )
322 
323  ALLOCATE( idna(maxtba,nfiles,2), stat=iost )
324  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IDNA' )
325 
326  ALLOCATE( idnb(maxtbb,nfiles), stat=iost )
327  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IDNB' )
328 
329  ALLOCATE( idnd(maxtbd,nfiles), stat=iost )
330  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IDND' )
331 
332  ALLOCATE( taba(maxtba,nfiles), stat=iost )
333  IF ( iost .ne. 0 ) CALL bort( brtstr // 'TABA' )
334 
335  ALLOCATE( tabb(maxtbb,nfiles), stat=iost )
336  IF ( iost .ne. 0 ) CALL bort( brtstr // 'TABB' )
337 
338  ALLOCATE( tabd(maxtbd,nfiles), stat=iost )
339  IF ( iost .ne. 0 ) CALL bort( brtstr // 'TABD' )
340 
341 C MODA_TABLES arrays.
342 
343  ALLOCATE( tag(maxjl), stat=iost )
344  IF ( iost .ne. 0 ) CALL bort( brtstr // 'TAG' )
345 
346  ALLOCATE( typ(maxjl), stat=iost )
347  IF ( iost .ne. 0 ) CALL bort( brtstr // 'TYP' )
348 
349  ALLOCATE( knt(maxjl), stat=iost )
350  IF ( iost .ne. 0 ) CALL bort( brtstr // 'KNT' )
351 
352  ALLOCATE( jump(maxjl), stat=iost )
353  IF ( iost .ne. 0 ) CALL bort( brtstr // 'JUMP' )
354 
355  ALLOCATE( link(maxjl), stat=iost )
356  IF ( iost .ne. 0 ) CALL bort( brtstr // 'LINK' )
357 
358  ALLOCATE( jmpb(maxjl), stat=iost )
359  IF ( iost .ne. 0 ) CALL bort( brtstr // 'JMPB' )
360 
361  ALLOCATE( ibt(maxjl), stat=iost )
362  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IBT' )
363 
364  ALLOCATE( irf(maxjl), stat=iost )
365  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IRF' )
366 
367  ALLOCATE( isc(maxjl), stat=iost )
368  IF ( iost .ne. 0 ) CALL bort( brtstr // 'ISC' )
369 
370  ALLOCATE( itp(maxjl), stat=iost )
371  IF ( iost .ne. 0 ) CALL bort( brtstr // 'ITP' )
372 
373  ALLOCATE( vali(maxjl), stat=iost )
374  IF ( iost .ne. 0 ) CALL bort( brtstr // 'VALI' )
375 
376  ALLOCATE( knti(maxjl), stat=iost )
377  IF ( iost .ne. 0 ) CALL bort( brtstr // 'KNTI' )
378 
379  ALLOCATE( iseq(maxjl,2), stat=iost )
380  IF ( iost .ne. 0 ) CALL bort( brtstr // 'ISEQ' )
381 
382  ALLOCATE( jseq(maxjl), stat=iost )
383  IF ( iost .ne. 0 ) CALL bort( brtstr // 'JSEQ' )
384 
385 C MODA_USRTMP arrays.
386 
387  ALLOCATE( iutmp(maxjl,maxrcr), stat=iost )
388  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IUTMP' )
389 
390  ALLOCATE( vutmp(maxjl,maxrcr), stat=iost )
391  IF ( iost .ne. 0 ) CALL bort( brtstr // 'VUTMP' )
392 
393 C MODA_IVTTMP arrays.
394 
395  ALLOCATE( ttmp(maxjl), stat=iost )
396  IF ( iost .ne. 0 ) CALL bort( brtstr // 'TTMP' )
397 
398  ALLOCATE( itmp(maxjl), stat=iost )
399  IF ( iost .ne. 0 ) CALL bort( brtstr // 'ITMP' )
400 
401  ALLOCATE( vtmp(maxjl), stat=iost )
402  IF ( iost .ne. 0 ) CALL bort( brtstr // 'VTMP' )
403 
404 C MODA_COMPRX arrays.
405 
406  ALLOCATE( kmin(mxcdv), stat=iost )
407  IF ( iost .ne. 0 ) CALL bort( brtstr // 'KMIN' )
408 
409  ALLOCATE( kmax(mxcdv), stat=iost )
410  IF ( iost .ne. 0 ) CALL bort( brtstr // 'KMAX' )
411 
412  ALLOCATE( kmis(mxcdv), stat=iost )
413  IF ( iost .ne. 0 ) CALL bort( brtstr // 'KMIS' )
414 
415  ALLOCATE( kbit(mxcdv), stat=iost )
416  IF ( iost .ne. 0 ) CALL bort( brtstr // 'KBIT' )
417 
418  ALLOCATE( ityp(mxcdv), stat=iost )
419  IF ( iost .ne. 0 ) CALL bort( brtstr // 'ITYP' )
420 
421  ALLOCATE( iwid(mxcdv), stat=iost )
422  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IWID' )
423 
424  ALLOCATE( CHARACTER*(MXLCC) :: cstr(mxcdv), stat=iost )
425  IF ( iost .ne. 0 ) CALL bort( brtstr // 'CSTR' )
426 
427 C MODA_COMPRS arrays.
428 
429  ALLOCATE( matx(mxcdv,mxcsb), stat=iost )
430  IF ( iost .ne. 0 ) CALL bort( brtstr // 'MATX' )
431 
432  ALLOCATE( CHARACTER*(MXLCC) :: catx(mxcdv,mxcsb), stat=iost )
433  IF ( iost .ne. 0 ) CALL bort( brtstr // 'CATX' )
434 
435 C MODA_MSTABS arrays.
436 
437  ALLOCATE( ibfxyn(mxmtbb), stat=iost )
438  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IBFXYN' )
439 
440  ALLOCATE( cbscl(4,mxmtbb), stat=iost )
441  IF ( iost .ne. 0 ) CALL bort( brtstr // 'CBSCL' )
442 
443  ALLOCATE( cbsref(12,mxmtbb), stat=iost )
444  IF ( iost .ne. 0 ) CALL bort( brtstr // 'CBSREF' )
445 
446  ALLOCATE( cbbw(4,mxmtbb), stat=iost )
447  IF ( iost .ne. 0 ) CALL bort( brtstr // 'CBBW' )
448 
449  ALLOCATE( cbunit(14,mxmtbb), stat=iost )
450  IF ( iost .ne. 0 ) CALL bort( brtstr // 'CBUNIT' )
451 
452  ALLOCATE( cbmnem(8,mxmtbb), stat=iost )
453  IF ( iost .ne. 0 ) CALL bort( brtstr // 'CBMNEM' )
454 
455  ALLOCATE( cbelem(120,mxmtbb), stat=iost )
456  IF ( iost .ne. 0 ) CALL bort( brtstr // 'CBELEM' )
457 
458  ALLOCATE( idfxyn(mxmtbd), stat=iost )
459  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IDFXYN' )
460 
461  ALLOCATE( cdseq(120,mxmtbd), stat=iost )
462  IF ( iost .ne. 0 ) CALL bort( brtstr // 'CDSEQ' )
463 
464  ALLOCATE( cdmnem(8,mxmtbd), stat=iost )
465  IF ( iost .ne. 0 ) CALL bort( brtstr // 'CDMNEM' )
466 
467  ALLOCATE( ndelem(mxmtbd), stat=iost )
468  IF ( iost .ne. 0 ) CALL bort( brtstr // 'NDELEM' )
469 
470  ALLOCATE( idefxy(mxmtbd*maxcd), stat=iost )
471  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IDEFXY' )
472 
473 C MODA_RDMTB arrays.
474 
475  ALLOCATE( iefxyn(mxmtbd,maxcd), stat=iost )
476  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IEFXYN' )
477 
478  ALLOCATE( cmdscb(mxmtbb), stat=iost )
479  IF ( iost .ne. 0 ) CALL bort( brtstr // 'CMDSCB' )
480 
481  ALLOCATE( cmdscd(mxmtbd), stat=iost )
482  IF ( iost .ne. 0 ) CALL bort( brtstr // 'CMDSCD' )
483 
484  ALLOCATE( ceelem(mxmtbd,maxcd), stat=iost )
485  IF ( iost .ne. 0 ) CALL bort( brtstr // 'CEELEM' )
486 
487 C MODA_NMIKRP arrays.
488 
489  ALLOCATE( nem(maxcd,10), stat=iost )
490  IF ( iost .ne. 0 ) CALL bort( brtstr // 'NEM' )
491 
492  ALLOCATE( irp(maxcd,10), stat=iost )
493  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IRP' )
494 
495  ALLOCATE( krp(maxcd,10), stat=iost )
496  IF ( iost .ne. 0 ) CALL bort( brtstr // 'KRP' )
497 
498 C MODA_S01CM arrays.
499 
500  ALLOCATE( ivmnem(mxs01v), stat=iost )
501  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IVMNEM' )
502 
503  ALLOCATE( cmnem(mxs01v), stat=iost )
504  IF ( iost .ne. 0 ) CALL bort( brtstr // 'CMNEM' )
505 
506 C MODA_BITMAPS arrays.
507 
508  ALLOCATE( inodtamc(mxtamc), stat=iost )
509  IF ( iost .ne. 0 ) CALL bort( brtstr // 'INODTAMC' )
510 
511  ALLOCATE( ntco(mxtamc), stat=iost )
512  IF ( iost .ne. 0 ) CALL bort( brtstr // 'NTCO' )
513 
514  ALLOCATE( ctco(mxtamc,mxtco), stat=iost )
515  IF ( iost .ne. 0 ) CALL bort( brtstr // 'CTCO' )
516 
517  ALLOCATE( inodtco(mxtamc,mxtco), stat=iost )
518  IF ( iost .ne. 0 ) CALL bort( brtstr // 'INODTCO' )
519 
520  ALLOCATE( nbtmse(mxbtm), stat=iost )
521  IF ( iost .ne. 0 ) CALL bort( brtstr // 'NBTMSE' )
522 
523  ALLOCATE( istbtm(mxbtm), stat=iost )
524  IF ( iost .ne. 0 ) CALL bort( brtstr // 'ISTBTM' )
525 
526  ALLOCATE( iszbtm(mxbtm), stat=iost )
527  IF ( iost .ne. 0 ) CALL bort( brtstr // 'ISZBTM' )
528 
529  ALLOCATE( ibtmse(mxbtm,mxbtmse), stat=iost )
530  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IBTMSE' )
531 
532 C MODA_NRV203 arrays.
533 
534  ALLOCATE( tagnrv(mxnrv), stat=iost )
535  IF ( iost .ne. 0 ) CALL bort( brtstr // 'TAGNRV' )
536 
537  ALLOCATE( inodnrv(mxnrv), stat=iost )
538  IF ( iost .ne. 0 ) CALL bort( brtstr // 'INODNRV' )
539 
540  ALLOCATE( nrv(mxnrv), stat=iost )
541  IF ( iost .ne. 0 ) CALL bort( brtstr // 'NRV' )
542 
543  ALLOCATE( isnrv(mxnrv), stat=iost )
544  IF ( iost .ne. 0 ) CALL bort( brtstr // 'ISNRV' )
545 
546  ALLOCATE( ienrv(mxnrv), stat=iost )
547  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IENRV' )
548 
549 C MODA_RLCCMN arrays.
550 
551  ALLOCATE( irnch(mxrst), stat=iost )
552  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IRNCH' )
553 
554  ALLOCATE( irbit(mxrst), stat=iost )
555  IF ( iost .ne. 0 ) CALL bort( brtstr // 'IRBIT' )
556 
557  ALLOCATE( crtag(mxrst), stat=iost )
558  IF ( iost .ne. 0 ) CALL bort( brtstr // 'CRTAG' )
559 
560 #endif
561 
562  RETURN
563  END
subroutine arallocf
For dynamic allocation builds of the library, this subroutine is called internally during the first c...
Definition: arallocf.F:33
This module contains array and variable declarations for use with any 2-03-YYY (change reference valu...
Definition: moda_nrv203.F:15
This module contains array and variable declarations used to store bitmaps internally within a data s...
Definition: moda_bitmaps.F:13
This module contains array and variable declarations used to store DX BUFR tables internally for mult...
Definition: moda_tababd.F:10
This module contains array and variable declarations used to store the contents of one or more BUFR f...
Definition: moda_msgmem.F:14
This module contains array and variable declarations used to store the internal jump/link table...
Definition: moda_tables.F:13
subroutine errwrt(STR)
This subroutine allows the user to specify a custom location for the logging of error and diagnostic ...
Definition: errwrt.f:39
This module contains array and variable declarations used to store master Table B and Table D entries...
Definition: moda_mstabs.F:15
subroutine bort(STR)
This subroutine calls subroutine errwrt() to log an error message, then calls subroutine bort_exit() ...
Definition: bort.f:23
This module contains array and variable declarations used to store BUFR messages internally for multi...
Definition: moda_bitbuf.F:10