Example to create a grib editionNumber = 2 file from data generated in memory using a grib_api template
35 type(l4f_handle) :: category
36 character(len=512):: a_name
37 TYPE(arrayof_gridinfo) :: gridinfo
39 type(griddim_def) :: griddim
41 integer,
parameter :: nx=31, ny=16, component_flag=0
42 type(grid_id) :: gaid_template
43 type(vol7d_level) :: level
44 type(vol7d_timerange) :: timerange
45 type(volgrid6d_var) :: var
46 type(datetime) :: date_time
47 doubleprecision :: xmin=0., xmax=30., ymin=35., ymax=50.
49 character(len=80) :: type=
'regular_ll' 54 call l4f_launcher(a_name,a_name_force=
"demo9")
60 category=l4f_category_get_handle(trim(a_name)//
".main")
65 CALL insert(gridinfo, nelem=2)
67 gaid_template = grid_id_new(grib_api_template=
"regular_ll_sfc_grib1")
69 CALL grib_set(grid_id_get_gaid(gaid_template),
"centre", 80)
70 CALL grib_set(grid_id_get_gaid(gaid_template),
"jScansPositively", 1)
74 CALL init(griddim, proj_type=
type, nx=nx, ny=ny, &
75 xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax, component_flag=component_flag, &
76 categoryappend=
"generated")
77 CALL init(date_time, year=2019, month=1, day=20, hour=0, minute=0)
78 CALL init(timerange, timerange=254, p1=0, p2=0)
79 CALL init(level, level1=1, l1=0, level2=imiss, l2=imiss)
81 CALL init(var, centre=80, category=2, number=81, discipline=255)
83 CALL init(gridinfo%array(1), gaid_template, griddim, date_time, timerange, level, &
84 var,
clone=.true., categoryappend=
'inventato')
94 CALL init(var, centre=80, category=2, number=8, discipline=255)
96 CALL init(gridinfo%array(2), gaid_template, griddim, date_time, timerange, level, &
97 var,
clone=.true., categoryappend=
'inventato')
102 field(i,:) = max(
REAL(nx/2-i+1)/
REAL(nx/2)*500., 0.)
108 CALL export(gridinfo, filename=
'const.grib', categoryappend=
"gridinfo scritto")
110 CALL delete(gaid_template)
111 CALL delete(gridinfo)
114 CALL insert(gridinfo, nelem=1)
116 gaid_template = grid_id_new(grib_api_template=
"regular_ll_sfc_grib2")
119 CALL init(timerange, timerange=254, p1=6, p2=0)
120 CALL init(level, level1=103, l1=2000, level2=imiss, l2=imiss)
122 CALL init(var, centre=80, category=0, number=0, discipline=0)
124 CALL init(gridinfo%array(1), gaid_template, griddim, date_time, timerange, level, &
125 var,
clone=.false., categoryappend=
'inventato')
128 CALL grib_set(grid_id_get_gaid(gridinfo%array(1)%gaid),
"centre", 80)
129 CALL grib_set(grid_id_get_gaid(gridinfo%array(1)%gaid),
"jScansPositively", 1)
135 field(i,j) = 200. + (i-1)*0.5 + j*15.
142 CALL export(gridinfo, filename=
't2m.grib', categoryappend=
"gridinfo scritto")
146 CALL delete(gaid_template)
147 CALL delete(gridinfo)
150 CALL l4f_category_delete(category)