Function for saving vectorial variable (R8P).
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=I4P), | intent(in) | :: | NC_NN | |||
character(len=*), | intent(in) | :: | varname | |||
real(kind=R8P), | intent(in) | :: | varX(1:NC_NN) | |||
real(kind=R8P), | intent(in) | :: | varY(1:NC_NN) | |||
real(kind=R8P), | intent(in) | :: | varZ(1:NC_NN) |
function VTK_VAR_XML_VECT_R8(NC_NN,varname,varX,varY,varZ) result(E_IO)
!---------------------------------------------------------------------------------------------------------------------------------
!! Function for saving vectorial variable (R8P).
!---------------------------------------------------------------------------------------------------------------------------------
!---------------------------------------------------------------------------------------------------------------------------------
implicit none
integer(I4P), intent(IN):: NC_NN ! number of cells or nodes
character(*), intent(IN):: varname ! variable name
real(R8P), intent(IN):: varX(1:NC_NN) ! x component
real(R8P), intent(IN):: varY(1:NC_NN) ! y component
real(R8P), intent(IN):: varZ(1:NC_NN) ! z component
integer(I4P):: E_IO ! Input/Output inquiring flag: $0$ if IO is done, $> 0$ if IO is not done
integer(I4P):: n1 ! counter
!---------------------------------------------------------------------------------------------------------------------------------
!---------------------------------------------------------------------------------------------------------------------------------
select case(f_out)
case(f_out_ascii)
write(unit=Unit_VTK,fmt='(A)',iostat=E_IO)repeat(' ',indent)// &
'<DataArray type="Float64" Name="'// &
trim(varname)// &
'" NumberOfComponents="3" format="ascii">'
write(unit=Unit_VTK,fmt='(3'//FR8P//')',iostat=E_IO)(varX(n1),varY(n1),varZ(n1),n1=1,NC_NN)
write(unit=Unit_VTK,fmt='(A)',iostat=E_IO)repeat(' ',indent)//'</DataArray>'
case(f_out_binary)
write(unit=Unit_VTK,iostat=E_IO)repeat(' ',indent)// &
'<DataArray type="Float64" Name="'// &
trim(varname)// &
'" NumberOfComponents="3" format="appended" offset="', &
trim(str(.true.,ioffset)), &
'">'// &
end_rec
N_Byte = 3*NC_NN*sizeof(Tipo_R8)
ioffset = ioffset + sizeof(Tipo_I4) + N_Byte
write(unit=Unit_VTK_Append,iostat=E_IO)N_Byte,'R8',3*NC_NN
write(unit=Unit_VTK_Append,iostat=E_IO)(varX(n1),varY(n1),varZ(n1),n1=1,NC_NN)
write(unit=Unit_VTK,iostat=E_IO)repeat(' ',indent)//'</DataArray>'//end_rec
endselect
return
!---------------------------------------------------------------------------------------------------------------------------------
endfunction VTK_VAR_XML_VECT_R8