92 subroutine getgb2p(lugb, lugi, j, jdisc, jids, jpdtn, jpdt, jgdtn, jgdt, &
93 extract, k, gribm, leng, iret)
97 integer,
intent(in) :: lugb, lugi, j, jdisc, jpdtn, jgdtn
98 integer,
dimension(:) :: jids(*), jpdt(*), jgdt(*)
99 logical,
intent(in) :: extract
100 integer,
intent(out) :: k, iret, leng
101 character(len = 1),
pointer,
dimension(:) :: gribm
104 integer :: msk1, irgi, irgs, jk, lpos, msk2, mskp, nlen, nmess, nnum
106 character(len = 1),
pointer,
dimension(:) :: cbuf
107 parameter(msk1 = 32000, msk2 = 4000)
111 subroutine getg2i(lugi, cbuf, nlen, nnum, iret)
112 character(len = 1),
pointer,
dimension(:) :: cbuf
113 integer,
intent(in) :: lugi
114 integer,
intent(out) :: nlen, nnum, iret
116 subroutine getg2ir(lugb, msk1, msk2, mnum, cbuf, nlen, nnum, &
118 character(len = 1),
pointer,
dimension(:) :: cbuf
119 integer,
intent(in) :: lugb, msk1, msk2, mnum
120 integer,
intent(out) :: nlen, nnum, nmess, iret
122 subroutine getgb2rp(lugb, cindex, extract, gribm, leng, iret)
123 integer,
intent(in) :: lugb
124 character(len = 1),
intent(in) :: cindex(*)
125 logical,
intent(in) :: extract
126 integer,
intent(out) :: leng, iret
127 character(len = 1),
pointer,
dimension(:) :: gribm
133 if (lugi .gt. 0)
then
134 call getg2i(lugi, cbuf, nlen, nnum, irgi)
135 elseif (lugi .le. 0)
then
137 call getg2ir(lugb, msk1, msk2, mskp, cbuf, nlen, nnum, nmess, irgi)
139 if (irgi .gt. 1)
then
145 call getgb2s(cbuf, nlen, nnum, j, jdisc, jids, jpdtn, jpdt, jgdtn, jgdt, &
146 jk, gfld, lpos, irgs)
147 if (irgs .ne. 0)
then
155 call getgb2rp(lugb, cbuf(lpos:), extract, gribm, leng, iret)
160 if (
associated(cbuf))
deallocate(cbuf)
subroutine getg2i(LUGI, CBUF, NLEN, NNUM, IRET)
Read a GRIB2 index file and return its contents.
subroutine getg2ir(LUGB, MSK1, MSK2, MNUM, CBUF, NLEN, NNUM, NMESS, IRET)
Generate an index record for a message in a GRIB2 file.
subroutine getgb2p(lugb, lugi, j, jdisc, jids, jpdtn, jpdt, jgdtn, jgdt, extract, k, gribm, leng, iret)
Find and extract a GRIB2 message from a file.
subroutine getgb2rp(lugb, cindex, extract, gribm, leng, iret)
Extract a grib message from a file given the index of the requested field.
subroutine getgb2s(CBUF, NLEN, NNUM, J, JDISC, JIDS, JPDTN, JPDT, JGDTN, JGDT, K, GFLD, LPOS, IRET)
Find information about a GRIB field from the index and fill a grib_mod::gribfield.
subroutine gf_free(gfld)
Free memory that was used to store array values in derived type grib_mod::gribfield.
This Fortran module contains the declaration of derived type gribfield.