NCEPLIBS-g2  3.4.5
getg2i.f File Reference

This subroutine read a GRIB2 index file and return its content. More...

Go to the source code of this file.

Functions/Subroutines

subroutine getg2i (LUGI, CBUF, NLEN, NNUM, IRET)
 READ A GRIB2 INDEX FILE AND RETURN ITS CONTENTS. More...
 

Detailed Description

This subroutine read a GRIB2 index file and return its content.

Author
Mark Iredell
Date
1995-10-31

Definition in file getg2i.f.

Function/Subroutine Documentation

◆ getg2i()

subroutine getg2i ( integer, intent(in)  LUGI,
character(len=1), dimension(:), pointer  CBUF,
integer, intent(out)  NLEN,
integer, intent(out)  NNUM,
integer, intent(out)  IRET 
)

READ A GRIB2 INDEX FILE AND RETURN ITS CONTENTS.

VERSION 1 OF THE INDEX FILE HAS THE FOLLOWING FORMAT: 81-BYTE S.LORD HEADER WITH 'GB2IX1' IN COLUMNS 42-47 FOLLOWED BY 81-BYTE HEADER WITH NUMBER OF BYTES TO SKIP BEFORE INDEX RECORDS, TOTAL LENGTH IN BYTES OF THE INDEX RECORDS, NUMBER OF INDEX RECORDS, AND GRIB FILE BASENAME WRITTEN IN FORMAT ('IX1FORM:',3I10,2X,A40). EACH FOLLOWING INDEX RECORD CORRESPONDS TO A GRIB MESSAGE AND HAS THE INTERNAL FORMAT:

  • BYTE 001 - 004 LENGTH OF INDEX RECORD
  • BYTE 005 - 008 BYTES TO SKIP IN DATA FILE BEFORE GRIB MESSAGE
  • BYTE 009 - 012 BYTES TO SKIP IN MESSAGE BEFORE LUS (LOCAL USE) SET = 0, IF NO LOCAL USE SECTION IN GRIB2 MESSAGE.
  • BYTE 013 - 016 BYTES TO SKIP IN MESSAGE BEFORE GDS
  • BYTE 017 - 020 BYTES TO SKIP IN MESSAGE BEFORE PDS
  • BYTE 021 - 024 BYTES TO SKIP IN MESSAGE BEFORE DRS
  • BYTE 025 - 028 BYTES TO SKIP IN MESSAGE BEFORE BMS
  • BYTE 029 - 032 BYTES TO SKIP IN MESSAGE BEFORE DATA SECTION
  • BYTE 033 - 040 BYTES TOTAL IN THE MESSAGE
  • BYTE 041 - 041 GRIB VERSION NUMBER (CURRENTLY 2)
  • BYTE 042 - 042 MESSAGE DISCIPLINE
  • BYTE 043 - 044 FIELD NUMBER WITHIN GRIB2 MESSAGE
  • BYTE 045 - II IDENTIFICATION SECTION (IDS)
  • BYTE II+1- JJ GRID DEFINITION SECTION (GDS)
  • BYTE JJ+1- KK PRODUCT DEFINITION SECTION (PDS)
  • BYTE KK+1- LL THE DATA REPRESENTATION SECTION (DRS)
  • BYTE LL+1-LL+6 FIRST 6 BYTES OF THE BIT MAP SECTION (BMS)

PROGRAM HISTORY LOG:

  • 1995-10-31 Mark Iredell
  • 1996-10-31 Mark Iredell AUGMENTED OPTIONAL DEFINITIONS TO BYTE 320
  • 2002-01-03 Stephen Gilbert MODIFIED FROM GETGI TO WORK WITH GRIB2
Parameters
[in]LUGIINTEGER UNIT OF THE UNBLOCKED GRIB INDEX FILE
[out]CBUFCHARACTER*1 POINTER TO A BUFFER THAT CONTAINS INDEX RECORDS. USERS SHOULD FREE MEMORY THAT CBUF POINTS TO, USING DEALLOCATE(CBUF) WHEN CBUF IS NO LONGER NEEDED.
[out]NLENINTEGER TOTAL LENGTH OF ALL INDEX RECORDS
[out]NNUMINTEGER NUMBER OF INDEX RECORDS
[out]IRETINTEGER RETURN CODE
  • 0 ALL OK
  • 2 NOT ENOUGH MEMORY TO HOLD INDEX BUFFER
  • 3 ERROR READING INDEX FILE BUFFER
  • 4 ERROR READING INDEX FILE HEADER
Note
SUBPROGRAM CAN BE CALLED FROM A MULTIPROCESSING ENVIRONMENT. DO NOT ENGAGE THE SAME LOGICAL UNIT FROM MORE THAN ONE PROCESSOR.
Author
Mark Iredell
Date
2000-05-26

Definition at line 57 of file getg2i.f.