Programma esempio semplice per gridinfo e volgrid6d. Programma che importa da file un vettore di gridinfo poi lo importa in volgrid6d. Da volgrid6d viene di nuovo creato un vettore di gridinfo per poi exportare su file.
28 integer :: category,ier
29 character(len=512):: a_name
30 type(arrayof_gridinfo) :: gridinfoin, gridinfoout
31 type(volgrid6d),
pointer :: volgrid(:)
33 TYPE(grid_file_id) :: ifile
34 TYPE(grid_id) :: gaid, gaid_template
38 call l4f_launcher(a_name,a_name_force=
"demo3")
44 category=l4f_category_get(a_name//
".main")
49 ifile = grid_file_id_new(
'../data/in.grb',
'r')
50 ngrib = grid_file_id_count(ifile)
53 "Numero totale di grib: "//
to_char(ngrib))
56 CALL insert(gridinfoin, nelem=ngrib)
62 gaid = grid_id_new(ifile)
63 IF (.NOT.
c_e(gaid))
EXIT 67 CALL init (gridinfoin%array(ngrib), gaid=gaid, categoryappend=trim(
to_char(ngrib)))
68 CALL import(gridinfoin%array(ngrib))
76 call import(volgrid, gridinfoin, categoryappend=
"volume di test")
84 gaid_template = grid_id_new(grib_api_template=
"regular_ll_sfc_grib1")
86 call l4f_category_log(category,l4f_info,
"export a un grib fatto come voglio io")
88 call export(volgrid, gridinfoout, gaid_template=gaid_template)
90 ifile = grid_file_id_new(
'out.grb',
'w')
92 do ngrib=1,gridinfoout%arraysize
95 if(
c_e(gridinfoout%array(ngrib)%gaid))
then 96 call export(gridinfoout%array(ngrib))
97 call export(gridinfoout%array(ngrib)%gaid,ifile)
108 call l4f_category_delete(category)