Giter Site home page Giter Site logo

vtkfortran's Introduction

VTKFortran GitHub tag

Join the chat at https://gitter.im/szaghi/VTKFortran

License License License License

Status CI Status Coverage Status

VTKFortran, pure Fortran VTK (XML) API

A KISS pure Fortran Library to parse and emit files conforming VTK (XML) standard

  • VTKFortran is a pure Fortran library to parse and emit VTK files, VTK standard;
  • VTKFortran is Fortran 2003+ standard compliant;
  • VTKFortran supports parallel architectures, it being threads-safe;
  • VTKFortran supports ascii, binary (Base64 encoding) and raw file formats;
  • VTKFortran is a Free, Open Source Project.

Issues

GitHub issues

Compiler Support

Compiler Compiler Compiler Compiler Compiler Compiler


Main features | Copyrights | Documentation | A Taste of VTKFortran


Main features

VTK features

Exporters

Legacy standard
  • Structured Points;
  • Structured Grid;
  • Unstructured Grid;
  • Polydata;
  • Rectilinear Grid;
  • Field;
XML standard
  • serial dataset:
    • Image Data;
    • Polydata;
    • Rectilinear Grid;
    • Structured Grid;
    • Unstructured Grid;
  • parallel (partitioned) dataset:
    • Image Data;
    • Polydata;
    • Rectilinear Grid;
    • Structured Grid;
    • Unstructured Grid;
  • composite dataset:
    • vtkMultiBlockDataSet.

Importers

The importers are under developing.

Parallel Support

VTKFortran can be safely used in parallel environments, handling multiple concurrent files: it is thread/processor-safe, meaning that it can be safely used into parallel architectures using OpenMP and/or MPI paradigms.

Copyrights

VTKFortran is an open source project, it is distributed under a multi-licensing system:

Anyone is interest to use, to develop or to contribute to VTKFortran is welcome, feel free to select the license that best matches your soul!

More details can be found on wiki.

Go to Top

Documentation

Besides this README file the VTKFortran documentation is contained into its own wiki. Detailed documentation of the API is contained into the GitHub Pages that can also be created locally by means of ford tool.

Go to Top

A taste of VTKFortran

Let us assume our aim being to save our pure Fortran data into a VTK structured grid file in binary XML form. This is simple as

use vtk_fortran, only : vtk_file

type(vtk_file)     :: a_vtk_file                             ! A VTK file.
integer, parameter :: nx1=0_I4P                              ! X lower bound extent.
integer, parameter :: nx2=9_I4P                              ! X upper bound extent.
integer, parameter :: ny1=0_I4P                              ! Y lower bound extent.
integer, parameter :: ny2=5_I4P                              ! Y upper bound extent.
integer, parameter :: nz1=0_I4P                              ! Z lower bound extent.
integer, parameter :: nz2=5_I4P                              ! Z upper bound extent.
integer, parameter :: nn=(nx2-nx1+1)*(ny2-ny1+1)*(nz2-nz1+1) ! Number of elements.
real               :: x(nx1:nx2,ny1:ny2,nz1:nz2)             ! X coordinates.
real               :: y(nx1:nx2,ny1:ny2,nz1:nz2)             ! Y coordinates.
real               :: z(nx1:nx2,ny1:ny2,nz1:nz2)             ! Z coordinates.
real               :: v(nx1:nx2,ny1:ny2,nz1:nz2)             ! Variable at coordinates.
integer            :: error                                  ! Error status.

! initialize the data...

error = a_vtk_file%initialize(format='binary', filename='XML_STRG-binary.vts', &
                              mesh_topology='StructuredGrid',                  &
                              nx1=nx1, nx2=nx2, ny1=ny1, ny2=ny2, nz1=nz1, nz2=nz2)
error = a_vtk_file%xml_writer%write_piece(nx1=nx1, nx2=nx2, ny1=ny1, ny2=ny2, nz1=nz1, nz2=nz2)
error = a_vtk_file%xml_writer%write_geo(n=nn, x=x, y=y, z=z)
error = a_vtk_file%xml_writer%write_dataarray(location='node', action='open')
error = a_vtk_file%xml_writer%write_dataarray(data_name='float64_scalar', x=v, one_component=.true.)
error = a_vtk_file%xml_writer%write_dataarray(location='node', action='close')
error = a_vtk_file%xml_writer%write_piece()
error = a_vtk_file%finalize()

Note that all VTKFortran functions return an error code that can be used for sophisticated error trapping algorithms.

vtkfortran's People

Contributors

femparadmin avatar gitter-badger avatar he-b avatar hjunqq avatar szaghi avatar tkozak avatar zoziha avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vtkfortran's Issues

Compile error

When I try to compile the code, I get:

make: *** No rule to make target 'penf.F90', needed by 'static/obj/penf.o'. Stop.

It looks like the PENF source files are missing. Am I doing something wrong?

Thanks,
Dylan

dependencies Lib_Base64.f90 and IR_precision.f90

hey very cool software. I was very excited but this is only for poor men, but I am a very poor student man and I don't have a commercial compiler :( can one bypass this dependency for your open-source project?

Doxygen Warnings

There are doxygen warnings when building the documentation that must be eliminated.

VTM hierarchy

Hi,

firstly, thank you for this great Fortran lib.
I think the main advantage of the multiblock data set of VTK among others (ie. Tecplot) is that you can freely group the parts (datasets) and assemblies (blocks) just like CAD program hierarchy. For example:
Block Index = 0
DataSet Index = 0
Dataset Index = 1
Block Index = 2
Dataset Index = 0
Dataset Index = 1
EndBlock
DataSet Index = 3
Block Index = 4
Block Index = 0
DataSet Index = 0
EndBlock
Block Index = 1
DataSet Index = 0
DataSet Index = 1
DataSet Index = 2
EndBlock
EndBlock
EndBlock

Current structure of your vtm writer does not allow this type of grouping. Will the lib support this hierarchy type of multiblock dataset?

I could achieve this by making some little changes and additions in vtk_fortran_vtm_file module. I moved vtm related functions from xml_write type and module to vtm_file type and module. And also added blocks(:) (of type including hierarchy level and index parameters) array (to get the parent block no), index (instead of vtm_block) etc. in vtm_file type. I added some coding in some functions such as parent search loop in write_parallel_open_block and write_parallel_block_files.. and index change lines.
Of course providing the block and dataset hierarchy should be the responsibility of the user. So, I think the user can achieve to write according to the hierarcy by using not ..%write_block but using..%write_parallel_open_block , ..%write_parallel_block_files.., %write_parallel_close_block functions by him/herself.

Regard,
Emrah

low performance in vtk_fortran_dataarray_encoder

the code like

  code = ''
  do n=1, size(x, dim=1)
    code = code//str(n=u(n))//' '//str(n=v(n))//' '//str(n=w(n))// &
                 str(n=x(n))//' '//str(n=y(n))//' '//str(n=z(n))
  enddo

in vtk_fortran_dataarray_encoder.f90
takes a long time to execute when a large amount of data needs to be processed

Huge Dimensions

Huge mesh dimensions, i.e. extents higher than 2^32-1, are not supported

Gfortran 4.7.3 allocation

When compiling with gfortran/gcc 4.7.3 (Ubuntu/Linaro 4.7.3-2ubuntu1~12.04), compilation stops with a number of warnings like this

allocate(varp(1:size(transfer([int(vtk(rf)%N_Byte,I4P),v_I4],varp))))

Error: 'varp' must not appear in the array specification at (1) in the same ALLOCATE statement where it is itself allocated
../lib/Lib_VTK_IO.f90:4186.17:

compilation with Intel Fortran is ok, therefore I assume the syntax is correct, but gfortran doesn't support it yet. Even a snapshot of gfortran (4.8.0 20120314) gives the same warning

OOP Refactoring

OOP Refactoring started.

New branch created for this aim feature/OOP-refactoring.

VTK file class

A new class has been created.

It is not complete, but already huge... The include statements have been exploited to sanitize implementation.

@victorsndvg Dear Victor, as soon as you can/want see this new refactoring I would like to know your comments.

Error when linking LIB_VTK_IO

Dear Dr Szaghi
I'm using Ubuntu 14.04 with gnu Fortran 4.8.4 and GNU Make 3.81. I compiled the Lib_VTK_IO with mpi option, and I get three folders (/mod /static /object)
I add Lib_VTK_IO functions to my code and I use 'use Lib_VTK_IO' to include the module.
to compile I use a Makefile:

Libs  path
Lib_path =./lib
#VTK_LIB
lib_vtk=-L$(Lib_path)/libvtkio/static
mod_vtk=-I$(Lib_path)/libvtkio/mod
# Compiler
FC        = mpif90
FFLAGS    =-c
LDFLAGS   =
LIBS       =$(lib_vtk) -l:lib_VTK_IO.a
# ------ No machine-specific paths/variables after this  -----

FSOURCE = LBMF.f90
OBJECTS = LBMF.o 
all    :LBMF.o Flow.out
LBMF.o : LBMF.f90
    $(FC) $(FFLAGS) $(mod_vtk) LBMF.f90 -o LBMF.o
    touch $*.o $*.mod
Flow : LBMF.o 
    $(FC) $(LDFLAGS) $(OBJECTS)$(LIBS) -o flow
    touch $*.o $*.mod
clean:
    rm -f $(FSOURCE) %.o 

The compiling phase was successful, but when linking an error message was displayed

LBMF.o: In function `MAIN__':
LBMF.f90:(.text+0x1b7b6): undefined reference to `__lib_vtk_io_ini_xml_MOD_vtk_ini_xml_write'
LBMF.f90:(.text+0x1c550): undefined reference to `__lib_vtk_io_geo_xml_MOD_vtk_geo_xml_strg_3da_r4_write'
LBMF.f90:(.text+0x1c575): undefined reference to `__lib_vtk_io_dat_var_xml_MOD_vtk_dat_xml'
LBMF.f90:(.text+0x1c6b6): undefined reference to `__lib_vtk_io_dat_var_xml_MOD_vtk_var_xml_scal_3da_r8'
LBMF.f90:(.text+0x1c6db): undefined reference to `__lib_vtk_io_dat_var_xml_MOD_vtk_dat_xml'
LBMF.f90:(.text+0x1c700): undefined reference to `__lib_vtk_io_dat_var_xml_MOD_vtk_dat_xml'
LBMF.f90:(.text+0x1c841): undefined reference to `__lib_vtk_io_dat_var_xml_MOD_vtk_var_xml_scal_3da_r8'
LBMF.f90:(.text+0x1c866): undefined reference to `__lib_vtk_io_dat_var_xml_MOD_vtk_dat_xml'
LBMF.f90:(.text+0x1c88b): undefined reference to `__lib_vtk_io_dat_var_xml_MOD_vtk_dat_xml'
LBMF.f90:(.text+0x1c9cc): undefined reference to `__lib_vtk_io_dat_var_xml_MOD_vtk_var_xml_scal_3da_r8'
LBMF.f90:(.text+0x1c9f1): undefined reference to `__lib_vtk_io_dat_var_xml_MOD_vtk_dat_xml'
LBMF.f90:(.text+0x1ca01): undefined reference to `__lib_vtk_io_geo_xml_MOD_vtk_geo_xml_closep_write'
LBMF.f90:(.text+0x1ca11): undefined reference to `__lib_vtk_io_end_xml_MOD_vtk_end_xml'
LBMF.f90:(.text+0x1cd9a): undefined reference to `__lib_vtk_io_pvtk_xml_MOD_pvtk_ini_xml'
LBMF.f90:(.text+0x1d176): undefined reference to `__lib_vtk_io_pvtk_xml_MOD_pvtk_geo_xml'
LBMF.f90:(.text+0x1d1f6): undefined reference to `__lib_vtk_io_pvtk_xml_MOD_pvtk_dat_xml'
LBMF.f90:(.text+0x1d221): undefined reference to `__lib_vtk_io_pvtk_xml_MOD_pvtk_var_xml'
LBMF.f90:(.text+0x1d246): undefined reference to `__lib_vtk_io_pvtk_xml_MOD_pvtk_dat_xml'
LBMF.f90:(.text+0x1d256): undefined reference to `__lib_vtk_io_pvtk_xml_MOD_pvtk_end_xml'
collect2: error: ld returned 1 exit status
make: *** [Flow] Error 1

thank you for helping
Best regards

No CMakeLists.txt in src/lib; wrong directory name for tests

CMake Error at CMakeLists.txt:154 (ADD_SUBDIRECTORY):
  The source directory

    /opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_fortran-vtk/fortran-vtk/work/VTKFortran-2.0.3/src/lib

  does not contain a CMakeLists.txt file.


CMake Error at CMakeLists.txt:155 (ADD_SUBDIRECTORY):
  ADD_SUBDIRECTORY given source
  "/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_fortran-vtk/fortran-vtk/work/VTKFortran-2.0.3/src/test"
  which is not an existing directory.


-- Configuring incomplete, errors occurred!

xml_writer%write_geo does not write the points section if nc>np

Ciao Stefano,

Hope you are doing well. I am facing a wired issue using your library.

I am using your library (it is very cool!) and up to now I have not faced any issue. Today, I had one which I suspect to be a bug.

I am trying to write a unstructured mesh of 14 points, 24 cells, cell type is tetrahedron (cell_type=10). I am able to get a geometry unitl np > nc, but suddendly, if nc>np, write_geo does not write the points section in the xml file.

To be clear, if I build the mesh until the cell n° 14, I can see the points section, while if I use 15 cells, It disappears... This is true for every format (ascii, binary or raw).

Any idea about this Stefano?

Thank you for your help! :)

Add doctests

Exploit FoBiS doctests for improving code coverage/regression/usage-documentation.

Error when compiling

Dear szaghi,

i am very interested in your fortran library for writing vtk-files.

Unfortunately i get the following error when trying to compile the source code:

src/lib/vtk_fortran_parameters.f90:7:4:

 use penf
    1
Fatal Error: Can't open module file ‘penf.mod’ for reading at (1): Datei oder Verzeichnis nicht gefunden
compilation terminated.

src/lib/vtk_fortran_parameters.f90:7:4:

 use penf
    1
Fatal Error: Can't open module file ‘penf.mod’ for reading at (1)

I installed FoBiS and tried to build like this: FoBiS.py build -mode static-gnu-debug
(FoBiS.py build -mode static-gnu didn't work neither)

Thank you in advance,
Regards
Jan

XML-efficiency

This is not properly a bug. There is an inefficiency when saving XML raw (binary) file. To write raw data into XML file the library uses a temporary scratch file to save binary data while saving all formatting data to the final XML file. Only when all XML formatting data have been written the scratch file is rewind and the binary data is saved in the final tag of XML file as raw appended data. This approach is not efficient.

General polyhedrons handling

Ciao Stefano,

Hope you are doing well. This is just a question out of the box. Can VTKFortran deal with general polyhedrons?

pvtu (unstructured)

Ciao Stefano,

Do you have an example to write pvtu?

I can only find pvts in the examples and the source file seems to include pvts only.

Thanks!

Base64

Binary base64 encoding must be implemented.

Tensor data?

Is there anyway to use VTK_IO to save tensor data to a .vtu file? If not, can you point me to the file format for tensor data in a .vtu file?

Thanks

Tom

Gfortran warnings (might be over sensitive)

I got the following warnings when compiling Lib_VTK_IO with gfortran and a lot of warning enabled. Does not seem to be serious, but might be helpful

../lib/IR_Precision.f90:1162.11:
Included at libs.f90:33:

BIR16P = bit_size(r=MaxR16P) ; BYR16P = BIR16P/8_I2P
1
Warning: Conversion from INTEGER(1) to INTEGER(2) at (1)
../lib/IR_Precision.f90:391.13:
Included at libs.f90:33:

bits = size(transfer(c,mold),dim=1,kind=I1P)*8_I4P
1
Warning: Conversion from INTEGER(1) to INTEGER(4) at (1)
../lib/Lib_Base64.f90:752.13:
Included at libs.f90:34:

do e=1_I8P,size(bits,dim=1),3_I8P ! loop over array elements: 3 bytes (24 bit
1
Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:6025.78:
Included at libs.f90:35:

write(unit=vtk(rf)%u,fmt=trim(s_buffer),iostat=E_IO)((textCoo(n1,n2),n2=1,dimm
1
Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:6025.89:
Included at libs.f90:35:

=vtk(rf)%u,fmt=trim(s_buffer),iostat=E_IO)((textCoo(n1,n2),n2=1,dimm),n1=1,NC_N
1
Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:6029.59:
Included at libs.f90:35:

write(unit=vtk(rf)%u,iostat=E_IO)((textCoo(n1,n2),n2=1,dimm),n1=1,NC_NN)
                                                       1

Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:6029.70:
Included at libs.f90:35:

write(unit=vtk(rf)%u,iostat=E_IO)((textCoo(n1,n2),n2=1,dimm),n1=1,NC_NN)
                                                                  1

Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:5983.78:
Included at libs.f90:35:

write(unit=vtk(rf)%u,fmt=trim(s_buffer),iostat=E_IO)((textCoo(n1,n2),n2=1,dimm
1
Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:5983.89:
Included at libs.f90:35:

=vtk(rf)%u,fmt=trim(s_buffer),iostat=E_IO)((textCoo(n1,n2),n2=1,dimm),n1=1,NC_N
1
Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:5987.59:
Included at libs.f90:35:

write(unit=vtk(rf)%u,iostat=E_IO)((textCoo(n1,n2),n2=1,dimm),n1=1,NC_NN)
                                                       1

Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:5987.70:
Included at libs.f90:35:

write(unit=vtk(rf)%u,iostat=E_IO)((textCoo(n1,n2),n2=1,dimm),n1=1,NC_NN)
                                                                  1

Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:5946.90:
Included at libs.f90:35:

vtk(rf)%u,fmt='(3'//FI4P//')',iostat=E_IO)(varX(n1),varY(n1),varZ(n1),n1=1,NC_N
1
Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:5949.70:
Included at libs.f90:35:

write(unit=vtk(rf)%u,iostat=E_IO)(varX(n1),varY(n1),varZ(n1),n1=1,NC_NN)
                                                                  1

Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:5906.90:
Included at libs.f90:35:

vtk(rf)%u,fmt='(3'//FR4P//')',iostat=E_IO)(varX(n1),varY(n1),varZ(n1),n1=1,NC_N
1
Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:5914.70:
Included at libs.f90:35:

write(unit=vtk(rf)%u,iostat=E_IO)(varX(n1),varY(n1),varZ(n1),n1=1,NC_NN)
                                                                  1

Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:5860.90:
Included at libs.f90:35:

vtk(rf)%u,fmt='(3'//FR8P//')',iostat=E_IO)(varX(n1),varY(n1),varZ(n1),n1=1,NC_N
1
Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:5868.70:
Included at libs.f90:35:

write(unit=vtk(rf)%u,iostat=E_IO)(varX(n1),varY(n1),varZ(n1),n1=1,NC_NN)
                                                                  1

Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:4521.16:
Included at libs.f90:35:

      Nvarp=size(transfer([int(vtk(rf)%N_Byte,I4P),v_I4],varp)) ; if (alloc
            1

Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:4197.10:
Included at libs.f90:35:

Nvarp=size(transfer([int(N_COL*NC_NN*BYI4P,I4P),reshape(var,[N_COL*NC_NN])]
      1

Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:4140.10:
Included at libs.f90:35:

Nvarp=size(transfer([int(N_COL*NC_NN*BYI4P,I4P),reshape(var,[N_COL*NC_NN])]
      1

Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:3518.10:
Included at libs.f90:35:

Nvarp=size(transfer([int(3*NC_NN*BYI4P,I4P),var],varp)) ; if (allocated(var
      1

Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:3454.10:
Included at libs.f90:35:

Nvarp=size(transfer([int(3*NC_NN*BYI4P,I4P),var],varp)) ; if (allocated(var
      1

Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:2829.10:
Included at libs.f90:35:

Nvarp=size(transfer([int(NC_NN*BYI4P,I4P),reshape(var,[NC_NN])],varp))
      1

Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:2776.10:
Included at libs.f90:35:

Nvarp=size(transfer([int(NC_NN*BYI4P,I4P),var],varp)) ; if (allocated(varp)
      1

Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:2329.10:
Included at libs.f90:35:

Ncocp=size(transfer([int(offset(NC)*BYI4P,I4P),connect],cocp)) ; if (alloca
      1

Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:2336.10:
Included at libs.f90:35:

Ncocp=size(transfer([int(NC*BYI4P,I4P),offset],cocp)) ; if (allocated(cocp)
      1

Warning: Conversion from INTEGER(4) to INTEGER(8) at (1)
../lib/Lib_VTK_IO.f90:975.10:
Included at libs.f90:35:

Nfldp=size(transfer([int(BYI4P,I4P),fld],fldp)) ; if (allocated(fldp)) deal

No rule to build 'src/third_party/BeFoR64/src/lib/befor64.F90'

Dear Stefano,

I try to compile VTKFortran as static library in Linux, just using command make:

 Compiler used  gnu => /usr/bin/gfortran 
 Source dir     src/ 
  Lib dir        ./static/ 
  Libray         ./static/libvtkfortran.a 
  Shared lib     no 
  Debug          no 
  F-standard     no 
  Optimize       no 
  OpenMP         no 
  MPI            no 

 Compile options
 [-cpp -c -J./static/mod/ ]

 Link options 
 [ ]

make: *** No rule to build 'src/third_party/BeFoR64/src/lib/befor64.F90', needed for 'static/obj/befor64.o'.  Stop.

I saw in a previous issue that you fixed the makefile so, I am missing something in order to use it?
Thank you.

problems with makefile

Hi Szaghi,
First, thanks a lot for your work!!!
I'm trying to compile your Lib_VTK_IO but I get the following message when running make:

Compiling Lib_Base64.f90
make: *** [obj/lib_base64.o] Error 1
I have no clue what to do. I would appreciate if you could indicate me how to proceed as I'm very interested in using the library.
thanks a lot,
vicent

Makefile is broken

Makefile is currently broken, complaining about the IR_precision.f90 module

 Compiler used  gnu => /usr/bin/gfortran
 Source dir     ./src/
  Lib dir        ./static/
  Libray         ./static/Lib_VTK_IO.a
  Shared lib     no
  Debug          no
  F-standard     no
  Optimize       no
  OpenMP         no
  MPI            no
  R16P           (Known R16P switch) Used R16P=no

 Compiling options
 [-cpp -c -J./mod/ ]

 Linking options
 [ ]

make: *** No rule to make target `IR_Precision.f90', needed by `obj/ir_precision.o'.  Stop.

penf library files missing inside "/src/third_party/BeFoR64"

Hello Stefano,
First of all thanks for this fine contribution! This is a very usefull piece of work for a FORTRAN programmer.

Since I see that you are still active on this project, then I have a couple of "fixes" to compile the master branch:

  • Make is looking for the PENF library in /src/third_party/BeFoR64/, thus they have to be moved manually to compile.

  • There is a typo in the extension of "foxy_xml_tag.F90", since Make is looking for "foxy_xml_tag.f90" and this cause make to crash.

Thank you very much again for this lib!!!

Tested with nag compiler

Hi Stefano,
First of all, thank you for this great and very useful library.

As I saw that VTKFortran has not been tested with nagfor and there may be people interested, I would like to inform you that it works perfectly with one small detail: nagfor complains about the selected_real_kind(33,4931) value of the R16P parameter (penf_global_parameters_variables module): "...does not specify a valid representation method".

I replaced it with selected_real_kind(31,291) (maybe real128 from iso_fortran_env would be better?) and everything works fine.
Regards,
Riad

binary UnstructuredGrid is incomplete under ifort

Hello!

Have been using this lib for a few weeks to output particles in an unstructured mesh (would be great to have polydata, I have no idea how difficult it would be to contribute).

When passing large-ish arrays (~30k reals?), I get a stack overflow under ifort. Using /heap-arrays does nothing as it seems to be a assignment on the fly copy issue. Using /nostandard-realloc-lhs there is no stack overflow but there is problem with the files if written in binary, as most fields are left empty.

I'll try to provide a more complete picture, until then, any gut feelings as to how that might be?

Regards

Makefile bugged!

It seems that makefile is bugged (missing Lib_Pack dependency). A kind user (Corentin) already patch the makefile, I will upload soon.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.