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)
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) &
73 ,datetime=
dbadatetime(datetime_new(2014,01,06,18,00)))
76 level=
dbalevel(level1=105, l1=2000) &
78 ,ana=
dbaana(lon=11.d0,lat=45.d0) &
80 ,datetime=
dbadatetime(datetime_new(2014,01,06,18,00)))
83 level=
dbalevel(level1=105, l1=2000) &
85 ,ana=
dbaana(lon=12.d0,lat=45.d0) &
87 ,datetime=
dbadatetime(datetime_new(2014,01,06,18,00)))
90 level=
dbalevel(level1=105, l1=2000) &
92 ,ana=
dbaana(lon=13.d0,lat=45.d0) &
94 ,datetime=
dbadatetime(datetime_new(2014,01,06,18,00)))
97 level=
dbalevel(level1=105, l1=2000) &
99 ,ana=
dbaana(lon=14.d0,lat=45.d0) &
101 ,datetime=
dbadatetime(datetime_new(2014,01,06,18,00)))
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
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) &
201 ,datetime=
dbadatetime(datetime_new(2014,01,06,18,00)))
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()
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) &
227 ,datetime=
dbadatetime(datetime_new(2014,01,06,18,00)))
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()
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
Classi per la gestione delle coordinate temporali.
Definitions of constants and functions for working with missing values.
vector of container of dbadata
filter to apply before ingest data
manage connection handle to a DSN
class for import and export data from e to DB-All.e.
integer version for dbadata
classe per la gestione del logging
Global log4fortran constructor.