9 type(dbasession) :: session, sessionto
10 type(dbaconnection) :: connection
11 integer :: ier, category
12 CHARACTER(len=512) :: a_name
15 call l4f_launcher(a_name,a_name_force=
"dballe_test")
19 category=l4f_category_get(a_name//
".main")
23 session=
dbasession(connection,wipe=.true.,write=.true.)
30 sessionto=
dbasession(filename=
"dballe_test2.bufr",wipe=.true.,write=.true.,memdb=.false.,template=
"generic")
33 call sessionto%delete()
36 sessionto=
dbasession(filename=
"dballe_test2_memdb.bufr",wipe=.true.,write=.true.,memdb=.true.,template=
"generic")
41 call sessionto%delete()
43 call connection%delete()
47 CALL l4f_category_delete(category)
54 type(dbametaanddata),
allocatable :: metaanddata(:)
58 print *,
"----------------------------------------------" 59 print *,
"--------------- write1 ------------------------" 61 allocate(metaanddata(5))
64 level=
dbalevel(level1=105, l1=2000) &
66 ,ana=
dbaana(lon=10.d0,lat=45.d0) &
71 level=
dbalevel(level1=105, l1=2000) &
73 ,ana=
dbaana(lon=11.d0,lat=45.d0) &
78 level=
dbalevel(level1=105, l1=2000) &
80 ,ana=
dbaana(lon=12.d0,lat=45.d0) &
85 level=
dbalevel(level1=105, l1=2000) &
87 ,ana=
dbaana(lon=13.d0,lat=45.d0) &
92 level=
dbalevel(level1=105, l1=2000) &
94 ,ana=
dbaana(lon=14.d0,lat=45.d0) &
100 allocate (metaanddata(1)%dataattrv%dataattr(1))
103 allocate (metaanddata(1)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B13003",85))
106 allocate (attrv%dcv(3))
107 allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33192",30.))
108 allocate (attrv%dcv(2)%dat,source=
dbadatai(
"*B33193",50))
109 allocate (attrv%dcv(3)%dat,source=
dbadatar(
"*B33194",70.))
111 metaanddata(1)%dataattrv%dataattr(1)%attrv=attrv
114 allocate (metaanddata(2)%dataattrv%dataattr(1))
116 allocate (metaanddata(2)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B12101",27315))
118 deallocate(attrv%dcv)
119 allocate (attrv%dcv(2))
120 allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33192",30.))
121 allocate (attrv%dcv(2)%dat,source=
dbadatai(
"*B33193",50))
123 metaanddata(2)%dataattrv%dataattr(1)%attrv=attrv
127 allocate (metaanddata(3)%dataattrv%dataattr(1))
129 allocate (metaanddata(3)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B12101",imiss))
131 deallocate(attrv%dcv)
132 allocate (attrv%dcv(1))
133 allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33192",rmiss))
135 metaanddata(3)%dataattrv%dataattr(1)%attrv=attrv
139 allocate (metaanddata(4)%dataattrv%dataattr(1))
141 allocate (metaanddata(4)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B12101",27315))
143 deallocate(attrv%dcv)
144 allocate (attrv%dcv(1))
145 allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33192",rmiss))
147 metaanddata(4)%dataattrv%dataattr(1)%attrv=attrv
152 allocate (metaanddata(5)%dataattrv%dataattr(1))
155 allocate (metaanddata(5)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B13003",-5))
158 deallocate (attrv%dcv)
159 allocate (attrv%dcv(1))
160 allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33192",30.))
162 metaanddata(5)%dataattrv%dataattr(1)%attrv=attrv
169 do i=1,
size(metaanddata)
170 call metaanddata(i)%display()
172 call metaanddata(i)%extrude(session)
176 end subroutine write1
182 type(dbametadata),
allocatable :: metadata(:)
183 type(dbafilter) :: filter
185 print *,
"----------------------------------------------" 186 print *,
"--------------- delete ----------------------" 189 allocate(metadata(1))
192 level=
dbalevel(level1=105, l1=2000) &
194 ,ana=
dbaana(lon=10.d0,lat=45.d0) &
198 filter=
dbafilter(var=
"B13003",starvarlist=
"*B33193,*B33194")
199 call session%set(filter=filter)
200 call session%dissolveattr(metadata)
204 end subroutine delete3
206 subroutine writeattronly()
208 type(dbametaanddata),
allocatable :: metaanddata(:)
209 type(dbadcv) :: attrv
212 print *,
"----------------------------------------------" 213 print *,
"--------------- writeattronly ------------------------" 215 allocate(metaanddata(1))
218 level=
dbalevel(level1=105, l1=2000) &
220 ,ana=
dbaana(lon=11.d0,lat=45.d0) &
226 allocate (metaanddata(1)%dataattrv%dataattr(1))
229 allocate (metaanddata(1)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B12101",28315))
232 allocate (attrv%dcv(2))
233 allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33193"))
234 allocate (attrv%dcv(2)%dat,source=
dbadatar(
"*B33194",40.))
236 metaanddata(1)%dataattrv%dataattr(1)%attrv=attrv
242 do i=1,
size(metaanddata)
243 call metaanddata(i)%display()
245 call metaanddata(i)%extrude(session,attronly=.true.)
249 end subroutine writeattronly
251 subroutine export2bufr()
252 type(dbametaanddata),
allocatable:: metaanddatav(:)
255 print *,
"----------------------------------------------" 256 print *,
"--------------- export2bufr ------------------------" 258 call session%ingest(metaanddatav)
260 do i=1,
size(metaanddatav)
261 call metaanddatav(i)%display()
263 call metaanddatav(i)%extrude(sessionto)
264 if (sessionto%memdb)
then 265 call sessionto%messages_write_next(
"generic")
267 call sessionto%remove_all()
271 end subroutine export2bufr
274 end program dballe_test
Class for expressing an absolute time value.
Classi per la gestione delle coordinate temporali.
filter to apply before ingest data
manage connection handle to a DSN
Definitions of constants and functions for working with missing values.
integer version for dbadata
class for import and export data from e to DB-All.e.
classe per la gestione del logging
Global log4fortran constructor.