anchor.diff:    !---------------------------------------------------------------------------------------------------------------------------------
     !< adjustlt: extension of adjustl to remove tab characters (char(9))
     !---------------------------------------------------------------------------------------------------------------------------------
  -  character(len=*), intent(in) :: string
  -  character(len=len(string)) :: res
  +  character(len=*), intent(in) :: string !< Input String
  +  character(len=len(string)) :: res      !< Output string with tab characters or blanks removed
     !---------------------------------------------------------------------------------------------------------------------------------
   
     !---------------------------------------------------------------------------------------------------------------------------------
  
positive.code:   !---------------------------------------------------------------------------------------------------------------------------------
    !< get_int: get in buffer, the value of attribute 'attrib'
    !---------------------------------------------------------------------------------------------------------------------------------
    character(len=*), intent(IN)            :: buffer
    character(len=*), intent(IN)            :: attrib
    integer(I4P),     intent(OUT)           :: val
    integer(I4P),     intent(OUT), optional :: E_IO
    character(len=*), intent(IN),  optional :: case
    integer :: pos, po2
    !---------------------------------------------------------------------------------------------------------------------------------
  
    !---------------------------------------------------------------------------------------------------------------------------------
    E_IO = 0_I4P
    if(present(case)) then
      if(trim(case)=='lower') then
        pos = index(buffer, trim(adjustlt(attrib))//'="')+len_trim(adjustlt(attrib))+2
  
negative.code:                    VTK_VAR_VECT_I4, & ! integer(I4P) vectorial
                     VTK_VAR_TEXT_R8, & ! real(R8P)    vectorial (texture)
                     VTK_VAR_TEXT_R4    ! real(R4P)    vectorial (texture)
  endinterface
  interface VTK_GEO_XML_READ
    !< Procedure for reading mesh with different topologies in VTK-XML standard.
    !<
    !< VTK_GEO_XML_READ is an interface to 15 different functions; there are 2 functions for each of 3 topologies supported and a function
    !< for closing XML pieces: one function for mesh coordinates with R8P (Ok!) precision and one for mesh coordinates with R4P (Not implemented!) precision.
    !< 1D/3D-rank arrays and packed API for any kinds
    !<
    !<- For StructuredGrid there are 4 functions for each real kinds:
    !<    - inputs are 1D-rank arrays: X[1:NN],Y[1:NN],Z[1:NN]; (Not implemented!)
    !<    - inputs are 3D-rank arrays: X[nx1:nx2,ny1:ny2,nz1:nz2],Y[nx1:nx2,ny1:ny2,nz1:nz2],Z[nx1:nx2,ny1:ny2,nz1:nz2]; (Not implemented!)
    !<    - input is 1D-rank array (packed API): XYZ[1:3,1:NN]; (Not implemented!)
    !<    - input is 3D-rank array (packed API): XYZ[1:3,nx1:nx2,ny1:ny2,nz1:nz2]. (Not implemented!)
    !<- For UnStructuredGrid there are 2 functions for each real kinds:
    !<    - inputs are 1D arrays: X[1:NN],Y[1:NN],Z[1:NN]; (Ok!)
    !<    - input is 1D array (packed API): XYZ[1:3,1:NN]. (Not implemented!)
    !<
    !< VTK_GEO_XML_READ must be called after VTK_INI_XML_READ. It reads the mesh geometry. The inputs that must be passed
    !< change depending on the topologies chosen. Not all VTK topologies have been implemented (*polydata* topologies are absent).
    !<
    !< @note The XML standard is more powerful than legacy. XML file can contain more than 1 mesh with its
    !< associated variables. Thus there is the necessity to close each *pieces* that compose the data-set saved in the
    !< XML file. The VTK_GEO_XML_READ uses the *close piece* format is used just to close the
    !< current piece before saving another piece or closing the file.
    !<
    !<### Examples of usage
  
    module procedure &
    !                 VTK_GEO_XML_STRG_1DA_R8, VTK_GEO_XML_STRG_3DA_R8,  & ! real(R8P) StructuredGrid, 1D/3D Arrays
    !                 VTK_GEO_XML_STRG_1DAP_R8,VTK_GEO_XML_STRG_3DAP_R8, & ! real(R8P) StructuredGrid, 1D/3D Arrays packed API
    !                 VTK_GEO_XML_STRG_1DA_R4, VTK_GEO_XML_STRG_3DA_R4,  & ! real(R4P) StructuredGrid, 1D/3D Arrays
    !                 VTK_GEO_XML_STRG_1DAP_R4,VTK_GEO_XML_STRG_3DAP_R4, & ! real(R4P) StructuredGrid, 1D/3D Arrays packed API
    !                 VTK_GEO_XML_RECT_R8,                               & ! real(R8P) RectilinearGrid
    !                 VTK_GEO_XML_RECT_R4,                               & ! real(R4P) RectilinearGrid
    !                 VTK_GEO_XML_UNST_R8_READ,VTK_GEO_XML_UNST_PACK_R4,      & ! real(R8P) UnstructuredGrid, standard and packed API
                     VTK_GEO_XML_UNST_R4_READ!,VTK_GEO_XML_UNST_PACK_R8,      & ! real(R4P) UnstructuredGrid, standard and packed API
    !                 VTK_GEO_XML_CLOSEP                                   ! closing tag "Piece" function
  endinterface
  !-----------------------------------------------------------------------------------------------------------------------------------
  
  