awips2/nativeLib/rary.ohd.pproc.gribit/TEXT/pintbl.f
root 06a8b51d6d Initial revision of AWIPS2 11.9.0-7p5
Former-commit-id: 64fa9254b946eae7e61bbc3f513b7c3696c4f54f
2012-01-06 08:55:05 -06:00

156 lines
5 KiB
Fortran

C$PRAGMA C (GET_APPS_DEFAULTS)
c =====================================================================
c pgm: pintbl (inp,iutw,iupr,ibug,mptnum,istat)
c
c in: inp .... unit number of parameter file
c in: iupr .... unit number of output device
c in: ibug .... debug control
c out: mptnum .... parameter table number
c out: istat .... status code
c =====================================================================
c
subroutine pintbl (inp,iutw,iupr,ibug,mptnum,istat)
c
c.......................................................................
c
c Routine reads gribparm file to change default parameters.
c
c.......................................................................
c Initially written by
c Tim Sweeney, HL Apr 2000
c.......................................................................
c
character*1 dum
character*4 id
character*5 abv
character*6 tbid,wmo
character*25 appsvar
character*50 des
character*80 line
character*50 filnam
character*128 dirnam
c
include 'xmrg_tbl'
include 'grib_tbl'
C
C ================================= RCS keyword statements ==========
CHARACTER*68 RCSKW1,RCSKW2
DATA RCSKW1,RCSKW2 / '
.$Source: /fs/hseb/ob72/wfo_rfc/precip_proc/source/gribit/src/RCS/pintbl.f,v $
. $', '
.$Id: pintbl.f,v 1.1 2006/05/03 13:43:59 gsood Exp $
. $' /
C ===================================================================
c
c
call prbug ('pintbl',1,1,ibug)
c
ccc write (*,*) ' iutw=',iutw,' iupr=',iupr
c
istat=0
c
c check if directory name specified
appsvar='grib_tab_dir'
lappsvar=lenstr(appsvar)
call get_apps_defaults (appsvar,lappsvar,dirnam,ldirnam)
if (ldirnam.eq.0) then
iprint=0
if (iprint.eq.1) then
write (iutw,10) appsvar(1:lappsvar)
if (iupr.ne.iutw) then
if (iupr.ne.iutw) write (iupr,*)
write (iupr,10) appsvar(1:lappsvar)
10 format (' NOTE: apps_default ',a,' not specified.')
endif
endif
go to 120
endif
c
c open file
filnam = dirnam(1:ldirnam)//'/'//'gribtab'
lfilnam = lenstr(filnam)
open (inp,access='sequential',form='formatted',
+ file=filnam,status='old',iostat=iostat)
if (iostat.eq.0) then
write (iutw,20) filnam(1:lfilnam)
if (iupr.ne.iutw) write (iupr,20) filnam(1:lfilnam)
20 format (' NOTE: reading from User Table file ',a,'.')
go to 40
else
write (iutw,30) iostat,filnam(1:lfilnam)
if (iupr.ne.iutw) write (iupr,30) filnam(1:lfilnam)
30 format (' ERROR: iostat ',i3,' encountered opening file ',a,'.')
istat = 1
go to 120
endif
c
c read record
40 read (inp,'(a)',end=110,err=50) line
go to 70
50 write (iutw,60) filnam(1:lfilnam)
60 format (' ERROR: encountered reading file ',a,'.')
if (iupr.ne.iutw) write (iupr,60) filnam(1:lfilnam)
istat = 1
go to 110
c
c determine table id
70 call tablid (iupr,ibug,line,num,icent,isubc,tbid,istat)
if (istat.gt.0) then
go to 40
else if (tbid.eq.'xmrg ') then
num = num + 1
call xmparm (iupr,ibug,line,num,istat)
mproc = num
else if (tbid.eq.'qpfwmo'.or.tbid.eq.'QPFWMO') then
nw1 = 3
nw2 = 6
nw3 = 0
call gbparm (iupr,ibug,line,nw1,nw2,nw3,num,wmo,
+ dum,istat)
if (num.ge.1.and.num.le.12) qpfwmo(num) = wmo
else if (tbid.eq.'128 ') then
nw1 = 3
nw2 = 5
nw3 = 50
call gbparm (iupr,ibug,line,nw1,nw2,nw3,num,id,des,istat)
if (num.lt.128.or.num.gt.255) then
write (iutw,80) num
if (iupr.ne.iutw) write (iupr,80) num
80 format (' ERROR: table 128 number ',i4,' outside range.')
else
abv128(num) = abv
des128(num) = des
endif
else if (tbid.eq.'A ') then
nw1 = 3
nw2 = 50
nw3 = 0
call gbparm (iupr,ibug,line,nw1,nw2,nw3,num,des,dum,istat)
if (num.lt.0.or.num.gt.255) then
write (iutw,90) num
if (iupr.ne.iutw) write (iupr,90) num
90 format (' ERROR: process number' ,i4,' outside range.')
else
tab_a(num) = des
endif
else if (tbid.eq.'C ') then
nw2 = 4
nw3 = 50
call gbparm (iupr,ibug,line,nw1,nw2,nw3,num,id,des,istat)
if (num.le.0.or.num.gt.255) then
write (iutw,100) num
if (iupr.ne.iutw) write (iupr,100) num
100 format (' ERROR: sub-center number ',i4,' outside range.')
else
scid9c(num) = id
scnam9c(num) = des
endif
else
endif
go to 40
c
110 close (inp)
c
120 return
c
end