Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(xml_writer_abstract), | intent(inout) | :: | self | |||
character, | intent(in) | :: | filenames | |||
character, | intent(in), | optional | :: | names | ||
character, | intent(in), | optional | :: | delimiter |
function write_parallel_block_files_string(self, filenames, names, delimiter) result(error)
!< Write list of files that belong to the current block (list passed as single string).
!<
!<#### Example of usage: 3 files blocks
!<```fortran
!< error = vtm%write_files_list_of_block(filenames='file_1.vts file_2.vts file_3.vtu')
!<```
!<
!<#### Example of usage: 3 files blocks with custom name
!<```fortran
!< error = vtm%write_files_list_of_block(filenames='file_1.vts file_2.vts file_3.vtu',&
!< names='block-bar block-foo block-baz')
!<```
class(xml_writer_abstract), intent(inout) :: self !< Writer.
character(*), intent(in) :: filenames !< List of VTK-XML wrapped file names.
character(*), intent(in), optional :: names !< List names attributed to wrapped files.
character(*), intent(in), optional :: delimiter !< Delimiter character.
integer(I4P) :: error !< Error status.
type(string), allocatable :: filenames_(:) !< List of VTK-XML wrapped file names.
type(string), allocatable :: names_(:) !< List names attributed to wrapped files.
type(string) :: delimiter_ !< Delimiter character.
type(string) :: buffer !< A string buffer.
integer(I4P) :: f !< File counter.
delimiter_ = ' ' ; if (present(delimiter)) delimiter_ = delimiter
buffer = filenames
call buffer%split(tokens=filenames_, sep=delimiter_%chars())
if (present(names)) then
buffer = names
call buffer%split(tokens=names_, sep=delimiter_%chars())
if (size(names_, dim=1)==size(filenames_, dim=1)) then
do f=1, size(filenames_, dim=1)
call self%write_self_closing_tag(name='DataSet', &
attributes='index="'//trim(str(f-1, .true.))// &
'" file="'//trim(adjustl(filenames_(f)))// &
'" name="'//trim(adjustl(names_(f)))//'"')
enddo
endif
else
do f=1,size(filenames_, dim=1)
call self%write_self_closing_tag(name='DataSet', &
attributes='index="'//trim(str(f-1,.true.))// &
'" file="'//trim(adjustl(filenames_(f)))//'"')
enddo
endif
error = self%error
endfunction write_parallel_block_files_string