!  Description: how to create a multi field message in memory and write
 !               it to a file. The multi field messages can be created
 !               only in GRIB edition 2.
 program multi_write
   use grib_api
   implicit none
   integer                            :: infile,outfile
   integer                            :: in_gribid,iret
   integer                            :: multi_gribid
   integer                            :: step,startsection
   ! multi field messages can be created only in edition 2 
   call grib_open_file(infile,'../../data/sample.grib2','r')
   call grib_open_file(outfile,'multi_created.grib2','w')
   !     a grib message is loaded from file
   !     in_gribid is the grib id to be used in subsequent calls
   call grib_new_from_file(infile,in_gribid)
   do step=0,240,12
     call grib_set(in_gribid,"step",step)
     call grib_multi_append(in_gribid,startsection,multi_gribid)
 !  write messages to a file
   call grib_multi_write(multi_gribid,outfile)
   call grib_release(in_gribid)
   call grib_release(multi_gribid)
   call grib_close_file(infile)
   call grib_close_file(outfile)
 end program multi_write