179 integer ,
parameter :: R4P = selected_real_kind(6,37)
182 integer ,
parameter :: R_P = R4P
190 integer ,
parameter :: I4P = selected_int_kind(9)
193 integer ,
parameter :: I1P = selected_int_kind(2)
196 integer ,
parameter :: I_P = I4P
204 character( 9),
parameter :: FR4P =
'(E14.6E2)'
207 character(10),
parameter :: FR_P =
'(E23.15E3)'
215 character(5) ,
parameter :: FI4P =
'(I12)'
218 character(4) ,
parameter :: FI1P =
'(I5)'
221 character(5) ,
parameter :: FI_P =
'(I12)'
229 integer(I4P) ,
parameter :: maxlen = 500
232 character(1) ,
parameter :: end_rec = char(10)
235 integer(I4P) ,
parameter :: f_out_ascii = 0
238 integer(I4P) ,
parameter :: f_out_binary = 1
241 integer(I4P) :: f_out = f_out_ascii
244 integer(I4P) :: Unit_VTK
247 integer(I4P) :: Unit_VTK_Append
250 integer(I4P) :: N_Byte
253 integer(I4P) :: ioffset
256 integer(I4P) :: indent
259 integer(I4P) :: Tipo_I4
262 integer(I1P) :: Tipo_I1
268 character(len=maxlen) :: topology
288 function vtk_ini_xml(output_format,filename,mesh_topology,nx1,nx2,ny1,ny2,nz1,nz2) result(E_IO)
294 character(*),
intent(IN) :: output_format
295 character(*),
intent(IN) :: filename
296 character(*),
intent(IN) :: mesh_topology
297 integer(I4P),
intent(IN),
optional :: nx1,nx2
298 integer(I4P),
intent(IN),
optional :: ny1,ny2
299 integer(I4P),
intent(IN),
optional :: nz1,nz2
302 character(len=maxlen) :: s_buffer
305 topology = trim(mesh_topology)
307 unit_vtk = get_newunit()
309 select case(trim(output_format))
313 open(unit=unit_vtk,file=trim(filename),form=
'FORMATTED',access=
'SEQUENTIAL',action=
'WRITE',iostat=e_io)
315 write(unit=unit_vtk,fmt=
'(A)' ,iostat=e_io)
'<?xml version="1.0"?>'
316 write(unit=unit_vtk,fmt=
'(A)' ,iostat=e_io)
'<VTKFile type="'//trim(topology)//
'" version="0.1" byte_order="BigEndian">'
318 select case(trim(topology))
319 case(
'RectilinearGrid',
'StructuredGrid')
320 write(unit=unit_vtk,fmt=
'(A,6'//fi4p//
',A)',iostat=e_io)repeat(
' ',indent)//
'<'//trim(topology)//
' WholeExtent="',nx1,nx2,ny1,ny2,nz1,nz2,
'">'
321 case(
'UnstructuredGrid')
322 write(unit=unit_vtk,fmt=
'(A)' ,iostat=e_io)repeat(
' ',indent)//
'<'//trim(topology)//
'>'
328 open(unit=unit_vtk,file=trim(filename),form=
'UNFORMATTED',access=
'SEQUENTIAL',action=
'WRITE',convert=
'BIG_ENDIAN',buffered=
'YES',recordtype=
'STREAM',iostat=e_io)
330 write(unit=unit_vtk, iostat=e_io)
'<?xml version="1.0"?>'//end_rec
331 write(unit=unit_vtk, iostat=e_io)
'<VTKFile type="'//trim(topology)//
'" version="0.1" byte_order="BigEndian">'//end_rec
333 select case(trim(topology))
334 case(
'RectilinearGrid',
'StructuredGrid')
335 write(s_buffer,fmt=
'(A,6'//fi4p//
',A)',iostat=e_io)repeat(
' ',indent)//
'<'//trim(topology)//
' WholeExtent="',nx1,nx2,ny1,ny2,nz1,nz2,
'">'
336 case(
'UnstructuredGrid')
337 write(s_buffer,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'<'//trim(topology)//
'>'
339 write(unit=unit_vtk, iostat=e_io)trim(s_buffer)//end_rec
343 unit_vtk_append=get_newunit()
344 open(unit=unit_vtk_append,form=
'UNFORMATTED',access=
'SEQUENTIAL',action=
'WRITE',convert=
'BIG_ENDIAN',recordtype=
'STREAM',buffered=
'YES',status=
'SCRATCH',iostat=e_io)
376 integer(I4P),
intent(IN) :: nx1,nx2
377 integer(I4P),
intent(IN) :: ny1,ny2
378 integer(I4P),
intent(IN) :: nz1,nz2
379 integer(I4P),
intent(IN) :: nn
380 real (R4P),
intent(IN) :: x(1:nn)
381 real (R4P),
intent(IN) :: y(1:nn)
382 real (R4P),
intent(IN) :: z(1:nn)
387 character(len=maxlen) :: s_buffer
394 write(unit=unit_vtk,fmt=
'(A,6'//fi4p//
',A)',iostat=e_io)repeat(
' ',indent)//
'<Piece Extent="',nx1,nx2,ny1,ny2,nz1,nz2,
'">'
396 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'<Points>'
398 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Float32" NumberOfComponents="3" Name="Point" format="ascii">'
399 write(unit=unit_vtk,fmt=
'(3'//fr4p//
')', iostat=e_io)(x(n1),y(n1),z(n1),n1=1,nn)
400 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'</DataArray>'
402 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'</Points>'
405 write(s_buffer,fmt=
'(A,6'//fi4p//
',A)',iostat=e_io)repeat(
' ',indent)//
'<Piece Extent="',nx1,nx2,ny1,ny2,nz1,nz2,
'">'
407 write(unit=unit_vtk, iostat=e_io)trim(s_buffer)//end_rec
408 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'<Points>'//end_rec
410 write(s_buffer,fmt=
'(I10)', iostat=e_io)ioffset
411 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Float32" NumberOfComponents="3" Name="Point" format="appended" offset="',trim(s_buffer),
'">'//end_rec
412 n_byte = 3*nn*sizeof(tipo_r4)
413 ioffset = ioffset + sizeof(tipo_i4) + n_byte
414 write(unit=unit_vtk_append, iostat=e_io)n_byte,
'R4',3*nn
415 write(unit=unit_vtk_append, iostat=e_io)(x(n1),y(n1),z(n1),n1=1,nn)
416 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'</DataArray>'//end_rec
418 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'</Points>'//end_rec
447 integer(I4P),
intent(IN) :: nx1,nx2
448 integer(I4P),
intent(IN) :: ny1,ny2
449 integer(I4P),
intent(IN) :: nz1,nz2
450 real (R4P),
intent(IN) :: x(nx1:nx2)
451 real (R4P),
intent(IN) :: y(ny1:ny2)
452 real (R4P),
intent(IN) :: z(nz1:nz2)
457 character(len=maxlen) :: s_buffer
463 write(unit=unit_vtk,fmt=
'(A,6'//fi4p//
',A)',iostat=e_io)repeat(
' ',indent)//
'<Piece Extent="',nx1,nx2,ny1,ny2,nz1,nz2,
'">'
465 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'<Coordinates>'
467 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Float32" Name="X" format="ascii">'
468 write(unit=unit_vtk,fmt=fr4p, iostat=e_io)(x(n1),n1=nx1,nx2)
469 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'</DataArray>'
470 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Float32" Name="Y" format="ascii">'
471 write(unit=unit_vtk,fmt=fr4p, iostat=e_io)(y(n1),n1=ny1,ny2)
472 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'</DataArray>'
473 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Float32" Name="Z" format="ascii">'
474 write(unit=unit_vtk,fmt=fr4p, iostat=e_io)(z(n1),n1=nz1,nz2)
475 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'</DataArray>'
477 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'</Coordinates>'
480 write(s_buffer,fmt=
'(A,6'//fi4p//
',A)',iostat=e_io)repeat(
' ',indent)//
'<Piece Extent="',nx1,nx2,ny1,ny2,nz1,nz2,
'">'
482 write(unit=unit_vtk, iostat=e_io)trim(s_buffer)//end_rec
483 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'<Coordinates>'//end_rec
485 write(s_buffer,fmt=
'(I8)', iostat=e_io)ioffset
486 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Float32" Name="X" format="appended" offset="',trim(s_buffer),
'">'//end_rec
487 n_byte = (nx2-nx1+1)*sizeof(tipo_r4)
488 ioffset = ioffset + sizeof(tipo_i4) + n_byte
489 write(unit=unit_vtk_append, iostat=e_io)n_byte,
'R4',nx2-nx1+1
490 write(unit=unit_vtk_append, iostat=e_io)(x(n1),n1=nx1,nx2)
491 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'</DataArray>'//end_rec
492 write(s_buffer,fmt=
'(I8)', iostat=e_io)ioffset
493 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Float32" Name="Y" format="appended" offset="',trim(s_buffer),
'">'//end_rec
494 n_byte = (ny2-ny1+1)*sizeof(tipo_r4)
495 ioffset = ioffset + sizeof(tipo_i4) + n_byte
496 write(unit=unit_vtk_append, iostat=e_io)n_byte,
'R4',ny2-ny1+1
497 write(unit=unit_vtk_append, iostat=e_io)(y(n1),n1=ny1,ny2)
498 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'</DataArray>'//end_rec
499 write(s_buffer,fmt=
'(I8)', iostat=e_io)ioffset
500 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Float32" Name="Z" format="appended" offset="',trim(s_buffer),
'">'//end_rec
501 n_byte = (nz2-nz1+1)*sizeof(tipo_r4)
502 ioffset = ioffset + sizeof(tipo_i4) + n_byte
503 write(unit=unit_vtk_append, iostat=e_io)n_byte,
'R4',nz2-nz1+1
504 write(unit=unit_vtk_append, iostat=e_io)(z(n1),n1=nz1,nz2)
505 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'</DataArray>'//end_rec
507 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'</Coordinates>'//end_rec
532 integer(I4P),
intent(IN) :: nn
533 integer(I4P),
intent(IN) :: nc
534 real (R4P),
intent(IN) :: x(1:nn)
535 real (R4P),
intent(IN) :: y(1:nn)
536 real (R4P),
intent(IN) :: z(1:nn)
541 character(len=maxlen) :: s_buffer
547 write(unit=unit_vtk,fmt=
'(A,'//fi4p//
',A,'//fi4p//
',A)',iostat=e_io)repeat(
' ',indent)//
'<Piece NumberOfPoints="',nn,
'" NumberOfCells="',nc,
'">'
549 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'<Points>'
551 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Float32" NumberOfComponents="3" Name="Point" format="ascii">'
552 write(unit=unit_vtk,fmt=
'(3'//fr4p//
')', iostat=e_io)(x(n1),y(n1),z(n1),n1=1,nn)
553 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'</DataArray>'
555 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'</Points>'
558 write(s_buffer,fmt=
'(A,'//fi4p//
',A,'//fi4p//
',A)',iostat=e_io)repeat(
' ',indent)//
'<Piece NumberOfPoints="',nn,
'" NumberOfCells="',nc,
'">'
560 write(unit=unit_vtk, iostat=e_io)trim(s_buffer)//end_rec
561 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'<Points>'//end_rec
563 write(s_buffer,fmt=
'(I8)', iostat=e_io)ioffset
564 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Float32" NumberOfComponents="3" Name="Point" format="appended" offset="',trim(s_buffer),
'">'//end_rec
565 n_byte = 3*nn*sizeof(tipo_r4)
566 ioffset = ioffset + sizeof(tipo_i4) + n_byte
567 write(unit=unit_vtk_append, iostat=e_io)n_byte,
'R4',3*nn
568 write(unit=unit_vtk_append, iostat=e_io)(x(n1),y(n1),z(n1),n1=1,nn)
569 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'</DataArray>'//end_rec
571 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'</Points>'//end_rec
599 write(unit=unit_vtk,fmt=
'(A)',iostat=e_io)repeat(
' ',indent)//
'</Piece>'
602 write(unit=unit_vtk,iostat=e_io)repeat(
' ',indent)//
'</Piece>'//end_rec
626 integer(I4P),
intent(IN) :: nc
627 integer(I4P),
intent(IN) :: connect(:)
628 integer(I4P),
intent(IN) :: offset(1:nc)
629 integer(I1P),
intent(IN) :: cell_type(1:nc)
634 character(len=maxlen) :: s_buffer
640 write(unit=unit_vtk,fmt=
'(A)',iostat=e_io)repeat(
' ',indent)//
'<Cells>'
642 write(unit=unit_vtk,fmt=
'(A)',iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Int32" Name="connectivity" format="ascii">'
643 write(unit=unit_vtk,fmt=fi4p, iostat=e_io)(connect(n1),n1=1,
size(connect))
644 write(unit=unit_vtk,fmt=
'(A)',iostat=e_io)repeat(
' ',indent)//
'</DataArray>'
645 write(unit=unit_vtk,fmt=
'(A)',iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Int32" Name="offsets" format="ascii">'
646 write(unit=unit_vtk,fmt=fi4p, iostat=e_io)(offset(n1),n1=1,nc)
647 write(unit=unit_vtk,fmt=
'(A)',iostat=e_io)repeat(
' ',indent)//
'</DataArray>'
648 write(unit=unit_vtk,fmt=
'(A)',iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Int8" Name="types" format="ascii">'
649 write(unit=unit_vtk,fmt=fi1p, iostat=e_io)(cell_type(n1),n1=1,nc)
650 write(unit=unit_vtk,fmt=
'(A)',iostat=e_io)repeat(
' ',indent)//
'</DataArray>'
652 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'</Cells>'
655 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'<Cells>'//end_rec
657 write(s_buffer,fmt=
'(I10)',iostat=e_io)ioffset
658 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Int32" Name="connectivity" format="appended" offset="',trim(s_buffer),
'">'//end_rec
659 n_byte =
size(connect)*sizeof(tipo_i4)
660 ioffset = ioffset + sizeof(tipo_i4) + n_byte
661 write(unit=unit_vtk_append,iostat=e_io)n_byte,
'I4',
size(connect)
662 write(unit=unit_vtk_append,iostat=e_io)(connect(n1),n1=1,
size(connect))
663 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'</DataArray>'//end_rec
664 write(s_buffer,fmt=
'(I10)',iostat=e_io)ioffset
665 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Int32" Name="offsets" format="appended" offset="',trim(s_buffer),
'">'//end_rec
666 n_byte = nc*sizeof(tipo_i4)
667 ioffset = ioffset + sizeof(tipo_i4) + n_byte
668 write(unit=unit_vtk_append,iostat=e_io)n_byte,
'I4',nc
669 write(unit=unit_vtk_append,iostat=e_io)(offset(n1),n1=1,nc)
670 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'</DataArray>'//end_rec
671 write(s_buffer,fmt=
'(I10)',iostat=e_io)ioffset
672 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Int8" Name="types" format="appended" offset="',trim(s_buffer),
'">'//end_rec
673 n_byte = nc*sizeof(tipo_i1)
674 ioffset = ioffset + sizeof(tipo_i4) + n_byte
675 write(unit=unit_vtk_append,iostat=e_io)n_byte,
'I1',nc
676 write(unit=unit_vtk_append,iostat=e_io)(cell_type(n1),n1=1,nc)
677 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'</DataArray>'//end_rec
679 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'</Cells>'//end_rec
701 character(*),
intent(IN) :: var_location
702 character(*),
intent(IN) :: var_block_action
709 select case(trim(var_location))
711 select case(trim(var_block_action))
713 write(unit=unit_vtk,fmt=
'(A)',iostat=e_io)repeat(
' ',indent)//
'<CellData>'
717 write(unit=unit_vtk,fmt=
'(A)',iostat=e_io)repeat(
' ',indent)//
'</CellData>'
720 select case(trim(var_block_action))
722 write(unit=unit_vtk,fmt=
'(A)',iostat=e_io)repeat(
' ',indent)//
'<PointData>'
726 write(unit=unit_vtk,fmt=
'(A)',iostat=e_io)repeat(
' ',indent)//
'</PointData>'
731 select case(trim(var_location))
733 select case(trim(var_block_action))
735 write(unit=unit_vtk,iostat=e_io)repeat(
' ',indent)//
'<CellData>'//end_rec
739 write(unit=unit_vtk,iostat=e_io)repeat(
' ',indent)//
'</CellData>'//end_rec
742 select case(trim(var_block_action))
744 write(unit=unit_vtk,iostat=e_io)repeat(
' ',indent)//
'<PointData>'//end_rec
748 write(unit=unit_vtk,iostat=e_io)repeat(
' ',indent)//
'</PointData>'//end_rec
773 integer(I4P),
intent(IN) :: nc_nn
774 character(*),
intent(IN) :: varname
775 real (R4P),
intent(IN) :: var(1:nc_nn)
780 character(len=maxlen) :: s_buffer
786 write(unit=unit_vtk,fmt=
'(A)',iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Float32" Name="'//trim(varname)//
'" NumberOfComponents="1" format="ascii">'
787 write(unit=unit_vtk,fmt=fr4p, iostat=e_io)var
788 write(unit=unit_vtk,fmt=
'(A)',iostat=e_io)repeat(
' ',indent)//
'</DataArray>'
791 write(s_buffer,fmt=
'(I10)',iostat=e_io)ioffset
792 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Float32" Name="'//trim(varname)//
'" NumberOfComponents="1" format="appended" offset="',trim(s_buffer),
'">'//end_rec
793 n_byte = nc_nn*sizeof(tipo_r4)
794 ioffset = ioffset + sizeof(tipo_i4) + n_byte
795 write(unit=unit_vtk_append,iostat=e_io)n_byte,
'R4',nc_nn
796 write(unit=unit_vtk_append,iostat=e_io)(var(n1),n1=1,nc_nn)
797 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'</DataArray>'//end_rec
820 integer(I4P),
intent(IN) :: nc_nn
821 character(*),
intent(IN) :: varname
822 integer(I4P),
intent(IN) :: var(1:nc_nn)
827 character(len=maxlen) :: s_buffer
833 write(unit=unit_vtk,fmt=
'(A)',iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Int32" Name="'//trim(varname)//
'" NumberOfComponents="1" format="ascii">'
834 write(unit=unit_vtk,fmt=fi4p, iostat=e_io)var
835 write(unit=unit_vtk,fmt=
'(A)',iostat=e_io)repeat(
' ',indent)//
'</DataArray>'
838 write(s_buffer,fmt=
'(I8)', iostat=e_io)ioffset
839 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Int32" Name="'//trim(varname)//
'" NumberOfComponents="1" format="appended" offset="',trim(s_buffer),
'">'//end_rec
840 n_byte = nc_nn*sizeof(tipo_i4)
841 ioffset = ioffset + sizeof(tipo_i4) + n_byte
842 write(unit=unit_vtk_append,iostat=e_io)n_byte,
'I4',nc_nn
843 write(unit=unit_vtk_append,iostat=e_io)(var(n1),n1=1,nc_nn)
844 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'</DataArray>'//end_rec
869 integer(I4P),
intent(IN) :: nc_nn
870 character(*),
intent(IN) :: varname
871 real (R4P),
intent(IN) :: varx(1:nc_nn)
872 real (R4P),
intent(IN) :: vary(1:nc_nn)
873 real (R4P),
intent(IN) :: varz(1:nc_nn)
878 character(len=maxlen) :: s_buffer
884 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Float32" Name="'//trim(varname)//
'" NumberOfComponents="3" format="ascii">'
885 write(unit=unit_vtk,fmt=
'(3'//fr4p//
')',iostat=e_io)(varx(n1),vary(n1),varz(n1),n1=1,nc_nn)
886 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'</DataArray>'
889 write(s_buffer,fmt=
'(I8)', iostat=e_io)ioffset
890 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Float32" Name="'//trim(varname)//
'" NumberOfComponents="3" format="appended" offset="',trim(s_buffer),
'">'//end_rec
891 n_byte = 3*nc_nn*sizeof(tipo_r4)
892 ioffset = ioffset + sizeof(tipo_i4) + n_byte
893 write(unit=unit_vtk_append,iostat=e_io)n_byte,
'R4',3*nc_nn
894 write(unit=unit_vtk_append,iostat=e_io)(varx(n1),vary(n1),varz(n1),n1=1,nc_nn)
895 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'</DataArray>'//end_rec
920 integer(I4P),
intent(IN) :: nc_nn
921 character(*),
intent(IN) :: varname
922 integer(I4P),
intent(IN) :: varx(1:nc_nn)
923 integer(I4P),
intent(IN) :: vary(1:nc_nn)
924 integer(I4P),
intent(IN) :: varz(1:nc_nn)
929 character(len=maxlen) :: s_buffer
935 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Int32" Name="'//trim(varname)//
'" NumberOfComponents="3" format="ascii">'
936 write(unit=unit_vtk,fmt=
'(3'//fi4p//
')',iostat=e_io)(varx(n1),vary(n1),varz(n1),n1=1,nc_nn)
937 write(unit=unit_vtk,fmt=
'(A)', iostat=e_io)repeat(
' ',indent)//
'</DataArray>'
940 write(s_buffer,fmt=
'(I8)', iostat=e_io)ioffset
941 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'<DataArray type="Int32" Name="'//trim(varname)//
'" NumberOfComponents="3" format="appended" offset="',trim(s_buffer),
'">'//end_rec
942 n_byte = 3*nc_nn*sizeof(tipo_i4)
943 ioffset = ioffset + sizeof(tipo_i4) + n_byte
944 write(unit=unit_vtk_append,iostat=e_io)n_byte,
'I4',3*nc_nn
945 write(unit=unit_vtk_append,iostat=e_io)(varx(n1),vary(n1),varz(n1),n1=1,nc_nn)
946 write(unit=unit_vtk, iostat=e_io)repeat(
' ',indent)//
'</DataArray>'//end_rec
967 character(2) :: var_type
968 real (R4P),
allocatable :: v_r4(:)
969 integer(I4P),
allocatable :: v_i4(:)
970 integer(I1P),
allocatable :: v_i1(:)
980 write(unit=unit_vtk,fmt=
'(A)',iostat=e_io)repeat(
' ',indent)//
'</'//trim(topology)//
'>'
981 write(unit=unit_vtk,fmt=
'(A)',iostat=e_io)
'</VTKFile>'
986 write(unit =unit_vtk, iostat=e_io)repeat(
' ',indent)//
'</'//trim(topology)//
'>'//end_rec
987 write(unit =unit_vtk, iostat=e_io)repeat(
' ',indent)//
'<AppendedData encoding="raw">'//end_rec
988 write(unit =unit_vtk, iostat=e_io)
'_'
989 endfile(unit=unit_vtk_append,iostat=e_io)
990 rewind(unit =unit_vtk_append,iostat=e_io)
994 read(unit=unit_vtk_append,iostat=e_io,end=100)n_byte,var_type,n_v
996 select case(var_type)
999 allocate(v_r4(1:n_v))
1000 read (unit=unit_vtk_append,iostat=e_io)(v_r4(n1),n1=1,n_v)
1001 write(unit=unit_vtk, iostat=e_io)n_byte,(v_r4(n1),n1=1,n_v)
1005 allocate(v_i4(1:n_v))
1006 read (unit=unit_vtk_append,iostat=e_io)(v_i4(n1),n1=1,n_v)
1007 write(unit=unit_vtk, iostat=e_io)n_byte,(v_i4(n1),n1=1,n_v)
1011 allocate(v_i1(1:n_v))
1012 read (unit=unit_vtk_append,iostat=e_io)(v_i1(n1),n1=1,n_v)
1013 write(unit=unit_vtk, iostat=e_io)n_byte,(v_i1(n1),n1=1,n_v)
1021 write(unit=unit_vtk,iostat=e_io)end_rec
1022 write(unit=unit_vtk,iostat=e_io)repeat(
' ',indent)//
'</AppendedData>'//end_rec
1023 write(unit=unit_vtk,iostat=e_io)
'</VTKFile>'//end_rec
1026 close(unit=unit_vtk_append,iostat=e_io)
1030 close(unit=unit_vtk,iostat=e_io)
integer(i4p) function, public vtk_end_xml()
The VTK_END_XML function finalizes opened files.
integer(i4p) function vtk_geo_xml_unst_r4(NN, NC, X, Y, Z)
The VTK_GEO_XML_UNST_R4 function is used for saving mesh with a VTK UnstructuredGrid R4P topology...
integer(i4p) function, public vtk_con_xml(NC, connect, offset, cell_type)
The VTK_CON_XML function must be called when unstructured grid topology is used. It saves the connect...
integer(i4p) function, public vtk_ini_xml(output_format, filename, mesh_topology, nx1, nx2, ny1, ny2, nz1, nz2)
The VTK_INI_XML function is used for initializing file. This function must be the first to be called...
integer(i4p) function vtk_var_xml_scal_i4(NC_NN, varname, var)
The VTK_VAR_XML_SCAL_I4 function saves I4P scalar variables.
overloading of VTK_GEO_XML
This module defines all global variables of EFISPEC3D. Scalar variables are initialized directly in t...
integer(i4p) function vtk_var_xml_scal_r4(NC_NN, varname, var)
The VTK_VAR_XML_SCAL_R4 function saves R4P scalar variables.
integer(i4p) function, public vtk_dat_xml(var_location, var_block_action)
The VTK_DAT_XML function opens or closes CellData/PointData structures.
integer(i4p) function vtk_geo_xml_rect_r4(nx1, nx2, ny1, ny2, nz1, nz2, X, Y, Z)
The VTK_GEO_XML_RECT_R4 function is used for saving mesh with a VTK RectilinearGrid R4P topology...
This module programmed by S. Zaghi (https://github.com/szaghi/Lib_VTK_IO) contains functions to write...
integer(i4p) function vtk_var_xml_vect_r4(NC_NN, varname, varX, varY, varZ)
The VTK_VAR_XML_VECT_R4 function saves R4P vectorial variables.
overloading of VTK_VAR_XML
integer(i4p) function vtk_geo_xml_closep()
The VTK_GEO_XML_CLOSE function is used for closing mesh block data.
integer(i4p) function vtk_geo_xml_strg_r4(nx1, nx2, ny1, ny2, nz1, nz2, NN, X, Y, Z)
The VTK_GEO_XML_STRG_R4 function is used for saving mesh with a VTK StructuredGrid R4P topology...
integer(i4p) function vtk_var_xml_vect_i4(NC_NN, varname, varX, varY, varZ)
The VTK_VAR_XML_VECT_I4 function saves I4P vectorial variables.