11 type(dbasession) :: session, sessionto
12 type(dbaconnection) :: connection
13 TYPE(l4f_handle) :: category
15 CHARACTER(len=512) :: a_name
18 call l4f_launcher(a_name,a_name_force=
"dballe_test")
22 category=l4f_category_get_handle(trim(a_name)//
".main")
26 session=
dbasession(connection,wipe=.true.,write=.true.)
33 sessionto=
dbasession(filename=
"dballe_test2.bufr",wipe=.true.,write=.true.,memdb=.false.,template=
"generic")
36 # ifndef F2003_FULL_FEATURES 37 call sessionto%delete()
41 sessionto=
dbasession(filename=
"dballe_test2_memdb.bufr",wipe=.true.,write=.true.,memdb=.true.,template=
"generic")
45 # ifndef F2003_FULL_FEATURES 47 call sessionto%delete()
49 call connection%delete()
53 CALL l4f_category_delete(category)
60 type(dbametaanddata),
allocatable :: metaanddata(:)
64 print *,
"----------------------------------------------" 65 print *,
"--------------- write1 ------------------------" 67 allocate(metaanddata(5))
70 level=
dbalevel(level1=105, l1=2000) &
72 ,ana=
dbaana(lon=10.d0,lat=45.d0) &
77 level=
dbalevel(level1=105, l1=2000) &
79 ,ana=
dbaana(lon=11.d0,lat=45.d0) &
84 level=
dbalevel(level1=105, l1=2000) &
86 ,ana=
dbaana(lon=12.d0,lat=45.d0) &
91 level=
dbalevel(level1=105, l1=2000) &
93 ,ana=
dbaana(lon=13.d0,lat=45.d0) &
98 level=
dbalevel(level1=105, l1=2000) &
100 ,ana=
dbaana(lon=14.d0,lat=45.d0) &
106 allocate (metaanddata(1)%dataattrv%dataattr(1))
109 allocate (metaanddata(1)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B13003",85))
112 allocate (attrv%dcv(3))
113 allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33192",30.))
114 allocate (attrv%dcv(2)%dat,source=
dbadatai(
"*B33193",50))
115 allocate (attrv%dcv(3)%dat,source=
dbadatar(
"*B33194",70.))
117 metaanddata(1)%dataattrv%dataattr(1)%attrv=attrv
120 allocate (metaanddata(2)%dataattrv%dataattr(1))
122 allocate (metaanddata(2)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B12101",27315))
124 deallocate(attrv%dcv)
125 allocate (attrv%dcv(2))
126 allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33192",30.))
127 allocate (attrv%dcv(2)%dat,source=
dbadatai(
"*B33193",50))
129 metaanddata(2)%dataattrv%dataattr(1)%attrv=attrv
133 allocate (metaanddata(3)%dataattrv%dataattr(1))
135 allocate (metaanddata(3)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B12101",imiss))
137 deallocate(attrv%dcv)
138 allocate (attrv%dcv(1))
139 allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33192",rmiss))
141 metaanddata(3)%dataattrv%dataattr(1)%attrv=attrv
145 allocate (metaanddata(4)%dataattrv%dataattr(1))
147 allocate (metaanddata(4)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B12101",27315))
149 deallocate(attrv%dcv)
150 allocate (attrv%dcv(1))
151 allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33192",rmiss))
153 metaanddata(4)%dataattrv%dataattr(1)%attrv=attrv
158 allocate (metaanddata(5)%dataattrv%dataattr(1))
161 allocate (metaanddata(5)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B13003",-5))
164 deallocate (attrv%dcv)
165 allocate (attrv%dcv(1))
166 allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33192",30.))
168 metaanddata(5)%dataattrv%dataattr(1)%attrv=attrv
175 do i=1,
size(metaanddata)
176 call metaanddata(i)%display()
178 call metaanddata(i)%extrude(session)
182 end subroutine write1
188 type(dbametadata),
allocatable :: metadata(:)
189 type(dbafilter) :: filter
191 print *,
"----------------------------------------------" 192 print *,
"--------------- delete ----------------------" 195 allocate(metadata(1))
198 level=
dbalevel(level1=105, l1=2000) &
200 ,ana=
dbaana(lon=10.d0,lat=45.d0) &
204 filter=
dbafilter(var=
"B13003",starvarlist=
"*B33193,*B33194")
205 call session%set(filter=filter)
206 call session%dissolveattr(metadata)
210 end subroutine delete3
212 subroutine writeattronly()
214 type(dbametaanddata),
allocatable :: metaanddata(:)
215 type(dbadcv) :: attrv
218 print *,
"----------------------------------------------" 219 print *,
"--------------- writeattronly ------------------------" 221 allocate(metaanddata(1))
224 level=
dbalevel(level1=105, l1=2000) &
226 ,ana=
dbaana(lon=11.d0,lat=45.d0) &
232 allocate (metaanddata(1)%dataattrv%dataattr(1))
235 allocate (metaanddata(1)%dataattrv%dataattr(1)%dat,source=
dbadatai(
"B12101",28315))
238 allocate (attrv%dcv(2))
239 allocate (attrv%dcv(1)%dat,source=
dbadatar(
"*B33193"))
240 allocate (attrv%dcv(2)%dat,source=
dbadatar(
"*B33194",40.))
242 metaanddata(1)%dataattrv%dataattr(1)%attrv=attrv
248 do i=1,
size(metaanddata)
249 call metaanddata(i)%display()
251 call metaanddata(i)%extrude(session,attronly=.true.)
255 end subroutine writeattronly
257 subroutine export2bufr()
258 type(dbametaanddata),
allocatable:: metaanddatav(:)
261 print *,
"----------------------------------------------" 262 print *,
"--------------- export2bufr ------------------------" 264 call session%ingest(metaanddatav)
266 do i=1,
size(metaanddatav)
267 call metaanddatav(i)%display()
269 call metaanddatav(i)%extrude(sessionto)
270 if (sessionto%memdb)
then 271 call sessionto%messages_write_next(
"generic")
273 call sessionto%remove_all()
277 end subroutine export2bufr
280 end program dballe_test
Class for expressing an absolute time value.
Classi per la gestione delle coordinate temporali.
filter to apply before ingest data
Global log4fortran destructor.
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.