10type(dbasession) :: session, sessionfrom,sessionto
11type(dbaconnection) :: connection ,connectionfrom
12TYPE(l4f_handle) :: category
14CHARACTER(len=512) :: a_name
17call l4f_launcher(a_name,a_name_force=
"dballe_test")
21category=l4f_category_get_handle(trim(a_name)//
".main")
24connection=
dbaconnection(dsn=
"sqlite:dballe_test.sqlite?wipe=true")
25session=
dbasession(connection,wipe=.true.,write=.true.)
34# ifndef F2003_FULL_FEATURES
37call connection%delete()
41session=
dbasession(filename=
"dballe_test.bufr",wipe=.true.,write=.true.,memdb=.false.)
48# ifndef F2003_FULL_FEATURES
54sessionfrom=
dbasession(filename=
"dballe_test.bufr",memdb=.false.)
56sessionto=
dbasession(filename=
"dballe_test_copy1f.bufr",wipe=.true.,write=.true.,memdb=.false.)
59# ifndef F2003_FULL_FEATURES
61call sessionto%delete()
62call sessionfrom%delete()
68sessionfrom=
dbasession(connectionfrom,wipe=.true.,write=.true.)
69call sessionfrom%messages_open_input(filename=
"dballe_test.bufr",mode=
"r",format=
"BUFR",simplified=.true.)
71sessionto=
dbasession(filename=
"dballe_test_copy1fmem.bufr",wipe=.true.,write=.true.,memdb=.false.)
74# ifndef F2003_FULL_FEATURES
76call sessionfrom%delete()
77call connectionfrom%delete()
78call sessionto%delete()
82CALL l4f_category_delete(category)
89type(dbasession) :: sessionana
90type(dbaanalist) :: anal
95sessionana=
dbasession(filename=
"dballe_test_ana.bufr",wipe=.true.,write=.true.,memdb=.false.)
98call anal%append(
dbaana(lon=11.d0,lat=45.d0))
99call anal%append(
dbaana(lon=12.d0,lat=45.d0))
100call anal%append(
dbaana(lon=13.d0,lat=45.d0))
106do while (anal%element())
109 call ana%extrude(sessionana)
113# ifndef F2003_FULL_FEATURES
114call sessionana%delete()
124type(dbametaanddata),
allocatable :: metaanddata(:)
128print *,
"----------------------------------------------"
129print *,
"--------------- write1 ------------------------"
131allocate(metaanddata(2))
134 level=
dbalevel(level1=105, l1=2000) &
136 ,ana=
dbaana(lon=10.d0,lat=45.d0) &
142allocate (metaanddata(1)%dataattrv%dataattr(2))
145allocate (metaanddata(1)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B13003",85))
148allocate (attrv%dcv(3))
149allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33192",30.))
150allocate (attrv%dcv(2)%dat,source=
dbadatai(
"*B33193",50))
151allocate (attrv%dcv(3)%dat,source=
dbadatar(
"*B33194",70.))
153metaanddata(1)%dataattrv%dataattr(1)%attrv=attrv
156allocate (metaanddata(1)%dataattrv%dataattr(2)%dat,source=
dbadatai(
"B12101",27315))
159allocate (attrv%dcv(2))
160allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33192",30.))
161allocate (attrv%dcv(2)%dat,source=
dbadatai(
"*B33193",50))
163metaanddata(1)%dataattrv%dataattr(2)%attrv=attrv
169metaanddata(2)%metadata=metaanddata(1)%metadata%dbacontextana()
171allocate (metaanddata(2)%dataattrv%dataattr(2))
172allocate (metaanddata(2)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B07030",223))
173allocate (metaanddata(2)%dataattrv%dataattr(1)%attrv%dcv(0))
174allocate (metaanddata(2)%dataattrv%dataattr(2)%dat,source=
dbadatac(
"B01019",
"My beautifull station"))
175allocate (metaanddata(2)%dataattrv%dataattr(2)%attrv%dcv(0))
180do i=1,
size(metaanddata)
181 call metaanddata(i)%display()
183 call metaanddata(i)%extrude(session)
192type(dbadatar),
allocatable :: data(:)
194type(dbalevel) :: level
195type(dbatimerange) :: timerange
197type(dbanetwork) :: network
198type(dbadatetime) :: datetime
201print *,
"----------------------------------------------"
202print *,
"--------------- write2 ------------------------"
206call session%unsetall()
212call timerange%display()
214ana=
dbaana(lon=11.d0,lat=45.d0)
217call network%display()
222call session%set(level=level)
223call session%set(timerange=timerange)
224call session%set(ana=ana)
225call session%set(network=network)
236allocate (
data(2),source=[
dbadatar(
"B12102",265.33),
dbadatar(
"B12101",273.15)])
240 call data(i)%display()
241 call session%set(data=
data(i))
246call session%prendilo()
250call session%close_message()
258type(dbametadata) :: metadata
260type(dbalevel) :: level
261type(dbatimerange) :: timerange
263type(dbanetwork) :: network
264type(dbadatetime) :: datetime
266print *,
"----------------------------------------------"
267print *,
"--------------- write3 ------------------------"
271call session%unsetall()
276ana=
dbaana(lon=12.d0,lat=45.d0)
282call metadata%display()
285call session%set(metadata)
289call metadata%display()
292allocate (datav%dcv(2))
293allocate (datav%dcv(1)%dat,source=
dbadatai(
"B12102",26312))
294allocate (datav%dcv(2)%dat,source=
dbadatar(
"B12101",273.15))
297call session%set(datav=datav)
303call session%prendilo()
307call session%close_message()
314type(dbametadata) :: metadata
315type(dbadataattrv) :: dataattrv
319print *,
"----------------------------------------------"
320print *,
"--------------- write4 ------------------------"
323call session%unsetall()
327 level=
dbalevel(level1=105, l1=2000) &
329 ,ana=
dbaana(lon=13.d0,lat=45.d0) &
333call session%set(metadata)
336allocate (datav%dcv(2))
337allocate (datav%dcv(1)%dat,source=
dbadatai(
"B12102",26312))
338allocate (datav%dcv(2)%dat,source=
dbadatar(
"B12101",273.15))
341allocate (attrv%dcv(3))
342allocate (attrv%dcv(1)%dat,source=
dbadatai(
"*B33192",30))
343allocate (attrv%dcv(2)%dat,source=
dbadatac(
"*B33193",
"70"))
344allocate (attrv%dcv(3)%dat,source=
dbadatad(
"*B33194",50.d0))
348allocate (dataattrv%dataattr(2))
350allocate (dataattrv%dataattr(1)%dat,source=datav%dcv(1)%dat)
351dataattrv%dataattr(1)%attrv=attrv
353allocate (dataattrv%dataattr(2)%dat,source=datav%dcv(2)%dat)
354allocate (dataattrv%dataattr(2)%attrv%dcv(0))
356call dataattrv%display()
360call dataattrv%extrude(session)
363call session%set(metadata%dbacontextana())
367call dataattrv%extrude(session)
374type(dbafilter) :: filter
376print *,
"----------------------------------------------"
377print *,
"--------------- delete1 ----------------------"
380call session%set(filter=filter)
381call session%dissolve()
383end subroutine delete1
388type(dbametadata),
allocatable :: metadata(:)
389type(dbafilter) :: filter
391print *,
"----------------------------------------------"
392print *,
"--------------- delete2 ----------------------"
398 level=
dbalevel(level1=105, l1=2000) &
400 ,ana=
dbaana(lon=11.d0,lat=45.d0) &
406call session%set(filter=filter)
407call session%dissolve(metadata)
411end subroutine delete2
417type(dbametadata),
allocatable :: metadata(:)
418type(dbafilter) :: filter
420print *,
"----------------------------------------------"
421print *,
"--------------- delete3 ----------------------"
427 level=
dbalevel(level1=105, l1=2000) &
429 ,ana=
dbaana(lon=13.d0,lat=45.d0) &
433filter=
dbafilter(var=
"B12102",starvarlist=
"*B33194,*B33193")
434call session%set(filter=filter)
435call session%dissolveattr(metadata)
439end subroutine delete3
443type(dbametaanddata),
allocatable:: metaanddatav(:)
446print *,
"----------------------------------------------"
447print *,
"--------------- copy1f ----------------------"
450call sessionfrom%filerewind()
453call sessionfrom%ingest(metaanddatav)
454do while (
size(metaanddatav) >0)
455 print*,
"read/write data; count: ",sessionfrom%count
456 do i =1,
size(metaanddatav)
457 print *,
"display metaanddatav index: ", i
460 call metaanddatav(i)%extrude(sessionto)
463 call sessionfrom%ingest(metaanddatav)
465deallocate (metaanddatav)
468call sessionfrom%filerewind()
470call sessionfrom%set(filter=
dbafilter(contextana=.true.))
471call sessionfrom%ingest(metaanddatav)
472do while (
size(metaanddatav) >0)
473 print*,
"read/write data; count: ",sessionfrom%count
474 do i =1,
size(metaanddatav)
475 print *,
"display metaanddatav index: ", i
478 call metaanddatav(i)%extrude(sessionto)
481 call sessionfrom%ingest(metaanddatav)
487subroutine copy1fmem()
488type(dbametaanddata),
allocatable :: metaanddatav(:)
490print *,
"----------------------------------------------"
491print *,
"--------------- copy1fmem ----------------------"
494do while (sessionfrom%messages_read_next())
505 call sessionfrom%set(filter=
dbafilter(contextana=.true.))
506 call sessionfrom%ingest(metaanddatav)
512 call sessionfrom%remove_all()
515end subroutine copy1fmem
517end program dballe_test
Global log4fortran destructor.
Global log4fortran constructor.
Classi per la gestione delle coordinate temporali.
class for import and export data from e to DB-All.e.
classe per la gestione del logging
Class for expressing an absolute time value.
manage connection handle to a DSN
character version for dbadata
doubleprecision version for dbadata
integer version for dbadata
filter to apply before ingest data