я использовал код отправил из StackOverflow и изменил его:двоичный ВТК для Rectilinear_grid из FORtran коды не работало на ParaView
program VTKBinary
implicit none
real*4 :: x(2) = (0., 1.)
real*4 :: y(2) = (0., 1.)
real*4 :: z(2) = (0., 1.)
character :: buffer*80, lf*1, str1*8, str2*8, str3*8
integer :: ivtk = 9, int,i
lf = char(10) ! line feed character
!open(unit=ivtk,file='test_bin.vtk',form='binary',convert='BIG_ENDIAN')
open(unit=ivtk,file='test_bin.vtk',access='stream',convert='BIG_ENDIAN')
buffer = '# vtk DataFile Version 3.0'//lf ; write(ivtk) trim(buffer)
buffer = 'vtk output'//lf ; write(ivtk) trim(buffer)
buffer = 'BINARY'//lf ; write(ivtk) trim(buffer)
buffer = 'DATASET RECTILINEAR_GRID'//lf ; write(ivtk) trim(buffer)
! WRITE GRID
write(str1(1:8),'(i8)') size(x)
write(str2(1:8),'(i8)') size(y)
write(str3(1:8),'(i8)') size(z)
buffer = 'DIMENSIONS '//str1//str2//str3//lf ; write(ivtk) trim(buffer)
buffer = 'X_COORDINATES '//str1//' float'//lf ; write(ivtk) trim(buffer)
!write(ivtk) x
write(ivtk) (x(i),i=1,size(x))
buffer = lf//'Y_COORDINATES '//str2//' float'//lf ; write(ivtk) trim(buffer)
!write(ivtk) y
write(ivtk) (y(i),i=1,size(y))
buffer = lf//'Z_COORDINATES '//str3//' float'//lf ; write(ivtk) trim(buffer)
!write(ivtk) z
write(ivtk) (z(i),i=1,size(z))
close(ivtk)
end program VTKBinary
Этот код компилируется хорошо gfortran и работает хорошо, чтобы сгенерировать файл ВОК.
Проблема: есть ошибка, когда ВТК считывается ParaView следующим образом:
Warning: In C:\DBD\pvs-x64\paraview\src\paraview\VTK\Rendering\Core\vtkRenderer.cxx, line 1029
vtkOpenGLRenderer (000000000BF00BF0): Resetting view-up since view plane normal is parallel
Вопрос: Вы можете помочь мне решить эту проблему?
Большое спасибо.
Не могли бы вы разместить ссылку вы взяли код из? –
С каких пор gfortran поддерживает 'convert = 'BIG_ENDIAN''? –
Хорошо, не знаю с тех пор, но https://gcc.gnu.org/onlinedocs/gfortran/CONVERT-specifier.html#CONVERT-specifier –