1
<center><a href="f90impl.h">Actual source code: f90impl.h</a></center><br>
6
<meta name="generator" content="c2html 0.9.5">
7
<meta name="date" content="2010-04-08T19:23:48+00:00">
10
<body bgcolor="#FFFFFF">
12
<a name="line4"> 4: </a><font color="#A020F0">#include </font><font color="#666666">"petscsys.h"</font><font color="#A020F0"></font>
14
<a name="line7"> 7: </a><font color="#B22222">/* PGI compilers pass in f90 pointers as 2 arguments */</font>
15
<a name="line8"> 8: </a><font color="#A020F0">#if defined(PETSC_HAVE_F90_2PTR_ARG)</font>
16
<a name="line9"> 9: </a><strong><font color="#228B22">#define PETSC_F90_2PTR_PROTO_NOVAR ,void*</font></strong>
17
<a name="line10"> 10: </a><strong><font color="#228B22">#define PETSC_F90_2PTR_PROTO(ptr) ,void* ptr</font></strong>
18
<a name="line11"> 11: </a><strong><font color="#228B22">#define PETSC_F90_2PTR_PARAM(ptr) , ptr</font></strong>
19
<a name="line12"> 12: </a><font color="#A020F0">#else</font>
20
<a name="line13"> 13: </a><strong><font color="#228B22">#define PETSC_F90_2PTR_PROTO_NOVAR</font></strong>
21
<a name="line14"> 14: </a><strong><font color="#228B22">#define PETSC_F90_2PTR_PROTO(ptr)</font></strong>
22
<a name="line15"> 15: </a><strong><font color="#228B22">#define PETSC_F90_2PTR_PARAM(ptr)</font></strong>
23
<a name="line16"> 16: </a><font color="#A020F0">#endif</font>
25
<a name="line18"> 18: </a><font color="#A020F0">#if defined (PETSC_USING_F90)</font>
27
<a name="line20"> 20: </a><strong><font color="#228B22">#define F90Array1d void</font></strong>
28
<a name="line21"> 21: </a><strong><font color="#228B22">#define F90Array2d void</font></strong>
29
<a name="line22"> 22: </a><strong><font color="#228B22">#define F90Array3d void</font></strong>
30
<a name="line23"> 23: </a><strong><font color="#228B22">#define F90Array4d void</font></strong>
32
<a name="line25"> 25: </a><strong><font color="#4169E1">EXTERN <A href="../..90-../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> F90Array1dCreate(void*,<A href="../..90-../docs/manualpages/Sys/PetscDataType.html#PetscDataType">PetscDataType</A>,<A href="../..90-../docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</A>,<A href="../..90-../docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</A>,F90Array1d* PETSC_F90_2PTR_PROTO_NOVAR)</font></strong>;
33
<a name="line26"> 26: </a><strong><font color="#4169E1">EXTERN <A href="../..90-../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> F90Array1dAccess(F90Array1d*,<A href="../..90-../docs/manualpages/Sys/PetscDataType.html#PetscDataType">PetscDataType</A>,void** PETSC_F90_2PTR_PROTO_NOVAR)</font></strong>;
34
<a name="line27"> 27: </a><strong><font color="#4169E1">EXTERN <A href="../..90-../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> F90Array1dDestroy(F90Array1d*,<A href="../..90-../docs/manualpages/Sys/PetscDataType.html#PetscDataType">PetscDataType</A> PETSC_F90_2PTR_PROTO_NOVAR)</font></strong>;
35
<a name="line28"> 28: </a><strong><font color="#4169E1">EXTERN <A href="../..90-../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> F90Array1dGetNextRecord(F90Array1d*,void** PETSC_F90_2PTR_PROTO_NOVAR)</font></strong>;
37
<a name="line30"> 30: </a><strong><font color="#4169E1">EXTERN <A href="../..90-../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> F90Array2dCreate(void*,<A href="../..90-../docs/manualpages/Sys/PetscDataType.html#PetscDataType">PetscDataType</A>,<A href="../..90-../docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</A>,<A href="../..90-../docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</A>,<A href="../..90-../docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</A>,<A href="../..90-../docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</A>,F90Array2d* PETSC_F90_2PTR_PROTO_NOVAR)</font></strong>;
38
<a name="line31"> 31: </a><strong><font color="#4169E1">EXTERN <A href="../..90-../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> F90Array2dAccess(F90Array2d*,<A href="../..90-../docs/manualpages/Sys/PetscDataType.html#PetscDataType">PetscDataType</A>,void** PETSC_F90_2PTR_PROTO_NOVAR)</font></strong>;
39
<a name="line32"> 32: </a><strong><font color="#4169E1">EXTERN <A href="../..90-../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> F90Array2dDestroy(F90Array2d*,<A href="../..90-../docs/manualpages/Sys/PetscDataType.html#PetscDataType">PetscDataType</A> PETSC_F90_2PTR_PROTO_NOVAR)</font></strong>;
40
<a name="line33"> 33: </a><strong><font color="#4169E1">EXTERN <A href="../..90-../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> F90Array2dGetNextRecord(F90Array2d*,void** PETSC_F90_2PTR_PROTO_NOVAR)</font></strong>;
42
<a name="line35"> 35: </a><strong><font color="#4169E1">EXTERN <A href="../..90-../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> F90Array3dCreate(void*,<A href="../..90-../docs/manualpages/Sys/PetscDataType.html#PetscDataType">PetscDataType</A>,<A href="../..90-../docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</A>,<A href="../..90-../docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</A>,<A href="../..90-../docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</A>,<A href="../..90-../docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</A>,<A href="../..90-../docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</A>,<A href="../..90-../docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</A>,F90Array3d* PETSC_F90_2PTR_PROTO_NOVAR)</font></strong>;
43
<a name="line36"> 36: </a><strong><font color="#4169E1">EXTERN <A href="../..90-../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> F90Array3dAccess(F90Array3d*,<A href="../..90-../docs/manualpages/Sys/PetscDataType.html#PetscDataType">PetscDataType</A>,void** PETSC_F90_2PTR_PROTO_NOVAR)</font></strong>;
44
<a name="line37"> 37: </a><strong><font color="#4169E1">EXTERN <A href="../..90-../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> F90Array3dDestroy(F90Array3d*,<A href="../..90-../docs/manualpages/Sys/PetscDataType.html#PetscDataType">PetscDataType</A> PETSC_F90_2PTR_PROTO_NOVAR)</font></strong>;
45
<a name="line38"> 38: </a><strong><font color="#4169E1">EXTERN <A href="../..90-../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> F90Array3dGetNextRecord(F90Array3d*,void** PETSC_F90_2PTR_PROTO_NOVAR)</font></strong>;
47
<a name="line40"> 40: </a><strong><font color="#4169E1">EXTERN <A href="../..90-../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> F90Array4dCreate(void*,<A href="../..90-../docs/manualpages/Sys/PetscDataType.html#PetscDataType">PetscDataType</A>,<A href="../..90-../docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</A>,<A href="../..90-../docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</A>,<A href="../..90-../docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</A>,<A href="../..90-../docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</A>,<A href="../..90-../docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</A>,<A href="../..90-../docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</A>,<A href="../..90-../docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</A>,<A href="../..90-../docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</A>,F90Array4d* PETSC_F90_2PTR_PROTO_NOVAR)</font></strong>;
48
<a name="line41"> 41: </a><strong><font color="#4169E1">EXTERN <A href="../..90-../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> F90Array4dAccess(F90Array4d*,<A href="../..90-../docs/manualpages/Sys/PetscDataType.html#PetscDataType">PetscDataType</A>,void** PETSC_F90_2PTR_PROTO_NOVAR)</font></strong>;
49
<a name="line42"> 42: </a><strong><font color="#4169E1">EXTERN <A href="../..90-../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> F90Array4dDestroy(F90Array4d*,<A href="../..90-../docs/manualpages/Sys/PetscDataType.html#PetscDataType">PetscDataType</A> PETSC_F90_2PTR_PROTO_NOVAR)</font></strong>;
50
<a name="line43"> 43: </a><strong><font color="#4169E1">EXTERN <A href="../..90-../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> F90Array4dGetNextRecord(F90Array4d*,void** PETSC_F90_2PTR_PROTO_NOVAR)</font></strong>;
52
<a name="line45"> 45: </a><font color="#B22222">/* </font>
53
<a name="line46"> 46: </a><font color="#B22222"><strong></font><font color="#4169E1">EXTERN <A href="../..90-../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> F90Array1dGetInfo(F90Array1d*,<A href="../..90-../docs/manualpages/Sys/PetscDataType.html#PetscDataType">PetscDataType</A>*,int*,int*)</font></strong>;
54
<a name="line47"> 47: </a><strong><font color="#4169E1">EXTERN <A href="../..90-../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> F90Array2dGetInfo(F90Array2d*,<A href="../..90-../docs/manualpages/Sys/PetscDataType.html#PetscDataType">PetscDataType</A>*,int*,int*,int*,int*)</font></strong>;
55
<a name="line48"> 48: </a>*/
57
<a name="line50"> 50: </a><font color="#B22222">/*</font>
58
<a name="line51"> 51: </a><font color="#B22222"> F90Array1dCreate - Given a C pointer to a one dimensional</font>
59
<a name="line52"> 52: </a><font color="#B22222"> array and its length; this fills in the appropriate Fortran 90</font>
60
<a name="line53"> 53: </a><font color="#B22222"> pointer data structure.</font>
62
<a name="line55"> 55: </a><font color="#B22222"> Input Parameters:</font>
63
<a name="line56"> 56: </a><font color="#B22222">+ array - regular C pointer (address)</font>
64
<a name="line57"> 57: </a><font color="#B22222">. type - DataType of the array</font>
65
<a name="line58"> 58: </a><font color="#B22222">. start - starting index of the array</font>
66
<a name="line59"> 59: </a><font color="#B22222">- len - length of array (in items)</font>
68
<a name="line61"> 61: </a><font color="#B22222"> Output Parameters:</font>
69
<a name="line62"> 62: </a><font color="#B22222">. ptr - Fortran 90 pointer</font>
70
<a name="line63"> 63: </a><font color="#B22222">*/</font>
72
<a name="line65"> 65: </a><font color="#A020F0">#endif </font><font color="#B22222">/* PETSC_USING_F90 */</font><font color="#A020F0"></font>
73
<a name="line67"> 67: </a><font color="#A020F0">#endif</font>