write_parallel_block_files_array Function

private function write_parallel_block_files_array(self, filenames, names) result(error)

Type Bound

xml_writer_abstract

Arguments

Type IntentOptional Attributes Name
class(xml_writer_abstract), intent(inout) :: self
character(len=*), intent(in) :: filenames(:)
character(len=*), intent(in), optional :: names(:)

Return Value integer(kind=I4P)


Calls

proc~~write_parallel_block_files_array~~CallsGraph proc~write_parallel_block_files_array xml_writer_abstract%write_parallel_block_files_array interface~str str proc~write_parallel_block_files_array->interface~str proc~write_self_closing_tag xml_writer_abstract%write_self_closing_tag proc~write_parallel_block_files_array->proc~write_self_closing_tag proc~str_a_i1p str_a_I1P interface~str->proc~str_a_i1p proc~str_a_i2p str_a_I2P interface~str->proc~str_a_i2p proc~str_a_i4p str_a_I4P interface~str->proc~str_a_i4p proc~str_a_i8p str_a_I8P interface~str->proc~str_a_i8p proc~str_a_r4p str_a_R4P interface~str->proc~str_a_r4p proc~str_a_r8p str_a_R8P interface~str->proc~str_a_r8p proc~str_bol str_bol interface~str->proc~str_bol proc~str_i1p str_I1P interface~str->proc~str_i1p proc~str_i2p str_I2P interface~str->proc~str_i2p proc~str_i4p str_I4P interface~str->proc~str_i4p proc~str_i8p str_I8P interface~str->proc~str_i8p proc~str_r4p str_R4P interface~str->proc~str_r4p proc~str_r8p str_R8P interface~str->proc~str_r8p proc~strf_i1p strf_I1P interface~str->proc~strf_i1p proc~strf_i2p strf_I2P interface~str->proc~strf_i2p proc~strf_i4p strf_I4P interface~str->proc~strf_i4p proc~strf_i8p strf_I8P interface~str->proc~strf_i8p proc~strf_r4p strf_R4P interface~str->proc~strf_r4p proc~strf_r8p strf_R8P interface~str->proc~strf_r8p proc~stringify xml_tag%stringify proc~write_self_closing_tag->proc~stringify proc~str_a_i1p->proc~str_i1p proc~str_a_i2p->proc~str_i2p proc~str_a_i4p->proc~str_i4p proc~str_a_i8p->proc~str_i8p proc~str_a_r4p->proc~str_r4p proc~str_a_r8p->proc~str_r8p proc~compact_real_string compact_real_string proc~str_r4p->proc~compact_real_string proc~str_r8p->proc~compact_real_string proc~stringify->interface~str proc~attributes xml_tag%attributes proc~stringify->proc~attributes proc~chars string%chars proc~stringify->proc~chars proc~end_tag xml_tag%end_tag proc~stringify->proc~end_tag proc~is_allocated string%is_allocated proc~stringify->proc~is_allocated proc~self_closing_tag xml_tag%self_closing_tag proc~stringify->proc~self_closing_tag proc~start_tag xml_tag%start_tag proc~stringify->proc~start_tag proc~self_closing_tag->proc~attributes proc~start_tag->proc~attributes

Called by

proc~~write_parallel_block_files_array~~CalledByGraph proc~write_parallel_block_files_array xml_writer_abstract%write_parallel_block_files_array none~write_parallel_block_files xml_writer_abstract%write_parallel_block_files none~write_parallel_block_files->proc~write_parallel_block_files_array proc~parse_scratch_files vtm_file%parse_scratch_files proc~parse_scratch_files->none~write_parallel_block_files none~write_block vtm_file%write_block proc~parse_scratch_files->none~write_block proc~write_block_array vtm_file%write_block_array proc~write_block_array->none~write_parallel_block_files proc~write_block_string vtm_file%write_block_string proc~write_block_string->none~write_parallel_block_files none~write_block->proc~write_block_array none~write_block->proc~write_block_string proc~finalize vtm_file%finalize proc~finalize->proc~parse_scratch_files proc~initialize vtm_file%initialize proc~initialize->proc~finalize program~vtk_fortran_write_vtm vtk_fortran_write_vtm program~vtk_fortran_write_vtm->none~write_block

Source Code

   function write_parallel_block_files_array(self, filenames, names) result(error)
   !< Write list of files that belong to the current block (list passed as rank 1 array).
   !<
   !<#### 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.
   integer(I4P)                                     :: error        !< Error status.
   integer(I4P)                                     :: f            !< File counter.

   if (present(names)) then
      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_array