subroutine printinfr(gfld,ivar)

! SUBPROGRAM:    printinfr         
!
! PRGMMR: Bo Cui         DATE: 2013-06-11
!
! PROGRAM HISTORY LOG:
!   14-11-04   Bo Cui: Add information printing for ipdt 4.9 
!
! USAGE:   print grib2 data information
!
! INPUT:  gfld,ivar 

use grib_mod
use params

implicit none

type(gribfield) :: gfld

integer,dimension(200) :: jids,jpdt,jgdt,ipdt,igdt
integer :: currlen=0
logical :: unpack=.true.

integer kf,j,ivar,i
real    fldmin,fldmax

kf=gfld%ndpts   

fldmin=gfld%fld(1)
fldmax=gfld%fld(1)

do j=2,kf               
  if (gfld%fld(j).gt.fldmax) fldmax=gfld%fld(j)
  if (gfld%fld(j).lt.fldmin) fldmin=gfld%fld(j)
enddo

! print out

! gfld%ipdtnum 1/11: ens. fcst or control, high reslution
! gfld%ipdtnum 2/12: ens. average fcst
! gfld%ipdtnum 0/8:  cdas reanalysis 

! gfld%ipdtnum 11: ens. fcst or control in a continuous or non-continuous time interval
! gfld%ipdtnum 12: derived fcst based on ens. members in a continuous/non-continuous time interval
! gfld%ipdtnum 8:  Rstatistically processed values in a continuous/non-continuous time interval

! gfld%ipdtnum 9:  Probability forecasts in a continuous or non-continuous time interval

if(gfld%ipdtnum.eq.11.or.gfld%ipdtnum.eq.12) then
  write(6,100) 
  write(6,102) ivar,gfld%ipdtnum,(gfld%ipdtmpl(i),i=1,3),gfld%ipdtmpl(10),gfld%ipdtmpl(12),   &
                    (gfld%idsect(i),i=6,9),gfld%ipdtmpl(9),gfld%ipdtmpl(30),  &
                    (gfld%ipdtmpl(i),i=16,17), &
                     kf,fldmax,fldmin,gfld%fld(8601)
  write(6,*) 

elseif(gfld%ipdtnum.eq.9) then
  write(6,400) 
  write(6,102) ivar,gfld%ipdtnum,(gfld%ipdtmpl(i),i=1,3),gfld%ipdtmpl(10),gfld%ipdtmpl(12),   &
                    (gfld%idsect(i),i=6,9),gfld%ipdtmpl(9),gfld%ipdtmpl(34),  &
                    (gfld%ipdtmpl(i),i=17,18), &
                     kf,fldmax,fldmin,gfld%fld(8601)
  write(6,*) 

elseif(gfld%ipdtnum.eq.8.or.gfld%ipdtnum.eq.0) then
  write(6,300) 
  write(6,302) ivar,gfld%ipdtnum,(gfld%ipdtmpl(i),i=1,3),gfld%ipdtmpl(10),gfld%ipdtmpl(12),   &
                    (gfld%idsect(i),i=6,9),gfld%ipdtmpl(9), &
                     kf,fldmax,fldmin,gfld%fld(8601)
  write(6,*) 

else
  write(6,200) 
  write(6,202) ivar,gfld%ipdtnum,(gfld%ipdtmpl(i),i=1,3),gfld%ipdtmpl(10),gfld%ipdtmpl(12),   &
                    (gfld%idsect(i),i=6,9),gfld%ipdtmpl(9),(gfld%ipdtmpl(i),i=16,17), &
                     kf,fldmax,fldmin,gfld%fld(8601)
  write(6,*) 
endif

100 format(' REC PDTN PD1 PD2 PD3 PD10   PD12  YEAR MN DY HR FHR  TR ',  &
           'E16 E17    LEN       MAX         MIN      EXAMPLE')
102 format(i4,i5,4i4,i8,i6,3i3,2i4,2i4,i8,3f11.2)

200 format(' REC PDTN PD1 PD2 PD3 PD10   PD12  YEAR MN DY HR FHR ',  &
           'E16 E17    LEN       MAX         MIN      EXAMPLE')
202 format(i4,i5,4i4,i8,i6,3i3,3i4,i8,3f11.2)

300 format(' REC PDTN PD1 PD2 PD3 PD10   PD12  YEAR MN DY HR FHR ',  &
           '           LEN       MAX         MIN      EXAMPLE')
400 format(' REC PDTN PD1 PD2 PD3 PD10   PD12  YEAR MN DY HR FHR  TR ',  &
           'E17 E18    LEN       MAX         MIN      EXAMPLE')
302 format(i4,i5,4i4,i8,i6,3i3,i4,8x,i8,3f11.2)

return
end