-
-
Save RolfRabenseifner/77769791d5c39ea651c2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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