VTK
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_()

Passing array, Fortran start at 1 instead of 0.

  1. 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 46 of file vtkFortran.h.

◆ VTK_FORTRAN_REF_STRING_POINTER

#define VTK_FORTRAN_REF_STRING_POINTER (   __arg)     __arg##_string

Definition at line 49 of file vtkFortran.h.

◆ VTK_FORTRAN_REF_STRING_LENGTH

#define VTK_FORTRAN_REF_STRING_LENGTH (   __arg)     __arg##_length

Definition at line 52 of file vtkFortran.h.

◆ VTK_FORTRAN_ARG_INTEGER4

#define VTK_FORTRAN_ARG_INTEGER4 (   data)     int *data

Definition at line 55 of file vtkFortran.h.

◆ VTK_FORTRAN_ARG_REAL4_ARRAY_1D

#define VTK_FORTRAN_ARG_REAL4_ARRAY_1D (   array)     float *array

Definition at line 58 of file vtkFortran.h.

◆ VTK_FORTRAN_ARG_INTEGER8

#define VTK_FORTRAN_ARG_INTEGER8 (   size)     vtkIdType *size

Definition at line 61 of file vtkFortran.h.

◆ VTK_FORTRAN_REF_REAL4_ARRAY_1D

#define VTK_FORTRAN_REF_REAL4_ARRAY_1D (   array)     array

Definition at line 64 of file vtkFortran.h.

◆ VTK_FORTRAN_ARG_INTEGER8_ARRAY_1D

#define VTK_FORTRAN_ARG_INTEGER8_ARRAY_1D (   array)     vtkIdType *array

Definition at line 67 of file vtkFortran.h.

◆ VTK_FORTRAN_REF_INTEGER8_ARRAY_1D

#define VTK_FORTRAN_REF_INTEGER8_ARRAY_1D (   array)     array

Definition at line 70 of file vtkFortran.h.

◆ VTK_FORTRAN_REF_INTEGER4

#define VTK_FORTRAN_REF_INTEGER4 (   data)     *data

Definition at line 73 of file vtkFortran.h.

◆ VTK_FORTRAN_REF_INTEGER8

#define VTK_FORTRAN_REF_INTEGER8 (   data)     *data

Definition at line 76 of file vtkFortran.h.

◆ VTK_FORTRAN_ARG_INTEGER4_ARRAY_1D

#define VTK_FORTRAN_ARG_INTEGER4_ARRAY_1D (   array)     int *array

Definition at line 79 of file vtkFortran.h.

◆ VTK_FORTRAN_ARG_REAL8

#define VTK_FORTRAN_ARG_REAL8 (   t)     double *t

Definition at line 82 of file vtkFortran.h.

◆ VTK_FORTRAN_REF_REAL8

#define VTK_FORTRAN_REF_REAL8 (   t)     *t

Definition at line 85 of file vtkFortran.h.

◆ VTK_FORTRAN_ARG_INT4

#define VTK_FORTRAN_ARG_INT4 (   n)     int *n

Definition at line 88 of file vtkFortran.h.

◆ VTK_FORTRAN_REF_INT4

#define VTK_FORTRAN_REF_INT4 (   n)     *n

Definition at line 91 of file vtkFortran.h.