10type(dbasession) :: session, sessionfrom,sessionto
11type(dbaconnection) :: connection ,connectionfrom
12integer :: ier, category
13CHARACTER(len=512) :: a_name
16call l4f_launcher(a_name,a_name_force=
"dballe_test")
20category=l4f_category_get(a_name//
".main")
23connection=
dbaconnection(dsn=
"sqlite:dballe_test.sqlite?wipe=true")
24session=
dbasession(connection,wipe=.true.,write=.true.)
33# ifndef F2003_FULL_FEATURES
36call connection%delete()
40session=
dbasession(filename=
"dballe_test.bufr",wipe=.true.,write=.true.,memdb=.false.)
47# ifndef F2003_FULL_FEATURES
53sessionfrom=
dbasession(filename=
"dballe_test.bufr",memdb=.false.)
55sessionto=
dbasession(filename=
"dballe_test_copy1f.bufr",wipe=.true.,write=.true.,memdb=.false.)
58# ifndef F2003_FULL_FEATURES
60call sessionto%delete()
61call sessionfrom%delete()
67sessionfrom=
dbasession(connectionfrom,wipe=.true.,write=.true.)
68call sessionfrom%messages_open_input(filename=
"dballe_test.bufr",mode=
"r",format=
"BUFR",simplified=.true.)
70sessionto=
dbasession(filename=
"dballe_test_copy1fmem.bufr",wipe=.true.,write=.true.,memdb=.false.)
73# ifndef F2003_FULL_FEATURES
75call sessionfrom%delete()
76call connectionfrom%delete()
77call sessionto%delete()
81CALL l4f_category_delete(category)
88type(dbasession) :: sessionana
89type(dbaanalist) :: anal
94sessionana=
dbasession(filename=
"dballe_test_ana.bufr",wipe=.true.,write=.true.,memdb=.false.)
97call anal%append(
dbaana(lon=11.d0,lat=45.d0))
98call anal%append(
dbaana(lon=12.d0,lat=45.d0))
99call anal%append(
dbaana(lon=13.d0,lat=45.d0))
105do while (anal%element())
108 call ana%extrude(sessionana)
112# ifndef F2003_FULL_FEATURES
113call sessionana%delete()
123type(dbametaanddata),
allocatable :: metaanddata(:)
127print *,
"----------------------------------------------"
128print *,
"--------------- write1 ------------------------"
130allocate(metaanddata(2))
133 level=
dbalevel(level1=105, l1=2000) &
135 ,ana=
dbaana(lon=10.d0,lat=45.d0) &
141allocate (metaanddata(1)%dataattrv%dataattr(2))
144allocate (metaanddata(1)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B13003",85))
147allocate (attrv%dcv(3))
148allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33192",30.))
149allocate (attrv%dcv(2)%dat,source=
dbadatai(
"*B33193",50))
150allocate (attrv%dcv(3)%dat,source=
dbadatar(
"*B33194",70.))
152metaanddata(1)%dataattrv%dataattr(1)%attrv=attrv
155allocate (metaanddata(1)%dataattrv%dataattr(2)%dat,source=
dbadatai(
"B12101",27315))
158allocate (attrv%dcv(2))
159allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33192",30.))
160allocate (attrv%dcv(2)%dat,source=
dbadatai(
"*B33193",50))
162metaanddata(1)%dataattrv%dataattr(2)%attrv=attrv
168metaanddata(2)%metadata=metaanddata(1)%metadata%dbacontextana()
170allocate (metaanddata(2)%dataattrv%dataattr(2))
171allocate (metaanddata(2)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B07030",223))
172allocate (metaanddata(2)%dataattrv%dataattr(1)%attrv%dcv(0))
173allocate (metaanddata(2)%dataattrv%dataattr(2)%dat,source=
dbadatac(
"B01019",
"My beautifull station"))
174allocate (metaanddata(2)%dataattrv%dataattr(2)%attrv%dcv(0))
179do i=1,
size(metaanddata)
180 call metaanddata(i)%display()
182 call metaanddata(i)%extrude(session)
191type(dbadatar),
allocatable :: data(:)
193type(dbalevel) :: level
194type(dbatimerange) :: timerange
196type(dbanetwork) :: network
197type(dbadatetime) :: datetime
200print *,
"----------------------------------------------"
201print *,
"--------------- write2 ------------------------"
205call session%unsetall()
211call timerange%display()
213ana=
dbaana(lon=11.d0,lat=45.d0)
216call network%display()
221call session%set(level=level)
222call session%set(timerange=timerange)
223call session%set(ana=ana)
224call session%set(network=network)
235allocate (
data(2),source=[
dbadatar(
"B12102",265.33),
dbadatar(
"B12101",273.15)])
239 call data(i)%display()
240 call session%set(data=
data(i))
245call session%prendilo()
249call session%close_message()
257type(dbametadata) :: metadata
259type(dbalevel) :: level
260type(dbatimerange) :: timerange
262type(dbanetwork) :: network
263type(dbadatetime) :: datetime
265print *,
"----------------------------------------------"
266print *,
"--------------- write3 ------------------------"
270call session%unsetall()
275ana=
dbaana(lon=12.d0,lat=45.d0)
281call metadata%display()
284call session%set(metadata)
288call metadata%display()
291allocate (datav%dcv(2))
292allocate (datav%dcv(1)%dat,source=
dbadatai(
"B12102",26312))
293allocate (datav%dcv(2)%dat,source=
dbadatar(
"B12101",273.15))
296call session%set(datav=datav)
302call session%prendilo()
306call session%close_message()
313type(dbametadata) :: metadata
314type(dbadataattrv) :: dataattrv
318print *,
"----------------------------------------------"
319print *,
"--------------- write4 ------------------------"
322call session%unsetall()
326 level=
dbalevel(level1=105, l1=2000) &
328 ,ana=
dbaana(lon=13.d0,lat=45.d0) &
332call session%set(metadata)
335allocate (datav%dcv(2))
336allocate (datav%dcv(1)%dat,source=
dbadatai(
"B12102",26312))
337allocate (datav%dcv(2)%dat,source=
dbadatar(
"B12101",273.15))
340allocate (attrv%dcv(3))
341allocate (attrv%dcv(1)%dat,source=
dbadatai(
"*B33192",30))
342allocate (attrv%dcv(2)%dat,source=
dbadatac(
"*B33193",
"70"))
343allocate (attrv%dcv(3)%dat,source=
dbadatad(
"*B33194",50.d0))
347allocate (dataattrv%dataattr(2))
349allocate (dataattrv%dataattr(1)%dat,source=datav%dcv(1)%dat)
350dataattrv%dataattr(1)%attrv=attrv
352allocate (dataattrv%dataattr(2)%dat,source=datav%dcv(2)%dat)
353allocate (dataattrv%dataattr(2)%attrv%dcv(0))
355call dataattrv%display()
359call dataattrv%extrude(session)
362call session%set(metadata%dbacontextana())
366call dataattrv%extrude(session)
373type(dbafilter) :: filter
375print *,
"----------------------------------------------"
376print *,
"--------------- delete1 ----------------------"
379call session%set(filter=filter)
380call session%dissolve()
382end subroutine delete1
387type(dbametadata),
allocatable :: metadata(:)
388type(dbafilter) :: filter
390print *,
"----------------------------------------------"
391print *,
"--------------- delete2 ----------------------"
397 level=
dbalevel(level1=105, l1=2000) &
399 ,ana=
dbaana(lon=11.d0,lat=45.d0) &
405call session%set(filter=filter)
406call session%dissolve(metadata)
410end subroutine delete2
416type(dbametadata),
allocatable :: metadata(:)
417type(dbafilter) :: filter
419print *,
"----------------------------------------------"
420print *,
"--------------- delete3 ----------------------"
426 level=
dbalevel(level1=105, l1=2000) &
428 ,ana=
dbaana(lon=13.d0,lat=45.d0) &
432filter=
dbafilter(var=
"B12102",starvarlist=
"*B33194,*B33193")
433call session%set(filter=filter)
434call session%dissolveattr(metadata)
438end subroutine delete3
442type(dbametaanddata),
allocatable:: metaanddatav(:)
445print *,
"----------------------------------------------"
446print *,
"--------------- copy1f ----------------------"
449call sessionfrom%filerewind()
452call sessionfrom%ingest(metaanddatav)
453do while (
size(metaanddatav) >0)
454 print*,
"read/write data; count: ",sessionfrom%count
455 do i =1,
size(metaanddatav)
456 print *,
"display metaanddatav index: ", i
459 call metaanddatav(i)%extrude(sessionto)
462 call sessionfrom%ingest(metaanddatav)
464deallocate (metaanddatav)
467call sessionfrom%filerewind()
469call sessionfrom%set(filter=
dbafilter(contextana=.true.))
470call sessionfrom%ingest(metaanddatav)
471do while (
size(metaanddatav) >0)
472 print*,
"read/write data; count: ",sessionfrom%count
473 do i =1,
size(metaanddatav)
474 print *,
"display metaanddatav index: ", i
477 call metaanddatav(i)%extrude(sessionto)
480 call sessionfrom%ingest(metaanddatav)
486subroutine copy1fmem()
487type(dbametaanddata),
allocatable :: metaanddatav(:)
489print *,
"----------------------------------------------"
490print *,
"--------------- copy1fmem ----------------------"
493do while (sessionfrom%messages_read_next())
504 call sessionfrom%set(filter=
dbafilter(contextana=.true.))
505 call sessionfrom%ingest(metaanddatav)
511 call sessionfrom%remove_all()
514end subroutine copy1fmem
516end program dballe_test
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