18 MODULE vol7d_serialize_csvdba_class
19 use,
INTRINSIC :: iso_c_binding
26 PROCEDURE :: vol7d_serialize_optionparser
27 PROCEDURE :: vol7d_serialize_parse
28 PROCEDURE :: vol7d_serialize_export
29 END TYPE vol7d_serialize_csvdba
32 PUBLIC vol7d_serialize_csvdba, vol7d_serialize_csvdba_new
36 FUNCTION vol7d_serialize_csvdba_new()
RESULT(this)
37 TYPE(vol7d_serialize_csvdba) :: this
39 this%vol7d_serialize = vol7d_serialize_new()
41 END FUNCTION vol7d_serialize_csvdba_new
44 SUBROUTINE vol7d_serialize_optionparser(this, opt, ext)
45 CLASS(vol7d_serialize_csvdba),
INTENT(inout) :: this
46 TYPE(optionparser),
INTENT(inout),
OPTIONAL :: opt
47 CHARACTER(len=*),
INTENT(in),
OPTIONAL :: ext
49 IF (
PRESENT(ext))
THEN
56 this%cachedesc = .true.
57 this%column =
'ana,network,time,level,timerange,var,value'
58 this%loop =
'time,timerange,level,ana,network,var'
61 END SUBROUTINE vol7d_serialize_optionparser
64 SUBROUTINE vol7d_serialize_parse(this, category)
65 CLASS(vol7d_serialize_csvdba),
INTENT(inout) :: this
66 INTEGER,
INTENT(in),
OPTIONAL :: category
69 CALL this%vol7d_serialize%vol7d_serialize_parse(category)
71 END SUBROUTINE vol7d_serialize_parse
74 SUBROUTINE vol7d_serialize_export(this, iun)
75 CLASS(vol7d_serialize_csvdba),
INTENT(inout) :: this
76 INTEGER,
INTENT(in) :: iun
78 CHARACTER(len=64),
TARGET,
ALLOCATABLE :: col(:)
79 CHARACTER(len=2048),
TARGET :: line
80 CHARACTER(len=1),
POINTER :: pline
82 TYPE(vol7d_serialize_iterline) :: linei
83 TYPE(vol7d_serialize_itercol) :: coli
87 coli = this%vol7d_serialize_itercol_new()
91 line(len_trim(line)+1:) =
','
94 pline => line(len_trim(line)+1:len_trim(line)+1)
95 CALL coli%export(c_loc(pline))
98 WRITE(iun,
'(A)')trim(line)
102 linei = this%vol7d_serialize_iterline_new()
103 DO WHILE(linei%next())
105 coli = linei%vol7d_serialize_itercol_new()
106 DO WHILE(coli%next())
109 line(len_trim(line)+1:) =
','
111 CALL coli%export(c_loc(col(i)(1:1)))
112 line(len_trim(line)+1:) = col(i)
114 WRITE(iun,
'(A)')trim(line)
117 END SUBROUTINE vol7d_serialize_export
119 END MODULE vol7d_serialize_csvdba_class
Module for parsing command-line optons.
Extension of vol7d_class for serializing the contents of a volume.
Class for serializing a vol7d object.