      SUBROUTINE GETGBNR(GGPAK,NPACK,NAME,NF,NLON,NLAT,IDAY,GG) 
C
C     * SEP 27/92 - M.LAZARE. - MAXX NOW INCLUDES "MACHINE" FACTOR. 
C     * SEP 20/89 - M.LAZARE. 
C 
C     * GETS GAUSSIAN GRID GG(NLON,NLAT) CALLED NAME FROM FILE NF.
C     * AND PACKS IT INTO ARRAY GGPAK WITH PACKING DENSITY NPACK. 
C     * THE LAST POINT IN EACH ROW IS OMITTED SINCE IT IS 
C     * JUST A COPY OF THE FIRST POINT IN THE ROW.
C     * IDAY IS THE DAY OF THE YEAR.
C 
C     * NOTE THAT THIS ROUTINE IS EXACTLY THE SAME AS ROUTINE "GETAGB", 
C     * EXCEPT THAT THE INPUT FILE IS NOT REWOUND (TO BE USED TO SAVE 
C     * I/O ON OPERATIONS THAT WORK WITH SEQUENTIAL DATA).
C 
      IMPLICIT REAL (A-H,O-Z),
     +INTEGER (I-N)

      REAL GGPAK(1),GG(NLON,1)
      LOGICAL OK
C 
C     * ICOM IS A SHARED SCM I/O AREA. IT MUST BE LARGE ENOUGH
C     * FOR AN 8 WORD LABEL FOLLOWED BY A PACKED GAUSSIAN GRID. 
C 
      COMMON /ICOM/ IBUF(8),IDAT(1) 
      COMMON /MACHTYP/ MACHINE, INTSIZE
C-----------------------------------------------------------------------
C     * READ THE FIELD. 
C     * STOP IF NOT FOUND OR WRONG SIZE IS READ.
C 
      MAXX=( NLON*NLAT + 8 )*MACHINE
      CALL GETFLD2(NF,GG,NC4TO8("GRID"),IDAY,NAME,1,IBUF,MAXX,OK)
      IF(.NOT.OK) GO TO 900 
      WRITE(6,6025) IBUF
      IF(IBUF(5).NE.NLON) GO TO 900 
      IF(IBUF(6).NE.NLAT) GO TO 900 
C 
C     * PACK INTO GGPAK ONE ROW AT A TIME.
C     * (LEAVING OFF THE LAST POINT IN EACH ROW). 
C 
      DO 210 J=1,NLAT 
  210 CALL PKGR(GGPAK,J,GG(1,J),NLON-1,NPACK,IBUF)
      RETURN
C 
C     * ERROR EXIT - STOP IF GRID MISSING OR WRONG SIZE.
C 
  900 WRITE(6,6020) IDAY,NAME,NLON,NLAT 
      CALL XIT('GETGBNR',-1)
C-----------------------------------------------------------------------
 6020 FORMAT('0GRID',I10,1X,A4,5X,'SIZE',2I6,5X,'NOT FOUND') 
 6025 FORMAT(' ',A4,I10,1X,A4,5I6)
 6030 FORMAT('+',55X,A4,' BIAS =',1PE12.4)
      END 
