Example to create a grib editionNumber = 2 file from data generated in memory using a grib_api template
38 integer :: category,ier
39 character(len=512):: a_name,filename=
"out.grib" 40 TYPE(arrayof_gridinfo) :: gridinfo
42 type(griddim_def) :: griddim
44 integer,
parameter :: nx=40, ny=50, component_flag=0
45 type(grid_id) :: gaid_template
46 type(vol7d_level) :: level
47 type(vol7d_timerange) :: timerange
48 type(volgrid6d_var) :: var
49 type(datetime) :: date_time
50 doubleprecision :: xmin=0., xmax=30., ymin=30., ymax=60.
52 character(len=80) :: type=
'regular_ll' 53 real :: field(nx,ny)=5.
56 call l4f_launcher(a_name,a_name_force=
"demo9")
62 category=l4f_category_get(a_name//
".main")
67 proj_type=
type,nx=nx,ny=ny, &
68 xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax, component_flag=component_flag, &
70 categoryappend=
"generated")
71 gaid_template = grid_id_new(grib_api_template=
"regular_ll_sfc_grib2")
72 call init(date_time,year=2011, month=04, day=12, hour=12, minute=00, msec=00)
73 call init(timerange, timerange=4, p1=3600, p2=900)
74 call init(level, level1=105, l1=200, level2=imiss, l2=imiss)
75 call init(var,centre=200, category=3, number=61, discipline=4)
76 CALL insert(gridinfo, nelem=1)
77 call init(gridinfo%array(1), gaid_template, griddim, date_time, timerange, level, var,
clone=.false., categoryappend=
'inventato')
80 call grib_set(grid_id_get_gaid(gridinfo%array(1)%gaid),
"generatingProcessIdentifier",178)
88 CALL export(gridinfo, filename=filename, categoryappend=
"gridinfo scritto")
95 call l4f_category_delete(category)