Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program gaussian
- implicit none
- integer i, j, k
- character(1) c
- open(unit=100, file='energyDensity.vtk',
- 1 form="unformatted",access="stream")
- write(100) '# vtk DataFile Version 3.0', new_line(c)
- write(100) 'First time trying vtk import n', new_line(c)
- write(100) 'BINARY', new_line(c)
- write(100) 'DATASET STRUCTURED_POINTS', new_line(c)
- write(100) 'DIMENSIONS 101 101 101', new_line(c)
- write(100) 'ORIGIN 0 0 0', new_line(c)
- write(100) 'SPACING 1 1 1', new_line(c)
- write(100) 'POINT_DATA 1030301', new_line(c)
- write(100) 'SCALARS volume_scalars double 1', new_line(c)
- write(100) 'LOOKUP_TABLE default', new_line(c)
- do k = -50,50
- do j = -50,50
- do i = -50,50
- write(100) 50.*exp(float((-(i*i+j*j+k*k))/25))
- enddo
- enddo
- enddo
- close(100)
- endprogram
- vtkNew<vtkStructuredPointsReader> reader;
- reader->SetFileName (argv[1]);
- reader->Update();
- program gaussian
- use iso_fortran_env
- implicit none
- integer i, j, k
- character(1) c
- open(unit=100, file='energyDensity.vtk', &
- form="unformatted",access="stream")
- write(100) '# vtk DataFile Version 3.0', new_line(c)
- write(100) 'First time trying vtk import n', new_line(c)
- write(100) 'BINARY', new_line(c)
- write(100) 'DATASET STRUCTURED_POINTS', new_line(c)
- write(100) 'DIMENSIONS 101 101 101', new_line(c)
- write(100) 'ORIGIN 0 0 0', new_line(c)
- write(100) 'SPACING 1 1 1', new_line(c)
- write(100) 'POINT_DATA 1030301', new_line(c)
- write(100) 'SCALARS volume_scalars double 1', new_line(c)
- write(100) 'LOOKUP_TABLE default', new_line(c)
- do k = -50,50
- do j = -50,50
- do i = -50,50
- write(100) SwapB64(exp(real((-(i*i+j*j+k*k)), real64) / 25))
- enddo
- enddo
- enddo
- close(100)
- contains
- elemental function SwapB64(x) result(res)
- real(real64) :: res
- real(real64),intent(in) :: x
- character(8) :: bytes
- integer(int64) :: t
- real(real64) :: rbytes, rt
- equivalence (rbytes, bytes)
- equivalence (t, rt)
- rbytes = x
- t = ichar(bytes(8:8),int64)
- t = ior( ishftc(ichar(bytes(7:7),int64),8), t )
- t = ior( ishftc(ichar(bytes(6:6),int64),16), t )
- t = ior( ishftc(ichar(bytes(5:5),int64),24), t )
- t = ior( ishftc(ichar(bytes(4:4),int64),32), t )
- t = ior( ishftc(ichar(bytes(3:3),int64),40), t )
- t = ior( ishftc(ichar(bytes(2:2),int64),48), t )
- t = ior( ishftc(ichar(bytes(1:1),int64),56), t )
- res = rt
- end function
- endprogram
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement