11type(dbasession) :: session, sessionto
12type(dbaconnection) :: connection
13integer :: ier, category
14CHARACTER(len=512) :: a_name
17call l4f_launcher(a_name,a_name_force=
"dballe_test")
21category=l4f_category_get(a_name//
".main")
25session=
dbasession(connection,wipe=.true.,write=.true.)
32sessionto=
dbasession(filename=
"dballe_test2.bufr",wipe=.true.,write=.true.,memdb=.false.,template=
"generic")
35# ifndef F2003_FULL_FEATURES
36call sessionto%delete()
40sessionto=
dbasession(filename=
"dballe_test2_memdb.bufr",wipe=.true.,write=.true.,memdb=.true.,template=
"generic")
44# ifndef F2003_FULL_FEATURES
46call sessionto%delete()
48call connection%delete()
52CALL l4f_category_delete(category)
59type(dbametaanddata),
allocatable :: metaanddata(:)
63print *,
"----------------------------------------------"
64print *,
"--------------- write1 ------------------------"
66allocate(metaanddata(5))
69 level=
dbalevel(level1=105, l1=2000) &
71 ,ana=
dbaana(lon=10.d0,lat=45.d0) &
76 level=
dbalevel(level1=105, l1=2000) &
78 ,ana=
dbaana(lon=11.d0,lat=45.d0) &
83 level=
dbalevel(level1=105, l1=2000) &
85 ,ana=
dbaana(lon=12.d0,lat=45.d0) &
90 level=
dbalevel(level1=105, l1=2000) &
92 ,ana=
dbaana(lon=13.d0,lat=45.d0) &
97 level=
dbalevel(level1=105, l1=2000) &
99 ,ana=
dbaana(lon=14.d0,lat=45.d0) &
105allocate (metaanddata(1)%dataattrv%dataattr(1))
108allocate (metaanddata(1)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B13003",85))
111allocate (attrv%dcv(3))
112allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33192",30.))
113allocate (attrv%dcv(2)%dat,source=
dbadatai(
"*B33193",50))
114allocate (attrv%dcv(3)%dat,source=
dbadatar(
"*B33194",70.))
116metaanddata(1)%dataattrv%dataattr(1)%attrv=attrv
119allocate (metaanddata(2)%dataattrv%dataattr(1))
121allocate (metaanddata(2)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B12101",27315))
124allocate (attrv%dcv(2))
125allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33192",30.))
126allocate (attrv%dcv(2)%dat,source=
dbadatai(
"*B33193",50))
128metaanddata(2)%dataattrv%dataattr(1)%attrv=attrv
132allocate (metaanddata(3)%dataattrv%dataattr(1))
134allocate (metaanddata(3)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B12101",imiss))
137allocate (attrv%dcv(1))
138allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33192",rmiss))
140metaanddata(3)%dataattrv%dataattr(1)%attrv=attrv
144allocate (metaanddata(4)%dataattrv%dataattr(1))
146allocate (metaanddata(4)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B12101",27315))
149allocate (attrv%dcv(1))
150allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33192",rmiss))
152metaanddata(4)%dataattrv%dataattr(1)%attrv=attrv
157allocate (metaanddata(5)%dataattrv%dataattr(1))
160allocate (metaanddata(5)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B13003",-5))
163deallocate (attrv%dcv)
164allocate (attrv%dcv(1))
165allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33192",30.))
167metaanddata(5)%dataattrv%dataattr(1)%attrv=attrv
174do i=1,
size(metaanddata)
175 call metaanddata(i)%display()
177 call metaanddata(i)%extrude(session)
187type(dbametadata),
allocatable :: metadata(:)
188type(dbafilter) :: filter
190print *,
"----------------------------------------------"
191print *,
"--------------- delete ----------------------"
197 level=
dbalevel(level1=105, l1=2000) &
199 ,ana=
dbaana(lon=10.d0,lat=45.d0) &
203filter=
dbafilter(var=
"B13003",starvarlist=
"*B33193,*B33194")
204call session%set(filter=filter)
205call session%dissolveattr(metadata)
209end subroutine delete3
211subroutine writeattronly()
213type(dbametaanddata),
allocatable :: metaanddata(:)
217print *,
"----------------------------------------------"
218print *,
"--------------- writeattronly ------------------------"
220allocate(metaanddata(1))
223 level=
dbalevel(level1=105, l1=2000) &
225 ,ana=
dbaana(lon=11.d0,lat=45.d0) &
231allocate (metaanddata(1)%dataattrv%dataattr(1))
234allocate (metaanddata(1)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B12101",28315))
237allocate (attrv%dcv(2))
238allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33193"))
239allocate (attrv%dcv(2)%dat,source=
dbadatar(
"*B33194",40.))
241metaanddata(1)%dataattrv%dataattr(1)%attrv=attrv
247do i=1,
size(metaanddata)
248 call metaanddata(i)%display()
250 call metaanddata(i)%extrude(session,attronly=.true.)
254end subroutine writeattronly
256subroutine export2bufr()
257type(dbametaanddata),
allocatable:: metaanddatav(:)
260print *,
"----------------------------------------------"
261print *,
"--------------- export2bufr ------------------------"
263call session%ingest(metaanddatav)
265do i=1,
size(metaanddatav)
266 call metaanddatav(i)%display()
268 call metaanddatav(i)%extrude(sessionto)
269 if (sessionto%memdb)
then
270 call sessionto%messages_write_next(
"generic")
272 call sessionto%remove_all()
276end subroutine export2bufr
279end 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
Definitions of constants and functions for working with missing values.
Class for expressing an absolute time value.
manage connection handle to a DSN
integer version for dbadata
filter to apply before ingest data