00001 ! Copyright 2005-2015 ECMWF
00002 ! This software is licensed under the terms of the Apache Licence Version 2.0
00003 ! which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
00004 !
00005 ! In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
00006 ! virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
00007 !
00008 !
00009 ! Description: How to decode grib messages containing multiple
00010 ! fields. Try to turn on and off multi support to
00011 ! see the difference. Default is OFF.
00012 ! For all the tools defalut is multi support ON.
00013 !
00014 !
00015 ! Author: Enrico Fucile
00016 !
00017 !
00018 program multi
00019 use grib_api
00020 implicit none
00021
00022 integer :: iret
00023 character(len = 256) :: error
00024 integer(kind = 4) :: step
00025 integer :: ifile,igrib
00026
00027 call grib_open_file(ifile, '../../data/multi_created.grib2','r')
00028
00029 ! turn on support for multi fields messages */
00030 call grib_multi_support_on()
00031
00032 ! turn off support for multi fields messages */
00033 !call grib_multi_support_off()
00034
00035 call grib_new_from_file(ifile,igrib, iret)
00036 ! Loop on all the messages in a file.
00037
00038 write(*,*) 'step'
00039 do while (iret /= GRIB_END_OF_FILE)
00040
00041 call grib_get(igrib,'step', step)
00042 write(*,'(i3)') step
00043
00044 call grib_new_from_file(ifile,igrib, iret)
00045
00046 end do
00047 call grib_close_file(ifile)
00048
00049 end program multi
00050