Function for saving mesh; topology = RECTILINEAR_GRID (R8P).
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=I4P), | intent(in) | :: | Nx | |||
integer(kind=I4P), | intent(in) | :: | Ny | |||
integer(kind=I4P), | intent(in) | :: | Nz | |||
real(kind=R8P), | intent(in) | :: | X(1:Nx) | |||
real(kind=R8P), | intent(in) | :: | Y(1:Ny) | |||
real(kind=R8P), | intent(in) | :: | Z(1:Nz) |
function VTK_GEO_RECT_R8(Nx,Ny,Nz,X,Y,Z) result(E_IO)
!---------------------------------------------------------------------------------------------------------------------------------
!! Function for saving mesh; topology = RECTILINEAR\_GRID (R8P).
!---------------------------------------------------------------------------------------------------------------------------------
!---------------------------------------------------------------------------------------------------------------------------------
implicit none
integer(I4P), intent(IN):: Nx ! number of nodes in x direction
integer(I4P), intent(IN):: Ny ! number of nodes in y direction
integer(I4P), intent(IN):: Nz ! number of nodes in z direction
real(R8P), intent(IN):: X(1:Nx) ! x coordinates
real(R8P), intent(IN):: Y(1:Ny) ! y coordinates
real(R8P), intent(IN):: Z(1:Nz) ! 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,3'//FI4P//')', iostat=E_IO)'DIMENSIONS ',Nx,Ny,Nz
write(unit=Unit_VTK,fmt='(A,'//FI4P//',A)',iostat=E_IO)'X_COORDINATES ',Nx,' double'
write(unit=Unit_VTK,fmt=FR8P, iostat=E_IO)(X(n1),n1=1,Nx)
write(unit=Unit_VTK,fmt='(A,'//FI4P//',A)',iostat=E_IO)'Y_COORDINATES ',Ny,' double'
write(unit=Unit_VTK,fmt=FR8P, iostat=E_IO)(Y(n1),n1=1,Ny)
write(unit=Unit_VTK,fmt='(A,'//FI4P//',A)',iostat=E_IO)'Z_COORDINATES ',Nz,' double'
write(unit=Unit_VTK,fmt=FR8P, iostat=E_IO)(Z(n1),n1=1,Nz)
case(f_out_binary)
write(s_buffer, fmt='(A,3'//FI4P//')', iostat=E_IO)'DIMENSIONS ',Nx,Ny,Nz
write(unit=Unit_VTK, iostat=E_IO)trim(s_buffer)//end_rec
write(s_buffer, fmt='(A,'//FI4P//',A)',iostat=E_IO)'X_COORDINATES ',Nx,' double'
write(unit=Unit_VTK, iostat=E_IO)trim(s_buffer)//end_rec
write(unit=Unit_VTK, iostat=E_IO)(X(n1),n1=1,Nx)
write(unit=Unit_VTK, iostat=E_IO)end_rec
write(s_buffer, fmt='(A,'//FI4P//',A)',iostat=E_IO)'Y_COORDINATES ',Ny,' double'
write(unit=Unit_VTK, iostat=E_IO)trim(s_buffer)//end_rec
write(unit=Unit_VTK, iostat=E_IO)(Y(n1),n1=1,Ny)
write(unit=Unit_VTK, iostat=E_IO)end_rec
write(s_buffer, fmt='(A,'//FI4P//',A)',iostat=E_IO)'Z_COORDINATES ',Nz,' double'
write(unit=Unit_VTK, iostat=E_IO)trim(s_buffer)//end_rec
write(unit=Unit_VTK, iostat=E_IO)(Z(n1),n1=1,Nz)
write(unit=Unit_VTK, iostat=E_IO)end_rec
endselect
return
!---------------------------------------------------------------------------------------------------------------------------------
endfunction VTK_GEO_RECT_R8