00001 ! Copyright 2005-2016 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: prints all the data contained in a grib file
00010 !
00011 !
00012 ! Author: Anne Fouilloux
00013 !
00014 !
00015 program print_data
00016 use grib_api
00017 implicit none
00018 integer :: ifile
00019 integer :: iret
00020 integer :: igrib
00021 integer :: i
00022 real(kind=8), dimension(:), allocatable :: values
00023 integer(kind=4) :: numberOfValues
00024 real(kind=8) :: average
00025 real(kind=8) :: max
00026 real(kind=8) :: min
00027 character(len=256) :: error
00028
00029 call grib_open_file(ifile, &
00030 '../../data/constant_field.grib1','r')
00031
00032 ! a new grib message is loaded from file
00033 ! igrib is the grib id to be used in subsequent calls
00034 call grib_new_from_file(ifile,igrib)
00035
00036
00037 ! get the size of the values array
00038 call grib_get_size(igrib,'values',numberOfValues)
00039
00040 ! get data values
00041 print*, 'number of values ', numberOfValues
00042 allocate(values(numberOfValues), stat=iret)
00043
00044 call grib_get(igrib,'values',values)
00045
00046 do i=1,numberOfValues
00047 write(*,*)' ',i,values(i)
00048 enddo
00049
00050
00051 write(*,*)numberOfValues,' values found '
00052
00053 call grib_get(igrib,'max',max)
00054 write(*,*) 'max=',max
00055 call grib_get(igrib,'min',min)
00056 write(*,*) 'min=',min
00057 call grib_get(igrib,'average',average)
00058 write(*,*) 'average=',average
00059
00060 call grib_release(igrib)
00061
00062 call grib_close_file(ifile)
00063
00064 deallocate(values)
00065
00066 end program print_data