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