31 subroutine addlocal(cgrib,lcgrib,csec2,lcsec2,ierr)
33 character(len=1),
intent(inout) :: cgrib(lcgrib)
34 character(len=1),
intent(in) :: csec2(lcsec2)
35 integer,
intent(in) :: lcgrib,lcsec2
36 integer,
intent(out) :: ierr
38 character(len=4),
parameter :: grib=
'GRIB',c7777=
'7777'
39 character(len=4):: ctemp
40 integer,
parameter :: two=2
41 integer lensec2,iofst,ibeg,lencurr,len
47 ctemp=cgrib(1)//cgrib(2)//cgrib(3)//cgrib(4)
48 if ( ctemp.ne.grib )
then
49 print *,
'addlocal: GRIB not found in given message.'
50 print *,
'addlocal: Call to routine gribcreate required',
51 &
' to initialize GRIB messge.'
62 ctemp=cgrib(lencurr-3)//cgrib(lencurr-2)//cgrib(lencurr-1)
64 if ( ctemp.eq.c7777 )
then
65 print *,
'addlocal: GRIB message already complete. Cannot',
83 if ( len.eq.lencurr )
exit
86 if ( len.gt.lencurr )
then
87 print *,
'addlocal: Section byte counts don''t add to total.'
88 print *,
'addlocal: Sum of section byte counts = ',len
89 print *,
'addlocal: Total byte count in Section 0 = ',lencurr
97 if ( (isecnum.ne.1) .and. (isecnum.ne.7) )
then
98 print *,
'addlocal: Section 2 can only be added after Section',
100 print *,
'addlocal: Section ',isecnum,
' was the last found in',
101 &
' given GRIB message.'
112 cgrib(istart+1:istart+lcsec2)=csec2(1:lcsec2)
123 call g2_sbytec(cgrib,lencurr+lensec2,96,32)