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)
Clone the object, creating a new independent instance of the object exactly equal to the starting one...
Display on standard output a description of the gridinfo object provided.
Encode a data array into a grid_id object associated to a gridinfo object.
Export gridinfo descriptors information into a grid_id object.
Constructor, it creates a new instance of the object.
Emit log message for a category with specific priority.
Global log4fortran constructor.
Classi per la gestione delle coordinate temporali.
Module for describing geographically referenced regular grids.
This module defines an abstract interface to different drivers for access to files containing gridded...
Class for managing information about a single gridded georeferenced field, typically imported from an...
classe per la gestione del logging
Classe per la gestione dei livelli verticali in osservazioni meteo e affini.
Classe per la gestione degli intervalli temporali di osservazioni meteo e affini.
Class for managing physical variables in a grib 1/2 fashion.