Index: io-2.tex #273: #388-correction for #273 | |
=================================================================== | |
--- io-2.tex (Revision 1945) | |
+++ io-2.tex (Revision 1946) | |
@@ -1477,7 +1477,7 @@ | |
\cdeclindex{MPI\_File}% | |
\cdeclindex{MPI\_Offset}% | |
\mpibind{MPI\_File\_iread\_at\_all(MPI\_File~fh, MPI\_Offset~offset, void~*buf, int~count, MPI\_Datatype~datatype, MPI\_Request~*request)} | |
-\mpifnewbind{MPI\_File\_iread\_at\_all(fh, offset, buf, count, datatype, request, ierror) BIND(C) \fargs TYPE(MPI\_File), INTENT(IN) :: fh \\ INTEGER(KIND=MPI\_OFFSET\_KIND), INTENT(IN) :: offset \\ TYPE(*), DIMENSION(..), ASYNCHRONOUS :: buf \\ INTEGER, INTENT(IN) :: count \\ TYPE(MPI\_Datatype), INTENT(IN) :: datatype \\ TYPE(MPI\_Request), INTENT(OUT) :: request \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_File\_iread\_at\_all(fh, offset, buf, count, datatype, request, ierror) \fargs TYPE(MPI\_File), INTENT(IN) :: fh \\ INTEGER(KIND=MPI\_OFFSET\_KIND), INTENT(IN) :: offset \\ TYPE(*), DIMENSION(..), ASYNCHRONOUS :: buf \\ INTEGER, INTENT(IN) :: count \\ TYPE(MPI\_Datatype), INTENT(IN) :: datatype \\ TYPE(MPI\_Request), INTENT(OUT) :: request \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_FILE\_IREAD\_AT\_ALL(FH, OFFSET, BUF, COUNT, DATATYPE, REQUEST, IERROR)\fargs <type> BUF(*) \\ INTEGER FH, COUNT, DATATYPE, REQUEST, IERROR \\ INTEGER(KIND=MPI\_OFFSET\_KIND) OFFSET} | |
\mpifunc{MPI\_FILE\_IREAD\_AT\_ALL} is a nonblocking version of | |
@@ -1519,7 +1519,7 @@ | |
\cdeclindex{MPI\_File}% | |
\cdeclindex{MPI\_Offset}% | |
\mpibind{MPI\_File\_iwrite\_at\_all(MPI\_File~fh, MPI\_Offset~offset, const void~*buf, int~count, MPI\_Datatype~datatype, MPI\_Request~*request)} | |
-\mpifnewbind{MPI\_File\_iwrite\_at\_all(fh, offset, buf, count, datatype, request, ierror) BIND(C) \fargs TYPE(MPI\_File), INTENT(IN) :: fh \\ INTEGER(KIND=MPI\_OFFSET\_KIND), INTENT(IN) :: offset \\ TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: buf \\ INTEGER, INTENT(IN) :: count \\ TYPE(MPI\_Datatype), INTENT(IN) :: datatype \\ TYPE(MPI\_Request), INTENT(OUT) :: request \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_File\_iwrite\_at\_all(fh, offset, buf, count, datatype, request, ierror) \fargs TYPE(MPI\_File), INTENT(IN) :: fh \\ INTEGER(KIND=MPI\_OFFSET\_KIND), INTENT(IN) :: offset \\ TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: buf \\ INTEGER, INTENT(IN) :: count \\ TYPE(MPI\_Datatype), INTENT(IN) :: datatype \\ TYPE(MPI\_Request), INTENT(OUT) :: request \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_FILE\_IWRITE\_AT\_ALL(FH, OFFSET, BUF, COUNT, DATATYPE, REQUEST, IERROR)\fargs <type> BUF(*) \\ INTEGER FH, COUNT, DATATYPE, REQUEST, IERROR \\ INTEGER(KIND=MPI\_OFFSET\_KIND) OFFSET} | |
\mpifunc{MPI\_FILE\_IWRITE\_AT\_ALL} is a nonblocking version of | |
@@ -1749,7 +1749,7 @@ | |
\cdeclindex{MPI\_Request}% | |
\cdeclindex{MPI\_File}% | |
\mpibind{MPI\_File\_iread\_all(MPI\_File~fh, void~*buf, int~count, MPI\_Datatype~datatype, MPI\_Request~*request)} | |
-\mpifnewbind{MPI\_File\_iread\_all(fh, buf, count, datatype, request, ierror) BIND(C) \fargs TYPE(MPI\_File), INTENT(IN) :: fh \\ TYPE(*), DIMENSION(..), ASYNCHRONOUS :: buf \\ INTEGER, INTENT(IN) :: count \\ TYPE(MPI\_Datatype), INTENT(IN) :: datatype \\ TYPE(MPI\_Request), INTENT(OUT) :: request \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_File\_iread\_all(fh, buf, count, datatype, request, ierror) \fargs TYPE(MPI\_File), INTENT(IN) :: fh \\ TYPE(*), DIMENSION(..), ASYNCHRONOUS :: buf \\ INTEGER, INTENT(IN) :: count \\ TYPE(MPI\_Datatype), INTENT(IN) :: datatype \\ TYPE(MPI\_Request), INTENT(OUT) :: request \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_FILE\_IREAD\_ALL(FH, BUF, COUNT, DATATYPE, REQUEST, IERROR) \fargs <type> BUF(*) \\ INTEGER FH, COUNT, DATATYPE, REQUEST, IERROR} | |
\mpifunc{MPI\_FILE\_IREAD\_ALL} is a nonblocking version | |
@@ -1783,7 +1783,7 @@ | |
\cdeclindex{MPI\_Request}% | |
\cdeclindex{MPI\_File}% | |
\mpibind{MPI\_File\_iwrite\_all(MPI\_File~fh, const void~*buf, int~count, MPI\_Datatype~datatype, MPI\_Request~*request)} | |
-\mpifnewbind{MPI\_File\_iwrite\_all(fh, buf, count, datatype, request, ierror) BIND(C) \fargs TYPE(MPI\_File), INTENT(IN) :: fh \\ TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: buf \\ INTEGER, INTENT(IN) :: count \\ TYPE(MPI\_Datatype), INTENT(IN) :: datatype \\ TYPE(MPI\_Request), INTENT(OUT) :: request \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_File\_iwrite\_all(fh, buf, count, datatype, request, ierror) \fargs TYPE(MPI\_File), INTENT(IN) :: fh \\ TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: buf \\ INTEGER, INTENT(IN) :: count \\ TYPE(MPI\_Datatype), INTENT(IN) :: datatype \\ TYPE(MPI\_Request), INTENT(OUT) :: request \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_FILE\_IWRITE\_ALL(FH, BUF, COUNT, DATATYPE, REQUEST, IERROR)\fargs <type> BUF(*) \\ INTEGER FH, COUNT, DATATYPE, REQUEST, IERROR} | |
\mpifunc{MPI\_FILE\_IWRITE\_ALL} is a nonblocking version | |
_________________________________________________________________________ | |
Index: appLang-Const.tex #345 | |
=================================================================== | |
--- appLang-Const.tex (Revision 1866) | |
+++ appLang-Const.tex (Revision 1867) | |
@@ -1074,6 +1074,7 @@ | |
\ftype{TYPE(MPI\_File)}\cdeclindex{MPI\_File} \\ | |
\ftype{TYPE(MPI\_Group)}\cdeclindex{MPI\_Group} \\ | |
\ftype{TYPE(MPI\_Info)}\cdeclindex{MPI\_Info} \\ | |
+\ftype{TYPE(MPI\_Message)}\cdeclindex{MPI\_Message} \\ | |
\ftype{TYPE(MPI\_Op)}\cdeclindex{MPI\_Op} \\ | |
\ftype{TYPE(MPI\_Request)}\cdeclindex{MPI\_Request} \\ | |
\ftype{TYPE(MPI\_Win)}\cdeclindex{MPI\_Win} | |
_________________________________________________________________________ | |
Index: appLang-Const.tex #347 part 1 | |
=================================================================== | |
--- appLang-Const.tex (Revision 1766) | |
+++ appLang-Const.tex (Revision 1767) | |
@@ -1432,6 +1432,9 @@ | |
The following info keys are reserved. They are strings. \\[3pt] | |
\infoskip{access\_style} \\ | |
+\infoskip{accumulate\_ops}\\ | |
+\infoskip{accumulate\_ordering}\\ | |
+\infoskip{alloc\_shared\_noncontig}\\ | |
\infoskip{appnum} \\ | |
\infoskip{arch} \\ | |
\infoskip{cb\_block\_size} \\ | |
@@ -1452,6 +1455,7 @@ | |
\infoskip{no\_locks} \\ | |
\infoskip{num\_io\_nodes} \\ | |
\infoskip{path} \\ | |
+\infoskip{same\_size}\\ | |
\infoskip{soft} \\ | |
\infoskip{striping\_factor} \\ | |
\infoskip{striping\_unit} \\ | |
@@ -1463,13 +1467,15 @@ | |
The following info values are reserved. They are strings. \\[3pt] | |
\infoskip{false} \\ | |
\infoskip{random} \\ | |
+\infoskip{rar}\\ | |
+\infoskip{raw}\\ | |
\infoskip{read\_mostly} \\ | |
\infoskip{read\_once} \\ | |
\infoskip{reverse\_sequential} \\ | |
+\infoskip{same\_op}\\ | |
\infoskip{sequential} \\ | |
\infoskip{true} \\ | |
+\infoskip{war}\\ | |
+\infoskip{waw}\\ | |
\infoskip{write\_mostly} \\ | |
-\infoskip{write\_once} \\ | |
- | |
- | |
- | |
+\infoskip{write\_once} | |
_________________________________________________________________________ | |
Index: appLang-Const.tex #347 part 2 | |
=================================================================== | |
--- appLang-Const.tex (Revision 1934) | |
+++ appLang-Const.tex (Revision 1935) | |
@@ -1471,6 +1471,7 @@ | |
\infoskip{read\_once} \\ | |
\infoskip{reverse\_sequential} \\ | |
\infoskip{same\_op}\\ | |
+\infoskip{same\_op\_no\_op}\\ | |
\infoskip{sequential} \\ | |
\infoskip{true} \\ | |
\infoskip{war}\\ | |
_________________________________________________________________________ | |
Index: appLang-Const.tex #354 | |
=================================================================== | |
--- appLang-Const.tex (Revision 1862) | |
+++ appLang-Const.tex (Revision 1866) | |
@@ -940,7 +940,6 @@ | |
\textbf{Verbosity Levels in the \MPI/ tool information interface} \\ | |
\hline | |
{\small C type: \ctype{const int} (or unnamed \ctype{enum})} \\ | |
-{\small Fortran type: \ftype{INTEGER}} \\ | |
\hline | |
\const{MPI\_T\_VERBOSITY\_USER\_BASIC} \\ | |
\const{MPI\_T\_VERBOSITY\_USER\_DETAIL} \\ | |
@@ -961,7 +960,6 @@ | |
\textbf{ in the \MPI/ tool information interface} \\ | |
\hline | |
{\small C type: \ctype{const int} (or unnamed \ctype{enum})} \\ | |
-{\small Fortran type: \ftype{INTEGER}} \\ | |
\hline | |
\const{MPI\_T\_BIND\_NO\_OBJECT}\\ | |
\const{MPI\_T\_BIND\_MPI\_COMM}\\ | |
@@ -984,7 +982,6 @@ | |
\textbf{in the \MPI/ tool information interface} \\ | |
\hline | |
{\small C type: \ctype{const int} (or unnamed \ctype{enum})} \\ | |
-{\small Fortran type: \ftype{INTEGER}} \\ | |
\hline | |
\const{MPI\_T\_SCOPE\_CONSTANT}\\ | |
\const{MPI\_T\_SCOPE\_READONLY}\\ | |
@@ -1015,7 +1012,6 @@ | |
\textbf{\MPI/ tool information interface} \\ | |
\hline | |
{\small C type: \ctype{const int} (or unnamed \ctype{enum})} \\ | |
-{\small Fortran type: \ftype{INTEGER}} \\ | |
\hline | |
\const{MPI\_T\_PVAR\_CLASS\_STATE} \\ | |
\const{MPI\_T\_PVAR\_CLASS\_LEVEL} \\ | |
_________________________________________________________________________ | |
Index: appLang-Const.tex #369 | |
=================================================================== | |
--- appLang-Const.tex (Revision 1935) | |
+++ appLang-Const.tex (Revision 1936) | |
@@ -1453,6 +1453,7 @@ | |
\infoskip{no\_locks} \\ | |
\infoskip{num\_io\_nodes} \\ | |
\infoskip{path} \\ | |
+\infoskip{same\_disp\_unit}\\ | |
\infoskip{same\_size}\\ | |
\infoskip{soft} \\ | |
\infoskip{striping\_factor} \\ | |
_________________________________________________________________________ | |
Index: appLang-Const.tex #377 | |
=================================================================== | |
--- appLang-Const.tex (Revision 1936) | |
+++ appLang-Const.tex (Revision 1937) | |
@@ -132,6 +132,7 @@ | |
\const{MPI\_T\_ERR\_INVALID\_ITEM} \\ | |
\const{MPI\_T\_ERR\_INVALID\_SESSION}\\ | |
\const{MPI\_T\_ERR\_INVALID\_HANDLE} \\ | |
+\const{MPI\_T\_ERR\_INVALID\_NAME} \\ | |
\const{MPI\_T\_ERR\_OUT\_OF\_HANDLES}\\ | |
\const{MPI\_T\_ERR\_OUT\_OF\_SESSIONS}\\ | |
\const{MPI\_T\_ERR\_CVAR\_SET\_NOT\_NOW}\\ | |
_________________________________________________________________________ | |
Index: appLang-Const.tex #388 | |
=================================================================== | |
--- appLang-Const.tex (Revision 1834) | |
+++ appLang-Const.tex (Revision 1835) | |
@@ -1159,70 +1159,70 @@ | |
The user-function argument to \ffunc{MPI\_Op\_create}\mpifuncindex{MPI\_OP\_CREATE} should be declared | |
according to: | |
-\mpifnewsubbind{MPI\_User\_function(invec, inoutvec, len, datatype) BIND(C) \fargs USE, INTRINSIC :: ISO\_C\_BINDING, ONLY : C\_PTR \\ TYPE(C\_PTR), VALUE :: invec, inoutvec \\ INTEGER :: len \\ TYPE(MPI\_Datatype) :: datatype} | |
+\mpifnewsubbind{MPI\_User\_function(invec, inoutvec, len, datatype) \fargs USE, INTRINSIC :: ISO\_C\_BINDING, ONLY : C\_PTR \\ TYPE(C\_PTR), VALUE :: invec, inoutvec \\ INTEGER :: len \\ TYPE(MPI\_Datatype) :: datatype} | |
% | |
The copy and delete function arguments to \ffunc{MPI\_Comm\_create\_keyval}\mpifuncindex{MPI\_COMM\_CREATE\_KEYVAL} should be | |
declared according to: | |
% | |
-\mpifnewsubbind{MPI\_Comm\_copy\_attr\_function(oldcomm, comm\_keyval, extra\_state, attribute\_val\_in, attribute\_val\_out, flag, ierror) BIND(C) \fargs TYPE(MPI\_Comm) :: oldcomm \\ INTEGER :: comm\_keyval, ierror \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: extra\_state, attribute\_val\_in, attribute\_val\_out \\ LOGICAL :: flag } | |
-\mpifnewsubbind{MPI\_Comm\_delete\_attr\_function(comm, comm\_keyval, attribute\_val, extra\_state, ierror) BIND(C) \fargs TYPE(MPI\_Comm) :: comm \\ INTEGER :: comm\_keyval, ierror \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: attribute\_val, extra\_state } | |
+\mpifnewsubbind{MPI\_Comm\_copy\_attr\_function(oldcomm, comm\_keyval, extra\_state, attribute\_val\_in, attribute\_val\_out, flag, ierror) \fargs TYPE(MPI\_Comm) :: oldcomm \\ INTEGER :: comm\_keyval, ierror \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: extra\_state, attribute\_val\_in, attribute\_val\_out \\ LOGICAL :: flag } | |
+\mpifnewsubbind{MPI\_Comm\_delete\_attr\_function(comm, comm\_keyval, attribute\_val, extra\_state, ierror) \fargs TYPE(MPI\_Comm) :: comm \\ INTEGER :: comm\_keyval, ierror \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: attribute\_val, extra\_state } | |
% | |
The copy and delete function arguments to \ffunc{MPI\_Win\_create\_keyval}\mpifuncindex{MPI\_WIN\_CREATE\_KEYVAL} should be | |
declared according to: | |
% | |
-\mpifnewsubbind{MPI\_Win\_copy\_attr\_function(oldwin, win\_keyval, extra\_state, attribute\_val\_in, attribute\_val\_out, flag, ierror) BIND(C) \fargs TYPE(MPI\_Win) :: oldwin \\ INTEGER :: win\_keyval, ierror \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: extra\_state, attribute\_val\_in, attribute\_val\_out \\ LOGICAL :: flag } | |
-\mpifnewsubbind{MPI\_Win\_delete\_attr\_function(win, win\_keyval, attribute\_val, extra\_state, ierror) BIND(C) \fargs TYPE(MPI\_Win) :: win \\ INTEGER :: win\_keyval, ierror \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: attribute\_val, extra\_state } | |
+\mpifnewsubbind{MPI\_Win\_copy\_attr\_function(oldwin, win\_keyval, extra\_state, attribute\_val\_in, attribute\_val\_out, flag, ierror) \fargs TYPE(MPI\_Win) :: oldwin \\ INTEGER :: win\_keyval, ierror \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: extra\_state, attribute\_val\_in, attribute\_val\_out \\ LOGICAL :: flag } | |
+\mpifnewsubbind{MPI\_Win\_delete\_attr\_function(win, win\_keyval, attribute\_val, extra\_state, ierror) \fargs TYPE(MPI\_Win) :: win \\ INTEGER :: win\_keyval, ierror \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: attribute\_val, extra\_state } | |
% | |
The copy and delete function arguments to \ffunc{MPI\_Type\_create\_keyval}\mpifuncindex{MPI\_TYPE\_CREATE\_KEYVAL} should be | |
declared according to: | |
% | |
-\mpifnewsubbind{MPI\_Type\_copy\_attr\_function(oldtype, type\_keyval, extra\_state, attribute\_val\_in, attribute\_val\_out, flag, ierror) BIND(C) \fargs TYPE(MPI\_Datatype) :: oldtype \\ INTEGER :: type\_keyval, ierror \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: extra\_state, attribute\_val\_in, attribute\_val\_out \\ LOGICAL :: flag } | |
-\mpifnewsubbind{MPI\_Type\_delete\_attr\_function(datatype, type\_keyval, attribute\_val, extra\_state, ierror) BIND(C) \fargs TYPE(MPI\_Datatype) :: datatype \\ INTEGER :: type\_keyval, ierror \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: attribute\_val, extra\_state } | |
+\mpifnewsubbind{MPI\_Type\_copy\_attr\_function(oldtype, type\_keyval, extra\_state, attribute\_val\_in, attribute\_val\_out, flag, ierror) \fargs TYPE(MPI\_Datatype) :: oldtype \\ INTEGER :: type\_keyval, ierror \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: extra\_state, attribute\_val\_in, attribute\_val\_out \\ LOGICAL :: flag } | |
+\mpifnewsubbind{MPI\_Type\_delete\_attr\_function(datatype, type\_keyval, attribute\_val, extra\_state, ierror) \fargs TYPE(MPI\_Datatype) :: datatype \\ INTEGER :: type\_keyval, ierror \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: attribute\_val, extra\_state } | |
% | |
The handler-function argument to \ffunc{MPI\_Comm\_create\_errhandler}\mpifuncindex{MPI\_COMM\_CREATE\_ERRHANDLER} | |
should be declared like this: | |
% | |
-\mpifnewsubbind{MPI\_Comm\_errhandler\_function(comm, error\_code) BIND(C) \fargs TYPE(MPI\_Comm) :: comm \\ INTEGER :: error\_code } | |
+\mpifnewsubbind{MPI\_Comm\_errhandler\_function(comm, error\_code) \fargs TYPE(MPI\_Comm) :: comm \\ INTEGER :: error\_code } | |
% | |
The handler-function argument to \ffunc{MPI\_Win\_create\_errhandler}\mpifuncindex{MPI\_WIN\_CREATE\_ERRHANDLER} | |
should be declared like this: | |
% | |
-\mpifnewsubbind{MPI\_Win\_errhandler\_function(win, error\_code) BIND(C) \fargs TYPE(MPI\_Win) :: win \\ INTEGER :: error\_code } | |
+\mpifnewsubbind{MPI\_Win\_errhandler\_function(win, error\_code) \fargs TYPE(MPI\_Win) :: win \\ INTEGER :: error\_code } | |
% | |
The handler-function argument to \ffunc{MPI\_File\_create\_errhandler}\mpifuncindex{MPI\_FILE\_CREATE\_ERRHANDLER} | |
should be declared like this: | |
% | |
-\mpifnewsubbind{MPI\_File\_errhandler\_function(file, error\_code) BIND(C) \fargs TYPE(MPI\_File) :: file \\ INTEGER :: error\_code } | |
+\mpifnewsubbind{MPI\_File\_errhandler\_function(file, error\_code) \fargs TYPE(MPI\_File) :: file \\ INTEGER :: error\_code } | |
% | |
The query, free, and cancel function arguments to \ffunc{MPI\_Grequest\_start}\mpifuncindex{MPI\_GREQUEST\_START} | |
should be declared according to: | |
% | |
-\mpifnewsubbind{MPI\_Grequest\_query\_function(extra\_state, status, ierror) BIND(C) \fargs TYPE(MPI\_Status) :: status \\ INTEGER :: ierror \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: extra\_state } | |
-\mpifnewsubbind{MPI\_Grequest\_free\_function(extra\_state, ierror) BIND(C) \fargs INTEGER :: ierror \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: extra\_state } | |
-\mpifnewsubbind{MPI\_Grequest\_cancel\_function(extra\_state, complete, ierror) BIND(C) \fargs INTEGER :: ierror \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: extra\_state \\ LOGICAL :: complete } | |
+\mpifnewsubbind{MPI\_Grequest\_query\_function(extra\_state, status, ierror) \fargs TYPE(MPI\_Status) :: status \\ INTEGER :: ierror \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: extra\_state } | |
+\mpifnewsubbind{MPI\_Grequest\_free\_function(extra\_state, ierror) \fargs INTEGER :: ierror \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: extra\_state } | |
+\mpifnewsubbind{MPI\_Grequest\_cancel\_function(extra\_state, complete, ierror) \fargs INTEGER :: ierror \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: extra\_state \\ LOGICAL :: complete } | |
% | |
The extent and conversion function arguments to \ffunc{MPI\_Register\_datarep}\mpifuncindex{MPI\_REGISTER\_DATAREP} | |
should be declared according to: | |
% | |
-\mpifnewsubbind{MPI\_Datarep\_extent\_function(datatype, extent, extra\_state, ierror) BIND(C) \fargs TYPE(MPI\_Datatype) :: datatype \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: extent, extra\_state \\ INTEGER :: ierror } | |
+\mpifnewsubbind{MPI\_Datarep\_extent\_function(datatype, extent, extra\_state, ierror) \fargs TYPE(MPI\_Datatype) :: datatype \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: extent, extra\_state \\ INTEGER :: ierror } | |
-\mpifnewsubbind{MPI\_Datarep\_conversion\_function(userbuf, datatype, count, filebuf, position, extra\_state, ierror) BIND(C)\fargs USE, INTRINSIC :: ISO\_C\_BINDING, ONLY : C\_PTR \\ TYPE(C\_PTR), VALUE :: userbuf, filebuf \\ TYPE(MPI\_Datatype) :: datatype \\ INTEGER :: count, ierror \\ INTEGER(KIND=MPI\_OFFSET\_KIND) :: position \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: extra\_state} | |
+\mpifnewsubbind{MPI\_Datarep\_conversion\_function(userbuf, datatype, count, filebuf, position, extra\_state, ierror)\fargs USE, INTRINSIC :: ISO\_C\_BINDING, ONLY : C\_PTR \\ TYPE(C\_PTR), VALUE :: userbuf, filebuf \\ TYPE(MPI\_Datatype) :: datatype \\ INTEGER :: count, ierror \\ INTEGER(KIND=MPI\_OFFSET\_KIND) :: position \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: extra\_state} | |
\subsubsection{Fortran Bindings with mpif.h or the mpi Module} | |
_________________________________________________________________________ | |
Index: io-2.tex #389 --> Annex A.2.11 / A.3.11 / A.4.11 | |
=================================================================== | |
--- io-2.tex (Revision 1944) | |
+++ io-2.tex (Revision 1945) | |
@@ -3046,6 +3046,18 @@ | |
\mpifunc{read\_conversion\_fn}, respectively, but will perform | |
the requested data access using the native data representation. | |
+% The following declarations are needed for generating the | |
+% list of functions in the annex. | |
+% They are not used for printing here. | |
+% Therefore, they are surrounded by a deleting macro. | |
+\OnlyForAutomaticAnnexGeneration{% deleting the content where the macro is used; but preserving it for the Annex | |
+% C binding for MPI_CONVERSION_FN_NULL | |
+\mpibind{MPI\_CONVERSION\_FN\_NULL(void~*userbuf, MPI\_Datatype~datatype, int~count, void~*filebuf, MPI\_Offset~position, void~*extra\_state)} | |
+% Fortran binding for MPI_CONVERSION_FN_NULL | |
+\mpifnewbind{MPI\_CONVERSION\_FN\_NULL(userbuf, datatype, count, filebuf, position, extra\_state, ierror) \fargs USE, INTRINSIC :: ISO\_C\_BINDING, ONLY : C\_PTR \\ TYPE(C\_PTR), VALUE :: userbuf, filebuf \\ TYPE(MPI\_Datatype) :: datatype \\ INTEGER :: count, ierror \\ INTEGER(KIND=MPI\_OFFSET\_KIND) :: position \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) :: extra\_state} | |
+\mpifbind{MPI\_CONVERSION\_FN\_NULL(USERBUF, DATATYPE, COUNT, FILEBUF, POSITION, EXTRA\_STATE, IERROR) \fargs <TYPE> USERBUF(*), FILEBUF(*) \\ INTEGER COUNT, DATATYPE, IERROR \\ INTEGER(KIND=MPI\_OFFSET\_KIND) POSITION \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) EXTRA\_STATE} | |
+} | |
+ | |
An \MPI/ implementation must ensure that all data accessed is converted, | |
either by using a filebuf large enough to hold all the requested | |
data items | |
_________________________________________________________________________ | |
Index: chap-inquiry/inquiry.tex #390 | |
=================================================================== | |
--- chap-inquiry/inquiry.tex (Revision 2008) | |
+++ chap-inquiry/inquiry.tex (Revision 2009) | |
@@ -278,7 +278,7 @@ | |
\mpibind{MPI\_Alloc\_mem(MPI\_Aint~size, MPI\_Info~info, void~*baseptr)} | |
\mpifnewbind{MPI\_Alloc\_mem(size, info, baseptr, ierror) \fargs USE, INTRINSIC :: ISO\_C\_BINDING, ONLY : C\_PTR \\ INTEGER(KIND=MPI\_ADDRESS\_KIND), INTENT(IN) :: size \\ TYPE(MPI\_Info), INTENT(IN) :: info \\ TYPE(C\_PTR), INTENT(OUT) :: baseptr \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
-\mpifbind{MPI\_ALLOC\_MEM(SIZE, INFO, BASEPTR, IERROR) \fargs INTEGER INFO, IERROR \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) SIZE, BASEPTR \mpifoverloadOnlyInAnnex{\>INTERFACE MPI\_ALLOC\_MEM \\ \>\>SUBROUTINE MPI\_ALLOC\_MEM\_CPTR(SIZE, INFO, BASEPTR, IERROR) \\ \>\>\>USE, INTRINSIC :: ISO\_C\_BINDING, ONLY : C\_PTR \\ \>\>\>INTEGER :: INFO, IERROR \\ \>\>\>INTEGER(KIND=MPI\_ADDRESS\_KIND) :: SIZE \\ \>\>\>TYPE(C\_PTR) :: BASEPTR \\ \>\>END SUBROUTINE \\ \>END INTERFACE}} | |
+\mpifbind{MPI\_ALLOC\_MEM(SIZE, INFO, BASEPTR, IERROR) \fargs INTEGER INFO, IERROR \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) SIZE, BASEPTR \mpifoverloadOnlyInAnnex{\>INTERFACE MPI\_ALLOC\_MEM \\ \>\>SUBROUTINE MPI\_ALLOC\_MEM(SIZE, INFO, BASEPTR, IERROR) \\ \>\>\>IMPORT :: MPI\_ADDRESS\_KIND \\ \>\>\>INTEGER :: INFO, IERROR \\ \>\>\>INTEGER(KIND=MPI\_ADDRESS\_KIND) :: SIZE, BASEPTR \\ \>\>END SUBROUTINE \\ \>\>SUBROUTINE MPI\_ALLOC\_MEM\_CPTR(SIZE, INFO, BASEPTR, IERROR) \\ \>\>\>USE, INTRINSIC :: ISO\_C\_BINDING, ONLY : C\_PTR \\ \>\>\>IMPORT :: MPI\_ADDRESS\_KIND \\ \>\>\>INTEGER :: INFO, IERROR \\ \>\>\>INTEGER(KIND=MPI\_ADDRESS\_KIND) :: SIZE \\ \>\>\>TYPE(C\_PTR) :: BASEPTR \\ \>\>END SUBROUTINE \\ \>END INTERFACE}} | |
\mpicppemptybind{MPI::Alloc\_mem(MPI::Aint size, const MPI::Info\& info)}{void*} | |
Index: chap-one-side/one-side-2.tex | |
=================================================================== | |
--- chap-one-side/one-side-2.tex (Revision 2008) | |
+++ chap-one-side/one-side-2.tex (Revision 2009) | |
@@ -307,7 +307,7 @@ | |
%% Fortran. If there is a change in Alloc_mem to use new Fortran | |
%% interfaces, this binding should follow the same approach | |
\mpifnewbind{MPI\_Win\_allocate(size, disp\_unit, info, comm, baseptr, win, ierror) \fargs USE, INTRINSIC :: ISO\_C\_BINDING, ONLY : C\_PTR \\ INTEGER(KIND=MPI\_ADDRESS\_KIND), INTENT(IN) :: size \\ INTEGER, INTENT(IN) :: disp\_unit \\ TYPE(MPI\_Info), INTENT(IN) :: info \\ TYPE(MPI\_Comm), INTENT(IN) :: comm \\ TYPE(C\_PTR), INTENT(OUT) :: baseptr \\ TYPE(MPI\_Win), INTENT(OUT) :: win \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
-\mpifbind{MPI\_WIN\_ALLOCATE(SIZE, DISP\_UNIT, INFO, COMM, BASEPTR, WIN, IERROR)\fargs INTEGER DISP\_UNIT, INFO, COMM, WIN, IERROR \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) SIZE, BASEPTR \mpifoverloadOnlyInAnnex{\>INTERFACE MPI\_WIN\_ALLOCATE \\ \>\>SUBROUTINE MPI\_WIN\_ALLOCATE\_CPTR(SIZE, DISP\_UNIT, INFO, COMM, BASEPTR, \& \\ \>\>\>\>WIN, IERROR) \\ \>\>\>USE, INTRINSIC :: ISO\_C\_BINDING, ONLY : C\_PTR \\ \>\>\>INTEGER :: DISP\_UNIT, INFO, COMM, WIN, IERROR \\ \>\>\>INTEGER(KIND=MPI\_ADDRESS\_KIND) :: SIZE \\ \>\>\>TYPE(C\_PTR) :: BASEPTR \\ \>\>END SUBROUTINE \\ \>END INTERFACE}} | |
+\mpifbind{MPI\_WIN\_ALLOCATE(SIZE, DISP\_UNIT, INFO, COMM, BASEPTR, WIN, IERROR)\fargs INTEGER DISP\_UNIT, INFO, COMM, WIN, IERROR \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) SIZE, BASEPTR \mpifoverloadOnlyInAnnex{\>INTERFACE MPI\_WIN\_ALLOCATE \\ \>\>SUBROUTINE MPI\_WIN\_ALLOCATE(SIZE, DISP\_UNIT, INFO, COMM, BASEPTR, \& \\ \>\>\>\>WIN, IERROR) \\ \>\>\>IMPORT :: MPI\_ADDRESS\_KIND \\ \>\>\>INTEGER :: DISP\_UNIT, INFO, COMM, WIN, IERROR \\ \>\>\>INTEGER(KIND=MPI\_ADDRESS\_KIND) :: SIZE, BASEPTR \\ \>\>END SUBROUTINE \\ \>\>SUBROUTINE MPI\_WIN\_ALLOCATE\_CPTR(SIZE, DISP\_UNIT, INFO, COMM, BASEPTR, \& \\ \>\>\>\>WIN, IERROR) \\ \>\>\>USE, INTRINSIC :: ISO\_C\_BINDING, ONLY : C\_PTR \\ \>\>\>IMPORT :: MPI\_ADDRESS\_KIND \\ \>\>\>INTEGER :: DISP\_UNIT, INFO, COMM, WIN, IERROR \\ \>\>\>INTEGER(KIND=MPI\_ADDRESS\_KIND) :: SIZE \\ \>\>\>TYPE(C\_PTR) :: BASEPTR \\ \>\>END SUBROUTINE \\ \>END INTERFACE}} | |
%\mpicppemptybind{MPI::Win::Allocate(MPI::Aint size, int disp\_unit, %const MPI::Info\& info, const MPI::Intracomm\& comm, void** baseptr)}{static MPI::Win} | |
@@ -401,7 +401,7 @@ | |
%% Fortran. If there is a change in Alloc_mem to use new Fortran | |
%% interfaces, this binding should follow the same approach | |
\mpifnewbind{MPI\_Win\_allocate\_shared(size, disp\_unit, info, comm, baseptr, win, ierror) \fargs USE, INTRINSIC :: ISO\_C\_BINDING, ONLY : C\_PTR \\ INTEGER(KIND=MPI\_ADDRESS\_KIND), INTENT(IN) :: size \\ INTEGER, INTENT(IN) :: disp\_unit \\ TYPE(MPI\_Info), INTENT(IN) :: info \\ TYPE(MPI\_Comm), INTENT(IN) :: comm \\ TYPE(C\_PTR), INTENT(OUT) :: baseptr \\ TYPE(MPI\_Win), INTENT(OUT) :: win \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
-\mpifbind{MPI\_WIN\_ALLOCATE\_SHARED(SIZE, DISP\_UNIT, INFO, COMM, BASEPTR, WIN, IERROR)\fargs INTEGER DISP\_UNIT, INFO, COMM, WIN, IERROR \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) SIZE, BASEPTR \mpifoverloadOnlyInAnnex{\>INTERFACE MPI\_WIN\_ALLOCATE\_SHARED \\ \>\>SUBROUTINE MPI\_WIN\_ALLOCATE\_SHARED\_CPTR(SIZE, DISP\_UNIT, INFO, COMM, \& \\ \>\>\>\>BASEPTR, WIN, IERROR) \\ \>\>\>USE, INTRINSIC :: ISO\_C\_BINDING, ONLY : C\_PTR \\ \>\>\>INTEGER :: DISP\_UNIT, INFO, COMM, WIN, IERROR \\ \>\>\>INTEGER(KIND=MPI\_ADDRESS\_KIND) :: SIZE \\ \>\>\>TYPE(C\_PTR) :: BASEPTR \\ \>\>END SUBROUTINE \\ \>END INTERFACE}} | |
+\mpifbind{MPI\_WIN\_ALLOCATE\_SHARED(SIZE, DISP\_UNIT, INFO, COMM, BASEPTR, WIN, IERROR)\fargs INTEGER DISP\_UNIT, INFO, COMM, WIN, IERROR \\ INTEGER(KIND=MPI\_ADDRESS\_KIND) SIZE, BASEPTR \mpifoverloadOnlyInAnnex{\>INTERFACE MPI\_WIN\_ALLOCATE\_SHARED \\ \>\>SUBROUTINE MPI\_WIN\_ALLOCATE\_SHARED(SIZE, DISP\_UNIT, INFO, COMM, \& \\ \>\>\>\>BASEPTR, WIN, IERROR) \\ \>\>\>IMPORT :: MPI\_ADDRESS\_KIND \\ \>\>\>INTEGER :: DISP\_UNIT, INFO, COMM, WIN, IERROR \\ \>\>\>INTEGER(KIND=MPI\_ADDRESS\_KIND) :: SIZE, BASEPTR \\ \>\>END SUBROUTINE \\ \>\>SUBROUTINE MPI\_WIN\_ALLOCATE\_SHARED\_CPTR(SIZE, DISP\_UNIT, INFO, COMM, \& \\ \>\>\>\>BASEPTR, WIN, IERROR) \\ \>\>\>USE, INTRINSIC :: ISO\_C\_BINDING, ONLY : C\_PTR \\ \>\>\>IMPORT :: MPI\_ADDRESS\_KIND \\ \>\>\>INTEGER :: DISP\_UNIT, INFO, COMM, WIN, IERROR \\ \>\>\>INTEGER(KIND=MPI\_ADDRESS\_KIND) :: SIZE \\ \>\>\>TYPE(C\_PTR) :: BASEPTR \\ \>\>END SUBROUTINE \\ \>END INTERFACE}} | |
%\mpicppemptybind{MPI::Win::Allocate(MPI::Aint size, int disp\_unit, %const MPI::Info\& info, const MPI::Intracomm\& comm, void* baseptr)}{static MPI::Win} | |
@@ -512,7 +512,7 @@ | |
\mpibind{MPI\_Win\_shared\_query(MPI\_Win win, int rank, MPI\_Aint *size, int~*disp\_unit, void~*baseptr)} | |
\mpifnewbind{MPI\_Win\_shared\_query(win, rank, size, disp\_unit, baseptr, ierror) \fargs USE, INTRINSIC :: ISO\_C\_BINDING, ONLY : C\_PTR \\ TYPE(MPI\_Win), INTENT(IN) :: win \\ INTEGER, INTENT(IN) :: rank \\ INTEGER(KIND=MPI\_ADDRESS\_KIND), INTENT(OUT) :: size \\ INTEGER, INTENT(OUT) :: disp\_unit \\ TYPE(C\_PTR), INTENT(OUT) :: baseptr \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
-\mpifbind{MPI\_WIN\_SHARED\_QUERY(WIN, RANK, SIZE, DISP\_UNIT, BASEPTR, IERROR)\fargs INTEGER WIN, RANK, DISP\_UNIT, IERROR\\INTEGER (KIND=MPI\_ADDRESS\_KIND) SIZE, BASEPTR \mpifoverloadOnlyInAnnex{ INTERFACE MPI\_WIN\_SHARED\_QUERY \\ \>\>SUBROUTINE MPI\_WIN\_SHARED\_QUERY\_CPTR(WIN, RANK, SIZE, DISP\_UNIT, \&\\ \>\>\>\>BASEPTR, IERROR) \\ \>\>\>USE, INTRINSIC :: ISO\_C\_BINDING, ONLY : C\_PTR \\ \>\>\>INTEGER :: WIN, RANK, DISP\_UNIT, IERROR \\ \>\>\>INTEGER(KIND=MPI\_ADDRESS\_KIND) :: SIZE \\ \>\>\>TYPE(C\_PTR) :: BASEPTR \\ \>\>END SUBROUTINE \\ \>END INTERFACE}} | |
+\mpifbind{MPI\_WIN\_SHARED\_QUERY(WIN, RANK, SIZE, DISP\_UNIT, BASEPTR, IERROR)\fargs INTEGER WIN, RANK, DISP\_UNIT, IERROR\\INTEGER (KIND=MPI\_ADDRESS\_KIND) SIZE, BASEPTR \mpifoverloadOnlyInAnnex{\>INTERFACE MPI\_WIN\_SHARED\_QUERY \\ \>\>SUBROUTINE MPI\_WIN\_SHARED\_QUERY(WIN, RANK, SIZE, DISP\_UNIT, \&\\ \>\>\>\>BASEPTR, IERROR) \\ \>\>\>IMPORT :: MPI\_ADDRESS\_KIND \\ \>\>\>INTEGER :: WIN, RANK, DISP\_UNIT, IERROR \\ \>\>\>INTEGER(KIND=MPI\_ADDRESS\_KIND) :: SIZE, BASEPTR \\ \>\>END SUBROUTINE \\ \>\>SUBROUTINE MPI\_WIN\_SHARED\_QUERY\_CPTR(WIN, RANK, SIZE, DISP\_UNIT, \&\\ \>\>\>\>BASEPTR, IERROR) \\ \>\>\>USE, INTRINSIC :: ISO\_C\_BINDING, ONLY : C\_PTR \\ \>\>\>IMPORT :: MPI\_ADDRESS\_KIND \\ \>\>\>INTEGER :: WIN, RANK, DISP\_UNIT, IERROR \\ \>\>\>INTEGER(KIND=MPI\_ADDRESS\_KIND) :: SIZE \\ \>\>\>TYPE(C\_PTR) :: BASEPTR \\ \>\>END SUBROUTINE \\ \>END INTERFACE}} | |
This function queries the process-local address for remote memory segments | |
created with \mpifunc{MPI\_WIN\_ALLOCATE\_SHARED}. This function can return | |
_________________________________________________________________________ | |
Index: appLang-Const.tex #400 | |
=================================================================== | |
--- appLang-Const.tex (Revision 1901) | |
+++ appLang-Const.tex (Revision 1902) | |
@@ -127,6 +127,7 @@ | |
\const{MPI\_T\_ERR\_CANNOT\_INIT}\\ | |
\const{MPI\_T\_ERR\_NOT\_INITIALIZED}\\ | |
\const{MPI\_T\_ERR\_MEMORY}\\ | |
+\const{MPI\_T\_ERR\_INVALID}\\ | |
\const{MPI\_T\_ERR\_INVALID\_INDEX}\\ | |
\const{MPI\_T\_ERR\_INVALID\_ITEM} \\ | |
\const{MPI\_T\_ERR\_INVALID\_SESSION}\\ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment