42 subroutine gf_unpack7(cgrib,lcgrib,iofst,igdsnum,igdstmpl,
43 & idrsnum,idrstmpl,ndpts,fld,ierr)
45 character(len=1),
intent(in) :: cgrib(lcgrib)
46 integer,
intent(in) :: lcgrib,ndpts,igdsnum,idrsnum
47 integer,
intent(inout) :: iofst
48 integer,
pointer,
dimension(:) :: igdstmpl,idrstmpl
49 integer,
intent(out) :: ierr
50 real,
pointer,
dimension(:) :: fld
62 allocate(fld(ndpts),stat=istat)
68 if (idrsnum.eq.0)
then
69 call simunpack(cgrib(ipos),lensec-5,idrstmpl,ndpts,fld)
70 elseif (idrsnum.eq.2.or.idrsnum.eq.3)
then
71 call comunpack(cgrib(ipos),lensec-5,lensec,idrsnum,idrstmpl,
73 if ( ier .NE. 0 )
then
77 elseif (idrsnum.eq.50)
then
78 call simunpack(cgrib(ipos),lensec-5,idrstmpl,ndpts-1,
82 elseif (idrsnum.eq.51)
then
83 if (igdsnum.ge.50.AND.igdsnum.le.53)
then
84 call specunpack(cgrib(ipos),lensec-5,idrstmpl,ndpts,
85 & igdstmpl(1),igdstmpl(2),igdstmpl(3),fld)
87 print *,
'gf_unpack7: Cannot use GDT 3.',igdsnum,
88 &
' to unpack Data Section 5.51.'
94 elseif (idrsnum.eq.40 .OR. idrsnum.eq.40000)
then
95 call jpcunpack(cgrib(ipos),lensec-5,idrstmpl,ndpts,fld)
98 elseif (idrsnum.eq.41 .OR. idrsnum.eq.40010)
then
99 call pngunpack(cgrib(ipos),lensec-5,idrstmpl,ndpts,fld)
102 print *,
'gf_unpack7: Data Representation Template ',idrsnum,
103 &
' not yet implemented.'
109 iofst=iofst+(8*lensec)