VTK_GEO_XML_RECT_R8 Function

private function VTK_GEO_XML_RECT_R8(nx1, nx2, ny1, ny2, nz1, nz2, X, Y, Z) result(E_IO)

Function for saving mesh; topology = RectilinearGrid (R8P).

Arguments

Type IntentOptional AttributesName
integer(kind=I4P), intent(in) :: nx1
integer(kind=I4P), intent(in) :: nx2
integer(kind=I4P), intent(in) :: ny1
integer(kind=I4P), intent(in) :: ny2
integer(kind=I4P), intent(in) :: nz1
integer(kind=I4P), intent(in) :: nz2
real(kind=R8P), intent(in) :: X(nx1:nx2)
real(kind=R8P), intent(in) :: Y(ny1:ny2)
real(kind=R8P), intent(in) :: Z(nz1:nz2)

Return Value integer(kind=I4P)


Calls

proc~~vtk_geo_xml_rect_r8~~CallsGraph proc~vtk_geo_xml_rect_r8 VTK_GEO_XML_RECT_R8 interface~str str proc~vtk_geo_xml_rect_r8->interface~str proc~str_i8p str_I8P interface~str->proc~str_i8p proc~str_r8p str_R8P interface~str->proc~str_r8p proc~str_i1p str_I1P interface~str->proc~str_i1p proc~str_i4p str_I4P interface~str->proc~str_i4p proc~str_r16p str_R16P interface~str->proc~str_r16p proc~str_i2p str_I2P interface~str->proc~str_i2p proc~str_r4p str_R4P interface~str->proc~str_r4p

Called by

proc~~vtk_geo_xml_rect_r8~~CalledByGraph proc~vtk_geo_xml_rect_r8 VTK_GEO_XML_RECT_R8 interface~vtk_geo_xml VTK_GEO_XML interface~vtk_geo_xml->proc~vtk_geo_xml_rect_r8

Contents

Source Code


Source Code

  function VTK_GEO_XML_RECT_R8(nx1,nx2,ny1,ny2,nz1,nz2,X,Y,Z) result(E_IO)
  !---------------------------------------------------------------------------------------------------------------------------------
  !! Function for saving mesh; topology = RectilinearGrid (R8P).
  !---------------------------------------------------------------------------------------------------------------------------------

  !---------------------------------------------------------------------------------------------------------------------------------
  implicit none
  integer(I4P), intent(IN):: nx1,nx2    ! initial and final nodes of x axis
  integer(I4P), intent(IN):: ny1,ny2    ! initial and final nodes of y axis
  integer(I4P), intent(IN):: nz1,nz2    ! initial and final nodes of z axis
  real(R8P),    intent(IN):: X(nx1:nx2) ! x coordinates
  real(R8P),    intent(IN):: Y(ny1:ny2) ! y coordinates
  real(R8P),    intent(IN):: Z(nz1:nz2) ! z coordinates
  integer(I4P)::             E_IO       ! Input/Output inquiring flag: $0$ if IO is done, $> 0$ if IO is not done
  character(len=maxlen)::    s_buffer   ! buffer string
  integer(I4P)::             n1         ! counter
  !---------------------------------------------------------------------------------------------------------------------------------

  !---------------------------------------------------------------------------------------------------------------------------------
  select case(f_out)
  case(f_out_ascii)
    write(unit=Unit_VTK,fmt='(A,6'//FI4P//',A)',iostat=E_IO)repeat(' ',indent)//'<Piece Extent="',nx1,nx2,ny1,ny2,nz1,nz2,'">'
    indent = indent + 2
    write(unit=Unit_VTK,fmt='(A)',iostat=E_IO)repeat(' ',indent)//'<Coordinates>'
    indent = indent + 2
    write(unit=Unit_VTK,fmt='(A)',iostat=E_IO)repeat(' ',indent)//'<DataArray type="Float64" Name="X" format="ascii">'
    write(unit=Unit_VTK,fmt=FR8P, iostat=E_IO)(X(n1),n1=nx1,nx2)
    write(unit=Unit_VTK,fmt='(A)',iostat=E_IO)repeat(' ',indent)//'</DataArray>'
    write(unit=Unit_VTK,fmt='(A)',iostat=E_IO)repeat(' ',indent)//'<DataArray type="Float64" Name="Y" format="ascii">'
    write(unit=Unit_VTK,fmt=FR8P, iostat=E_IO)(Y(n1),n1=ny1,ny2)
    write(unit=Unit_VTK,fmt='(A)',iostat=E_IO)repeat(' ',indent)//'</DataArray>'
    write(unit=Unit_VTK,fmt='(A)',iostat=E_IO)repeat(' ',indent)//'<DataArray type="Float64" Name="Z" format="ascii">'
    write(unit=Unit_VTK,fmt=FR8P, iostat=E_IO)(Z(n1),n1=nz1,nz2)
    write(unit=Unit_VTK,fmt='(A)',iostat=E_IO)repeat(' ',indent)//'</DataArray>'
    indent = indent - 2
    write(unit=Unit_VTK,fmt='(A)',iostat=E_IO)repeat(' ',indent)//'</Coordinates>'
  case(f_out_binary)
    write(s_buffer,fmt='(A,6'//FI4P//',A)',iostat=E_IO)repeat(' ',indent)//'<Piece Extent="',nx1,nx2,ny1,ny2,nz1,nz2,'">'
    indent = indent + 2
    write(unit=Unit_VTK,iostat=E_IO)trim(s_buffer)//end_rec
    write(unit=Unit_VTK,iostat=E_IO)repeat(' ',indent)//'<Coordinates>'//end_rec
    indent = indent + 2
    write(unit=Unit_VTK,iostat=E_IO)repeat(' ',indent)//                                             &
                                    '<DataArray type="Float64" Name="X" format="appended" offset="', &
                                    trim(str(.true.,ioffset)),                                       &
                                    '">'//                                                           &
                                    end_rec
    N_Byte  = (nx2-nx1+1)*sizeof(Tipo_R8)
    ioffset = ioffset + sizeof(Tipo_I4) + N_Byte
    write(unit=Unit_VTK_Append,iostat=E_IO)N_Byte,'R8',nx2-nx1+1
    write(unit=Unit_VTK_Append,iostat=E_IO)(X(n1),n1=nx1,nx2)
    write(unit=Unit_VTK,iostat=E_IO)repeat(' ',indent)//'</DataArray>'//end_rec
    write(unit=Unit_VTK,iostat=E_IO)repeat(' ',indent)// &
                                    '<DataArray type="Float64" Name="Y" format="appended" offset="', &
                                    trim(str(.true.,ioffset)),                                       &
                                    '">'//                                                           &
                                    end_rec
    N_Byte  = (ny2-ny1+1)*sizeof(Tipo_R8)
    ioffset = ioffset + sizeof(Tipo_I4) + N_Byte
    write(unit=Unit_VTK_Append,iostat=E_IO)N_Byte,'R8',ny2-ny1+1
    write(unit=Unit_VTK_Append,iostat=E_IO)(Y(n1),n1=ny1,ny2)
    write(unit=Unit_VTK,iostat=E_IO)repeat(' ',indent)//'</DataArray>'//end_rec
    write(unit=Unit_VTK,iostat=E_IO)repeat(' ',indent)//                                             &
                                    '<DataArray type="Float64" Name="Z" format="appended" offset="', &
                                    trim(str(.true.,ioffset)),                                       &
                                    '">'//                                                           &
                                    end_rec
    N_Byte  = (nz2-nz1+1)*sizeof(Tipo_R8)
    ioffset = ioffset + sizeof(Tipo_I4) + N_Byte
    write(unit=Unit_VTK_Append,iostat=E_IO)N_Byte,'R8',nz2-nz1+1
    write(unit=Unit_VTK_Append,iostat=E_IO)(Z(n1),n1=nz1,nz2)
    write(unit=Unit_VTK,iostat=E_IO)repeat(' ',indent)//'</DataArray>'//end_rec
    indent = indent - 2
    write(unit=Unit_VTK,iostat=E_IO)repeat(' ',indent)//'</Coordinates>'//end_rec
  endselect
  return
  !---------------------------------------------------------------------------------------------------------------------------------
  endfunction VTK_GEO_XML_RECT_R8