Example to create a grib editionNumber = 2 file from data generated in memory using a grib_api template
34 integer :: category,ier
35 character(len=512):: a_name
36 TYPE(arrayof_gridinfo) :: gridinfo
38 type(griddim_def) :: griddim
40 integer,
parameter :: nx=31, ny=16, component_flag=0
41 type(grid_id) :: gaid_template
42 type(vol7d_level) :: level
43 type(vol7d_timerange) :: timerange
44 type(volgrid6d_var) :: var
45 type(datetime) :: date_time
46 doubleprecision :: xmin=0., xmax=30., ymin=35., ymax=50.
48 character(len=80) :: type=
'regular_ll' 53 call l4f_launcher(a_name,a_name_force=
"demo9")
59 category=l4f_category_get(trim(a_name)//
".main")
64 CALL insert(gridinfo, nelem=2)
66 gaid_template = grid_id_new(grib_api_template=
"regular_ll_sfc_grib1")
68 CALL grib_set(grid_id_get_gaid(gaid_template),
"centre", 80)
69 CALL grib_set(grid_id_get_gaid(gaid_template),
"jScansPositively", 1)
73 CALL init(griddim, proj_type=
type, nx=nx, ny=ny, &
74 xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax, component_flag=component_flag, &
75 categoryappend=
"generated")
76 CALL init(date_time, year=2019, month=1, day=20, hour=0, minute=0)
77 CALL init(timerange, timerange=254, p1=0, p2=0)
78 CALL init(level, level1=1, l1=0, level2=imiss, l2=imiss)
80 CALL init(var, centre=80, category=2, number=81, discipline=255)
82 CALL init(gridinfo%array(1), gaid_template, griddim, date_time, timerange, level, &
83 var,
clone=.true., categoryappend=
'inventato')
93 CALL init(var, centre=80, category=2, number=8, discipline=255)
95 CALL init(gridinfo%array(2), gaid_template, griddim, date_time, timerange, level, &
96 var,
clone=.true., categoryappend=
'inventato')
101 field(i,:) = max(
REAL(nx/2-i+1)/
REAL(nx/2)*500., 0.)
107 CALL export(gridinfo, filename=
'const.grib', categoryappend=
"gridinfo scritto")
109 CALL delete(gaid_template)
110 CALL delete(gridinfo)
113 CALL insert(gridinfo, nelem=1)
115 gaid_template = grid_id_new(grib_api_template=
"regular_ll_sfc_grib2")
118 CALL init(timerange, timerange=254, p1=6, p2=0)
119 CALL init(level, level1=103, l1=2000, level2=imiss, l2=imiss)
121 CALL init(var, centre=80, category=0, number=0, discipline=0)
123 CALL init(gridinfo%array(1), gaid_template, griddim, date_time, timerange, level, &
124 var,
clone=.false., categoryappend=
'inventato')
127 CALL grib_set(grid_id_get_gaid(gridinfo%array(1)%gaid),
"centre", 80)
128 CALL grib_set(grid_id_get_gaid(gridinfo%array(1)%gaid),
"jScansPositively", 1)
134 field(i,j) = 200. + (i-1)*0.5 + j*15.
141 CALL export(gridinfo, filename=
't2m.grib', categoryappend=
"gridinfo scritto")
145 CALL delete(gaid_template)
146 CALL delete(gridinfo)
149 CALL l4f_category_delete(category)