subroutine readGB2(igrb2,jpdtn,jpd1,jpd2,jpd10,jpd12,jpdx, + gfld,eps,iret) use grib_mod type(gribfield) :: gfld integer jids(200), jpdt(200), jgdt(200) integer igrb2,jpdtn,jpd1,jpd2,jpd10,jpd12,jpdx logical :: unpack=.true. character*5 eps c write(*,*)'readGB2 igrb2=',igrb2,jpdtn,jpd1,jpd2,jpd10,jpd12, c + jpdx,eps jids=-9999 !array define center, master/local table, year,month,day, hour, etc, -9999 wildcard to accept any jpdt=-9999 !array define Product, to be determined jgdt=-9999 !array define Grid , -9999 wildcard to accept any jdisc=-1 !discipline# -1 wildcard jgdtn=-1 !grid template number, -1 wildcard jskp=0 !Number of fields to be skip, 0 search from beginning jpdt(1)=jpd1 !Category # jpdt(2)=jpd2 !Product # under this category jpdt(10)=jpd10 !Product vertical ID !jpdt(27)=jpdx if(jpd10.eq.100) then jpdt(12)=jpd12*100 !pressure level else jpdt(12)=jpd12 end if if (trim(eps).eq.'sseo') then if(jpd1.eq.1.and.(jpd2.eq.8.or. + jpd2.eq.11) ) then jpdt(27)=jpdx else jpdt(15)=jpdx !to identify max of 3hr,24hr end if else if (jpdtn.eq.11) then jpdt(30)=jpdx !jpdtn=11, SREF accum time use jpdt(30) else if (jpdtn.eq.8) then jpdt(27)=jpdx end if end if if(jpd1.eq.0.and.jpd2.eq.192.and.jpd2.eq.106) then jpdt(15)=jpdx end if call getgb2(igrb2,0,jskp,jdisc,jids,jpdtn,jpdt,jgdtn,jgdt, + unpack, jskp1, gfld,iret) if(iret.ne.0) then write(*,*) 'getgb2 error:',iret,' in read ',igrb2, + ' for var ', jpd1,jpd2,jpd10,jpd12 end if return end