write_block_string Function

private function write_block_string(self, action, filenames, names, name) result(error)

Type Bound

vtm_file

Arguments

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

Return Value integer(kind=I4P)


Calls

proc~~write_block_string~~CallsGraph proc~write_block_string vtm_file%write_block_string none~write_parallel_block_files xml_writer_abstract%write_parallel_block_files proc~write_block_string->none~write_parallel_block_files proc~chars string%chars proc~write_block_string->proc~chars proc~upper~2 string%upper proc~write_block_string->proc~upper~2 proc~write_parallel_close_block xml_writer_abstract%write_parallel_close_block proc~write_block_string->proc~write_parallel_close_block proc~write_parallel_open_block xml_writer_abstract%write_parallel_open_block proc~write_block_string->proc~write_parallel_open_block proc~write_parallel_block_file xml_writer_abstract%write_parallel_block_file none~write_parallel_block_files->proc~write_parallel_block_file proc~write_parallel_block_files_array xml_writer_abstract%write_parallel_block_files_array none~write_parallel_block_files->proc~write_parallel_block_files_array proc~write_parallel_block_files_string xml_writer_abstract%write_parallel_block_files_string none~write_parallel_block_files->proc~write_parallel_block_files_string proc~write_end_tag xml_writer_abstract%write_end_tag proc~write_parallel_close_block->proc~write_end_tag proc~write_parallel_open_block->proc~chars interface~str str proc~write_parallel_open_block->interface~str proc~write_start_tag xml_writer_abstract%write_start_tag proc~write_parallel_open_block->proc~write_start_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_end_tag->proc~stringify proc~write_parallel_block_file->interface~str proc~write_self_closing_tag xml_writer_abstract%write_self_closing_tag proc~write_parallel_block_file->proc~write_self_closing_tag proc~write_parallel_block_files_array->interface~str proc~write_parallel_block_files_array->proc~write_self_closing_tag proc~write_parallel_block_files_string->proc~chars proc~write_parallel_block_files_string->interface~str proc~split string%split proc~write_parallel_block_files_string->proc~split proc~write_parallel_block_files_string->proc~write_self_closing_tag proc~write_start_tag->proc~stringify proc~partition string%partition proc~split->proc~partition proc~unique string%unique proc~split->proc~unique 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->proc~chars proc~stringify->interface~str proc~attributes xml_tag%attributes proc~stringify->proc~attributes 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~write_self_closing_tag->proc~stringify proc~self_closing_tag->proc~attributes proc~start_tag->proc~attributes proc~replace string%replace proc~unique->proc~replace proc~replace_one_occurrence string%replace_one_occurrence proc~replace->proc~replace_one_occurrence

Called by

proc~~write_block_string~~CalledByGraph proc~write_block_string vtm_file%write_block_string none~write_block vtm_file%write_block none~write_block->proc~write_block_string proc~parse_scratch_files vtm_file%parse_scratch_files proc~parse_scratch_files->none~write_block program~vtk_fortran_write_vtm vtk_fortran_write_vtm program~vtk_fortran_write_vtm->none~write_block proc~finalize vtm_file%finalize proc~finalize->proc~parse_scratch_files proc~initialize vtm_file%initialize proc~initialize->proc~finalize

Source Code

   function write_block_string(self, action, filenames, names, name) result(error)
   !< Write one block dataset (string input).
   !<
   !<#### Example of usage: 3 files blocks
   !<```fortran
   !< error = vtm%write_block(filenames='file_1.vts file_2.vts file_3.vtu', name='my_block')
   !<```
   !<
   !<#### Example of usage: 3 files blocks with custom name
   !<```fortran
   !< error = vtm%write_block(filenames='file_1.vts file_2.vts file_3.vtu', names='block-bar block-foo block-baz', name='my_block')
   !<```
   class(vtm_file), intent(inout)        :: self      !< VTM file.
   character(*),    intent(in), optional :: action    !< Action: [open, close, write].
   character(*),    intent(in), optional :: filenames !< File names of VTK files grouped into current block.
   character(*),    intent(in), optional :: names     !< Auxiliary names attributed to each files.
   character(*),    intent(in), optional :: name      !< Block name
   integer(I4P)                          :: error     !< Error status.
   type(string)                          :: action_   !< Action string.

   if (present(action)) then
      action_ = trim(adjustl(action)) ; action_ = action_%upper()
      select case(action_%chars())
      case('OPEN')
         error = self%xml_writer%write_parallel_open_block(name=name)
      case('CLOSE')
         error = self%xml_writer%write_parallel_close_block()
      case('WRITE')
         if (present(filenames)) error = self%xml_writer%write_parallel_block_files(filenames=filenames, names=names)
      endselect
   else
      error = self%xml_writer%write_parallel_open_block(name=name)
      error = self%xml_writer%write_parallel_block_files(filenames=filenames, names=names)
      error = self%xml_writer%write_parallel_close_block()
   endif
   endfunction write_block_string