VTK  9.1.0
Macros
vtkFortran.h File Reference

Go to the source code of this file.

Macros

#define VTK_FORTRAN_NAME(name, NAME)   name##__
 The whole pupose of this header file is to allow us to 'wrap' a c library into Fortran. More...
 
#define VTK_FORTRAN_ARG_STRING(__arg)   const char *__arg##_string, unsigned int __arg##_length
 
#define VTK_FORTRAN_REF_STRING_POINTER(__arg)   __arg##_string
 
#define VTK_FORTRAN_REF_STRING_LENGTH(__arg)   __arg##_length
 
#define VTK_FORTRAN_ARG_INTEGER4(data)   int* data
 
#define VTK_FORTRAN_ARG_REAL4_ARRAY_1D(array)   float* array
 
#define VTK_FORTRAN_ARG_INTEGER8(size)   vtkIdType* size
 
#define VTK_FORTRAN_REF_REAL4_ARRAY_1D(array)   array
 
#define VTK_FORTRAN_ARG_INTEGER8_ARRAY_1D(array)   vtkIdType* array
 
#define VTK_FORTRAN_REF_INTEGER8_ARRAY_1D(array)   array
 
#define VTK_FORTRAN_REF_INTEGER4(data)   *data
 
#define VTK_FORTRAN_REF_INTEGER8(data)   *data
 
#define VTK_FORTRAN_ARG_INTEGER4_ARRAY_1D(array)   int* array
 
#define VTK_FORTRAN_ARG_REAL8(t)   double* t
 
#define VTK_FORTRAN_REF_REAL8(t)   *t
 
#define VTK_FORTRAN_ARG_INT4(n)   int* n
 
#define VTK_FORTRAN_REF_INT4(n)   *n
 

Macro Definition Documentation

◆ VTK_FORTRAN_NAME

#define VTK_FORTRAN_NAME (   name,
  NAME 
)    name##__

The whole pupose of this header file is to allow us to 'wrap' a c library into Fortran.

Here are the basic goals we should reach:

  1. The symbol mangling in fortran is different than is C. For example if you do this fortran: CALL Foo() you either need to define a symbol:
    • void FOO()
    • void foo()
    • void FOO_()
    • void foo_()
  2. Passing array, Fortran start at 1 instead of 0.
  3. Passing STRING array from fortran to C is a bit more tricky

    For more information refer to: [ FORTRAN/C INTEROPERABILITY ] http://www.ibiblio.org/pub/languages/fortran/ch1-11.html

    [ Data Type Compatibility ] http://www.ictp.trieste.it/~manuals/programming/sun/fortran/prog_guide/11_cfort.doc.html

Definition at line 43 of file vtkFortran.h.

◆ VTK_FORTRAN_ARG_STRING

#define VTK_FORTRAN_ARG_STRING (   __arg)    const char *__arg##_string, unsigned int __arg##_length

Definition at line 45 of file vtkFortran.h.

◆ VTK_FORTRAN_REF_STRING_POINTER

#define VTK_FORTRAN_REF_STRING_POINTER (   __arg)    __arg##_string

Definition at line 47 of file vtkFortran.h.

◆ VTK_FORTRAN_REF_STRING_LENGTH

#define VTK_FORTRAN_REF_STRING_LENGTH (   __arg)    __arg##_length

Definition at line 49 of file vtkFortran.h.

◆ VTK_FORTRAN_ARG_INTEGER4

#define VTK_FORTRAN_ARG_INTEGER4 (   data)    int* data

Definition at line 51 of file vtkFortran.h.

◆ VTK_FORTRAN_ARG_REAL4_ARRAY_1D

#define VTK_FORTRAN_ARG_REAL4_ARRAY_1D (   array)    float* array

Definition at line 53 of file vtkFortran.h.

◆ VTK_FORTRAN_ARG_INTEGER8

#define VTK_FORTRAN_ARG_INTEGER8 (   size)    vtkIdType* size

Definition at line 55 of file vtkFortran.h.

◆ VTK_FORTRAN_REF_REAL4_ARRAY_1D

#define VTK_FORTRAN_REF_REAL4_ARRAY_1D (   array)    array

Definition at line 57 of file vtkFortran.h.

◆ VTK_FORTRAN_ARG_INTEGER8_ARRAY_1D

#define VTK_FORTRAN_ARG_INTEGER8_ARRAY_1D (   array)    vtkIdType* array

Definition at line 59 of file vtkFortran.h.

◆ VTK_FORTRAN_REF_INTEGER8_ARRAY_1D

#define VTK_FORTRAN_REF_INTEGER8_ARRAY_1D (   array)    array

Definition at line 61 of file vtkFortran.h.

◆ VTK_FORTRAN_REF_INTEGER4

#define VTK_FORTRAN_REF_INTEGER4 (   data)    *data

Definition at line 63 of file vtkFortran.h.

◆ VTK_FORTRAN_REF_INTEGER8

#define VTK_FORTRAN_REF_INTEGER8 (   data)    *data

Definition at line 65 of file vtkFortran.h.

◆ VTK_FORTRAN_ARG_INTEGER4_ARRAY_1D

#define VTK_FORTRAN_ARG_INTEGER4_ARRAY_1D (   array)    int* array

Definition at line 67 of file vtkFortran.h.

◆ VTK_FORTRAN_ARG_REAL8

#define VTK_FORTRAN_ARG_REAL8 (   t)    double* t

Definition at line 69 of file vtkFortran.h.

◆ VTK_FORTRAN_REF_REAL8

#define VTK_FORTRAN_REF_REAL8 (   t)    *t

Definition at line 71 of file vtkFortran.h.

◆ VTK_FORTRAN_ARG_INT4

#define VTK_FORTRAN_ARG_INT4 (   n)    int* n

Definition at line 73 of file vtkFortran.h.

◆ VTK_FORTRAN_REF_INT4

#define VTK_FORTRAN_REF_INT4 (   n)    *n

Definition at line 75 of file vtkFortran.h.