diff --git a/.gitignore b/.gitignore index 4f3103b34f5d7c7b3c6932506ea80079b4be50bd..8809ebb19e62ac6d544b58586668995d5b317e06 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,8 @@ # Dependencies directory /deps +# Downloaded wheels +/wheels + # Build folders build* diff --git a/README.md b/README.md index c36acd9288e9d38605fe7eed858e659ba1c748ed..88734c8cd3131042f03b3a6f0f30729fe9520aa7 100644 --- a/README.md +++ b/README.md @@ -20,10 +20,10 @@ The build includes the following dependencies: `bin` directory is added to your `PATH` environment variable.<br> Note: to install CMake without administrator rights, you need to download and extract the zip file and set your `PATH` manually. -- **Mingw-w64**: download the latest version from [winlibs](https://github.com/brechtsanders/winlibs_mingw/releases/download/12.2.0-14.0.6-10.0.0-msvcrt-r2/winlibs-x86_64-posix-seh-gcc-12.2.0-mingw-w64msvcrt-10.0.0-r2.zip) and extract it to `C:\`.<br> +- **Mingw-w64**: download the 12.3 version from [winlibs](https://github.com/brechtsanders/winlibs_mingw/releases/download/12.3.0-16.0.4-11.0.0-ucrt-r1/winlibs-x86_64-posix-seh-gcc-12.3.0-mingw-w64ucrt-11.0.0-r1.zip) and extract it to `C:\`.<br> Note: if you don't install Mingw-w64 in `C:\`, you will need to add its `bin` directory to your `PATH`. -- **Python**: download and install the 3.10 64-bit version from [python.org](https://www.python.org/ftp/python/3.10.9/python-3.10.9-amd64.exe).<br> -Note: to install Python without administrator rights, you must uncheck the option `Use admin privileges when installing py.exe`. + +You don't need to install Python, as a version of its embeddable package will be downloaded and used by the batch script. However, if you already have Python on your OS, either through the official ## Optional: proxy configuration @@ -47,10 +47,18 @@ This will **download** , **build** and **install** a full setup of the current d To build a specific version, you need to specify it using the `/v` switch, e.g: ``` -C:\wintel>build-telemac C:\telemac /v V8P4 +C:\wintel>build-telemac C:\telemac /v V8P5 ``` -For now, the only supported stable version is V8P4. +The supported stable versions are V8P4 and V8P5. If the compilation went fine, the last message you will get should be `My work is done`. +By default, all TELEMAC external dependencies, including Python, will be downloaded, built if needed, and installed under a TELEMAC subfolder called "external". However, you can specify the location of the externals directory using the `/e` switch, e.g: + +``` +C:\wintel>build-telemac C:\telemac /e C:\telemac-deps +``` + +This allows you to reuse the same externals for several local installations of TELEMAC. + diff --git a/build-telemac.bat b/build-telemac.bat index a33b6b95f1ac65c8191d514c2fd1e78af32557df..c124643c82310135607995933778e57573677b9f 100644 --- a/build-telemac.bat +++ b/build-telemac.bat @@ -9,13 +9,22 @@ rem **************************************** set hdf5=hdf5-1.10.9 set med=med-4.1.1 set metis=metis-5.1.0 -set msmpi=msmpi-10.1.2 -set openblas=openblas-0.3.24 +set msmpi=msmpi-10.1.3 +set openblas=openblas-0.3.25 set scalapack=scalapack-2.1.0 set mumps=mumps-5.2.1 set aed2=libaed2-1.2.0 set gotm=gotm-2019-06-14-opentelemac +set python_version=3.11.8 +set python=python-%python_version% +set python_requirements=python_requirements.txt +set geo_wheels_version=v2024.1.1 +set gdal=GDAL-3.8.2-cp311-cp311-win_amd64.whl +set fiona=fiona-1.9.5-cp311-cp311-win_amd64.whl +set rasterio=rasterio-1.3.9-cp311-cp311-win_amd64.whl +set shapely=shapely-2.0.2-cp311-cp311-win_amd64.whl + rem ************************************************************************ rem Parse input arguments to determine where and how TELEMAC should be built rem ************************************************************************ @@ -32,21 +41,23 @@ if "%install_path%" == "" ( echo path: Path where TELEMAC will be installed. echo: echo /c Compiler to use, either mingw (default^) or intel. - echo /v Version to build, either V8P4 or main (default^) + echo /v Version to build, either V8P4, V8P5 or main (default^) + echo /e Path to the externals (Python, MED, MUMPS...^). If not set, + echo the externals will be installed under a TELEMAC subdirectory. exit /b 0 ) rem Ensure that the installation path is absolute set install_path=%~f1 -rem Set the external path using forward slashes for CMake (they are mandatory because ScaLAPACK uses a bugged CMake module) -set external_path=%install_path:\=/%/external - rem Parse optional arguments and fallback to default values if needed for /f "tokens=1,* delims= " %%a in ("%*") do set args=%%b call :arg_parser %args% if not defined arg_c set arg_c=mingw if not defined arg_v set arg_v=main +if not defined arg_e set arg_e=%install_path%\external + +set external_path=%arg_e% rem ************************************ rem Check that the compiler is available @@ -67,14 +78,16 @@ exit /b 0 :find_mingw rem Try to find Mingw in the current PATH set mingw_path= -for /f "delims=" %%a in ('"where mingw32-make 2>nul"') do set mingw_path=%%a +for /f "delims=" %%a in ('"where mingw32-make 2>nul"') do set mingw_path=%%~dpa rem If not found, add the usual Mingw location to PATH if not defined mingw_path set path=C:\mingw64\bin;%path% -for /f "delims=" %%a in ('"where mingw32-make 2>nul"') do set mingw_path=%%a +for /f "delims=" %%a in ('"where mingw32-make 2>nul"') do set mingw_path=%%~dpa if not defined mingw_path ( echo Error: Mingw not found. Please ensure that Mingw bin folder is in your PATH. exit /b 0 ) +rem Remove the trailing backslash +set mingw_path=%mingw_path:~0,-1% goto compiler_set :find_intel @@ -82,20 +95,41 @@ rem TODO :compiler_set -rem *********************************** -rem Check that the version is supported -rem *********************************** -set version= -if /i %arg_v% == v8p4 set version=v8p4 +rem ********************************************************************* +rem Check that the version is supported and set Python requirements +rem accordingly, including versions of the unofficial geopospatial wheels +rem provided by Christoph Gohlke +rem ********************************************************************* +set python_requirements=python_requirements.txt +if /i %arg_v% == v8p4 ( + set version=v8p4 + set python_version=3.10.11 + set python=python-3.10.11 + set python_requirements=python_requirements_v8p4.txt + set geo_wheels_version=v2023.11.3 + set gdal=GDAL-3.7.3-cp310-cp310-win_amd64.whl + set fiona=fiona-1.9.5-cp310-cp310-win_amd64.whl + set rasterio=rasterio-1.3.9-cp310-cp310-win_amd64.whl + set shapely=shapely-2.0.2-cp310-cp310-win_amd64.whl +) +if /i %arg_v% == v8p5 ( + set version=v8p5 + set python_requirements=python_requirements_v8p5.txt + set geo_wheels_version=v2023.11.3 + set gdal=GDAL-3.7.3-cp311-cp311-win_amd64.whl + set fiona=fiona-1.9.5-cp311-cp311-win_amd64.whl + set rasterio=rasterio-1.3.9-cp311-cp311-win_amd64.whl + set shapely=shapely-2.0.2-cp311-cp311-win_amd64.whl +) if /i %arg_v% == main set version=main if not defined version ( echo Unsupported TELEMAC version: %arg_v% exit /b 0 ) -rem *********************************************************************** -rem Check that all prerequisites (Git, Cmake and Python 3.10) are available -rem *********************************************************************** +rem ************************************** +rem Check that all Git and CMake available +rem ************************************** rem Check for the presence of Git set git_path= @@ -113,20 +147,6 @@ if not defined cmake_path ( exit /b 0 ) -rem Check for the presence of the Python launcher -set py_path= -for /f "delims=,tokens=*" %%a in ('"where py 2>nul"') do set py_path=%%a -if not defined py_path ( - echo Error: Python launcher not found. Please install Python 3.10 with the launcher. - exit /b 0 -) -rem Check for the presence of Python 3.10 -py -0 2>nul | findstr /I /B /C:" -3.10-64" > nul 2>&1 -if %errorlevel% == 1 ( - echo Error: Python 3.10 not found. You need to install it using the official installer. - exit /b 0 -) - rem ************* rem Clone Telemac rem ************* @@ -159,6 +179,7 @@ call :build_scalapack || goto exit call :build_mumps || goto exit call :build_aed2 || goto exit call :build_gotm || goto exit +call :install_python || goto exit call :install_python_packages || goto exit popd goto build_telemac @@ -170,6 +191,7 @@ call :build_metis || goto exit rem call :build_mumps || goto exit rem call :build_aed2 || goto exit rem call :buid_gotm || goto exit +call :install_python || goto exit call :install_python_packages || goto exit popd @@ -179,33 +201,42 @@ rem ************* :build_telemac pushd %install_path% -xcopy /e/y %~dp0config configs\ >nul -call configs\pysource.gnu.bat - -rem Replace "#!/usr/bin/env python3" with "#!/usr/bin/env python" so that the scripts -rem can be executed by the Python launcher using the active virtual environment -rem This is done using "find" and "sed" from the GNU tools provided by Git for Windows -for %%a in ("%git_path%\..\..") do set "path=%%~fa\usr\bin;%path%" -set folders=scripts\python3 examples\python3 optionals\addons -find %folders% -name "*.py" -exec sed -i 's/env\ python3/env\ python/g' {} ; - -rem Compile TELEMAC -compile_telemac.py - -rem Copy DLLs required by the API and Hermes Python modules -for %%i IN ("%mingw_path%") do set mingw_path=%%~dpi -set external_path=%external_path:/=\% -xcopy /y %mingw_path%\libgcc_s_seh-1.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul -xcopy /y %mingw_path%\libgfortran-5.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul -xcopy /y %mingw_path%\libquadmath-0.dll %install_path%\builds\gnu.static\wrap_api\lib\>nul -xcopy /y %mingw_path%\libstdc++-6.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul -xcopy /y %mingw_path%\libwinpthread-1.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul -xcopy /y %external_path%\%hdf5%\bin\libhdf5.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul -xcopy /y %external_path%\%med%\bin\libmedC.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul -xcopy /y %external_path%\%med%\bin\libmedfwrap.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul -xcopy /y %external_path%\%msmpi%\bin\msmpi.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul -xcopy /y %external_path%\%gotm%\bin\libturbulence.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul -xcopy /y %external_path%\%gotm%\bin\libutil.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul +rem Add Python to PATH +set path=%external_path%\%python%\Scripts;%external_path%\%python%;%path% + +rem Copy systel.cfg and create the pysource batches +pushd configs +xcopy /y %~dp0config\systel.cfg .\ +call :write_pysource_bat gnu.static +call :write_pysource_bat gnu.dynamic +call :write_pysource_bat gnu.static.debug +call :write_pysource_bat gnu.dynamic.debug +popd + +rem Create a .bat for each .py file in the scripts\python3 directory +for %%f in (scripts\python3\*.py) do ( + echo @echo off > scripts\%%~nf.py.bat + echo python %%~dp0\python3\%%~nf.py %%* >> scripts\%%~nf.py.bat +) + +rem Build TELEMAC for gnu.static +call configs\pysource.gnu.static.bat +call compile_telemac.py + +if %errorlevel% == 0 ( + rem Copy DLLs required by the API and Hermes Python modules + xcopy /y %mingw_path%\libgcc_s_seh-1.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul + xcopy /y %mingw_path%\libgfortran-5.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul + xcopy /y %mingw_path%\libquadmath-0.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul + xcopy /y %mingw_path%\libstdc++-6.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul + xcopy /y %mingw_path%\libwinpthread-1.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul + xcopy /y %external_path%\%hdf5%\bin\libhdf5.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul + xcopy /y %external_path%\%med%\bin\libmedC.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul + xcopy /y %external_path%\%med%\bin\libmedfwrap.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul + xcopy /y %external_path%\%msmpi%\bin\msmpi.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul + xcopy /y %external_path%\%gotm%\bin\libturbulence.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul + xcopy /y %external_path%\%gotm%\bin\libutil.dll %install_path%\builds\gnu.static\wrap_api\lib\ >nul +) :exit endlocal @@ -278,9 +309,9 @@ bin\mpifort -c -Jinclude ..\mpi.f90 || popd && exit /b 1 del mpi.o cd ..\.. rem Installation -xcopy /e/y bin %external_path:/=\%\%msmpi%\bin\ -xcopy /e/y license %external_path:/=\%\%msmpi%\license\ -xcopy /e/y sdk\build-x86_64 %external_path:/=\%\%msmpi%\ +xcopy /e/y bin %external_path%\%msmpi%\bin\ +xcopy /e/y license %external_path%\%msmpi%\license\ +xcopy /e/y sdk\build-x86_64 %external_path%\%msmpi%\ popd exit /b 0 @@ -299,7 +330,8 @@ rem ********* :build_scalapack call :download %scalapack% "https://github.com/Reference-ScaLAPACK/scalapack/archive/refs/tags/v2.1.0.zip" || exit /b 1 rem We need to use a foward slash for lapack and blas libraries paths since CMake CheckFortranFunctionExists is bugged when using a backward slash -set cmake_config_options=-DMPI_BASE_DIR:PATH=%external_path%/%msmpi% -DLAPACK_LIBRARIES:STRING=%external_path%/%openblas%/lib/libopenblas.a -DBLAS_LIBRARIES:STRING=%external_path%/%openblas%/lib/libopenblas.a -DBUILD_TESTING:BOOL=OFF +set ext_path=%external_path:\=/% +set cmake_config_options=-DMPI_BASE_DIR:PATH=%ext_path%/%msmpi% -DLAPACK_LIBRARIES:STRING=%ext_path%/%openblas%/lib/libopenblas.a -DBLAS_LIBRARIES:STRING=%ext_path%/%openblas%/lib/libopenblas.a -DBUILD_TESTING:BOOL=OFF call :cmake_build %scalapack% || exit /b 1 exit /b 0 @@ -308,9 +340,9 @@ rem MUMPS rem ***** :build_mumps call :download %mumps% "https://github.com/scivision/mumps/archive/refs/tags/v5.6.1.2.tar.gz" || exit /b 1 -set cmake_config_options=-DMUMPS_UPSTREAM_VERSION=5.2.1 -DBLAS_LIBRARY=%external_path%/%openblas%/lib/libopenblas.a -DLAPACK_LIBRARY=%external_path%/%openblas%/lib/libopenblas.a -DSCALAPACK_ROOT:PATH=%external_path%/%scalapack% +set cmake_config_options=-DMUMPS_UPSTREAM_VERSION=5.2.1 -DBLAS_LIBRARY=%external_path%\%openblas%\lib\libopenblas.a -DLAPACK_LIBRARY=%external_path%\%openblas%\lib\libopenblas.a -DSCALAPACK_ROOT:PATH=%external_path%\%scalapack% if %compiler% == mingw ( - set cmake_config_options=%cmake_config_options% -DMPI_ROOT:PATH=%external_path%/%msmpi% + set cmake_config_options=%cmake_config_options% -DMPI_ROOT:PATH=%external_path%\%msmpi% ) else ( if not defined MKLROOT ( rem Set Intel MKL environment @@ -331,7 +363,7 @@ rem **** :build_aed2 call :download %aed2% "http://www.opentelemac.org/index.php/component/jdownloads/finish/39-manual-installation-sources/2126-aed2m/0?Itemid=55" || exit /b 1 echo Building libaed2... -set install_dir=%external_path:/=\%\%aed2% +set install_dir=%external_path%\%aed2% rd /s/q %install_dir% 2>nul pushd %aed2% mingw32-make || goto build_aed2_error @@ -355,39 +387,82 @@ set cmake_config_options=-DBUILD_SHARED_LIBS:BOOL=ON -DGOTM_USE_NetCDF=OFF call :cmake_build %gotm% || exit /b 1 exit /b 0 +rem ****** +rem Python +rem ****** +:install_python +if exist %external_path%\%python% ( + exit /b 0 +) + +pushd %external_path% + +echo Downloading and extracting Python %python_version%... +curl -L https://www.python.org/ftp/python/%python_version%/%python%-embed-amd64.zip -o python.zip || goto install_python_error +mkdir %python% 2>nul +tar -xvf python.zip -C %python% || goto install_python_error +del python.zip +rem Remove the _pth file +del %python%\python3*._pth + +rem Download Python dev.msi package to get Python include folder, required by F2PY +curl -OJL https://www.python.org/ftp/python/%python_version%/amd64/dev.msi +msiexec /a dev.msi /qb TARGETDIR=%external_path%\%python% /quiet +del dev.msi +cd %python% +rd /s/q libs +del dev.msi + +rem Create the import library for the Python dll, required by F2PY +mkdir libs 2>nul +for /f "tokens=1,2 delims=." %%a in ("%python_version%") do set python_lib=python%%a%%b +gendef - %python_lib%.dll > tmp.def || goto install_python_error +dlltool --dllname %python_lib%.dll --def tmp.def --output-lib libs\lib%python_lib%.a || goto install_python_error +del tmp.def + +rem Download and install pip +curl -OJ https://bootstrap.pypa.io/get-pip.py || goto install_python_error +%cd%\python get-pip.py --no-warn-script-location || goto install_python_error +del get-pip.py + +popd +exit /b 0 + +:install_python_error +rd /s/q %python% +del tmp.def 2>nul +del *.zip 2>nul +del *.tgz 2>nul +popd +exit /b 1 + rem *************** rem Python packages rem *************** :install_python_packages rem Install all Python requirements for TELEMAC-MASCARET echo Installing Python requirements... -rem Create a virtual environment -set python_dir=%external_path:/=\%\python -rd /s/q %python_dir% 2>nul -py -3.10 -m venv %python_dir% --prompt telemac -rem Copy python310.dll to the virtual environment (required by F2PY) -pushd %python_dir% -py -3.10 -c "import os, sys, shutil; shutil.copy2(f'{os.path.dirname(sys.executable)}\\python310.dll', f'{os.getcwd()}\\Scripts')" -rem Mingw also requires a definition file for F2PY in a "libs" subdirectory -if %compiler% == mingw ( - mkdir libs - pushd libs - py -3.10 -c "import os, sys; os.system(f'gendef {os.path.dirname(sys.executable)}\python310.dll')" - popd -) + +set path=%external_path%\%python%\Scripts;%external_path%\%python%;%path% + +mkdir %~dp0wheels 2>nul +pushd %~dp0wheels +echo https://github.com/cgohlke/geospatial-wheels/releases/download/%geo_wheels_version%/%gdal% +curl -OL https://github.com/cgohlke/geospatial-wheels/releases/download/%geo_wheels_version%/%gdal% || goto install_python_packages_error +curl -OL https://github.com/cgohlke/geospatial-wheels/releases/download/%geo_wheels_version%/%fiona% || goto install_python_packages_error +curl -OL https://github.com/cgohlke/geospatial-wheels/releases/download/%geo_wheels_version%/%rasterio% || goto install_python_packages_error +curl -OL https://github.com/cgohlke/geospatial-wheels/releases/download/%geo_wheels_version%/%shapely% || goto install_python_packages_error popd -rem Activate the virtual environment and install all Python requirements -call %python_dir%\Scripts\activate.bat pushd %~dp0 -pip install -r python_requirements.txt || goto install_error +pip install -r %python_requirements% || goto install_python_packages_error rem Starting with Python 3.8, mpi4py requires MPI DLLs to be present in the module directory: copy them there -xcopy /y %external_path:/=\%\%msmpi%\bin\msmpi*.dll %python_dir%\Lib\site-packages\mpi4py\ >nul +xcopy /y %external_path%\%msmpi%\bin\msmpi*.dll %external_path%\%python%\Lib\site-packages\mpi4py\ >nul popd exit /b 0 -:install_error +:install_python_packages_error popd exit /b 1 @@ -495,3 +570,61 @@ exit /b 0 :cmake_build_error popd exit /b 1 + + +rem ****************************************************** +rem Write a pysource batch for a given build configuration +rem ****************************************************** +:write_pysource_bat +set file_name=pysource.%1.bat +echo @echo off> %file_name% +echo set PROMPT=(telemac %version%) %%PROMPT%%>> %file_name% +echo rem Path to TELEMAC root directory>> %file_name% +echo for %%%%a in ("%%~dp0.") do set HOMETEL=%%%%~dpa>> %file_name% +echo set HOMETEL=%%HOMETEL:~0,-1%%>> %file_name% +echo rem Path to dependencies>> %file_name% +echo set EXTERNAL=%external_path%>> %file_name% +echo rem Path to this file>> %file_name% +echo set SOURCEFILE=%%~dp0%%~nx0>> %file_name% +echo rem Configuration file>> %file_name% +echo set SYSTELCFG=%%~dp0systel.cfg>> %file_name% +echo rem Name of the configuration to use>> %file_name% +echo set USETELCFG=%1>> %file_name% +echo:>> %file_name% +echo rem Add Python to PATH and unset PYTHONHOME>> %file_name% +echo set PATH=%%EXTERNAL%%\%python%\Scripts;%%EXTERNAL%%\%python%;%%PATH%%>> %file_name% +echo set PYTHONHOME=>> %file_name% +echo:>> %file_name% +echo rem Add Mingw to PATH>> %file_name% +echo set PATH=%mingw_path%;%%PATH%%>> %file_name% +echo:>> %file_name% +echo rem Add TELEMAC binaries directory to PATH>> %file_name% +echo set PATH=%%HOMETEL%%\builds\%%USETELCFG%%\lib;%%PATH%%>> %file_name% +echo rem Add TELEMAC scripts folder to PATH>> %file_name% +echo set PATH=%%HOMETEL%%\scripts;%%PATH%%>> %file_name% +echo rem Add TELEMAC Python scripts to PYTHONPATH>> %file_name% +echo set PYTHONPATH=%%HOMETEL%%\scripts\python3;%%PYTHONPATH%%>> %file_name% +echo set PYTHONPATH=%%HOMETEL%%\builds\%%USETELCFG%%\wrap_api\lib;%%PYTHONPATH%%>> %file_name% +echo:>> %file_name% +echo rem Paths to external libraries>> %file_name% +echo rem HDF5>> %file_name% +echo set HDF5HOME=%%EXTERNAL%%\%hdf5%>> %file_name% +echo set PATH=%%HDF5HOME%%\bin;%%PATH%%>> %file_name% +echo rem MED>> %file_name% +echo set MEDHOME=%%EXTERNAL%%\%med%>> %file_name% +echo set PATH=%%MEDHOME%%\bin;%%PATH%%>> %file_name% +echo rem METIS>> %file_name% +echo set METISHOME=%%EXTERNAL%%\%metis%>> %file_name% +echo set PATH=%%METISHOME%%\bin;%%PATH%%>> %file_name% +echo rem MSPMPI>> %file_name% +echo set MPIHOME=%%EXTERNAL%%\%msmpi%>> %file_name% +echo set PATH=%%MPIHOME%%\bin;%%PATH%%>> %file_name% +echo rem OPENBLAS, SCALAPACK and MUMPS>> %file_name% +echo set OPENBLASHOME=%%EXTERNAL%%\%openblas%>> %file_name% +echo set SCALAPACKHOME=%%EXTERNAL%%\%scalapack%>> %file_name% +echo set MUMPSHOME=%%EXTERNAL%%\%mumps%>> %file_name% +echo rem AED>> %file_name% +echo set AEDHOME=%%EXTERNAL%%\%aed2%>> %file_name% +echo rem GOTM>> %file_name% +echo set GOTMHOME=%%EXTERNAL%%\%gotm%>> %file_name% +echo set PATH=%%GOTMHOME%%\bin;%%PATH%%>> %file_name% \ No newline at end of file diff --git a/config/pysource.gnu.bat b/config/pysource.gnu.bat deleted file mode 100644 index dfe46fa0e69dffe5722435a38947da6456b84759..0000000000000000000000000000000000000000 --- a/config/pysource.gnu.bat +++ /dev/null @@ -1,67 +0,0 @@ -@echo off -rem ***************************** -rem * TELEMAC-MASCARET settings * -rem ***************************** -rem Path to TELEMAC root dir -for %%a in ("%~dp0.") do set HOMETEL=%%~dpa -set HOMETEL=%HOMETEL:~0,-1% -rem Path to dependencies -set EXTERNAL=%HOMETEL%\external -rem Path to this file -set SOURCEFILE=%~dp0%~n0%~x0 -rem Configuration file -set SYSTELCFG=%~dp0systel.cfg -rem Name of the configuration to use -set USETELCFG=gnu.static - -rem Activate TELEMAC Python environment and set it as the default -rem one to launch Python scripts from the command line -call %EXTERNAL%\python\Scripts\activate.bat - -rem Add Mingw to PATH if it is found -call :find_mingw - -rem Add TELEMAC binaries directory to PATH -set PATH=%HOMETEL%\builds\%USETELCFG%\lib;%PATH% -rem Add TELEMAC Python scripts to PATH and to Python environment -set PATH=%HOMETEL%\scripts\python3;%PATH% -set PYTHONPATH=%HOMETEL%\scripts\python3;%PYTHONPATH% -set PYTHONPATH=%HOMETEL%\builds\%USETELCFG%\wrap_api\lib;%PYTHONPATH% - -rem External libraries versions -rem HDF5 -set HDF5HOME=%EXTERNAL%\hdf5-1.10.9 -set PATH=%HDF5HOME%\bin;%PATH% -rem MED -set MEDHOME=%EXTERNAL%\med-4.1.1 -set PATH=%MEDHOME%\bin;%PATH% -rem METIS -set METISHOME=%EXTERNAL%\metis-5.1.0 -set PATH=%METISHOME%\bin;%PATH% -rem MSPMPI -set MPIHOME=%EXTERNAL%\msmpi-10.1.2 -set PATH=%MPIHOME%\bin;%PATH% -rem OPENBLAS, SCALAPACK and MUMPS -set OPENBLASHOME=%EXTERNAL%\openblas-0.3.24 -set SCALAPACKHOME=%EXTERNAL%\scalapack-2.1.0 -set MUMPSHOME=%EXTERNAL%\mumps-5.2.1 -rem AED -set AEDHOME=%EXTERNAL%\libaed2-1.2.0 -rem GOTM -set GOTMHOME=%EXTERNAL%\gotm-2019-06-14-opentelemac -set PATH=%GOTMHOME%\bin;%PATH% - -exit /b 0 - -:find_mingw -rem Try to find Mingw in current user PATH -for /f "delims=" %%a in ('"where mingw32-make 2>nul"') do set MINGW_PATH=%%a -rem If not found, add usual Mingw location to PATH -if not defined MINGW_PATH set PATH=C:\mingw64\bin;%PATH% -for /f "delims=" %%a in ('"where mingw32-make 2>nul"') do set MINGW_PATH=%%a -if not defined MINGW_PATH ( - echo Warning: Mingw not found. Please ensure that Mingw bin folder is in your PATH or - echo you will not be able to compile TELEMAC-MASCARET or compile user Fortran code. -) - -exit /b 0 \ No newline at end of file diff --git a/config/pysource.gnu.debug.bat b/config/pysource.gnu.debug.bat deleted file mode 100644 index 7c39617bb8c123e42848b4f9f1caed8a2dc800a8..0000000000000000000000000000000000000000 --- a/config/pysource.gnu.debug.bat +++ /dev/null @@ -1,67 +0,0 @@ -@echo off -rem ***************************** -rem * TELEMAC-MASCARET settings * -rem ***************************** -rem Path to TELEMAC root dir -for %%a in ("%~dp0.") do set HOMETEL=%%~dpa -set HOMETEL=%HOMETEL:~0,-1% -rem Path to dependencies -set EXTERNAL=%HOMETEL%\external -rem Path to this file -set SOURCEFILE=%~dp0%~n0%~x0 -rem Configuration file -set SYSTELCFG=%~dp0systel.cfg -rem Name of the configuration to use -set USETELCFG=gnu.static.debug - -rem Activate TELEMAC Python environment and set it as the default -rem one to launch Python scripts from the command line -call %EXTERNAL%\python\Scripts\activate.bat - -rem Add Mingw to PATH if it is found -call :find_mingw - -rem Add TELEMAC binaries directory to PATH -set PATH=%HOMETEL%\builds\%USETELCFG%\lib;%PATH% -rem Add TELEMAC Python scripts to PATH and to Python environment -set PATH=%HOMETEL%\scripts\python3;%PATH% -set PYTHONPATH=%HOMETEL%\scripts\python3;%PYTHONPATH% -set PYTHONPATH=%HOMETEL%\builds\%USETELCFG%\wrap_api\lib;%PYTHONPATH% - -rem External libraries versions -rem HDF5 -set HDF5HOME=%EXTERNAL%\hdf5-1.10.9 -set PATH=%HDF5HOME%\bin;%PATH% -rem MED -set MEDHOME=%EXTERNAL%\med-4.1.1 -set PATH=%MEDHOME%\bin;%PATH% -rem METIS -set METISHOME=%EXTERNAL%\metis-5.1.0 -set PATH=%METISHOME%\bin;%PATH% -rem MSPMPI -set MPIHOME=%EXTERNAL%\msmpi-10.1.2 -set PATH=%MPIHOME%\bin;%PATH% -rem OPENBLAS, SCALAPACK and MUMPS -set OPENBLASHOME=%EXTERNAL%\openblas-0.3.24 -set SCALAPACKHOME=%EXTERNAL%\scalapack-2.1.0 -set MUMPSHOME=%EXTERNAL%\mumps-5.2.1 -rem AED -set AEDHOME=%EXTERNAL%\libaed2-1.2.0 -rem GOTM -set GOTMHOME=%EXTERNAL%\gotm-2019-06-14-opentelemac -set PATH=%GOTMHOME%\bin;%PATH% - -exit /b 0 - -:find_mingw -rem Try to find Mingw in current user PATH -for /f "delims=" %%a in ('"where mingw32-make 2>nul"') do set MINGW_PATH=%%a -rem If not found, add usual Mingw location to PATH -if not defined MINGW_PATH set PATH=C:\mingw64\bin;%PATH% -for /f "delims=" %%a in ('"where mingw32-make 2>nul"') do set MINGW_PATH=%%a -if not defined MINGW_PATH ( - echo Warning: Mingw not found. Please ensure that Mingw bin folder is in your PATH or - echo you will not be able to compile TELEMAC-MASCARET or compile user Fortran code. -) - -exit /b 0 \ No newline at end of file diff --git a/deps/msmpi-10.1.2/bin/mpiexec.exe b/deps/msmpi-10.1.3/bin/mpiexec.exe similarity index 63% rename from deps/msmpi-10.1.2/bin/mpiexec.exe rename to deps/msmpi-10.1.3/bin/mpiexec.exe index 5a7b767d4ad55357f037d42dffb8cbe045da9c1f..167c18a6b612d8597f6fc72f5d04103d9a778da6 100644 Binary files a/deps/msmpi-10.1.2/bin/mpiexec.exe and b/deps/msmpi-10.1.3/bin/mpiexec.exe differ diff --git a/deps/msmpi-10.1.2/bin/mpitrace.man b/deps/msmpi-10.1.3/bin/mpitrace.man similarity index 100% rename from deps/msmpi-10.1.2/bin/mpitrace.man rename to deps/msmpi-10.1.3/bin/mpitrace.man diff --git a/deps/msmpi-10.1.2/bin/msmpi.dll b/deps/msmpi-10.1.3/bin/msmpi.dll similarity index 56% rename from deps/msmpi-10.1.2/bin/msmpi.dll rename to deps/msmpi-10.1.3/bin/msmpi.dll index b861f6b9979225675afbca3279eb49a2ab1a0130..60e07aec5d51f914c29c8848c03730dbdaafcfc4 100644 Binary files a/deps/msmpi-10.1.2/bin/msmpi.dll and b/deps/msmpi-10.1.3/bin/msmpi.dll differ diff --git a/deps/msmpi-10.1.2/bin/msmpilaunchsvc.exe b/deps/msmpi-10.1.3/bin/msmpilaunchsvc.exe similarity index 82% rename from deps/msmpi-10.1.2/bin/msmpilaunchsvc.exe rename to deps/msmpi-10.1.3/bin/msmpilaunchsvc.exe index 30e9d8bf5314e1a4e46fb2a9c661e10a576ab3fa..f111b4aea8a32bf51d2d8b7a99187e50f8bd999b 100644 Binary files a/deps/msmpi-10.1.2/bin/msmpilaunchsvc.exe and b/deps/msmpi-10.1.3/bin/msmpilaunchsvc.exe differ diff --git a/deps/msmpi-10.1.2/bin/msmpires.dll b/deps/msmpi-10.1.3/bin/msmpires.dll similarity index 96% rename from deps/msmpi-10.1.2/bin/msmpires.dll rename to deps/msmpi-10.1.3/bin/msmpires.dll index a0ea6b4062dcfb042519719bb31cb32759436ce7..5d4e8e41be377fb9c46a4c9274459ae7a10f130f 100644 Binary files a/deps/msmpi-10.1.2/bin/msmpires.dll and b/deps/msmpi-10.1.3/bin/msmpires.dll differ diff --git a/deps/msmpi-10.1.2/bin/smpd.exe b/deps/msmpi-10.1.3/bin/smpd.exe similarity index 57% rename from deps/msmpi-10.1.2/bin/smpd.exe rename to deps/msmpi-10.1.3/bin/smpd.exe index 83acd1840dc67785411aa40c588adc914843e39f..7c411985a578e43df02cdff9e465b85ea2cf177a 100644 Binary files a/deps/msmpi-10.1.2/bin/smpd.exe and b/deps/msmpi-10.1.3/bin/smpd.exe differ diff --git a/deps/msmpi-10.1.2/license/MPI_Redistributables_TPN.txt b/deps/msmpi-10.1.3/license/MPI-Redistributables-TPN.txt similarity index 100% rename from deps/msmpi-10.1.2/license/MPI_Redistributables_TPN.txt rename to deps/msmpi-10.1.3/license/MPI-Redistributables-TPN.txt diff --git a/deps/msmpi-10.1.2/license/MicrosoftMPI_Redistributable_EULA.rtf b/deps/msmpi-10.1.3/license/MicrosoftMPI-Redistributable-EULA.rtf similarity index 100% rename from deps/msmpi-10.1.2/license/MicrosoftMPI_Redistributable_EULA.rtf rename to deps/msmpi-10.1.3/license/MicrosoftMPI-Redistributable-EULA.rtf diff --git a/deps/msmpi-10.1.2/sdk/hello_mpi.F b/deps/msmpi-10.1.3/sdk/hello_mpi.F similarity index 95% rename from deps/msmpi-10.1.2/sdk/hello_mpi.F rename to deps/msmpi-10.1.3/sdk/hello_mpi.F index d8778b986398e87c6978041490bc43f1eb5eae23..7299f2b87d991fa329c399d402f9b9f2afd6c955 100644 --- a/deps/msmpi-10.1.2/sdk/hello_mpi.F +++ b/deps/msmpi-10.1.3/sdk/hello_mpi.F @@ -1,180 +1,180 @@ - program main - -c*********************************************************************72 -c -cc MAIN is the main program for HELLO_MPI. -c -c Discussion: -c -c HELLO is a simple MPI test program. -c -c Each process prints out a "Hello, world!" message. -c -c The master process also prints out a short message. -c -c Licensing: -c -c This code is distributed under the GNU LGPL license. -c -c Modified: -c -c 30 October 2008 -c -c Author: -c -c John Burkardt -c -c Reference: -c -c William Gropp, Ewing Lusk, Anthony Skjellum, -c Using MPI: Portable Parallel Programming with the -c Message-Passing Interface, -c Second Edition, -c MIT Press, 1999, -c ISBN: 0262571323, -c LC: QA76.642.G76. -c - -c -c Define MPI symbols: -c - include 'mpif.h' -c -c implicit none -c - integer error - integer id - integer p - double precision wtime -c -c Initialize MPI. -c - call MPI_Init ( error ) -c -c Get the number of processes. -c - call MPI_Comm_size ( MPI_COMM_WORLD, p, error ) -c -c Get the individual process ID. -c - call MPI_Comm_rank ( MPI_COMM_WORLD, id, error ) -c -c Print a message. -c - if ( id .eq. 0 ) then - call timestamp ( ) - write ( *, '(a)' ) ' ' - write ( *, '(a)' ) 'HELLO_MPI - Master process:' - write ( *, '(a)' ) ' FORTRAN77/MPI version' - write ( *, '(a)' ) ' A simple MPI program.' - write ( *, '(a)' ) ' ' - write ( *, '(a,i3)' ) ' The number of processes is ', p - write ( *, '(a)' ) ' ' - end if - - if ( id .eq. 0 ) then - wtime = MPI_Wtime ( ) - end if - - write ( *, '(a,i3,a)' ) ' Process ', id, - & ' says "Hello, world!"' - - if ( id .eq. 0 ) then - wtime = MPI_Wtime ( ) - wtime - write ( *, '(a)' ) ' ' - write ( *, '(a,g14.6,a)' ) - & 'Elapsed wall clock time = ', wtime, ' seconds.' - - end if -c -c Terminate MPI. -c - call MPI_Finalize ( error ) -c -c Terminate. -c - if ( id .eq. 0 ) then - write ( *, '(a)' ) ' ' - write ( *, '(a)' ) 'HELLO_MPI:' - write ( *, '(a)' ) ' Normal end of execution.' - write ( *, '(a)' ) ' ' - call timestamp ( ) - end if - - stop - end - subroutine timestamp ( ) - -c*********************************************************************72 -c -cc TIMESTAMP prints out the current YMDHMS date as a timestamp. -c -c Licensing: -c -c This code is distributed under the GNU LGPL license. -c -c Modified: -c -c 12 January 2007 -c -c Author: -c -c John Burkardt -c -c Parameters: -c -c None -c - implicit none - - character * ( 8 ) ampm - integer d - character * ( 8 ) date - integer h - integer m - integer mm - character * ( 9 ) month(12) - integer n - integer s - character * ( 10 ) time - integer y - - save month - - data month / - & 'January ', 'February ', 'March ', 'April ', - & 'May ', 'June ', 'July ', 'August ', - & 'September', 'October ', 'November ', 'December ' / - - call date_and_time ( date, time ) - - read ( date, '(i4,i2,i2)' ) y, m, d - read ( time, '(i2,i2,i2,1x,i3)' ) h, n, s, mm - - if ( h .lt. 12 ) then - ampm = 'AM' - else if ( h .eq. 12 ) then - if ( n .eq. 0 .and. s .eq. 0 ) then - ampm = 'Noon' - else - ampm = 'PM' - end if - else - h = h - 12 - if ( h .lt. 12 ) then - ampm = 'PM' - else if ( h .eq. 12 ) then - if ( n .eq. 0 .and. s .eq. 0 ) then - ampm = 'Midnight' - else - ampm = 'AM' - end if - end if - end if - - write ( *, - & '(i2,1x,a,1x,i4,2x,i2,a1,i2.2,a1,i2.2,a1,i3.3,1x,a)' ) - & d, month(m), y, h, ':', n, ':', s, '.', mm, ampm - - return - end + program main + +c*********************************************************************72 +c +cc MAIN is the main program for HELLO_MPI. +c +c Discussion: +c +c HELLO is a simple MPI test program. +c +c Each process prints out a "Hello, world!" message. +c +c The master process also prints out a short message. +c +c Licensing: +c +c This code is distributed under the GNU LGPL license. +c +c Modified: +c +c 30 October 2008 +c +c Author: +c +c John Burkardt +c +c Reference: +c +c William Gropp, Ewing Lusk, Anthony Skjellum, +c Using MPI: Portable Parallel Programming with the +c Message-Passing Interface, +c Second Edition, +c MIT Press, 1999, +c ISBN: 0262571323, +c LC: QA76.642.G76. +c + +c +c Define MPI symbols: +c + include 'mpif.h' +c +c implicit none +c + integer error + integer id + integer p + double precision wtime +c +c Initialize MPI. +c + call MPI_Init ( error ) +c +c Get the number of processes. +c + call MPI_Comm_size ( MPI_COMM_WORLD, p, error ) +c +c Get the individual process ID. +c + call MPI_Comm_rank ( MPI_COMM_WORLD, id, error ) +c +c Print a message. +c + if ( id .eq. 0 ) then + call timestamp ( ) + write ( *, '(a)' ) ' ' + write ( *, '(a)' ) 'HELLO_MPI - Master process:' + write ( *, '(a)' ) ' FORTRAN77/MPI version' + write ( *, '(a)' ) ' A simple MPI program.' + write ( *, '(a)' ) ' ' + write ( *, '(a,i3)' ) ' The number of processes is ', p + write ( *, '(a)' ) ' ' + end if + + if ( id .eq. 0 ) then + wtime = MPI_Wtime ( ) + end if + + write ( *, '(a,i3,a)' ) ' Process ', id, + & ' says "Hello, world!"' + + if ( id .eq. 0 ) then + wtime = MPI_Wtime ( ) - wtime + write ( *, '(a)' ) ' ' + write ( *, '(a,g14.6,a)' ) + & 'Elapsed wall clock time = ', wtime, ' seconds.' + + end if +c +c Terminate MPI. +c + call MPI_Finalize ( error ) +c +c Terminate. +c + if ( id .eq. 0 ) then + write ( *, '(a)' ) ' ' + write ( *, '(a)' ) 'HELLO_MPI:' + write ( *, '(a)' ) ' Normal end of execution.' + write ( *, '(a)' ) ' ' + call timestamp ( ) + end if + + stop + end + subroutine timestamp ( ) + +c*********************************************************************72 +c +cc TIMESTAMP prints out the current YMDHMS date as a timestamp. +c +c Licensing: +c +c This code is distributed under the GNU LGPL license. +c +c Modified: +c +c 12 January 2007 +c +c Author: +c +c John Burkardt +c +c Parameters: +c +c None +c + implicit none + + character * ( 8 ) ampm + integer d + character * ( 8 ) date + integer h + integer m + integer mm + character * ( 9 ) month(12) + integer n + integer s + character * ( 10 ) time + integer y + + save month + + data month / + & 'January ', 'February ', 'March ', 'April ', + & 'May ', 'June ', 'July ', 'August ', + & 'September', 'October ', 'November ', 'December ' / + + call date_and_time ( date, time ) + + read ( date, '(i4,i2,i2)' ) y, m, d + read ( time, '(i2,i2,i2,1x,i3)' ) h, n, s, mm + + if ( h .lt. 12 ) then + ampm = 'AM' + else if ( h .eq. 12 ) then + if ( n .eq. 0 .and. s .eq. 0 ) then + ampm = 'Noon' + else + ampm = 'PM' + end if + else + h = h - 12 + if ( h .lt. 12 ) then + ampm = 'PM' + else if ( h .eq. 12 ) then + if ( n .eq. 0 .and. s .eq. 0 ) then + ampm = 'Midnight' + else + ampm = 'AM' + end if + end if + end if + + write ( *, + & '(i2,1x,a,1x,i4,2x,i2,a1,i2.2,a1,i2.2,a1,i3.3,1x,a)' ) + & d, month(m), y, h, ':', n, ':', s, '.', mm, ampm + + return + end diff --git a/deps/msmpi-10.1.2/sdk/hello_mpi.c b/deps/msmpi-10.1.3/sdk/hello_mpi.c similarity index 94% rename from deps/msmpi-10.1.2/sdk/hello_mpi.c rename to deps/msmpi-10.1.3/sdk/hello_mpi.c index 725b11dc67d725e2de9bd8acb68ff08fdfc3f4ea..5eabcfca9c00efda3caa7cbcfbc2af5fc6769cd4 100644 --- a/deps/msmpi-10.1.2/sdk/hello_mpi.c +++ b/deps/msmpi-10.1.3/sdk/hello_mpi.c @@ -1,162 +1,162 @@ -# include <stdlib.h> -# include <stdio.h> -# include <time.h> - -# include "mpi.h" - -int main ( int argc, char *argv[] ); -void timestamp ( ); - -/******************************************************************************/ - -int main ( int argc, char *argv[] ) - -/******************************************************************************/ -/* - Purpose: - - MAIN is the main program for HELLO_MPI. - - Discussion: - - This is a simple MPI test program. - - Each process prints out a "Hello, world!" message. - - The master process also prints out a short message. - - Licensing: - - This code is distributed under the GNU LGPL license. - - Modified: - - 30 October 2008 - - Author: - - John Burkardt - - Reference: - - William Gropp, Ewing Lusk, Anthony Skjellum, - Using MPI: Portable Parallel Programming with the - Message-Passing Interface, - Second Edition, - MIT Press, 1999, - ISBN: 0262571323, - LC: QA76.642.G76. -*/ -{ - int id; - int ierr; - int p; - double wtime; -/* - Initialize MPI. -*/ - ierr = MPI_Init ( &argc, &argv ); - - if ( ierr != 0 ) - { - printf ( "\n" ); - printf ( "HELLO_MPI - Fatal error!\n" ); - printf ( " MPI_Init returned nonzero IERR.\n" ); - exit ( 1 ); - } -/* - Get the number of processes. -*/ - ierr = MPI_Comm_size ( MPI_COMM_WORLD, &p ); -/* - Get the individual process ID. -*/ - ierr = MPI_Comm_rank ( MPI_COMM_WORLD, &id ); -/* - Process 0 prints an introductory message. -*/ - if ( id == 0 ) - { - wtime = MPI_Wtime ( ); - - printf ( "\n" ); - printf ( "P%d: HELLO_MPI - Master process:\n", id ); - printf ( "P%d: C/MPI version\n", id ); - printf ( "P%d: An MPI example program.\n", id ); - printf ( "P%d: The number of processes is %d.\n", id, p ); - printf ( "\n" ); - } -/* - Every process prints a hello. -*/ - printf ( "P%d: 'Hello, world!'\n", id ); - - if ( id == 0 ) - { - wtime = MPI_Wtime ( ) - wtime; - printf ( "P%d: Elapsed wall clock time = %f seconds.\n", id, wtime ); - } -/* - Terminate MPI. -*/ - ierr = MPI_Finalize ( ); -/* - Terminate -*/ - if ( id == 0 ) - { - printf ( "\n" ); - printf ( "P%d: HELLO_MPI - Master process:\n", id ); - printf ( "P%d: Normal end of execution: 'Goodbye, world!'\n", id ); - printf ( "\n" ); - timestamp ( ); - } - return 0; -} -/******************************************************************************/ - -void timestamp ( ) - -/******************************************************************************/ -/* - Purpose: - - TIMESTAMP prints the current YMDHMS date as a time stamp. - - Example: - - 31 May 2001 09:45:54 AM - - Licensing: - - This code is distributed under the GNU LGPL license. - - Modified: - - 24 September 2003 - - Author: - - John Burkardt - - Parameters: - - None -*/ -{ -# define TIME_SIZE 40 - - static char time_buffer[TIME_SIZE]; - const struct tm *tm; - time_t now; - - now = time ( NULL ); - tm = localtime ( &now ); - - strftime ( time_buffer, TIME_SIZE, "%d %B %Y %I:%M:%S %p", tm ); - - printf ( "%s\n", time_buffer ); - - return; -# undef TIME_SIZE -} +# include <stdlib.h> +# include <stdio.h> +# include <time.h> + +# include "mpi.h" + +int main ( int argc, char *argv[] ); +void timestamp ( ); + +/******************************************************************************/ + +int main ( int argc, char *argv[] ) + +/******************************************************************************/ +/* + Purpose: + + MAIN is the main program for HELLO_MPI. + + Discussion: + + This is a simple MPI test program. + + Each process prints out a "Hello, world!" message. + + The master process also prints out a short message. + + Licensing: + + This code is distributed under the GNU LGPL license. + + Modified: + + 30 October 2008 + + Author: + + John Burkardt + + Reference: + + William Gropp, Ewing Lusk, Anthony Skjellum, + Using MPI: Portable Parallel Programming with the + Message-Passing Interface, + Second Edition, + MIT Press, 1999, + ISBN: 0262571323, + LC: QA76.642.G76. +*/ +{ + int id; + int ierr; + int p; + double wtime; +/* + Initialize MPI. +*/ + ierr = MPI_Init ( &argc, &argv ); + + if ( ierr != 0 ) + { + printf ( "\n" ); + printf ( "HELLO_MPI - Fatal error!\n" ); + printf ( " MPI_Init returned nonzero IERR.\n" ); + exit ( 1 ); + } +/* + Get the number of processes. +*/ + ierr = MPI_Comm_size ( MPI_COMM_WORLD, &p ); +/* + Get the individual process ID. +*/ + ierr = MPI_Comm_rank ( MPI_COMM_WORLD, &id ); +/* + Process 0 prints an introductory message. +*/ + if ( id == 0 ) + { + wtime = MPI_Wtime ( ); + + printf ( "\n" ); + printf ( "P%d: HELLO_MPI - Master process:\n", id ); + printf ( "P%d: C/MPI version\n", id ); + printf ( "P%d: An MPI example program.\n", id ); + printf ( "P%d: The number of processes is %d.\n", id, p ); + printf ( "\n" ); + } +/* + Every process prints a hello. +*/ + printf ( "P%d: 'Hello, world!'\n", id ); + + if ( id == 0 ) + { + wtime = MPI_Wtime ( ) - wtime; + printf ( "P%d: Elapsed wall clock time = %f seconds.\n", id, wtime ); + } +/* + Terminate MPI. +*/ + ierr = MPI_Finalize ( ); +/* + Terminate +*/ + if ( id == 0 ) + { + printf ( "\n" ); + printf ( "P%d: HELLO_MPI - Master process:\n", id ); + printf ( "P%d: Normal end of execution: 'Goodbye, world!'\n", id ); + printf ( "\n" ); + timestamp ( ); + } + return 0; +} +/******************************************************************************/ + +void timestamp ( ) + +/******************************************************************************/ +/* + Purpose: + + TIMESTAMP prints the current YMDHMS date as a time stamp. + + Example: + + 31 May 2001 09:45:54 AM + + Licensing: + + This code is distributed under the GNU LGPL license. + + Modified: + + 24 September 2003 + + Author: + + John Burkardt + + Parameters: + + None +*/ +{ +# define TIME_SIZE 40 + + static char time_buffer[TIME_SIZE]; + const struct tm *tm; + time_t now; + + now = time ( NULL ); + tm = localtime ( &now ); + + strftime ( time_buffer, TIME_SIZE, "%d %B %Y %I:%M:%S %p", tm ); + + printf ( "%s\n", time_buffer ); + + return; +# undef TIME_SIZE +} diff --git a/deps/msmpi-10.1.2/sdk/hello_mpi.cpp b/deps/msmpi-10.1.3/sdk/hello_mpi.cpp similarity index 95% rename from deps/msmpi-10.1.2/sdk/hello_mpi.cpp rename to deps/msmpi-10.1.3/sdk/hello_mpi.cpp index 28b661e2b5622546b26253ec64ff4a42cdb622ea..0527855626721bec4e3a3965a0f2e26dac23d9dd 100644 --- a/deps/msmpi-10.1.2/sdk/hello_mpi.cpp +++ b/deps/msmpi-10.1.3/sdk/hello_mpi.cpp @@ -1,170 +1,170 @@ -# include <cstdlib> -# include <ctime> -# include <iomanip> -# include <iostream> -# include <mpi.h> - -using namespace std; - -int main ( int argc, char *argv[] ); -void timestamp ( ); - -//****************************************************************************80 - -int main ( int argc, char *argv[] ) - -//****************************************************************************80 -// -// Purpose: -// -// MAIN is the main program for HELLO_MPI. -// -// Discussion: -// -// This is a simple MPI test program. -// Each process prints out a "Hello, world!" message. -// The master process also prints out a short message. -// -// Modified to use the C MPI bindings, 14 June 2016. -// -// Licensing: -// -// This code is distributed under the GNU LGPL license. -// -// Modified: -// -// 14 June 2016 -// -// Author: -// -// John Burkardt -// -// Reference: -// -// William Gropp, Ewing Lusk, Anthony Skjellum, -// Using MPI: Portable Parallel Programming with the -// Message-Passing Interface, -// Second Edition, -// MIT Press, 1999, -// ISBN: 0262571323, -// LC: QA76.642.G76. -// -{ - int id; - int ierr; - int p; - double wtime; -// -// Initialize MPI. -// - ierr = MPI_Init ( &argc, &argv ); - - if ( ierr != 0 ) - { - cout << "\n"; - cout << "HELLO_MPI - Fatal error!\n"; - cout << " MPI_Init returned nonzero ierr.\n"; - exit ( 1 ); - } -// -// Get the number of processes. -// - ierr = MPI_Comm_size ( MPI_COMM_WORLD, &p ); -// -// Get the individual process ID. -// - ierr = MPI_Comm_rank ( MPI_COMM_WORLD, &id ); -// -// Process 0 prints an introductory message. -// - if ( id == 0 ) - { - timestamp ( ); - cout << "\n"; - cout << "P" << id << ": HELLO_MPI - Master process:\n"; - cout << "P" << id << ": C++/MPI version\n"; - cout << "P" << id << ": An MPI example program.\n"; - cout << "\n"; - cout << "P" << id << ": The number of processes is " << p << "\n"; - cout << "\n"; - } -// -// Every process prints a hello. -// - if ( id == 0 ) - { - wtime = MPI_Wtime ( ); - } - cout << "P" << id << ": 'Hello, world!'\n"; -// -// Process 0 says goodbye. -// - if ( id == 0 ) - { - wtime = MPI_Wtime ( ) - wtime; - cout << "P" << id << ": Elapsed wall clock time = " << wtime << " seconds.\n"; - } -// -// Terminate MPI. -// - MPI_Finalize ( ); -// -// Terminate. -// - if ( id == 0 ) - { - cout << "\n"; - cout << "P" << id << ": HELLO_MPI:\n"; - cout << "P" << id << ": Normal end of execution.\n"; - cout << "\n"; - timestamp ( ); - } - return 0; -} -//****************************************************************************80 - -void timestamp ( ) - -//****************************************************************************80 -// -// Purpose: -// -// TIMESTAMP prints the current YMDHMS date as a time stamp. -// -// Example: -// -// 31 May 2001 09:45:54 AM -// -// Licensing: -// -// This code is distributed under the GNU LGPL license. -// -// Modified: -// -// 08 July 2009 -// -// Author: -// -// John Burkardt -// -// Parameters: -// -// None -// -{ -# define TIME_SIZE 40 - - static char time_buffer[TIME_SIZE]; - const struct std::tm *tm_ptr; - std::time_t now; - - now = std::time ( NULL ); - tm_ptr = std::localtime ( &now ); - - std::strftime ( time_buffer, TIME_SIZE, "%d %B %Y %I:%M:%S %p", tm_ptr ); - - std::cout << time_buffer << "\n"; - - return; -# undef TIME_SIZE -} +# include <cstdlib> +# include <ctime> +# include <iomanip> +# include <iostream> +# include <mpi.h> + +using namespace std; + +int main ( int argc, char *argv[] ); +void timestamp ( ); + +//****************************************************************************80 + +int main ( int argc, char *argv[] ) + +//****************************************************************************80 +// +// Purpose: +// +// MAIN is the main program for HELLO_MPI. +// +// Discussion: +// +// This is a simple MPI test program. +// Each process prints out a "Hello, world!" message. +// The master process also prints out a short message. +// +// Modified to use the C MPI bindings, 14 June 2016. +// +// Licensing: +// +// This code is distributed under the GNU LGPL license. +// +// Modified: +// +// 14 June 2016 +// +// Author: +// +// John Burkardt +// +// Reference: +// +// William Gropp, Ewing Lusk, Anthony Skjellum, +// Using MPI: Portable Parallel Programming with the +// Message-Passing Interface, +// Second Edition, +// MIT Press, 1999, +// ISBN: 0262571323, +// LC: QA76.642.G76. +// +{ + int id; + int ierr; + int p; + double wtime; +// +// Initialize MPI. +// + ierr = MPI_Init ( &argc, &argv ); + + if ( ierr != 0 ) + { + cout << "\n"; + cout << "HELLO_MPI - Fatal error!\n"; + cout << " MPI_Init returned nonzero ierr.\n"; + exit ( 1 ); + } +// +// Get the number of processes. +// + ierr = MPI_Comm_size ( MPI_COMM_WORLD, &p ); +// +// Get the individual process ID. +// + ierr = MPI_Comm_rank ( MPI_COMM_WORLD, &id ); +// +// Process 0 prints an introductory message. +// + if ( id == 0 ) + { + timestamp ( ); + cout << "\n"; + cout << "P" << id << ": HELLO_MPI - Master process:\n"; + cout << "P" << id << ": C++/MPI version\n"; + cout << "P" << id << ": An MPI example program.\n"; + cout << "\n"; + cout << "P" << id << ": The number of processes is " << p << "\n"; + cout << "\n"; + } +// +// Every process prints a hello. +// + if ( id == 0 ) + { + wtime = MPI_Wtime ( ); + } + cout << "P" << id << ": 'Hello, world!'\n"; +// +// Process 0 says goodbye. +// + if ( id == 0 ) + { + wtime = MPI_Wtime ( ) - wtime; + cout << "P" << id << ": Elapsed wall clock time = " << wtime << " seconds.\n"; + } +// +// Terminate MPI. +// + MPI_Finalize ( ); +// +// Terminate. +// + if ( id == 0 ) + { + cout << "\n"; + cout << "P" << id << ": HELLO_MPI:\n"; + cout << "P" << id << ": Normal end of execution.\n"; + cout << "\n"; + timestamp ( ); + } + return 0; +} +//****************************************************************************80 + +void timestamp ( ) + +//****************************************************************************80 +// +// Purpose: +// +// TIMESTAMP prints the current YMDHMS date as a time stamp. +// +// Example: +// +// 31 May 2001 09:45:54 AM +// +// Licensing: +// +// This code is distributed under the GNU LGPL license. +// +// Modified: +// +// 08 July 2009 +// +// Author: +// +// John Burkardt +// +// Parameters: +// +// None +// +{ +# define TIME_SIZE 40 + + static char time_buffer[TIME_SIZE]; + const struct std::tm *tm_ptr; + std::time_t now; + + now = std::time ( NULL ); + tm_ptr = std::localtime ( &now ); + + std::strftime ( time_buffer, TIME_SIZE, "%d %B %Y %I:%M:%S %p", tm_ptr ); + + std::cout << time_buffer << "\n"; + + return; +# undef TIME_SIZE +} diff --git a/deps/msmpi-10.1.2/sdk/hello_mpi.f90 b/deps/msmpi-10.1.3/sdk/hello_mpi.f90 similarity index 95% rename from deps/msmpi-10.1.2/sdk/hello_mpi.f90 rename to deps/msmpi-10.1.3/sdk/hello_mpi.f90 index e18a3188b9f8bbc17f37aad8fd958cde8ec427fc..0fa50ddd20554257f20fdcb5edf17abb4a685dfa 100644 --- a/deps/msmpi-10.1.2/sdk/hello_mpi.f90 +++ b/deps/msmpi-10.1.3/sdk/hello_mpi.f90 @@ -1,181 +1,181 @@ -program main - -!*****************************************************************************80 -! -!! MAIN is the main program for HELLO_MPI. -! -! Discussion: -! -! HELLO is a simple MPI test program. -! -! Each process prints out a "Hello, world!" message. -! -! The master process also prints out a short message. -! -! Licensing: -! -! This code is distributed under the GNU LGPL license. -! -! Modified: -! -! 30 October 2008 -! -! Author: -! -! John Burkardt -! -! Reference: -! -! William Gropp, Ewing Lusk, Anthony Skjellum, -! Using MPI: Portable Parallel Programming with the -! Message-Passing Interface, -! Second Edition, -! MIT Press, 1999, -! ISBN: 0262571323, -! LC: QA76.642.G76. -! - use mpi - - integer ( kind = 4 ) error - integer ( kind = 4 ) id - integer ( kind = 4 ) p - real ( kind = 8 ) wtime -! -! Initialize MPI. -! - call MPI_Init ( error ) -! -! Get the number of processes. -! - call MPI_Comm_size ( MPI_COMM_WORLD, p, error ) -! -! Get the individual process ID. -! - call MPI_Comm_rank ( MPI_COMM_WORLD, id, error ) -! -! Print a message. -! - if ( id == 0 ) then - - wtime = MPI_Wtime ( ) - - call timestamp ( ) - write ( *, '(a)' ) '' - write ( *, '(a,i1,2x,a)' ) 'P', id, 'HELLO_MPI - Master process:' - write ( *, '(a,i1,2x,a)' ) 'P', id, ' FORTRAN90/MPI version' - write ( *, '(a,i1,2x,a)' ) 'P', id, ' An MPI test program.' - write ( *, '(a,i1,2x,a,i8)' ) 'P', id, ' The number of MPI processes is ', p - - end if -! -! Every MPI process will print this message. -! - write ( *, '(a,i1,2x,a)' ) 'P', id, '"Hello, world!"' - - if ( id == 0 ) then - - write ( *, '(a)' ) '' - write ( *, '(a,i1,2x,a)' ) 'P', id, 'HELLO_MPI - Master process:' - write ( *, '(a,i1,2x,a)' ) 'P', id, ' Normal end of execution: "Goodbye, world!".' - - wtime = MPI_Wtime ( ) - wtime - write ( *, '(a)' ) '' - write ( *, '(a,i1,2x,a,g14.6,a)' ) & - 'P', id, ' Elapsed wall clock time = ', wtime, ' seconds.' - - end if -! -! Shut down MPI. -! - call MPI_Finalize ( error ) -! -! Terminate. -! - if ( id == 0 ) then - write ( *, '(a)' ) '' - write ( *, '(a,i1,2x,a)' ) 'P', id, 'HELLO_MPI - Master process:' - write ( *, '(a,i1,2x,a)' ) 'P', id, ' Normal end of execution.' - write ( *, '(a)' ) '' - call timestamp ( ) - end if - - stop -end -subroutine timestamp ( ) - -!*****************************************************************************80 -! -!! TIMESTAMP prints the current YMDHMS date as a time stamp. -! -! Example: -! -! 31 May 2001 9:45:54.872 AM -! -! Licensing: -! -! This code is distributed under the GNU LGPL license. -! -! Modified: -! -! 06 August 2005 -! -! Author: -! -! John Burkardt -! -! Parameters: -! -! None -! - implicit none - - character ( len = 8 ) ampm - integer ( kind = 4 ) d - integer ( kind = 4 ) h - integer ( kind = 4 ) m - integer ( kind = 4 ) mm - character ( len = 9 ), parameter, dimension(12) :: month = (/ & - 'January ', 'February ', 'March ', 'April ', & - 'May ', 'June ', 'July ', 'August ', & - 'September', 'October ', 'November ', 'December ' /) - integer ( kind = 4 ) n - integer ( kind = 4 ) s - integer ( kind = 4 ) values(8) - integer ( kind = 4 ) y - - call date_and_time ( values = values ) - - y = values(1) - m = values(2) - d = values(3) - h = values(5) - n = values(6) - s = values(7) - mm = values(8) - - if ( h < 12 ) then - ampm = 'AM' - else if ( h == 12 ) then - if ( n == 0 .and. s == 0 ) then - ampm = 'Noon' - else - ampm = 'PM' - end if - else - h = h - 12 - if ( h < 12 ) then - ampm = 'PM' - else if ( h == 12 ) then - if ( n == 0 .and. s == 0 ) then - ampm = 'Midnight' - else - ampm = 'AM' - end if - end if - end if - - write ( *, '(i2,1x,a,1x,i4,2x,i2,a1,i2.2,a1,i2.2,a1,i3.3,1x,a)' ) & - d, trim ( month(m) ), y, h, ':', n, ':', s, '.', mm, trim ( ampm ) - - return -end +program main + +!*****************************************************************************80 +! +!! MAIN is the main program for HELLO_MPI. +! +! Discussion: +! +! HELLO is a simple MPI test program. +! +! Each process prints out a "Hello, world!" message. +! +! The master process also prints out a short message. +! +! Licensing: +! +! This code is distributed under the GNU LGPL license. +! +! Modified: +! +! 30 October 2008 +! +! Author: +! +! John Burkardt +! +! Reference: +! +! William Gropp, Ewing Lusk, Anthony Skjellum, +! Using MPI: Portable Parallel Programming with the +! Message-Passing Interface, +! Second Edition, +! MIT Press, 1999, +! ISBN: 0262571323, +! LC: QA76.642.G76. +! + use mpi + + integer ( kind = 4 ) error + integer ( kind = 4 ) id + integer ( kind = 4 ) p + real ( kind = 8 ) wtime +! +! Initialize MPI. +! + call MPI_Init ( error ) +! +! Get the number of processes. +! + call MPI_Comm_size ( MPI_COMM_WORLD, p, error ) +! +! Get the individual process ID. +! + call MPI_Comm_rank ( MPI_COMM_WORLD, id, error ) +! +! Print a message. +! + if ( id == 0 ) then + + wtime = MPI_Wtime ( ) + + call timestamp ( ) + write ( *, '(a)' ) '' + write ( *, '(a,i1,2x,a)' ) 'P', id, 'HELLO_MPI - Master process:' + write ( *, '(a,i1,2x,a)' ) 'P', id, ' FORTRAN90/MPI version' + write ( *, '(a,i1,2x,a)' ) 'P', id, ' An MPI test program.' + write ( *, '(a,i1,2x,a,i8)' ) 'P', id, ' The number of MPI processes is ', p + + end if +! +! Every MPI process will print this message. +! + write ( *, '(a,i1,2x,a)' ) 'P', id, '"Hello, world!"' + + if ( id == 0 ) then + + write ( *, '(a)' ) '' + write ( *, '(a,i1,2x,a)' ) 'P', id, 'HELLO_MPI - Master process:' + write ( *, '(a,i1,2x,a)' ) 'P', id, ' Normal end of execution: "Goodbye, world!".' + + wtime = MPI_Wtime ( ) - wtime + write ( *, '(a)' ) '' + write ( *, '(a,i1,2x,a,g14.6,a)' ) & + 'P', id, ' Elapsed wall clock time = ', wtime, ' seconds.' + + end if +! +! Shut down MPI. +! + call MPI_Finalize ( error ) +! +! Terminate. +! + if ( id == 0 ) then + write ( *, '(a)' ) '' + write ( *, '(a,i1,2x,a)' ) 'P', id, 'HELLO_MPI - Master process:' + write ( *, '(a,i1,2x,a)' ) 'P', id, ' Normal end of execution.' + write ( *, '(a)' ) '' + call timestamp ( ) + end if + + stop +end +subroutine timestamp ( ) + +!*****************************************************************************80 +! +!! TIMESTAMP prints the current YMDHMS date as a time stamp. +! +! Example: +! +! 31 May 2001 9:45:54.872 AM +! +! Licensing: +! +! This code is distributed under the GNU LGPL license. +! +! Modified: +! +! 06 August 2005 +! +! Author: +! +! John Burkardt +! +! Parameters: +! +! None +! + implicit none + + character ( len = 8 ) ampm + integer ( kind = 4 ) d + integer ( kind = 4 ) h + integer ( kind = 4 ) m + integer ( kind = 4 ) mm + character ( len = 9 ), parameter, dimension(12) :: month = (/ & + 'January ', 'February ', 'March ', 'April ', & + 'May ', 'June ', 'July ', 'August ', & + 'September', 'October ', 'November ', 'December ' /) + integer ( kind = 4 ) n + integer ( kind = 4 ) s + integer ( kind = 4 ) values(8) + integer ( kind = 4 ) y + + call date_and_time ( values = values ) + + y = values(1) + m = values(2) + d = values(3) + h = values(5) + n = values(6) + s = values(7) + mm = values(8) + + if ( h < 12 ) then + ampm = 'AM' + else if ( h == 12 ) then + if ( n == 0 .and. s == 0 ) then + ampm = 'Noon' + else + ampm = 'PM' + end if + else + h = h - 12 + if ( h < 12 ) then + ampm = 'PM' + else if ( h == 12 ) then + if ( n == 0 .and. s == 0 ) then + ampm = 'Midnight' + else + ampm = 'AM' + end if + end if + end if + + write ( *, '(i2,1x,a,1x,i4,2x,i2,a1,i2.2,a1,i2.2,a1,i3.3,1x,a)' ) & + d, trim ( month(m) ), y, h, ':', n, ':', s, '.', mm, trim ( ampm ) + + return +end diff --git a/deps/msmpi-10.1.2/sdk/mpi.c b/deps/msmpi-10.1.3/sdk/mpi.c similarity index 96% rename from deps/msmpi-10.1.2/sdk/mpi.c rename to deps/msmpi-10.1.3/sdk/mpi.c index 31ff846fb46100c942f60657728f91e73fa122ac..8a9efc0efd7c2afbe1c7f9bbb1378bfcf7fdae2f 100644 --- a/deps/msmpi-10.1.2/sdk/mpi.c +++ b/deps/msmpi-10.1.3/sdk/mpi.c @@ -1,66 +1,66 @@ -#include <stdio.h> -#include <process.h> -#include <windows.h> - -#if defined(CC) - #define C "gcc.exe" - #define E "MPICC" -#elif defined(CXX) - #define C "g++.exe" - #define E "MPICXX" -#elif defined(FC) - #define C "gfortran.exe" - #define E "MPIFORT" -#else - #error -#endif - -#define SZ 32767 - -int main(int argc, char** argv) { - // Get executable path - char path[MAX_PATH]; - GetModuleFileNameA(NULL, path, MAX_PATH); - int s = strlen(path); - // Strip exe filename and move up one folder to go out of the "bin" directory - while (path[s] != '\\' && path[s] != '/') --s; --s; - while (path[s] != '\\' && path[s] != '/') --s; - path[s] = '\0'; - // Force forward slash as directory separator - s = strlen(path); - while (s >= 0) if (path[s--] == '\\') path[s + 1] = '/'; - // Set library and include directories - char* lpath = malloc(SZ * sizeof(char)); - snprintf(lpath, SZ, "-L%s/lib", path); - char* ipath = malloc(SZ * sizeof(char)); - snprintf(ipath, SZ, "-I%s/include", path); - // Get compiler name and check for the presence of the "show" argument - char* comp = malloc(SZ * sizeof(char)); - int show = (argc == 2 && strcmp(argv[1], "-show") == 0); - // Fill compiler arguments - char** args = malloc(SZ * sizeof(char*)); - int i = 0; - args[i++] = GetEnvironmentVariable(E, comp, SZ) > 0 ? comp : C; - args[i++] = ipath; -#ifdef FC - // Workaround for GFortran - args[i++] = "-fno-range-check"; -#if __GNUC__ >= 10 - // More workarounds for GFortran 10 increased strickness - args[i++] = "-fallow-invalid-boz"; - args[i++] = "-fallow-argument-mismatch"; -#endif -#endif - if(!show) for(int x = 1; x < argc; ++x) args[i++] = argv[x]; - args[i++] = lpath; - args[i++] = "-lmsmpi"; - args[i] = NULL; - if(show) { - for(int x = 0; args[x]; ++x) printf("%s ", args[x]); - printf("\n"); - fflush(stdout); - return 0; - } else { - return _spawnvp(_P_WAIT, args[0], (const char* const*)args); - } -}; +#include <stdio.h> +#include <process.h> +#include <windows.h> + +#if defined(CC) + #define C "gcc.exe" + #define E "MPICC" +#elif defined(CXX) + #define C "g++.exe" + #define E "MPICXX" +#elif defined(FC) + #define C "gfortran.exe" + #define E "MPIFORT" +#else + #error +#endif + +#define SZ 32767 + +int main(int argc, char** argv) { + // Get executable path + char path[MAX_PATH]; + GetModuleFileNameA(NULL, path, MAX_PATH); + int s = strlen(path); + // Strip exe filename and move up one folder to go out of the "bin" directory + while (path[s] != '\\' && path[s] != '/') --s; --s; + while (path[s] != '\\' && path[s] != '/') --s; + path[s] = '\0'; + // Force forward slash as directory separator + s = strlen(path); + while (s >= 0) if (path[s--] == '\\') path[s + 1] = '/'; + // Set library and include directories + char* lpath = malloc(SZ * sizeof(char)); + snprintf(lpath, SZ, "-L%s/lib", path); + char* ipath = malloc(SZ * sizeof(char)); + snprintf(ipath, SZ, "-I%s/include", path); + // Get compiler name and check for the presence of the "show" argument + char* comp = malloc(SZ * sizeof(char)); + int show = (argc == 2 && strcmp(argv[1], "-show") == 0); + // Fill compiler arguments + char** args = malloc(SZ * sizeof(char*)); + int i = 0; + args[i++] = GetEnvironmentVariable(E, comp, SZ) > 0 ? comp : C; + args[i++] = ipath; +#ifdef FC + // Workaround for GFortran + args[i++] = "-fno-range-check"; +#if __GNUC__ >= 10 + // More workarounds for GFortran 10 increased strickness + args[i++] = "-fallow-invalid-boz"; + args[i++] = "-fallow-argument-mismatch"; +#endif +#endif + if(!show) for(int x = 1; x < argc; ++x) args[i++] = argv[x]; + args[i++] = lpath; + args[i++] = "-lmsmpi"; + args[i] = NULL; + if(show) { + for(int x = 0; args[x]; ++x) printf("%s ", args[x]); + printf("\n"); + fflush(stdout); + return 0; + } else { + return _spawnvp(_P_WAIT, args[0], (const char* const*)args); + } +}; diff --git a/deps/msmpi-10.1.2/sdk/mpi.f90 b/deps/msmpi-10.1.3/sdk/mpi.f90 similarity index 96% rename from deps/msmpi-10.1.2/sdk/mpi.f90 rename to deps/msmpi-10.1.3/sdk/mpi.f90 index 22693065c58827d719b2060f84b914d83e2d1919..0b5a11ef58065e2686078d8e1c6ebcc046cb87b2 100644 --- a/deps/msmpi-10.1.2/sdk/mpi.f90 +++ b/deps/msmpi-10.1.3/sdk/mpi.f90 @@ -1,1717 +1,1717 @@ -! -*- Mode: F90; -*- -! Copyright(c) Microsoft Corporation.All rights reserved. -! Licensed under the MIT License. -! -! (C) 2004 by Argonne National Laboratory. -! (C) 2015 by Microsoft Corporation -! -! MPICH COPYRIGHT -! -! The following is a notice of limited availability of the code, and disclaimer -! which must be included in the prologue of the code and in all source listings -! of the code. -! -! Copyright Notice -! + 2002 University of Chicago -! -! Permission is hereby granted to use, reproduce, prepare derivative works, and -! to redistribute to others. This software was authored by: -! -! Mathematics and Computer Science Division -! Argonne National Laboratory, Argonne IL 60439 -! -! (and) -! -! Department of Computer Science -! University of Illinois at Urbana-Champaign -! -! -! GOVERNMENT LICENSE -! -! Portions of this material resulted from work developed under a U.S. -! Government Contract and are subject to the following license: the Government -! is granted for itself and others acting on its behalf a paid-up, nonexclusive, -! irrevocable worldwide license in this computer software to reproduce, prepare -! derivative works, and perform publicly and display publicly. -! -! DISCLAIMER -! -! This computer code material was prepared, in part, as an account of work -! sponsored by an agency of the United States Government. Neither the United -! States, nor the University of Chicago, nor any of their employees, makes any -! warranty express or implied, or assumes any legal liability or responsibility -! for the accuracy, completeness, or usefulness of any information, apparatus, -! product, or process disclosed, or represents that its use would not infringe -! privately owned rights. -! -! - MODULE MPI_CONSTANTS - IMPLICIT NONE - - INTEGER MPI_SOURCE, MPI_TAG, MPI_ERROR - PARAMETER (MPI_SOURCE=3,MPI_TAG=4,MPI_ERROR=5) - INTEGER MPI_STATUS_SIZE - PARAMETER (MPI_STATUS_SIZE=5) - INTEGER MPI_STATUS_IGNORE(MPI_STATUS_SIZE) - INTEGER MPI_STATUSES_IGNORE(MPI_STATUS_SIZE,1) - INTEGER MPI_ERRCODES_IGNORE(1) - CHARACTER*1 MPI_ARGVS_NULL(1,1) - CHARACTER*1 MPI_ARGV_NULL(1) - INTEGER MPI_SUCCESS - PARAMETER (MPI_SUCCESS=0) - INTEGER MPI_ERR_OTHER - PARAMETER (MPI_ERR_OTHER=15) - INTEGER MPI_ERR_WIN - PARAMETER (MPI_ERR_WIN=45) - INTEGER MPI_ERR_FILE - PARAMETER (MPI_ERR_FILE=27) - INTEGER MPI_ERR_COUNT - PARAMETER (MPI_ERR_COUNT=2) - INTEGER MPI_ERR_SPAWN - PARAMETER (MPI_ERR_SPAWN=42) - INTEGER MPI_ERR_BASE - PARAMETER (MPI_ERR_BASE=46) - INTEGER MPI_ERR_RMA_CONFLICT - PARAMETER (MPI_ERR_RMA_CONFLICT=49) - INTEGER MPI_ERR_IN_STATUS - PARAMETER (MPI_ERR_IN_STATUS=17) - INTEGER MPI_ERR_INFO_KEY - PARAMETER (MPI_ERR_INFO_KEY=29) - INTEGER MPI_ERR_LOCKTYPE - PARAMETER (MPI_ERR_LOCKTYPE=47) - INTEGER MPI_ERR_OP - PARAMETER (MPI_ERR_OP=9) - INTEGER MPI_ERR_ARG - PARAMETER (MPI_ERR_ARG=12) - INTEGER MPI_ERR_READ_ONLY - PARAMETER (MPI_ERR_READ_ONLY=40) - INTEGER MPI_ERR_SIZE - PARAMETER (MPI_ERR_SIZE=51) - INTEGER MPI_ERR_BUFFER - PARAMETER (MPI_ERR_BUFFER=1) - INTEGER MPI_ERR_DUP_DATAREP - PARAMETER (MPI_ERR_DUP_DATAREP=24) - INTEGER MPI_ERR_UNSUPPORTED_DATAREP - PARAMETER (MPI_ERR_UNSUPPORTED_DATAREP=43) - INTEGER MPI_ERR_LASTCODE - PARAMETER (MPI_ERR_LASTCODE=1073741823) - INTEGER MPI_ERR_TRUNCATE - PARAMETER (MPI_ERR_TRUNCATE=14) - INTEGER MPI_ERR_DISP - PARAMETER (MPI_ERR_DISP=52) - INTEGER MPI_ERR_PORT - PARAMETER (MPI_ERR_PORT=38) - INTEGER MPI_ERR_INFO_NOKEY - PARAMETER (MPI_ERR_INFO_NOKEY=31) - INTEGER MPI_ERR_ASSERT - PARAMETER (MPI_ERR_ASSERT=53) - INTEGER MPI_ERR_FILE_EXISTS - PARAMETER (MPI_ERR_FILE_EXISTS=25) - INTEGER MPI_ERR_PENDING - PARAMETER (MPI_ERR_PENDING=18) - INTEGER MPI_ERR_COMM - PARAMETER (MPI_ERR_COMM=5) - INTEGER MPI_ERR_KEYVAL - PARAMETER (MPI_ERR_KEYVAL=48) - INTEGER MPI_ERR_NAME - PARAMETER (MPI_ERR_NAME=33) - INTEGER MPI_ERR_REQUEST - PARAMETER (MPI_ERR_REQUEST=19) - INTEGER MPI_ERR_GROUP - PARAMETER (MPI_ERR_GROUP=8) - INTEGER MPI_ERR_TOPOLOGY - PARAMETER (MPI_ERR_TOPOLOGY=10) - INTEGER MPI_ERR_TYPE - PARAMETER (MPI_ERR_TYPE=3) - INTEGER MPI_ERR_TAG - PARAMETER (MPI_ERR_TAG=4) - INTEGER MPI_ERR_INFO_VALUE - PARAMETER (MPI_ERR_INFO_VALUE=30) - INTEGER MPI_ERR_NOT_SAME - PARAMETER (MPI_ERR_NOT_SAME=35) - INTEGER MPI_ERR_RMA_SYNC - PARAMETER (MPI_ERR_RMA_SYNC=50) - INTEGER MPI_ERR_INFO - PARAMETER (MPI_ERR_INFO=28) - INTEGER MPI_ERR_NO_MEM - PARAMETER (MPI_ERR_NO_MEM=34) - INTEGER MPI_ERR_BAD_FILE - PARAMETER (MPI_ERR_BAD_FILE=22) - INTEGER MPI_ERR_FILE_IN_USE - PARAMETER (MPI_ERR_FILE_IN_USE=26) - INTEGER MPI_ERR_UNKNOWN - PARAMETER (MPI_ERR_UNKNOWN=13) - INTEGER MPI_ERR_UNSUPPORTED_OPERATION - PARAMETER (MPI_ERR_UNSUPPORTED_OPERATION=44) - INTEGER MPI_ERR_QUOTA - PARAMETER (MPI_ERR_QUOTA=39) - INTEGER MPI_ERR_AMODE - PARAMETER (MPI_ERR_AMODE=21) - INTEGER MPI_ERR_ROOT - PARAMETER (MPI_ERR_ROOT=7) - INTEGER MPI_ERR_RANK - PARAMETER (MPI_ERR_RANK=6) - INTEGER MPI_ERR_DIMS - PARAMETER (MPI_ERR_DIMS=11) - INTEGER MPI_ERR_NO_SUCH_FILE - PARAMETER (MPI_ERR_NO_SUCH_FILE=37) - INTEGER MPI_ERR_SERVICE - PARAMETER (MPI_ERR_SERVICE=41) - INTEGER MPI_ERR_INTERN - PARAMETER (MPI_ERR_INTERN=16) - INTEGER MPI_ERR_IO - PARAMETER (MPI_ERR_IO=32) - INTEGER MPI_ERR_ACCESS - PARAMETER (MPI_ERR_ACCESS=20) - INTEGER MPI_ERR_NO_SPACE - PARAMETER (MPI_ERR_NO_SPACE=36) - INTEGER MPI_ERR_CONVERSION - PARAMETER (MPI_ERR_CONVERSION=23) - INTEGER MPI_ERRORS_ARE_FATAL - PARAMETER (MPI_ERRORS_ARE_FATAL=1409286144) - INTEGER MPI_ERRORS_RETURN - PARAMETER (MPI_ERRORS_RETURN=1409286145) - INTEGER MPI_IDENT - PARAMETER (MPI_IDENT=0) - INTEGER MPI_CONGRUENT - PARAMETER (MPI_CONGRUENT=1) - INTEGER MPI_SIMILAR - PARAMETER (MPI_SIMILAR=2) - INTEGER MPI_UNEQUAL - PARAMETER (MPI_UNEQUAL=3) - INTEGER MPI_MAX - PARAMETER (MPI_MAX=1476395009) - INTEGER MPI_MIN - PARAMETER (MPI_MIN=1476395010) - INTEGER MPI_SUM - PARAMETER (MPI_SUM=1476395011) - INTEGER MPI_PROD - PARAMETER (MPI_PROD=1476395012) - INTEGER MPI_LAND - PARAMETER (MPI_LAND=1476395013) - INTEGER MPI_BAND - PARAMETER (MPI_BAND=1476395014) - INTEGER MPI_LOR - PARAMETER (MPI_LOR=1476395015) - INTEGER MPI_BOR - PARAMETER (MPI_BOR=1476395016) - INTEGER MPI_LXOR - PARAMETER (MPI_LXOR=1476395017) - INTEGER MPI_BXOR - PARAMETER (MPI_BXOR=1476395018) - INTEGER MPI_MINLOC - PARAMETER (MPI_MINLOC=1476395019) - INTEGER MPI_MAXLOC - PARAMETER (MPI_MAXLOC=1476395020) - INTEGER MPI_REPLACE - PARAMETER (MPI_REPLACE=1476395021) - INTEGER MPI_NO_OP - PARAMETER (MPI_NO_OP=1476395022) - INTEGER MPI_COMM_WORLD - PARAMETER (MPI_COMM_WORLD=1140850688) - INTEGER MPI_COMM_SELF - PARAMETER (MPI_COMM_SELF=1140850689) - INTEGER MPI_COMM_TYPE_SHARED - PARAMETER (MPI_COMM_TYPE_SHARED=1) - INTEGER MPI_GROUP_EMPTY - PARAMETER (MPI_GROUP_EMPTY=1207959552) - INTEGER MPI_COMM_NULL - PARAMETER (MPI_COMM_NULL=67108864) - INTEGER MPI_WIN_NULL - PARAMETER (MPI_WIN_NULL=536870912) - INTEGER MPI_FILE_NULL - PARAMETER (MPI_FILE_NULL=0) - INTEGER MPI_GROUP_NULL - PARAMETER (MPI_GROUP_NULL=134217728) - INTEGER MPI_OP_NULL - PARAMETER (MPI_OP_NULL=402653184) - INTEGER MPI_DATATYPE_NULL - PARAMETER (MPI_DATATYPE_NULL=z'0c000000') - INTEGER MPI_REQUEST_NULL - PARAMETER (MPI_REQUEST_NULL=738197504) - INTEGER MPI_ERRHANDLER_NULL - PARAMETER (MPI_ERRHANDLER_NULL=335544320) - INTEGER MPI_INFO_NULL - PARAMETER (MPI_INFO_NULL=469762048) - INTEGER MPI_MESSAGE_NULL - PARAMETER (MPI_MESSAGE_NULL=805306368) - INTEGER MPI_MESSAGE_NO_PROC - PARAMETER (MPI_MESSAGE_NO_PROC=1879048192) - INTEGER MPI_TAG_UB - PARAMETER (MPI_TAG_UB=1681915906) - INTEGER MPI_HOST - PARAMETER (MPI_HOST=1681915908) - INTEGER MPI_IO - PARAMETER (MPI_IO=1681915910) - INTEGER MPI_WTIME_IS_GLOBAL - PARAMETER (MPI_WTIME_IS_GLOBAL=1681915912) - INTEGER MPI_UNIVERSE_SIZE - PARAMETER (MPI_UNIVERSE_SIZE=1681915914) - INTEGER MPI_LASTUSEDCODE - PARAMETER (MPI_LASTUSEDCODE=1681915916) - INTEGER MPI_APPNUM - PARAMETER (MPI_APPNUM=1681915918) - INTEGER MPI_WIN_BASE - PARAMETER (MPI_WIN_BASE=1711276034) - INTEGER MPI_WIN_SIZE - PARAMETER (MPI_WIN_SIZE=1711276036) - INTEGER MPI_WIN_DISP_UNIT - PARAMETER (MPI_WIN_DISP_UNIT=1711276038) - INTEGER MPI_MAX_ERROR_STRING - PARAMETER (MPI_MAX_ERROR_STRING=511) - INTEGER MPI_MAX_PORT_NAME - PARAMETER (MPI_MAX_PORT_NAME=255) - INTEGER MPI_MAX_OBJECT_NAME - PARAMETER (MPI_MAX_OBJECT_NAME=127) - INTEGER MPI_MAX_INFO_KEY - PARAMETER (MPI_MAX_INFO_KEY=254) - INTEGER MPI_MAX_INFO_VAL - PARAMETER (MPI_MAX_INFO_VAL=1023) - INTEGER MPI_MAX_PROCESSOR_NAME - PARAMETER (MPI_MAX_PROCESSOR_NAME=128-1) - INTEGER MPI_MAX_DATAREP_STRING - PARAMETER (MPI_MAX_DATAREP_STRING=127) - INTEGER MPI_MAX_LIBRARY_VERSION_STRING - PARAMETER (MPI_MAX_LIBRARY_VERSION_STRING=64-1) - INTEGER MPI_UNDEFINED - PARAMETER (MPI_UNDEFINED=(-32766)) - INTEGER MPI_KEYVAL_INVALID - PARAMETER (MPI_KEYVAL_INVALID=603979776) - INTEGER MPI_BSEND_OVERHEAD - PARAMETER (MPI_BSEND_OVERHEAD=(95)) - INTEGER MPI_PROC_NULL - PARAMETER (MPI_PROC_NULL=-1) - INTEGER MPI_ANY_SOURCE - PARAMETER (MPI_ANY_SOURCE=-2) - INTEGER MPI_ANY_TAG - PARAMETER (MPI_ANY_TAG=-1) - INTEGER MPI_ROOT - PARAMETER (MPI_ROOT=-3) - INTEGER MPI_GRAPH - PARAMETER (MPI_GRAPH=1) - INTEGER MPI_CART - PARAMETER (MPI_CART=2) - INTEGER MPI_DIST_GRAPH - PARAMETER (MPI_DIST_GRAPH=3) - INTEGER MPI_VERSION - PARAMETER (MPI_VERSION=2) - INTEGER MPI_SUBVERSION - PARAMETER (MPI_SUBVERSION=0) - INTEGER MPI_LOCK_EXCLUSIVE - PARAMETER (MPI_LOCK_EXCLUSIVE=234) - INTEGER MPI_LOCK_SHARED - PARAMETER (MPI_LOCK_SHARED=235) - INTEGER MPI_CHAR - PARAMETER (MPI_CHAR=z'4c000101') - INTEGER MPI_UNSIGNED_CHAR - PARAMETER (MPI_UNSIGNED_CHAR=z'4c000102') - INTEGER MPI_SHORT - PARAMETER (MPI_SHORT=z'4c000203') - INTEGER MPI_UNSIGNED_SHORT - PARAMETER (MPI_UNSIGNED_SHORT=z'4c000204') - INTEGER MPI_INT - PARAMETER (MPI_INT=z'4c000405') - INTEGER MPI_UNSIGNED - PARAMETER (MPI_UNSIGNED=z'4c000406') - INTEGER MPI_LONG - PARAMETER (MPI_LONG=z'4c000407') - INTEGER MPI_UNSIGNED_LONG - PARAMETER (MPI_UNSIGNED_LONG=z'4c000408') - INTEGER MPI_LONG_LONG - PARAMETER (MPI_LONG_LONG=z'4c000809') - INTEGER MPI_LONG_LONG_INT - PARAMETER (MPI_LONG_LONG_INT=z'4c000809') - INTEGER MPI_FLOAT - PARAMETER (MPI_FLOAT=z'4c00040a') - INTEGER MPI_DOUBLE - PARAMETER (MPI_DOUBLE=z'4c00080b') - INTEGER MPI_LONG_DOUBLE - PARAMETER (MPI_LONG_DOUBLE=z'4c00080c') - INTEGER MPI_BYTE - PARAMETER (MPI_BYTE=z'4c00010d') - INTEGER MPI_WCHAR - PARAMETER (MPI_WCHAR=z'4c00020e') - INTEGER MPI_PACKED - PARAMETER (MPI_PACKED=z'4c00010f') - INTEGER MPI_LB - PARAMETER (MPI_LB=z'4c000010') - INTEGER MPI_UB - PARAMETER (MPI_UB=z'4c000011') - INTEGER MPI_2INT - PARAMETER (MPI_2INT=z'4c000816') - INTEGER MPI_SIGNED_CHAR - PARAMETER (MPI_SIGNED_CHAR=z'4c000118') - INTEGER MPI_UNSIGNED_LONG_LONG - PARAMETER (MPI_UNSIGNED_LONG_LONG=z'4c000819') - INTEGER MPI_CHARACTER - PARAMETER (MPI_CHARACTER=z'4c00011a') - INTEGER MPI_INTEGER - PARAMETER (MPI_INTEGER=z'4c00041b') - INTEGER MPI_REAL - PARAMETER (MPI_REAL=z'4c00041c') - INTEGER MPI_LOGICAL - PARAMETER (MPI_LOGICAL=z'4c00041d') - INTEGER MPI_COMPLEX - PARAMETER (MPI_COMPLEX=z'4c00081e') - INTEGER MPI_DOUBLE_PRECISION - PARAMETER (MPI_DOUBLE_PRECISION=z'4c00081f') - INTEGER MPI_2INTEGER - PARAMETER (MPI_2INTEGER=z'4c000820') - INTEGER MPI_2REAL - PARAMETER (MPI_2REAL=z'4c000821') - INTEGER MPI_DOUBLE_COMPLEX - PARAMETER (MPI_DOUBLE_COMPLEX=z'4c001022') - INTEGER MPI_2DOUBLE_PRECISION - PARAMETER (MPI_2DOUBLE_PRECISION=z'4c001023') - INTEGER MPI_2COMPLEX - PARAMETER (MPI_2COMPLEX=z'4c001024') - INTEGER MPI_2DOUBLE_COMPLEX - PARAMETER (MPI_2DOUBLE_COMPLEX=z'4c002025') - INTEGER MPI_REAL2 - PARAMETER (MPI_REAL2=z'0c000000') - INTEGER MPI_REAL4 - PARAMETER (MPI_REAL4=z'4c000427') - INTEGER MPI_COMPLEX8 - PARAMETER (MPI_COMPLEX8=z'4c000828') - INTEGER MPI_REAL8 - PARAMETER (MPI_REAL8=z'4c000829') - INTEGER MPI_COMPLEX16 - PARAMETER (MPI_COMPLEX16=z'4c00102a') - INTEGER MPI_REAL16 - PARAMETER (MPI_REAL16=z'0c000000') - INTEGER MPI_COMPLEX32 - PARAMETER (MPI_COMPLEX32=z'0c000000') - INTEGER MPI_INTEGER1 - PARAMETER (MPI_INTEGER1=z'4c00012d') - INTEGER MPI_COMPLEX4 - PARAMETER (MPI_COMPLEX4=z'0c000000') - INTEGER MPI_INTEGER2 - PARAMETER (MPI_INTEGER2=z'4c00022f') - INTEGER MPI_INTEGER4 - PARAMETER (MPI_INTEGER4=z'4c000430') - INTEGER MPI_INTEGER8 - PARAMETER (MPI_INTEGER8=z'4c000831') - INTEGER MPI_INTEGER16 - PARAMETER (MPI_INTEGER16=z'0c000000') - - INCLUDE 'mpifptr.h' - - INTEGER MPI_OFFSET - PARAMETER (MPI_OFFSET=z'4c00083c') - INTEGER MPI_COUNT - PARAMETER (MPI_COUNT=z'4c00083d') - INTEGER MPI_FLOAT_INT - PARAMETER (MPI_FLOAT_INT=z'8c000000') - INTEGER MPI_DOUBLE_INT - PARAMETER (MPI_DOUBLE_INT=z'8c000001') - INTEGER MPI_LONG_INT - PARAMETER (MPI_LONG_INT=z'8c000002') - INTEGER MPI_SHORT_INT - PARAMETER (MPI_SHORT_INT=z'8c000003') - INTEGER MPI_LONG_DOUBLE_INT - PARAMETER (MPI_LONG_DOUBLE_INT=z'8c000004') - INTEGER MPI_INTEGER_KIND - PARAMETER (MPI_INTEGER_KIND=4) - INTEGER MPI_OFFSET_KIND - PARAMETER (MPI_OFFSET_KIND=8) - INTEGER MPI_COUNT_KIND - PARAMETER (MPI_COUNT_KIND=8) - INTEGER MPI_COMBINER_NAMED - PARAMETER (MPI_COMBINER_NAMED=1) - INTEGER MPI_COMBINER_DUP - PARAMETER (MPI_COMBINER_DUP=2) - INTEGER MPI_COMBINER_CONTIGUOUS - PARAMETER (MPI_COMBINER_CONTIGUOUS=3) - INTEGER MPI_COMBINER_VECTOR - PARAMETER (MPI_COMBINER_VECTOR=4) - INTEGER MPI_COMBINER_HVECTOR_INTEGER - PARAMETER (MPI_COMBINER_HVECTOR_INTEGER=5) - INTEGER MPI_COMBINER_HVECTOR - PARAMETER (MPI_COMBINER_HVECTOR=6) - INTEGER MPI_COMBINER_INDEXED - PARAMETER (MPI_COMBINER_INDEXED=7) - INTEGER MPI_COMBINER_HINDEXED_INTEGER - PARAMETER (MPI_COMBINER_HINDEXED_INTEGER=8) - INTEGER MPI_COMBINER_HINDEXED - PARAMETER (MPI_COMBINER_HINDEXED=9) - INTEGER MPI_COMBINER_INDEXED_BLOCK - PARAMETER (MPI_COMBINER_INDEXED_BLOCK=10) - INTEGER MPI_COMBINER_STRUCT_INTEGER - PARAMETER (MPI_COMBINER_STRUCT_INTEGER=11) - INTEGER MPI_COMBINER_STRUCT - PARAMETER (MPI_COMBINER_STRUCT=12) - INTEGER MPI_COMBINER_SUBARRAY - PARAMETER (MPI_COMBINER_SUBARRAY=13) - INTEGER MPI_COMBINER_DARRAY - PARAMETER (MPI_COMBINER_DARRAY=14) - INTEGER MPI_COMBINER_F90_REAL - PARAMETER (MPI_COMBINER_F90_REAL=15) - INTEGER MPI_COMBINER_F90_COMPLEX - PARAMETER (MPI_COMBINER_F90_COMPLEX=16) - INTEGER MPI_COMBINER_F90_INTEGER - PARAMETER (MPI_COMBINER_F90_INTEGER=17) - INTEGER MPI_COMBINER_RESIZED - PARAMETER (MPI_COMBINER_RESIZED=18) - INTEGER MPI_COMBINER_HINDEXED_BLOCK - PARAMETER (MPI_COMBINER_HINDEXED_BLOCK=19) - INTEGER MPI_MODE_NOCHECK - PARAMETER (MPI_MODE_NOCHECK=1024) - INTEGER MPI_MODE_NOSTORE - PARAMETER (MPI_MODE_NOSTORE=2048) - INTEGER MPI_MODE_NOPUT - PARAMETER (MPI_MODE_NOPUT=4096) - INTEGER MPI_MODE_NOPRECEDE - PARAMETER (MPI_MODE_NOPRECEDE=8192) - INTEGER MPI_MODE_NOSUCCEED - PARAMETER (MPI_MODE_NOSUCCEED=16384) - INTEGER MPI_THREAD_SINGLE - PARAMETER (MPI_THREAD_SINGLE=0) - INTEGER MPI_THREAD_FUNNELED - PARAMETER (MPI_THREAD_FUNNELED=1) - INTEGER MPI_THREAD_SERIALIZED - PARAMETER (MPI_THREAD_SERIALIZED=2) - INTEGER MPI_THREAD_MULTIPLE - PARAMETER (MPI_THREAD_MULTIPLE=3) - INTEGER MPI_MODE_RDONLY - PARAMETER (MPI_MODE_RDONLY=2) - INTEGER MPI_MODE_RDWR - PARAMETER (MPI_MODE_RDWR=8) - INTEGER MPI_MODE_WRONLY - PARAMETER (MPI_MODE_WRONLY=4) - INTEGER MPI_MODE_DELETE_ON_CLOSE - PARAMETER (MPI_MODE_DELETE_ON_CLOSE=16) - INTEGER MPI_MODE_UNIQUE_OPEN - PARAMETER (MPI_MODE_UNIQUE_OPEN=32) - INTEGER MPI_MODE_CREATE - PARAMETER (MPI_MODE_CREATE=1) - INTEGER MPI_MODE_EXCL - PARAMETER (MPI_MODE_EXCL=64) - INTEGER MPI_MODE_APPEND - PARAMETER (MPI_MODE_APPEND=128) - INTEGER MPI_MODE_SEQUENTIAL - PARAMETER (MPI_MODE_SEQUENTIAL=256) - INTEGER MPI_SEEK_SET - PARAMETER (MPI_SEEK_SET=600) - INTEGER MPI_SEEK_CUR - PARAMETER (MPI_SEEK_CUR=602) - INTEGER MPI_SEEK_END - PARAMETER (MPI_SEEK_END=604) - INTEGER MPI_ORDER_C - PARAMETER (MPI_ORDER_C=56) - INTEGER MPI_ORDER_FORTRAN - PARAMETER (MPI_ORDER_FORTRAN=57) - INTEGER MPI_DISTRIBUTE_BLOCK - PARAMETER (MPI_DISTRIBUTE_BLOCK=121) - INTEGER MPI_DISTRIBUTE_CYCLIC - PARAMETER (MPI_DISTRIBUTE_CYCLIC=122) - INTEGER MPI_DISTRIBUTE_NONE - PARAMETER (MPI_DISTRIBUTE_NONE=123) - INTEGER MPI_DISTRIBUTE_DFLT_DARG - PARAMETER (MPI_DISTRIBUTE_DFLT_DARG=-49767) - INTEGER (KIND=8) MPI_DISPLACEMENT_CURRENT - PARAMETER (MPI_DISPLACEMENT_CURRENT=-54278278) - INTEGER MPI_BOTTOM, MPI_IN_PLACE - INTEGER MPI_UNWEIGHTED, MPI_WEIGHTS_EMPTY - - COMMON /MPIPRIV1/ MPI_BOTTOM, MPI_IN_PLACE, MPI_STATUS_IGNORE - - COMMON /MPIPRIV2/ MPI_STATUSES_IGNORE, MPI_ERRCODES_IGNORE -!DEC$ ATTRIBUTES DLLIMPORT :: /MPIPRIV1/, /MPIPRIV2/ - - COMMON /MPIFCMB5/ MPI_UNWEIGHTED - COMMON /MPIFCMB9/ MPI_WEIGHTS_EMPTY -!DEC$ ATTRIBUTES DLLIMPORT :: /MPIFCMB5/, /MPIFCMB9/ - - COMMON /MPIPRIVC/ MPI_ARGVS_NULL, MPI_ARGV_NULL -!DEC$ ATTRIBUTES DLLIMPORT :: /MPIPRIVC/ - - END MODULE MPI_CONSTANTS - - MODULE MPI_BASE - IMPLICIT NONE - INTERFACE - SUBROUTINE MPI_TYPE_CREATE_DARRAY(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,ierror) - INTEGER v0, v1, v2, v3(*), v4(*), v5(*), v6(*), v7, v8, v9 - INTEGER ierror - END SUBROUTINE MPI_TYPE_CREATE_DARRAY - - SUBROUTINE MPI_COMM_FREE_KEYVAL(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_COMM_FREE_KEYVAL - - SUBROUTINE MPI_TYPE_EXTENT(v0,v1,ierror) - USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND - INTEGER v0 - INTEGER(KIND=MPI_ADDRESS_KIND) v1 - INTEGER ierror - END SUBROUTINE MPI_TYPE_EXTENT - - SUBROUTINE MPI_TYPE_GET_NAME(v0,v1,v2,ierror) - INTEGER v0 - CHARACTER (LEN=*) v1 - INTEGER v2 - INTEGER ierror - END SUBROUTINE MPI_TYPE_GET_NAME - - SUBROUTINE MPI_GROUP_INTERSECTION(v0,v1,v2,ierror) - INTEGER v0, v1, v2 - INTEGER ierror - END SUBROUTINE MPI_GROUP_INTERSECTION - - SUBROUTINE MPI_WIN_LOCK(v0,v1,v2,v3,ierror) - INTEGER v0, v1, v2, v3 - INTEGER ierror - END SUBROUTINE MPI_WIN_LOCK - - SUBROUTINE MPI_CARTDIM_GET(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_CARTDIM_GET - - SUBROUTINE MPI_WIN_GET_ERRHANDLER(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_WIN_GET_ERRHANDLER - - SUBROUTINE MPI_COMM_SPLIT(v0,v1,v2,v3,ierror) - INTEGER v0, v1, v2, v3 - INTEGER ierror - END SUBROUTINE MPI_COMM_SPLIT - - SUBROUTINE MPI_COMM_SPLIT_TYPE(v0,v1,v2,v3,v4,ierror) - INTEGER v0, v1, v2, v3, v4 - INTEGER ierror - END SUBROUTINE MPI_COMM_SPLIT_TYPE - - SUBROUTINE MPI_CANCEL(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_CANCEL - - SUBROUTINE MPI_WIN_POST(v0,v1,v2,ierror) - INTEGER v0, v1, v2 - INTEGER ierror - END SUBROUTINE MPI_WIN_POST - - SUBROUTINE MPI_WIN_COMPLETE(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_WIN_COMPLETE - - SUBROUTINE MPI_TEST_CANCELLED(v0,v1,ierror) - USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE - INTEGER v0(MPI_STATUS_SIZE) - LOGICAL v1 - INTEGER ierror - END SUBROUTINE MPI_TEST_CANCELLED - - SUBROUTINE MPI_GROUP_SIZE(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_GROUP_SIZE - - SUBROUTINE MPI_ADD_ERROR_STRING(v0,v1,ierror) - INTEGER v0 - CHARACTER (LEN=*) v1 - INTEGER ierror - END SUBROUTINE MPI_ADD_ERROR_STRING - - SUBROUTINE MPI_PACK_SIZE(v0,v1,v2,v3,ierror) - INTEGER v0, v1, v2, v3 - INTEGER ierror - END SUBROUTINE MPI_PACK_SIZE - - SUBROUTINE MPI_GET_ELEMENTS(v0,v1,v2,ierror) - USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE - INTEGER v0(MPI_STATUS_SIZE), v1, v2 - INTEGER ierror - END SUBROUTINE MPI_GET_ELEMENTS - - SUBROUTINE MPI_GET_ELEMENTS_X(v0,v1,v2,ierror) - USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE,MPI_COUNT_KIND - INTEGER v0(MPI_STATUS_SIZE), v1 - INTEGER(KIND=MPI_COUNT_KIND) v2 - INTEGER ierror - END SUBROUTINE MPI_GET_ELEMENTS_X - - SUBROUTINE MPI_ERRHANDLER_GET(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_ERRHANDLER_GET - - SUBROUTINE MPI_FILE_GET_ERRHANDLER(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_FILE_GET_ERRHANDLER - - SUBROUTINE MPI_TYPE_LB(v0,v1,ierror) - USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND - INTEGER v0 - INTEGER(KIND=MPI_ADDRESS_KIND) v1 - INTEGER ierror - END SUBROUTINE MPI_TYPE_LB - - SUBROUTINE MPI_REQUEST_FREE(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_REQUEST_FREE - - SUBROUTINE MPI_GROUP_RANGE_INCL(v0,v1,v2,v3,ierror) - INTEGER v0, v1, v2(3,*), v3 - INTEGER ierror - END SUBROUTINE MPI_GROUP_RANGE_INCL - - SUBROUTINE MPI_TYPE_GET_TRUE_EXTENT(v0,v1,v2,ierror) - USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND - INTEGER v0 - INTEGER(KIND=MPI_ADDRESS_KIND) v1, v2 - INTEGER ierror - END SUBROUTINE MPI_TYPE_GET_TRUE_EXTENT - - SUBROUTINE MPI_TYPE_GET_TRUE_EXTENT_X(v0,v1,v2,ierror) - USE MPI_CONSTANTS,ONLY:MPI_COUNT_KIND - INTEGER v0 - INTEGER(KIND=MPI_COUNT_KIND) v1, v2 - INTEGER ierror - END SUBROUTINE MPI_TYPE_GET_TRUE_EXTENT_X - - SUBROUTINE MPI_BARRIER(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_BARRIER - - SUBROUTINE MPI_IS_THREAD_MAIN(v0,ierror) - LOGICAL v0 - INTEGER ierror - END SUBROUTINE MPI_IS_THREAD_MAIN - - SUBROUTINE MPI_WIN_FREE_KEYVAL(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_WIN_FREE_KEYVAL - - SUBROUTINE MPI_TYPE_COMMIT(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_TYPE_COMMIT - - SUBROUTINE MPI_GROUP_RANGE_EXCL(v0,v1,v2,v3,ierror) - INTEGER v0, v1, v2(3,*), v3 - INTEGER ierror - END SUBROUTINE MPI_GROUP_RANGE_EXCL - - SUBROUTINE MPI_REQUEST_GET_STATUS(v0,v1,v2,ierror) - USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE - INTEGER v0 - LOGICAL v1 - INTEGER v2(MPI_STATUS_SIZE) - INTEGER ierror - END SUBROUTINE MPI_REQUEST_GET_STATUS - - SUBROUTINE MPI_QUERY_THREAD(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_QUERY_THREAD - - SUBROUTINE MPI_ERRHANDLER_CREATE(v0,v1,ierror) - INTERFACE - SUBROUTINE v0(vv0,vv1) - INTEGER vv0,vv1 - END SUBROUTINE - END INTERFACE - INTEGER v1 - INTEGER ierror - END SUBROUTINE MPI_ERRHANDLER_CREATE - - SUBROUTINE MPI_COMM_SPAWN_MULTIPLE(v0,v1,v2,v3,v4,v5,v6,v7,v8,ierror) - INTEGER v0 - CHARACTER (LEN=*) v1(*), v2(v0,*) - INTEGER v3(*), v4(*), v5, v6, v7, v8(*) - INTEGER ierror - END SUBROUTINE MPI_COMM_SPAWN_MULTIPLE - - SUBROUTINE MPI_COMM_REMOTE_GROUP(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_COMM_REMOTE_GROUP - - SUBROUTINE MPI_TYPE_GET_EXTENT(v0,v1,v2,ierror) - USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND - INTEGER v0 - INTEGER(KIND=MPI_ADDRESS_KIND) v1, v2 - INTEGER ierror - END SUBROUTINE MPI_TYPE_GET_EXTENT - - SUBROUTINE MPI_TYPE_GET_EXTENT_X(v0,v1,v2,ierror) - USE MPI_CONSTANTS,ONLY:MPI_COUNT_KIND - INTEGER v0 - INTEGER(KIND=MPI_COUNT_KIND) v1, v2 - INTEGER ierror - END SUBROUTINE MPI_TYPE_GET_EXTENT_X - - SUBROUTINE MPI_COMM_COMPARE(v0,v1,v2,ierror) - INTEGER v0, v1, v2 - INTEGER ierror - END SUBROUTINE MPI_COMM_COMPARE - - SUBROUTINE MPI_INFO_GET_VALUELEN(v0,v1,v2,v3,ierror) - INTEGER v0 - CHARACTER (LEN=*) v1 - INTEGER v2 - LOGICAL v3 - INTEGER ierror - END SUBROUTINE MPI_INFO_GET_VALUELEN - - SUBROUTINE MPI_INFO_GET(v0,v1,v2,v3,v4,ierror) - INTEGER v0 - CHARACTER (LEN=*) v1 - INTEGER v2 - CHARACTER (LEN=*) v3 - LOGICAL v4 - INTEGER ierror - END SUBROUTINE MPI_INFO_GET - - SUBROUTINE MPI_OP_COMMUTATIVE(v0,v1,ierror) - INTEGER v0 - LOGICAL v1 - INTEGER ierror - END SUBROUTINE MPI_OP_COMMUTATIVE - - SUBROUTINE MPI_OP_CREATE(v0,v1,v2,ierror) - EXTERNAL v0 - LOGICAL v1 - INTEGER v2 - INTEGER ierror - END SUBROUTINE MPI_OP_CREATE - - SUBROUTINE MPI_TYPE_CREATE_STRUCT(v0,v1,v2,v3,v4,ierror) - USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND - INTEGER v0, v1(*) - INTEGER(KIND=MPI_ADDRESS_KIND) v2(*) - INTEGER v3(*), v4 - INTEGER ierror - END SUBROUTINE MPI_TYPE_CREATE_STRUCT - - SUBROUTINE MPI_TYPE_VECTOR(v0,v1,v2,v3,v4,ierror) - INTEGER v0, v1, v2, v3, v4 - INTEGER ierror - END SUBROUTINE MPI_TYPE_VECTOR - - SUBROUTINE MPI_WIN_GET_GROUP(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_WIN_GET_GROUP - - SUBROUTINE MPI_GROUP_COMPARE(v0,v1,v2,ierror) - INTEGER v0, v1, v2 - INTEGER ierror - END SUBROUTINE MPI_GROUP_COMPARE - - SUBROUTINE MPI_CART_SHIFT(v0,v1,v2,v3,v4,ierror) - INTEGER v0, v1, v2, v3, v4 - INTEGER ierror - END SUBROUTINE MPI_CART_SHIFT - - SUBROUTINE MPI_WIN_SET_ERRHANDLER(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_WIN_SET_ERRHANDLER - - SUBROUTINE MPI_COMM_SPAWN(v0,v1,v2,v3,v4,v5,v6,v7,ierror) - CHARACTER (LEN=*) v0, v1(*) - INTEGER v2, v3, v4, v5, v6, v7(*) - INTEGER ierror - END SUBROUTINE MPI_COMM_SPAWN - - SUBROUTINE MPI_COMM_GROUP(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_COMM_GROUP - - SUBROUTINE MPI_WIN_CALL_ERRHANDLER(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_WIN_CALL_ERRHANDLER - - SUBROUTINE MPI_LOOKUP_NAME(v0,v1,v2,ierror) - CHARACTER (LEN=*) v0 - INTEGER v1 - CHARACTER (LEN=*) v2 - INTEGER ierror - END SUBROUTINE MPI_LOOKUP_NAME - - SUBROUTINE MPI_INFO_FREE(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_INFO_FREE - - SUBROUTINE MPI_COMM_SET_ERRHANDLER(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_COMM_SET_ERRHANDLER - - SUBROUTINE MPI_GRAPH_GET(v0,v1,v2,v3,v4,ierror) - INTEGER v0, v1, v2, v3(*), v4(*) - INTEGER ierror - END SUBROUTINE MPI_GRAPH_GET - - SUBROUTINE MPI_GROUP_FREE(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_GROUP_FREE - - SUBROUTINE MPI_STATUS_SET_ELEMENTS(v0,v1,v2,ierror) - USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE - INTEGER v0(MPI_STATUS_SIZE), v1, v2 - INTEGER ierror - END SUBROUTINE MPI_STATUS_SET_ELEMENTS - - SUBROUTINE MPI_STATUS_SET_ELEMENTS_X(v0,v1,v2,ierror) - USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE,MPI_COUNT_KIND - INTEGER v0(MPI_STATUS_SIZE), v1 - INTEGER(KIND=MPI_COUNT_KIND) v2 - INTEGER ierror - END SUBROUTINE MPI_STATUS_SET_ELEMENTS_X - - SUBROUTINE MPI_WIN_TEST(v0,v1,ierror) - INTEGER v0 - LOGICAL v1 - INTEGER ierror - END SUBROUTINE MPI_WIN_TEST - - SUBROUTINE MPI_WIN_FREE(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_WIN_FREE - - SUBROUTINE MPI_GRAPH_MAP(v0,v1,v2,v3,v4,ierror) - INTEGER v0, v1, v2(*), v3(*), v4 - INTEGER ierror - END SUBROUTINE MPI_GRAPH_MAP - - SUBROUTINE MPI_DIST_GRAPH_NEIGHBORS_COUNT(v0,v1,v2,v3,ierror) - INTEGER v0, v1, v2 - LOGICAL v3 - INTEGER ierror - END SUBROUTINE MPI_DIST_GRAPH_NEIGHBORS_COUNT - - SUBROUTINE MPI_PACK_EXTERNAL_SIZE(v0,v1,v2,v3,ierror) - USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND - CHARACTER (LEN=*) v0 - INTEGER v1, v2 - INTEGER(KIND=MPI_ADDRESS_KIND) v3 - INTEGER ierror - END SUBROUTINE MPI_PACK_EXTERNAL_SIZE - - SUBROUTINE MPI_PUBLISH_NAME(v0,v1,v2,ierror) - CHARACTER (LEN=*) v0 - INTEGER v1 - CHARACTER (LEN=*) v2 - INTEGER ierror - END SUBROUTINE MPI_PUBLISH_NAME - - SUBROUTINE MPI_TYPE_CREATE_F90_REAL(v0,v1,v2,ierror) - INTEGER v0, v1, v2 - INTEGER ierror - END SUBROUTINE MPI_TYPE_CREATE_F90_REAL - - SUBROUTINE MPI_OPEN_PORT(v0,v1,ierror) - INTEGER v0 - CHARACTER (LEN=*) v1 - INTEGER ierror - END SUBROUTINE MPI_OPEN_PORT - - SUBROUTINE MPI_GROUP_UNION(v0,v1,v2,ierror) - INTEGER v0, v1, v2 - INTEGER ierror - END SUBROUTINE MPI_GROUP_UNION - - SUBROUTINE MPI_COMM_ACCEPT(v0,v1,v2,v3,v4,ierror) - CHARACTER (LEN=*) v0 - INTEGER v1, v2, v3, v4 - INTEGER ierror - END SUBROUTINE MPI_COMM_ACCEPT - - SUBROUTINE MPI_FILE_CREATE_ERRHANDLER(v0,v1,ierror) - INTERFACE - SUBROUTINE v0(vv0,vv1) - INTEGER vv0,vv1 - END SUBROUTINE - END INTERFACE - INTEGER v1 - INTEGER ierror - END SUBROUTINE MPI_FILE_CREATE_ERRHANDLER - - SUBROUTINE MPI_WIN_GET_NAME(v0,v1,v2,ierror) - INTEGER v0 - CHARACTER (LEN=*) v1 - INTEGER v2 - INTEGER ierror - END SUBROUTINE MPI_WIN_GET_NAME - - SUBROUTINE MPI_INFO_CREATE(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_INFO_CREATE - - SUBROUTINE MPI_TYPE_CREATE_F90_INTEGER(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_TYPE_CREATE_F90_INTEGER - - SUBROUTINE MPI_TYPE_SET_NAME(v0,v1,ierror) - INTEGER v0 - CHARACTER (LEN=*) v1 - INTEGER ierror - END SUBROUTINE MPI_TYPE_SET_NAME - - SUBROUTINE MPI_ATTR_DELETE(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_ATTR_DELETE - - SUBROUTINE MPI_GROUP_INCL(v0,v1,v2,v3,ierror) - INTEGER v0, v1, v2(*), v3 - INTEGER ierror - END SUBROUTINE MPI_GROUP_INCL - - SUBROUTINE MPI_COMM_CREATE_ERRHANDLER(v0,v1,ierror) - INTERFACE - SUBROUTINE v0(vv0,vv1) - INTEGER vv0,vv1 - END SUBROUTINE - END INTERFACE - INTEGER v1 - INTEGER ierror - END SUBROUTINE MPI_COMM_CREATE_ERRHANDLER - - SUBROUTINE MPI_COMM_CONNECT(v0,v1,v2,v3,v4,ierror) - CHARACTER (LEN=*) v0 - INTEGER v1, v2, v3, v4 - INTEGER ierror - END SUBROUTINE MPI_COMM_CONNECT - - SUBROUTINE MPI_ERROR_STRING(v0,v1,v2,ierror) - INTEGER v0 - CHARACTER (LEN=*) v1 - INTEGER v2 - INTEGER ierror - END SUBROUTINE MPI_ERROR_STRING - - SUBROUTINE MPI_TYPE_GET_CONTENTS(v0,v1,v2,v3,v4,v5,v6,ierror) - USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND - INTEGER v0, v1, v2, v3, v4(*) - INTEGER(KIND=MPI_ADDRESS_KIND) v5(*) - INTEGER v6(*) - INTEGER ierror - END SUBROUTINE MPI_TYPE_GET_CONTENTS - - SUBROUTINE MPI_TYPE_STRUCT(v0,v1,v2,v3,v4,ierror) - INTEGER v0, v1(*), v2(*), v3(*), v4 - INTEGER ierror - END SUBROUTINE MPI_TYPE_STRUCT - - SUBROUTINE MPI_TYPE_CREATE_INDEXED_BLOCK(v0,v1,v2,v3,v4,ierror) - INTEGER v0, v1, v2(*), v3, v4 - INTEGER ierror - END SUBROUTINE MPI_TYPE_CREATE_INDEXED_BLOCK - - SUBROUTINE MPI_TYPE_CREATE_HVECTOR(v0,v1,v2,v3,v4,ierror) - USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND - INTEGER v0, v1 - INTEGER(KIND=MPI_ADDRESS_KIND) v2 - INTEGER v3, v4 - INTEGER ierror - END SUBROUTINE MPI_TYPE_CREATE_HVECTOR - - SUBROUTINE MPI_TYPE_FREE_KEYVAL(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_TYPE_FREE_KEYVAL - - SUBROUTINE MPI_START(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_START - - SUBROUTINE MPI_ABORT(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_ABORT - - SUBROUTINE MPI_INTERCOMM_CREATE(v0,v1,v2,v3,v4,v5,ierror) - INTEGER v0, v1, v2, v3, v4, v5 - INTEGER ierror - END SUBROUTINE MPI_INTERCOMM_CREATE - - SUBROUTINE MPI_COMM_RANK(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_COMM_RANK - - SUBROUTINE MPI_COMM_GET_PARENT(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_COMM_GET_PARENT - - SUBROUTINE MPI_FINALIZED(v0,ierror) - LOGICAL v0 - INTEGER ierror - END SUBROUTINE MPI_FINALIZED - - SUBROUTINE MPI_INTERCOMM_MERGE(v0,v1,v2,ierror) - INTEGER v0 - LOGICAL v1 - INTEGER v2 - INTEGER ierror - END SUBROUTINE MPI_INTERCOMM_MERGE - - SUBROUTINE MPI_INFO_GET_NTHKEY(v0,v1,v2,ierror) - INTEGER v0, v1 - CHARACTER (LEN=*) v2 - INTEGER ierror - END SUBROUTINE MPI_INFO_GET_NTHKEY - - SUBROUTINE MPI_TYPE_MATCH_SIZE(v0,v1,v2,ierror) - INTEGER v0, v1, v2 - INTEGER ierror - END SUBROUTINE MPI_TYPE_MATCH_SIZE - - SUBROUTINE MPI_STATUS_SET_CANCELLED(v0,v1,ierror) - USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE - INTEGER v0(MPI_STATUS_SIZE), v1 - INTEGER ierror - END SUBROUTINE MPI_STATUS_SET_CANCELLED - - SUBROUTINE MPI_FILE_SET_ERRHANDLER(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_FILE_SET_ERRHANDLER - - SUBROUTINE MPI_INFO_DELETE(v0,v1,ierror) - INTEGER v0 - CHARACTER (LEN=*) v1 - INTEGER ierror - END SUBROUTINE MPI_INFO_DELETE - - SUBROUTINE MPI_UNPUBLISH_NAME(v0,v1,v2,ierror) - CHARACTER (LEN=*) v0 - INTEGER v1 - CHARACTER (LEN=*) v2 - INTEGER ierror - END SUBROUTINE MPI_UNPUBLISH_NAME - - SUBROUTINE MPI_TYPE_CONTIGUOUS(v0,v1,v2,ierror) - INTEGER v0, v1, v2 - INTEGER ierror - END SUBROUTINE MPI_TYPE_CONTIGUOUS - - SUBROUTINE MPI_INITIALIZED(v0,ierror) - LOGICAL v0 - INTEGER ierror - END SUBROUTINE MPI_INITIALIZED - - SUBROUTINE MPI_TYPE_CREATE_RESIZED(v0,v1,v2,v3,ierror) - USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND - INTEGER v0 - INTEGER(KIND=MPI_ADDRESS_KIND) v1, v2 - INTEGER v3 - INTEGER ierror - END SUBROUTINE MPI_TYPE_CREATE_RESIZED - - SUBROUTINE MPI_TYPE_UB(v0,v1,ierror) - USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND - INTEGER v0 - INTEGER(KIND=MPI_ADDRESS_KIND) v1 - INTEGER ierror - END SUBROUTINE MPI_TYPE_UB - - SUBROUTINE MPI_INFO_DUP(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_INFO_DUP - - SUBROUTINE MPI_TYPE_DUP(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_TYPE_DUP - - SUBROUTINE MPI_ERRHANDLER_SET(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_ERRHANDLER_SET - - SUBROUTINE MPI_WIN_DELETE_ATTR(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_WIN_DELETE_ATTR - - SUBROUTINE MPI_INFO_GET_NKEYS(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_INFO_GET_NKEYS - - SUBROUTINE MPI_GROUP_EXCL(v0,v1,v2,v3,ierror) - INTEGER v0, v1, v2(*), v3 - INTEGER ierror - END SUBROUTINE MPI_GROUP_EXCL - - SUBROUTINE MPI_INFO_SET(v0,v1,v2,ierror) - INTEGER v0 - CHARACTER (LEN=*) v1, v2 - INTEGER ierror - END SUBROUTINE MPI_INFO_SET - - SUBROUTINE MPI_WAIT(v0,v1,ierror) - USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE - INTEGER v0, v1(MPI_STATUS_SIZE) - INTEGER ierror - END SUBROUTINE MPI_WAIT - - SUBROUTINE MPI_COMM_DELETE_ATTR(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_COMM_DELETE_ATTR - - SUBROUTINE MPI_COMM_GET_NAME(v0,v1,v2,ierror) - INTEGER v0 - CHARACTER (LEN=*) v1 - INTEGER v2 - INTEGER ierror - END SUBROUTINE MPI_COMM_GET_NAME - - SUBROUTINE MPI_TEST(v0,v1,v2,ierror) - USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE - INTEGER v0 - LOGICAL v1 - INTEGER v2(MPI_STATUS_SIZE) - INTEGER ierror - END SUBROUTINE MPI_TEST - - SUBROUTINE MPI_GET_COUNT(v0,v1,v2,ierror) - USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE - INTEGER v0(MPI_STATUS_SIZE), v1, v2 - INTEGER ierror - END SUBROUTINE MPI_GET_COUNT - - SUBROUTINE MPI_ADD_ERROR_CLASS(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_ADD_ERROR_CLASS - - SUBROUTINE MPI_COMM_FREE(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_COMM_FREE - - SUBROUTINE MPI_COMM_SET_NAME(v0,v1,ierror) - INTEGER v0 - CHARACTER (LEN=*) v1 - INTEGER ierror - END SUBROUTINE MPI_COMM_SET_NAME - - SUBROUTINE MPI_COMM_DISCONNECT(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_COMM_DISCONNECT - - SUBROUTINE MPI_IPROBE(v0,v1,v2,v3,v4,ierror) - USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE - INTEGER v0, v1, v2 - LOGICAL v3 - INTEGER v4(MPI_STATUS_SIZE) - INTEGER ierror - END SUBROUTINE MPI_IPROBE - - SUBROUTINE MPI_IMPROBE(v0,v1,v2,v3,v4,v5,ierror) - USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE - INTEGER v0, v1, v2, v3, v4 - INTEGER v5(MPI_STATUS_SIZE) - INTEGER ierror - END SUBROUTINE MPI_IMPROBE - - SUBROUTINE MPI_MPROBE(v0,v1,v2,v3,v4,ierror) - USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE - INTEGER v0, v1, v2, v3 - INTEGER v4(MPI_STATUS_SIZE) - INTEGER ierror - END SUBROUTINE MPI_MPROBE - - SUBROUTINE MPI_ADD_ERROR_CODE(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_ADD_ERROR_CODE - - SUBROUTINE MPI_COMM_GET_ERRHANDLER(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_COMM_GET_ERRHANDLER - - SUBROUTINE MPI_COMM_CREATE(v0,v1,v2,ierror) - INTEGER v0, v1, v2 - INTEGER ierror - END SUBROUTINE MPI_COMM_CREATE - - SUBROUTINE MPI_OP_FREE(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_OP_FREE - - SUBROUTINE MPI_TOPO_TEST(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_TOPO_TEST - - SUBROUTINE MPI_GET_PROCESSOR_NAME(v0,v1,ierror) - CHARACTER (LEN=*) v0 - INTEGER v1 - INTEGER ierror - END SUBROUTINE MPI_GET_PROCESSOR_NAME - - SUBROUTINE MPI_COMM_SIZE(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_COMM_SIZE - - SUBROUTINE MPI_WIN_UNLOCK(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_WIN_UNLOCK - - SUBROUTINE MPI_WIN_FLUSH(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_WIN_FLUSH - - SUBROUTINE MPI_WIN_FLUSH_LOCAL(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_WIN_FLUSH_LOCAL - - SUBROUTINE MPI_ERRHANDLER_FREE(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_ERRHANDLER_FREE - - SUBROUTINE MPI_COMM_REMOTE_SIZE(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_COMM_REMOTE_SIZE - - SUBROUTINE MPI_PROBE(v0,v1,v2,v3,ierror) - USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE - INTEGER v0, v1, v2, v3(MPI_STATUS_SIZE) - INTEGER ierror - END SUBROUTINE MPI_PROBE - - SUBROUTINE MPI_TYPE_HINDEXED(v0,v1,v2,v3,v4,ierror) - INTEGER v0, v1(*), v2(*), v3, v4 - INTEGER ierror - END SUBROUTINE MPI_TYPE_HINDEXED - - SUBROUTINE MPI_WIN_WAIT(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_WIN_WAIT - - SUBROUTINE MPI_WIN_SET_NAME(v0,v1,ierror) - INTEGER v0 - CHARACTER (LEN=*) v1 - INTEGER ierror - END SUBROUTINE MPI_WIN_SET_NAME - - SUBROUTINE MPI_TYPE_SIZE(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_TYPE_SIZE - - SUBROUTINE MPI_TYPE_SIZE_X(v0,v1,ierror) - USE MPI_CONSTANTS,ONLY:MPI_COUNT_KIND - INTEGER v0 - INTEGER(KIND=MPI_COUNT_KIND) v1 - INTEGER ierror - END SUBROUTINE MPI_TYPE_SIZE_X - - SUBROUTINE MPI_TYPE_CREATE_SUBARRAY(v0,v1,v2,v3,v4,v5,v6,ierror) - INTEGER v0, v1(*), v2(*), v3(*), v4, v5, v6 - INTEGER ierror - END SUBROUTINE MPI_TYPE_CREATE_SUBARRAY - - SUBROUTINE MPI_WIN_CREATE_ERRHANDLER(v0,v1,ierror) - INTERFACE - SUBROUTINE v0(vv0,vv1) - INTEGER vv0,vv1 - END SUBROUTINE - END INTERFACE - INTEGER v1 - INTEGER ierror - END SUBROUTINE MPI_WIN_CREATE_ERRHANDLER - - SUBROUTINE MPI_WIN_START(v0,v1,v2,ierror) - INTEGER v0, v1, v2 - INTEGER ierror - END SUBROUTINE MPI_WIN_START - - SUBROUTINE MPI_TYPE_FREE(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_TYPE_FREE - - SUBROUTINE MPI_WIN_FENCE(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_WIN_FENCE - - SUBROUTINE MPI_GRAPHDIMS_GET(v0,v1,v2,ierror) - INTEGER v0, v1, v2 - INTEGER ierror - END SUBROUTINE MPI_GRAPHDIMS_GET - - SUBROUTINE MPI_FILE_CALL_ERRHANDLER(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_FILE_CALL_ERRHANDLER - - SUBROUTINE MPI_TYPE_GET_ENVELOPE(v0,v1,v2,v3,v4,ierror) - INTEGER v0, v1, v2, v3, v4 - INTEGER ierror - END SUBROUTINE MPI_TYPE_GET_ENVELOPE - - SUBROUTINE MPI_TYPE_DELETE_ATTR(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_TYPE_DELETE_ATTR - - SUBROUTINE MPI_TYPE_CREATE_HINDEXED(v0,v1,v2,v3,v4,ierror) - USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND - INTEGER v0, v1(*) - INTEGER(KIND=MPI_ADDRESS_KIND) v2(*) - INTEGER v3, v4 - INTEGER ierror - END SUBROUTINE MPI_TYPE_CREATE_HINDEXED - - SUBROUTINE MPI_TYPE_CREATE_HINDEXED_BLOCK(v0,v1,v2,v3,v4,ierror) - USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND - INTEGER v0, v1 - INTEGER(KIND=MPI_ADDRESS_KIND) v2(*) - INTEGER v3, v4 - INTEGER ierror - END SUBROUTINE MPI_TYPE_CREATE_HINDEXED_BLOCK - - SUBROUTINE MPI_TYPE_INDEXED(v0,v1,v2,v3,v4,ierror) - INTEGER v0, v1(*), v2(*), v3, v4 - INTEGER ierror - END SUBROUTINE MPI_TYPE_INDEXED - - SUBROUTINE MPI_GREQUEST_COMPLETE(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_GREQUEST_COMPLETE - - SUBROUTINE MPI_GRAPH_NEIGHBORS_COUNT(v0,v1,v2,ierror) - INTEGER v0, v1, v2 - INTEGER ierror - END SUBROUTINE MPI_GRAPH_NEIGHBORS_COUNT - - SUBROUTINE MPI_GET_VERSION(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_GET_VERSION - - SUBROUTINE MPI_GET_LIBRARY_VERSION(v0,v1,ierror) - CHARACTER (LEN=*) v0 - INTEGER v1 - INTEGER ierror - END SUBROUTINE MPI_GET_LIBRARY_VERSION - - SUBROUTINE MSMPI_GET_BSEND_OVERHEAD(size) - INTEGER size - END SUBROUTINE MSMPI_GET_BSEND_OVERHEAD - - SUBROUTINE MSMPI_GET_VERSION(version) - INTEGER version - END SUBROUTINE MSMPI_GET_VERSION - - SUBROUTINE MPI_TYPE_HVECTOR(v0,v1,v2,v3,v4,ierror) - USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND - INTEGER v0, v1 - INTEGER(KIND=MPI_ADDRESS_KIND) v2 - INTEGER v3, v4 - INTEGER ierror - END SUBROUTINE MPI_TYPE_HVECTOR - - SUBROUTINE MPI_KEYVAL_FREE(v0,ierror) - INTEGER v0 - INTEGER ierror - END SUBROUTINE MPI_KEYVAL_FREE - - SUBROUTINE MPI_COMM_CALL_ERRHANDLER(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_COMM_CALL_ERRHANDLER - - SUBROUTINE MPI_COMM_JOIN(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_COMM_JOIN - - SUBROUTINE MPI_COMM_TEST_INTER(v0,v1,ierror) - INTEGER v0 - LOGICAL v1 - INTEGER ierror - END SUBROUTINE MPI_COMM_TEST_INTER - - SUBROUTINE MPI_CLOSE_PORT(v0,ierror) - CHARACTER (LEN=*) v0 - INTEGER ierror - END SUBROUTINE MPI_CLOSE_PORT - - SUBROUTINE MPI_TYPE_CREATE_F90_COMPLEX(v0,v1,v2,ierror) - INTEGER v0, v1, v2 - INTEGER ierror - END SUBROUTINE MPI_TYPE_CREATE_F90_COMPLEX - - SUBROUTINE MPI_GROUP_DIFFERENCE(v0,v1,v2,ierror) - INTEGER v0, v1, v2 - INTEGER ierror - END SUBROUTINE MPI_GROUP_DIFFERENCE - - SUBROUTINE MPI_COMM_DUP(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_COMM_DUP - - SUBROUTINE MPI_ERROR_CLASS(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_ERROR_CLASS - - SUBROUTINE MPI_GROUP_RANK(v0,v1,ierror) - INTEGER v0, v1 - INTEGER ierror - END SUBROUTINE MPI_GROUP_RANK - - - SUBROUTINE MPI_INIT(ierror) - INTEGER ierror - END SUBROUTINE MPI_INIT - - SUBROUTINE MPI_INIT_THREAD(v0,v1,ierror) - INTEGER v0, v1, ierror - END SUBROUTINE MPI_INIT_THREAD - - FUNCTION MPI_WTIME() - DOUBLE PRECISION MPI_WTIME - END FUNCTION MPI_WTIME - - FUNCTION MPI_WTICK() - DOUBLE PRECISION MPI_WTICK - END FUNCTION MPI_WTICK - - FUNCTION PMPI_WTIME() - DOUBLE PRECISION PMPI_WTIME - END FUNCTION PMPI_WTIME - - FUNCTION PMPI_WTICK() - DOUBLE PRECISION PMPI_WTICK - END FUNCTION PMPI_WTICK - - SUBROUTINE MPI_NULL_DELETE_FN(a,b,c,d,e) - INTEGER a,b,c,d,e - END SUBROUTINE MPI_NULL_DELETE_FN - - SUBROUTINE MPI_DUP_FN(a,b,c,d,e,f,g) - INTEGER a,b,c,d,e,g - LOGICAL f - END SUBROUTINE MPI_DUP_FN - - SUBROUTINE MPI_NULL_COPY_FN(a,b,c,d,e,f,g) - INTEGER a,b,c,d,e,g - LOGICAL f - END SUBROUTINE MPI_NULL_COPY_FN - - SUBROUTINE MPI_COMM_NULL_DELETE_FN(a,b,c,d,e) - USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND - INTEGER a,b,e - INTEGER (KIND=MPI_ADDRESS_KIND) c, d - END SUBROUTINE MPI_COMM_NULL_DELETE_FN - - SUBROUTINE MPI_COMM_DUP_FN(a,b,c,d,e,f,g) - USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND - INTEGER a,b,g - INTEGER (KIND=MPI_ADDRESS_KIND) c,d,e - LOGICAL f - END SUBROUTINE MPI_COMM_DUP_FN - - SUBROUTINE MPI_COMM_NULL_COPY_FN(a,b,c,d,e,f,g) - USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND - INTEGER a,b,g - INTEGER (KIND=MPI_ADDRESS_KIND) c,d,e - LOGICAL f - END SUBROUTINE MPI_COMM_NULL_COPY_FN - - SUBROUTINE MPI_TYPE_NULL_DELETE_FN(a,b,c,d,e) - USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND - INTEGER a,b,e - INTEGER (KIND=MPI_ADDRESS_KIND) c, d - END SUBROUTINE MPI_TYPE_NULL_DELETE_FN - - SUBROUTINE MPI_TYPE_DUP_FN(a,b,c,d,e,f,g) - USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND - INTEGER a,b,g - INTEGER (KIND=MPI_ADDRESS_KIND) c,d,e - LOGICAL f - END SUBROUTINE MPI_TYPE_DUP_FN - - SUBROUTINE MPI_TYPE_NULL_COPY_FN(a,b,c,d,e,f,g) - USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND - INTEGER a,b,g - INTEGER (KIND=MPI_ADDRESS_KIND) c,d,e - LOGICAL f - END SUBROUTINE MPI_TYPE_NULL_COPY_FN - - SUBROUTINE MPI_WIN_NULL_DELETE_FN(a,b,c,d,e) - USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND - INTEGER a,b,e - INTEGER (KIND=MPI_ADDRESS_KIND) c, d - END SUBROUTINE MPI_WIN_NULL_DELETE_FN - - SUBROUTINE MPI_WIN_DUP_FN(a,b,c,d,e,f,g) - USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND - INTEGER a,b,g - INTEGER (KIND=MPI_ADDRESS_KIND) c,d,e - LOGICAL f - END SUBROUTINE MPI_WIN_DUP_FN - - SUBROUTINE MPI_WIN_NULL_COPY_FN(a,b,c,d,e,f,g) - USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND - INTEGER a,b,g - INTEGER (KIND=MPI_ADDRESS_KIND) c,d,e - LOGICAL f - END SUBROUTINE MPI_WIN_NULL_COPY_FN - - END INTERFACE - END MODULE MPI_BASE - - MODULE MPI_SIZEOFS -! This module contains the definitions for MPI_SIZEOF for the -! predefined, named types in Fortran 90. This is provided -! as a separate module to allow MPI_SIZEOF to supply the -! basic size information even when we do not provide the -! arbitrary choice types - IMPLICIT NONE - - PUBLIC :: MPI_SIZEOF - INTERFACE MPI_SIZEOF - MODULE PROCEDURE MPI_SIZEOF_I, MPI_SIZEOF_R, & - & MPI_SIZEOF_L, MPI_SIZEOF_CH, MPI_SIZEOF_CX,& - & MPI_SIZEOF_IV, MPI_SIZEOF_RV, & - & MPI_SIZEOF_LV, MPI_SIZEOF_CHV, MPI_SIZEOF_CXV - MODULE PROCEDURE MPI_SIZEOF_D, MPI_SIZEOF_DV - END INTERFACE ! MPI_SIZEOF - - CONTAINS - - SUBROUTINE MPI_SIZEOF_I( X, SIZE, IERROR ) - INTEGER X - INTEGER SIZE, IERROR - SIZE = 4 - IERROR = 0 - END SUBROUTINE MPI_SIZEOF_I - - SUBROUTINE MPI_SIZEOF_R( X, SIZE, IERROR ) - REAL X - INTEGER SIZE, IERROR - SIZE = 4 - IERROR = 0 - END SUBROUTINE MPI_SIZEOF_R - -! If reals and doubles have been forced to the same size (e.g., with -! -i8 -r8 to compilers like g95), then the compiler may refuse to -! allow interfaces that use real and double precision (failing to -! determine which one is intended) - SUBROUTINE MPI_SIZEOF_D( X, SIZE, IERROR ) - DOUBLE PRECISION X - INTEGER SIZE, IERROR - SIZE = 8 - IERROR = 0 - END SUBROUTINE MPI_SIZEOF_D - - SUBROUTINE MPI_SIZEOF_L( X, SIZE, IERROR ) - LOGICAL X - INTEGER SIZE, IERROR - SIZE = 4 - IERROR = 0 - END SUBROUTINE MPI_SIZEOF_L - - SUBROUTINE MPI_SIZEOF_CH( X, SIZE, IERROR ) - CHARACTER X - INTEGER SIZE, IERROR - SIZE = 1 - IERROR = 0 - END SUBROUTINE MPI_SIZEOF_CH - - SUBROUTINE MPI_SIZEOF_CX( X, SIZE, IERROR ) - COMPLEX X - INTEGER SIZE, IERROR - SIZE = 2*4 - IERROR = 0 - END SUBROUTINE MPI_SIZEOF_CX - - SUBROUTINE MPI_SIZEOF_IV( X, SIZE, IERROR ) - INTEGER X(*) - INTEGER SIZE, IERROR - SIZE = 4 - IERROR = 0 - END SUBROUTINE MPI_SIZEOF_IV - - SUBROUTINE MPI_SIZEOF_RV( X, SIZE, IERROR ) - REAL X(*) - INTEGER SIZE, IERROR - SIZE = 4 - IERROR = 0 - END SUBROUTINE MPI_SIZEOF_RV - -! If reals and doubles have been forced to the same size (e.g., with -! -i8 -r8 to compilers like g95), then the compiler may refuse to -! allow interfaces that use real and double precision (failing to -! determine which one is intended) - SUBROUTINE MPI_SIZEOF_DV( X, SIZE, IERROR ) - DOUBLE PRECISION X(*) - INTEGER SIZE, IERROR - SIZE = 8 - IERROR = 0 - END SUBROUTINE MPI_SIZEOF_DV - - SUBROUTINE MPI_SIZEOF_LV( X, SIZE, IERROR ) - LOGICAL X(*) - INTEGER SIZE, IERROR - SIZE = 4 - IERROR = 0 - END SUBROUTINE MPI_SIZEOF_LV - - SUBROUTINE MPI_SIZEOF_CHV( X, SIZE, IERROR ) - CHARACTER X(*) - INTEGER SIZE, IERROR - SIZE = 1 - IERROR = 0 - END SUBROUTINE MPI_SIZEOF_CHV - - SUBROUTINE MPI_SIZEOF_CXV( X, SIZE, IERROR ) - COMPLEX X(*) - INTEGER SIZE, IERROR - SIZE = 2*4 - IERROR = 0 - END SUBROUTINE MPI_SIZEOF_CXV - -! We don't include double complex. If we did, we'd need to include the -! same hack as for real and double above if the compiler has been forced -! to make them the same size. - END MODULE MPI_SIZEOFS - - MODULE MPI - USE MPI_CONSTANTS - USE MPI_SIZEOFS - USE MPI_BASE - END MODULE MPI +! -*- Mode: F90; -*- +! Copyright(c) Microsoft Corporation.All rights reserved. +! Licensed under the MIT License. +! +! (C) 2004 by Argonne National Laboratory. +! (C) 2015 by Microsoft Corporation +! +! MPICH COPYRIGHT +! +! The following is a notice of limited availability of the code, and disclaimer +! which must be included in the prologue of the code and in all source listings +! of the code. +! +! Copyright Notice +! + 2002 University of Chicago +! +! Permission is hereby granted to use, reproduce, prepare derivative works, and +! to redistribute to others. This software was authored by: +! +! Mathematics and Computer Science Division +! Argonne National Laboratory, Argonne IL 60439 +! +! (and) +! +! Department of Computer Science +! University of Illinois at Urbana-Champaign +! +! +! GOVERNMENT LICENSE +! +! Portions of this material resulted from work developed under a U.S. +! Government Contract and are subject to the following license: the Government +! is granted for itself and others acting on its behalf a paid-up, nonexclusive, +! irrevocable worldwide license in this computer software to reproduce, prepare +! derivative works, and perform publicly and display publicly. +! +! DISCLAIMER +! +! This computer code material was prepared, in part, as an account of work +! sponsored by an agency of the United States Government. Neither the United +! States, nor the University of Chicago, nor any of their employees, makes any +! warranty express or implied, or assumes any legal liability or responsibility +! for the accuracy, completeness, or usefulness of any information, apparatus, +! product, or process disclosed, or represents that its use would not infringe +! privately owned rights. +! +! + MODULE MPI_CONSTANTS + IMPLICIT NONE + + INTEGER MPI_SOURCE, MPI_TAG, MPI_ERROR + PARAMETER (MPI_SOURCE=3,MPI_TAG=4,MPI_ERROR=5) + INTEGER MPI_STATUS_SIZE + PARAMETER (MPI_STATUS_SIZE=5) + INTEGER MPI_STATUS_IGNORE(MPI_STATUS_SIZE) + INTEGER MPI_STATUSES_IGNORE(MPI_STATUS_SIZE,1) + INTEGER MPI_ERRCODES_IGNORE(1) + CHARACTER*1 MPI_ARGVS_NULL(1,1) + CHARACTER*1 MPI_ARGV_NULL(1) + INTEGER MPI_SUCCESS + PARAMETER (MPI_SUCCESS=0) + INTEGER MPI_ERR_OTHER + PARAMETER (MPI_ERR_OTHER=15) + INTEGER MPI_ERR_WIN + PARAMETER (MPI_ERR_WIN=45) + INTEGER MPI_ERR_FILE + PARAMETER (MPI_ERR_FILE=27) + INTEGER MPI_ERR_COUNT + PARAMETER (MPI_ERR_COUNT=2) + INTEGER MPI_ERR_SPAWN + PARAMETER (MPI_ERR_SPAWN=42) + INTEGER MPI_ERR_BASE + PARAMETER (MPI_ERR_BASE=46) + INTEGER MPI_ERR_RMA_CONFLICT + PARAMETER (MPI_ERR_RMA_CONFLICT=49) + INTEGER MPI_ERR_IN_STATUS + PARAMETER (MPI_ERR_IN_STATUS=17) + INTEGER MPI_ERR_INFO_KEY + PARAMETER (MPI_ERR_INFO_KEY=29) + INTEGER MPI_ERR_LOCKTYPE + PARAMETER (MPI_ERR_LOCKTYPE=47) + INTEGER MPI_ERR_OP + PARAMETER (MPI_ERR_OP=9) + INTEGER MPI_ERR_ARG + PARAMETER (MPI_ERR_ARG=12) + INTEGER MPI_ERR_READ_ONLY + PARAMETER (MPI_ERR_READ_ONLY=40) + INTEGER MPI_ERR_SIZE + PARAMETER (MPI_ERR_SIZE=51) + INTEGER MPI_ERR_BUFFER + PARAMETER (MPI_ERR_BUFFER=1) + INTEGER MPI_ERR_DUP_DATAREP + PARAMETER (MPI_ERR_DUP_DATAREP=24) + INTEGER MPI_ERR_UNSUPPORTED_DATAREP + PARAMETER (MPI_ERR_UNSUPPORTED_DATAREP=43) + INTEGER MPI_ERR_LASTCODE + PARAMETER (MPI_ERR_LASTCODE=1073741823) + INTEGER MPI_ERR_TRUNCATE + PARAMETER (MPI_ERR_TRUNCATE=14) + INTEGER MPI_ERR_DISP + PARAMETER (MPI_ERR_DISP=52) + INTEGER MPI_ERR_PORT + PARAMETER (MPI_ERR_PORT=38) + INTEGER MPI_ERR_INFO_NOKEY + PARAMETER (MPI_ERR_INFO_NOKEY=31) + INTEGER MPI_ERR_ASSERT + PARAMETER (MPI_ERR_ASSERT=53) + INTEGER MPI_ERR_FILE_EXISTS + PARAMETER (MPI_ERR_FILE_EXISTS=25) + INTEGER MPI_ERR_PENDING + PARAMETER (MPI_ERR_PENDING=18) + INTEGER MPI_ERR_COMM + PARAMETER (MPI_ERR_COMM=5) + INTEGER MPI_ERR_KEYVAL + PARAMETER (MPI_ERR_KEYVAL=48) + INTEGER MPI_ERR_NAME + PARAMETER (MPI_ERR_NAME=33) + INTEGER MPI_ERR_REQUEST + PARAMETER (MPI_ERR_REQUEST=19) + INTEGER MPI_ERR_GROUP + PARAMETER (MPI_ERR_GROUP=8) + INTEGER MPI_ERR_TOPOLOGY + PARAMETER (MPI_ERR_TOPOLOGY=10) + INTEGER MPI_ERR_TYPE + PARAMETER (MPI_ERR_TYPE=3) + INTEGER MPI_ERR_TAG + PARAMETER (MPI_ERR_TAG=4) + INTEGER MPI_ERR_INFO_VALUE + PARAMETER (MPI_ERR_INFO_VALUE=30) + INTEGER MPI_ERR_NOT_SAME + PARAMETER (MPI_ERR_NOT_SAME=35) + INTEGER MPI_ERR_RMA_SYNC + PARAMETER (MPI_ERR_RMA_SYNC=50) + INTEGER MPI_ERR_INFO + PARAMETER (MPI_ERR_INFO=28) + INTEGER MPI_ERR_NO_MEM + PARAMETER (MPI_ERR_NO_MEM=34) + INTEGER MPI_ERR_BAD_FILE + PARAMETER (MPI_ERR_BAD_FILE=22) + INTEGER MPI_ERR_FILE_IN_USE + PARAMETER (MPI_ERR_FILE_IN_USE=26) + INTEGER MPI_ERR_UNKNOWN + PARAMETER (MPI_ERR_UNKNOWN=13) + INTEGER MPI_ERR_UNSUPPORTED_OPERATION + PARAMETER (MPI_ERR_UNSUPPORTED_OPERATION=44) + INTEGER MPI_ERR_QUOTA + PARAMETER (MPI_ERR_QUOTA=39) + INTEGER MPI_ERR_AMODE + PARAMETER (MPI_ERR_AMODE=21) + INTEGER MPI_ERR_ROOT + PARAMETER (MPI_ERR_ROOT=7) + INTEGER MPI_ERR_RANK + PARAMETER (MPI_ERR_RANK=6) + INTEGER MPI_ERR_DIMS + PARAMETER (MPI_ERR_DIMS=11) + INTEGER MPI_ERR_NO_SUCH_FILE + PARAMETER (MPI_ERR_NO_SUCH_FILE=37) + INTEGER MPI_ERR_SERVICE + PARAMETER (MPI_ERR_SERVICE=41) + INTEGER MPI_ERR_INTERN + PARAMETER (MPI_ERR_INTERN=16) + INTEGER MPI_ERR_IO + PARAMETER (MPI_ERR_IO=32) + INTEGER MPI_ERR_ACCESS + PARAMETER (MPI_ERR_ACCESS=20) + INTEGER MPI_ERR_NO_SPACE + PARAMETER (MPI_ERR_NO_SPACE=36) + INTEGER MPI_ERR_CONVERSION + PARAMETER (MPI_ERR_CONVERSION=23) + INTEGER MPI_ERRORS_ARE_FATAL + PARAMETER (MPI_ERRORS_ARE_FATAL=1409286144) + INTEGER MPI_ERRORS_RETURN + PARAMETER (MPI_ERRORS_RETURN=1409286145) + INTEGER MPI_IDENT + PARAMETER (MPI_IDENT=0) + INTEGER MPI_CONGRUENT + PARAMETER (MPI_CONGRUENT=1) + INTEGER MPI_SIMILAR + PARAMETER (MPI_SIMILAR=2) + INTEGER MPI_UNEQUAL + PARAMETER (MPI_UNEQUAL=3) + INTEGER MPI_MAX + PARAMETER (MPI_MAX=1476395009) + INTEGER MPI_MIN + PARAMETER (MPI_MIN=1476395010) + INTEGER MPI_SUM + PARAMETER (MPI_SUM=1476395011) + INTEGER MPI_PROD + PARAMETER (MPI_PROD=1476395012) + INTEGER MPI_LAND + PARAMETER (MPI_LAND=1476395013) + INTEGER MPI_BAND + PARAMETER (MPI_BAND=1476395014) + INTEGER MPI_LOR + PARAMETER (MPI_LOR=1476395015) + INTEGER MPI_BOR + PARAMETER (MPI_BOR=1476395016) + INTEGER MPI_LXOR + PARAMETER (MPI_LXOR=1476395017) + INTEGER MPI_BXOR + PARAMETER (MPI_BXOR=1476395018) + INTEGER MPI_MINLOC + PARAMETER (MPI_MINLOC=1476395019) + INTEGER MPI_MAXLOC + PARAMETER (MPI_MAXLOC=1476395020) + INTEGER MPI_REPLACE + PARAMETER (MPI_REPLACE=1476395021) + INTEGER MPI_NO_OP + PARAMETER (MPI_NO_OP=1476395022) + INTEGER MPI_COMM_WORLD + PARAMETER (MPI_COMM_WORLD=1140850688) + INTEGER MPI_COMM_SELF + PARAMETER (MPI_COMM_SELF=1140850689) + INTEGER MPI_COMM_TYPE_SHARED + PARAMETER (MPI_COMM_TYPE_SHARED=1) + INTEGER MPI_GROUP_EMPTY + PARAMETER (MPI_GROUP_EMPTY=1207959552) + INTEGER MPI_COMM_NULL + PARAMETER (MPI_COMM_NULL=67108864) + INTEGER MPI_WIN_NULL + PARAMETER (MPI_WIN_NULL=536870912) + INTEGER MPI_FILE_NULL + PARAMETER (MPI_FILE_NULL=0) + INTEGER MPI_GROUP_NULL + PARAMETER (MPI_GROUP_NULL=134217728) + INTEGER MPI_OP_NULL + PARAMETER (MPI_OP_NULL=402653184) + INTEGER MPI_DATATYPE_NULL + PARAMETER (MPI_DATATYPE_NULL=z'0c000000') + INTEGER MPI_REQUEST_NULL + PARAMETER (MPI_REQUEST_NULL=738197504) + INTEGER MPI_ERRHANDLER_NULL + PARAMETER (MPI_ERRHANDLER_NULL=335544320) + INTEGER MPI_INFO_NULL + PARAMETER (MPI_INFO_NULL=469762048) + INTEGER MPI_MESSAGE_NULL + PARAMETER (MPI_MESSAGE_NULL=805306368) + INTEGER MPI_MESSAGE_NO_PROC + PARAMETER (MPI_MESSAGE_NO_PROC=1879048192) + INTEGER MPI_TAG_UB + PARAMETER (MPI_TAG_UB=1681915906) + INTEGER MPI_HOST + PARAMETER (MPI_HOST=1681915908) + INTEGER MPI_IO + PARAMETER (MPI_IO=1681915910) + INTEGER MPI_WTIME_IS_GLOBAL + PARAMETER (MPI_WTIME_IS_GLOBAL=1681915912) + INTEGER MPI_UNIVERSE_SIZE + PARAMETER (MPI_UNIVERSE_SIZE=1681915914) + INTEGER MPI_LASTUSEDCODE + PARAMETER (MPI_LASTUSEDCODE=1681915916) + INTEGER MPI_APPNUM + PARAMETER (MPI_APPNUM=1681915918) + INTEGER MPI_WIN_BASE + PARAMETER (MPI_WIN_BASE=1711276034) + INTEGER MPI_WIN_SIZE + PARAMETER (MPI_WIN_SIZE=1711276036) + INTEGER MPI_WIN_DISP_UNIT + PARAMETER (MPI_WIN_DISP_UNIT=1711276038) + INTEGER MPI_MAX_ERROR_STRING + PARAMETER (MPI_MAX_ERROR_STRING=511) + INTEGER MPI_MAX_PORT_NAME + PARAMETER (MPI_MAX_PORT_NAME=255) + INTEGER MPI_MAX_OBJECT_NAME + PARAMETER (MPI_MAX_OBJECT_NAME=127) + INTEGER MPI_MAX_INFO_KEY + PARAMETER (MPI_MAX_INFO_KEY=254) + INTEGER MPI_MAX_INFO_VAL + PARAMETER (MPI_MAX_INFO_VAL=1023) + INTEGER MPI_MAX_PROCESSOR_NAME + PARAMETER (MPI_MAX_PROCESSOR_NAME=128-1) + INTEGER MPI_MAX_DATAREP_STRING + PARAMETER (MPI_MAX_DATAREP_STRING=127) + INTEGER MPI_MAX_LIBRARY_VERSION_STRING + PARAMETER (MPI_MAX_LIBRARY_VERSION_STRING=64-1) + INTEGER MPI_UNDEFINED + PARAMETER (MPI_UNDEFINED=(-32766)) + INTEGER MPI_KEYVAL_INVALID + PARAMETER (MPI_KEYVAL_INVALID=603979776) + INTEGER MPI_BSEND_OVERHEAD + PARAMETER (MPI_BSEND_OVERHEAD=(95)) + INTEGER MPI_PROC_NULL + PARAMETER (MPI_PROC_NULL=-1) + INTEGER MPI_ANY_SOURCE + PARAMETER (MPI_ANY_SOURCE=-2) + INTEGER MPI_ANY_TAG + PARAMETER (MPI_ANY_TAG=-1) + INTEGER MPI_ROOT + PARAMETER (MPI_ROOT=-3) + INTEGER MPI_GRAPH + PARAMETER (MPI_GRAPH=1) + INTEGER MPI_CART + PARAMETER (MPI_CART=2) + INTEGER MPI_DIST_GRAPH + PARAMETER (MPI_DIST_GRAPH=3) + INTEGER MPI_VERSION + PARAMETER (MPI_VERSION=2) + INTEGER MPI_SUBVERSION + PARAMETER (MPI_SUBVERSION=0) + INTEGER MPI_LOCK_EXCLUSIVE + PARAMETER (MPI_LOCK_EXCLUSIVE=234) + INTEGER MPI_LOCK_SHARED + PARAMETER (MPI_LOCK_SHARED=235) + INTEGER MPI_CHAR + PARAMETER (MPI_CHAR=z'4c000101') + INTEGER MPI_UNSIGNED_CHAR + PARAMETER (MPI_UNSIGNED_CHAR=z'4c000102') + INTEGER MPI_SHORT + PARAMETER (MPI_SHORT=z'4c000203') + INTEGER MPI_UNSIGNED_SHORT + PARAMETER (MPI_UNSIGNED_SHORT=z'4c000204') + INTEGER MPI_INT + PARAMETER (MPI_INT=z'4c000405') + INTEGER MPI_UNSIGNED + PARAMETER (MPI_UNSIGNED=z'4c000406') + INTEGER MPI_LONG + PARAMETER (MPI_LONG=z'4c000407') + INTEGER MPI_UNSIGNED_LONG + PARAMETER (MPI_UNSIGNED_LONG=z'4c000408') + INTEGER MPI_LONG_LONG + PARAMETER (MPI_LONG_LONG=z'4c000809') + INTEGER MPI_LONG_LONG_INT + PARAMETER (MPI_LONG_LONG_INT=z'4c000809') + INTEGER MPI_FLOAT + PARAMETER (MPI_FLOAT=z'4c00040a') + INTEGER MPI_DOUBLE + PARAMETER (MPI_DOUBLE=z'4c00080b') + INTEGER MPI_LONG_DOUBLE + PARAMETER (MPI_LONG_DOUBLE=z'4c00080c') + INTEGER MPI_BYTE + PARAMETER (MPI_BYTE=z'4c00010d') + INTEGER MPI_WCHAR + PARAMETER (MPI_WCHAR=z'4c00020e') + INTEGER MPI_PACKED + PARAMETER (MPI_PACKED=z'4c00010f') + INTEGER MPI_LB + PARAMETER (MPI_LB=z'4c000010') + INTEGER MPI_UB + PARAMETER (MPI_UB=z'4c000011') + INTEGER MPI_2INT + PARAMETER (MPI_2INT=z'4c000816') + INTEGER MPI_SIGNED_CHAR + PARAMETER (MPI_SIGNED_CHAR=z'4c000118') + INTEGER MPI_UNSIGNED_LONG_LONG + PARAMETER (MPI_UNSIGNED_LONG_LONG=z'4c000819') + INTEGER MPI_CHARACTER + PARAMETER (MPI_CHARACTER=z'4c00011a') + INTEGER MPI_INTEGER + PARAMETER (MPI_INTEGER=z'4c00041b') + INTEGER MPI_REAL + PARAMETER (MPI_REAL=z'4c00041c') + INTEGER MPI_LOGICAL + PARAMETER (MPI_LOGICAL=z'4c00041d') + INTEGER MPI_COMPLEX + PARAMETER (MPI_COMPLEX=z'4c00081e') + INTEGER MPI_DOUBLE_PRECISION + PARAMETER (MPI_DOUBLE_PRECISION=z'4c00081f') + INTEGER MPI_2INTEGER + PARAMETER (MPI_2INTEGER=z'4c000820') + INTEGER MPI_2REAL + PARAMETER (MPI_2REAL=z'4c000821') + INTEGER MPI_DOUBLE_COMPLEX + PARAMETER (MPI_DOUBLE_COMPLEX=z'4c001022') + INTEGER MPI_2DOUBLE_PRECISION + PARAMETER (MPI_2DOUBLE_PRECISION=z'4c001023') + INTEGER MPI_2COMPLEX + PARAMETER (MPI_2COMPLEX=z'4c001024') + INTEGER MPI_2DOUBLE_COMPLEX + PARAMETER (MPI_2DOUBLE_COMPLEX=z'4c002025') + INTEGER MPI_REAL2 + PARAMETER (MPI_REAL2=z'0c000000') + INTEGER MPI_REAL4 + PARAMETER (MPI_REAL4=z'4c000427') + INTEGER MPI_COMPLEX8 + PARAMETER (MPI_COMPLEX8=z'4c000828') + INTEGER MPI_REAL8 + PARAMETER (MPI_REAL8=z'4c000829') + INTEGER MPI_COMPLEX16 + PARAMETER (MPI_COMPLEX16=z'4c00102a') + INTEGER MPI_REAL16 + PARAMETER (MPI_REAL16=z'0c000000') + INTEGER MPI_COMPLEX32 + PARAMETER (MPI_COMPLEX32=z'0c000000') + INTEGER MPI_INTEGER1 + PARAMETER (MPI_INTEGER1=z'4c00012d') + INTEGER MPI_COMPLEX4 + PARAMETER (MPI_COMPLEX4=z'0c000000') + INTEGER MPI_INTEGER2 + PARAMETER (MPI_INTEGER2=z'4c00022f') + INTEGER MPI_INTEGER4 + PARAMETER (MPI_INTEGER4=z'4c000430') + INTEGER MPI_INTEGER8 + PARAMETER (MPI_INTEGER8=z'4c000831') + INTEGER MPI_INTEGER16 + PARAMETER (MPI_INTEGER16=z'0c000000') + + INCLUDE 'mpifptr.h' + + INTEGER MPI_OFFSET + PARAMETER (MPI_OFFSET=z'4c00083c') + INTEGER MPI_COUNT + PARAMETER (MPI_COUNT=z'4c00083d') + INTEGER MPI_FLOAT_INT + PARAMETER (MPI_FLOAT_INT=z'8c000000') + INTEGER MPI_DOUBLE_INT + PARAMETER (MPI_DOUBLE_INT=z'8c000001') + INTEGER MPI_LONG_INT + PARAMETER (MPI_LONG_INT=z'8c000002') + INTEGER MPI_SHORT_INT + PARAMETER (MPI_SHORT_INT=z'8c000003') + INTEGER MPI_LONG_DOUBLE_INT + PARAMETER (MPI_LONG_DOUBLE_INT=z'8c000004') + INTEGER MPI_INTEGER_KIND + PARAMETER (MPI_INTEGER_KIND=4) + INTEGER MPI_OFFSET_KIND + PARAMETER (MPI_OFFSET_KIND=8) + INTEGER MPI_COUNT_KIND + PARAMETER (MPI_COUNT_KIND=8) + INTEGER MPI_COMBINER_NAMED + PARAMETER (MPI_COMBINER_NAMED=1) + INTEGER MPI_COMBINER_DUP + PARAMETER (MPI_COMBINER_DUP=2) + INTEGER MPI_COMBINER_CONTIGUOUS + PARAMETER (MPI_COMBINER_CONTIGUOUS=3) + INTEGER MPI_COMBINER_VECTOR + PARAMETER (MPI_COMBINER_VECTOR=4) + INTEGER MPI_COMBINER_HVECTOR_INTEGER + PARAMETER (MPI_COMBINER_HVECTOR_INTEGER=5) + INTEGER MPI_COMBINER_HVECTOR + PARAMETER (MPI_COMBINER_HVECTOR=6) + INTEGER MPI_COMBINER_INDEXED + PARAMETER (MPI_COMBINER_INDEXED=7) + INTEGER MPI_COMBINER_HINDEXED_INTEGER + PARAMETER (MPI_COMBINER_HINDEXED_INTEGER=8) + INTEGER MPI_COMBINER_HINDEXED + PARAMETER (MPI_COMBINER_HINDEXED=9) + INTEGER MPI_COMBINER_INDEXED_BLOCK + PARAMETER (MPI_COMBINER_INDEXED_BLOCK=10) + INTEGER MPI_COMBINER_STRUCT_INTEGER + PARAMETER (MPI_COMBINER_STRUCT_INTEGER=11) + INTEGER MPI_COMBINER_STRUCT + PARAMETER (MPI_COMBINER_STRUCT=12) + INTEGER MPI_COMBINER_SUBARRAY + PARAMETER (MPI_COMBINER_SUBARRAY=13) + INTEGER MPI_COMBINER_DARRAY + PARAMETER (MPI_COMBINER_DARRAY=14) + INTEGER MPI_COMBINER_F90_REAL + PARAMETER (MPI_COMBINER_F90_REAL=15) + INTEGER MPI_COMBINER_F90_COMPLEX + PARAMETER (MPI_COMBINER_F90_COMPLEX=16) + INTEGER MPI_COMBINER_F90_INTEGER + PARAMETER (MPI_COMBINER_F90_INTEGER=17) + INTEGER MPI_COMBINER_RESIZED + PARAMETER (MPI_COMBINER_RESIZED=18) + INTEGER MPI_COMBINER_HINDEXED_BLOCK + PARAMETER (MPI_COMBINER_HINDEXED_BLOCK=19) + INTEGER MPI_MODE_NOCHECK + PARAMETER (MPI_MODE_NOCHECK=1024) + INTEGER MPI_MODE_NOSTORE + PARAMETER (MPI_MODE_NOSTORE=2048) + INTEGER MPI_MODE_NOPUT + PARAMETER (MPI_MODE_NOPUT=4096) + INTEGER MPI_MODE_NOPRECEDE + PARAMETER (MPI_MODE_NOPRECEDE=8192) + INTEGER MPI_MODE_NOSUCCEED + PARAMETER (MPI_MODE_NOSUCCEED=16384) + INTEGER MPI_THREAD_SINGLE + PARAMETER (MPI_THREAD_SINGLE=0) + INTEGER MPI_THREAD_FUNNELED + PARAMETER (MPI_THREAD_FUNNELED=1) + INTEGER MPI_THREAD_SERIALIZED + PARAMETER (MPI_THREAD_SERIALIZED=2) + INTEGER MPI_THREAD_MULTIPLE + PARAMETER (MPI_THREAD_MULTIPLE=3) + INTEGER MPI_MODE_RDONLY + PARAMETER (MPI_MODE_RDONLY=2) + INTEGER MPI_MODE_RDWR + PARAMETER (MPI_MODE_RDWR=8) + INTEGER MPI_MODE_WRONLY + PARAMETER (MPI_MODE_WRONLY=4) + INTEGER MPI_MODE_DELETE_ON_CLOSE + PARAMETER (MPI_MODE_DELETE_ON_CLOSE=16) + INTEGER MPI_MODE_UNIQUE_OPEN + PARAMETER (MPI_MODE_UNIQUE_OPEN=32) + INTEGER MPI_MODE_CREATE + PARAMETER (MPI_MODE_CREATE=1) + INTEGER MPI_MODE_EXCL + PARAMETER (MPI_MODE_EXCL=64) + INTEGER MPI_MODE_APPEND + PARAMETER (MPI_MODE_APPEND=128) + INTEGER MPI_MODE_SEQUENTIAL + PARAMETER (MPI_MODE_SEQUENTIAL=256) + INTEGER MPI_SEEK_SET + PARAMETER (MPI_SEEK_SET=600) + INTEGER MPI_SEEK_CUR + PARAMETER (MPI_SEEK_CUR=602) + INTEGER MPI_SEEK_END + PARAMETER (MPI_SEEK_END=604) + INTEGER MPI_ORDER_C + PARAMETER (MPI_ORDER_C=56) + INTEGER MPI_ORDER_FORTRAN + PARAMETER (MPI_ORDER_FORTRAN=57) + INTEGER MPI_DISTRIBUTE_BLOCK + PARAMETER (MPI_DISTRIBUTE_BLOCK=121) + INTEGER MPI_DISTRIBUTE_CYCLIC + PARAMETER (MPI_DISTRIBUTE_CYCLIC=122) + INTEGER MPI_DISTRIBUTE_NONE + PARAMETER (MPI_DISTRIBUTE_NONE=123) + INTEGER MPI_DISTRIBUTE_DFLT_DARG + PARAMETER (MPI_DISTRIBUTE_DFLT_DARG=-49767) + INTEGER (KIND=8) MPI_DISPLACEMENT_CURRENT + PARAMETER (MPI_DISPLACEMENT_CURRENT=-54278278) + INTEGER MPI_BOTTOM, MPI_IN_PLACE + INTEGER MPI_UNWEIGHTED, MPI_WEIGHTS_EMPTY + + COMMON /MPIPRIV1/ MPI_BOTTOM, MPI_IN_PLACE, MPI_STATUS_IGNORE + + COMMON /MPIPRIV2/ MPI_STATUSES_IGNORE, MPI_ERRCODES_IGNORE +!DEC$ ATTRIBUTES DLLIMPORT :: /MPIPRIV1/, /MPIPRIV2/ + + COMMON /MPIFCMB5/ MPI_UNWEIGHTED + COMMON /MPIFCMB9/ MPI_WEIGHTS_EMPTY +!DEC$ ATTRIBUTES DLLIMPORT :: /MPIFCMB5/, /MPIFCMB9/ + + COMMON /MPIPRIVC/ MPI_ARGVS_NULL, MPI_ARGV_NULL +!DEC$ ATTRIBUTES DLLIMPORT :: /MPIPRIVC/ + + END MODULE MPI_CONSTANTS + + MODULE MPI_BASE + IMPLICIT NONE + INTERFACE + SUBROUTINE MPI_TYPE_CREATE_DARRAY(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,ierror) + INTEGER v0, v1, v2, v3(*), v4(*), v5(*), v6(*), v7, v8, v9 + INTEGER ierror + END SUBROUTINE MPI_TYPE_CREATE_DARRAY + + SUBROUTINE MPI_COMM_FREE_KEYVAL(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_COMM_FREE_KEYVAL + + SUBROUTINE MPI_TYPE_EXTENT(v0,v1,ierror) + USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND + INTEGER v0 + INTEGER(KIND=MPI_ADDRESS_KIND) v1 + INTEGER ierror + END SUBROUTINE MPI_TYPE_EXTENT + + SUBROUTINE MPI_TYPE_GET_NAME(v0,v1,v2,ierror) + INTEGER v0 + CHARACTER (LEN=*) v1 + INTEGER v2 + INTEGER ierror + END SUBROUTINE MPI_TYPE_GET_NAME + + SUBROUTINE MPI_GROUP_INTERSECTION(v0,v1,v2,ierror) + INTEGER v0, v1, v2 + INTEGER ierror + END SUBROUTINE MPI_GROUP_INTERSECTION + + SUBROUTINE MPI_WIN_LOCK(v0,v1,v2,v3,ierror) + INTEGER v0, v1, v2, v3 + INTEGER ierror + END SUBROUTINE MPI_WIN_LOCK + + SUBROUTINE MPI_CARTDIM_GET(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_CARTDIM_GET + + SUBROUTINE MPI_WIN_GET_ERRHANDLER(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_WIN_GET_ERRHANDLER + + SUBROUTINE MPI_COMM_SPLIT(v0,v1,v2,v3,ierror) + INTEGER v0, v1, v2, v3 + INTEGER ierror + END SUBROUTINE MPI_COMM_SPLIT + + SUBROUTINE MPI_COMM_SPLIT_TYPE(v0,v1,v2,v3,v4,ierror) + INTEGER v0, v1, v2, v3, v4 + INTEGER ierror + END SUBROUTINE MPI_COMM_SPLIT_TYPE + + SUBROUTINE MPI_CANCEL(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_CANCEL + + SUBROUTINE MPI_WIN_POST(v0,v1,v2,ierror) + INTEGER v0, v1, v2 + INTEGER ierror + END SUBROUTINE MPI_WIN_POST + + SUBROUTINE MPI_WIN_COMPLETE(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_WIN_COMPLETE + + SUBROUTINE MPI_TEST_CANCELLED(v0,v1,ierror) + USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE + INTEGER v0(MPI_STATUS_SIZE) + LOGICAL v1 + INTEGER ierror + END SUBROUTINE MPI_TEST_CANCELLED + + SUBROUTINE MPI_GROUP_SIZE(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_GROUP_SIZE + + SUBROUTINE MPI_ADD_ERROR_STRING(v0,v1,ierror) + INTEGER v0 + CHARACTER (LEN=*) v1 + INTEGER ierror + END SUBROUTINE MPI_ADD_ERROR_STRING + + SUBROUTINE MPI_PACK_SIZE(v0,v1,v2,v3,ierror) + INTEGER v0, v1, v2, v3 + INTEGER ierror + END SUBROUTINE MPI_PACK_SIZE + + SUBROUTINE MPI_GET_ELEMENTS(v0,v1,v2,ierror) + USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE + INTEGER v0(MPI_STATUS_SIZE), v1, v2 + INTEGER ierror + END SUBROUTINE MPI_GET_ELEMENTS + + SUBROUTINE MPI_GET_ELEMENTS_X(v0,v1,v2,ierror) + USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE,MPI_COUNT_KIND + INTEGER v0(MPI_STATUS_SIZE), v1 + INTEGER(KIND=MPI_COUNT_KIND) v2 + INTEGER ierror + END SUBROUTINE MPI_GET_ELEMENTS_X + + SUBROUTINE MPI_ERRHANDLER_GET(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_ERRHANDLER_GET + + SUBROUTINE MPI_FILE_GET_ERRHANDLER(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_FILE_GET_ERRHANDLER + + SUBROUTINE MPI_TYPE_LB(v0,v1,ierror) + USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND + INTEGER v0 + INTEGER(KIND=MPI_ADDRESS_KIND) v1 + INTEGER ierror + END SUBROUTINE MPI_TYPE_LB + + SUBROUTINE MPI_REQUEST_FREE(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_REQUEST_FREE + + SUBROUTINE MPI_GROUP_RANGE_INCL(v0,v1,v2,v3,ierror) + INTEGER v0, v1, v2(3,*), v3 + INTEGER ierror + END SUBROUTINE MPI_GROUP_RANGE_INCL + + SUBROUTINE MPI_TYPE_GET_TRUE_EXTENT(v0,v1,v2,ierror) + USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND + INTEGER v0 + INTEGER(KIND=MPI_ADDRESS_KIND) v1, v2 + INTEGER ierror + END SUBROUTINE MPI_TYPE_GET_TRUE_EXTENT + + SUBROUTINE MPI_TYPE_GET_TRUE_EXTENT_X(v0,v1,v2,ierror) + USE MPI_CONSTANTS,ONLY:MPI_COUNT_KIND + INTEGER v0 + INTEGER(KIND=MPI_COUNT_KIND) v1, v2 + INTEGER ierror + END SUBROUTINE MPI_TYPE_GET_TRUE_EXTENT_X + + SUBROUTINE MPI_BARRIER(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_BARRIER + + SUBROUTINE MPI_IS_THREAD_MAIN(v0,ierror) + LOGICAL v0 + INTEGER ierror + END SUBROUTINE MPI_IS_THREAD_MAIN + + SUBROUTINE MPI_WIN_FREE_KEYVAL(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_WIN_FREE_KEYVAL + + SUBROUTINE MPI_TYPE_COMMIT(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_TYPE_COMMIT + + SUBROUTINE MPI_GROUP_RANGE_EXCL(v0,v1,v2,v3,ierror) + INTEGER v0, v1, v2(3,*), v3 + INTEGER ierror + END SUBROUTINE MPI_GROUP_RANGE_EXCL + + SUBROUTINE MPI_REQUEST_GET_STATUS(v0,v1,v2,ierror) + USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE + INTEGER v0 + LOGICAL v1 + INTEGER v2(MPI_STATUS_SIZE) + INTEGER ierror + END SUBROUTINE MPI_REQUEST_GET_STATUS + + SUBROUTINE MPI_QUERY_THREAD(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_QUERY_THREAD + + SUBROUTINE MPI_ERRHANDLER_CREATE(v0,v1,ierror) + INTERFACE + SUBROUTINE v0(vv0,vv1) + INTEGER vv0,vv1 + END SUBROUTINE + END INTERFACE + INTEGER v1 + INTEGER ierror + END SUBROUTINE MPI_ERRHANDLER_CREATE + + SUBROUTINE MPI_COMM_SPAWN_MULTIPLE(v0,v1,v2,v3,v4,v5,v6,v7,v8,ierror) + INTEGER v0 + CHARACTER (LEN=*) v1(*), v2(v0,*) + INTEGER v3(*), v4(*), v5, v6, v7, v8(*) + INTEGER ierror + END SUBROUTINE MPI_COMM_SPAWN_MULTIPLE + + SUBROUTINE MPI_COMM_REMOTE_GROUP(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_COMM_REMOTE_GROUP + + SUBROUTINE MPI_TYPE_GET_EXTENT(v0,v1,v2,ierror) + USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND + INTEGER v0 + INTEGER(KIND=MPI_ADDRESS_KIND) v1, v2 + INTEGER ierror + END SUBROUTINE MPI_TYPE_GET_EXTENT + + SUBROUTINE MPI_TYPE_GET_EXTENT_X(v0,v1,v2,ierror) + USE MPI_CONSTANTS,ONLY:MPI_COUNT_KIND + INTEGER v0 + INTEGER(KIND=MPI_COUNT_KIND) v1, v2 + INTEGER ierror + END SUBROUTINE MPI_TYPE_GET_EXTENT_X + + SUBROUTINE MPI_COMM_COMPARE(v0,v1,v2,ierror) + INTEGER v0, v1, v2 + INTEGER ierror + END SUBROUTINE MPI_COMM_COMPARE + + SUBROUTINE MPI_INFO_GET_VALUELEN(v0,v1,v2,v3,ierror) + INTEGER v0 + CHARACTER (LEN=*) v1 + INTEGER v2 + LOGICAL v3 + INTEGER ierror + END SUBROUTINE MPI_INFO_GET_VALUELEN + + SUBROUTINE MPI_INFO_GET(v0,v1,v2,v3,v4,ierror) + INTEGER v0 + CHARACTER (LEN=*) v1 + INTEGER v2 + CHARACTER (LEN=*) v3 + LOGICAL v4 + INTEGER ierror + END SUBROUTINE MPI_INFO_GET + + SUBROUTINE MPI_OP_COMMUTATIVE(v0,v1,ierror) + INTEGER v0 + LOGICAL v1 + INTEGER ierror + END SUBROUTINE MPI_OP_COMMUTATIVE + + SUBROUTINE MPI_OP_CREATE(v0,v1,v2,ierror) + EXTERNAL v0 + LOGICAL v1 + INTEGER v2 + INTEGER ierror + END SUBROUTINE MPI_OP_CREATE + + SUBROUTINE MPI_TYPE_CREATE_STRUCT(v0,v1,v2,v3,v4,ierror) + USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND + INTEGER v0, v1(*) + INTEGER(KIND=MPI_ADDRESS_KIND) v2(*) + INTEGER v3(*), v4 + INTEGER ierror + END SUBROUTINE MPI_TYPE_CREATE_STRUCT + + SUBROUTINE MPI_TYPE_VECTOR(v0,v1,v2,v3,v4,ierror) + INTEGER v0, v1, v2, v3, v4 + INTEGER ierror + END SUBROUTINE MPI_TYPE_VECTOR + + SUBROUTINE MPI_WIN_GET_GROUP(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_WIN_GET_GROUP + + SUBROUTINE MPI_GROUP_COMPARE(v0,v1,v2,ierror) + INTEGER v0, v1, v2 + INTEGER ierror + END SUBROUTINE MPI_GROUP_COMPARE + + SUBROUTINE MPI_CART_SHIFT(v0,v1,v2,v3,v4,ierror) + INTEGER v0, v1, v2, v3, v4 + INTEGER ierror + END SUBROUTINE MPI_CART_SHIFT + + SUBROUTINE MPI_WIN_SET_ERRHANDLER(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_WIN_SET_ERRHANDLER + + SUBROUTINE MPI_COMM_SPAWN(v0,v1,v2,v3,v4,v5,v6,v7,ierror) + CHARACTER (LEN=*) v0, v1(*) + INTEGER v2, v3, v4, v5, v6, v7(*) + INTEGER ierror + END SUBROUTINE MPI_COMM_SPAWN + + SUBROUTINE MPI_COMM_GROUP(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_COMM_GROUP + + SUBROUTINE MPI_WIN_CALL_ERRHANDLER(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_WIN_CALL_ERRHANDLER + + SUBROUTINE MPI_LOOKUP_NAME(v0,v1,v2,ierror) + CHARACTER (LEN=*) v0 + INTEGER v1 + CHARACTER (LEN=*) v2 + INTEGER ierror + END SUBROUTINE MPI_LOOKUP_NAME + + SUBROUTINE MPI_INFO_FREE(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_INFO_FREE + + SUBROUTINE MPI_COMM_SET_ERRHANDLER(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_COMM_SET_ERRHANDLER + + SUBROUTINE MPI_GRAPH_GET(v0,v1,v2,v3,v4,ierror) + INTEGER v0, v1, v2, v3(*), v4(*) + INTEGER ierror + END SUBROUTINE MPI_GRAPH_GET + + SUBROUTINE MPI_GROUP_FREE(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_GROUP_FREE + + SUBROUTINE MPI_STATUS_SET_ELEMENTS(v0,v1,v2,ierror) + USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE + INTEGER v0(MPI_STATUS_SIZE), v1, v2 + INTEGER ierror + END SUBROUTINE MPI_STATUS_SET_ELEMENTS + + SUBROUTINE MPI_STATUS_SET_ELEMENTS_X(v0,v1,v2,ierror) + USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE,MPI_COUNT_KIND + INTEGER v0(MPI_STATUS_SIZE), v1 + INTEGER(KIND=MPI_COUNT_KIND) v2 + INTEGER ierror + END SUBROUTINE MPI_STATUS_SET_ELEMENTS_X + + SUBROUTINE MPI_WIN_TEST(v0,v1,ierror) + INTEGER v0 + LOGICAL v1 + INTEGER ierror + END SUBROUTINE MPI_WIN_TEST + + SUBROUTINE MPI_WIN_FREE(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_WIN_FREE + + SUBROUTINE MPI_GRAPH_MAP(v0,v1,v2,v3,v4,ierror) + INTEGER v0, v1, v2(*), v3(*), v4 + INTEGER ierror + END SUBROUTINE MPI_GRAPH_MAP + + SUBROUTINE MPI_DIST_GRAPH_NEIGHBORS_COUNT(v0,v1,v2,v3,ierror) + INTEGER v0, v1, v2 + LOGICAL v3 + INTEGER ierror + END SUBROUTINE MPI_DIST_GRAPH_NEIGHBORS_COUNT + + SUBROUTINE MPI_PACK_EXTERNAL_SIZE(v0,v1,v2,v3,ierror) + USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND + CHARACTER (LEN=*) v0 + INTEGER v1, v2 + INTEGER(KIND=MPI_ADDRESS_KIND) v3 + INTEGER ierror + END SUBROUTINE MPI_PACK_EXTERNAL_SIZE + + SUBROUTINE MPI_PUBLISH_NAME(v0,v1,v2,ierror) + CHARACTER (LEN=*) v0 + INTEGER v1 + CHARACTER (LEN=*) v2 + INTEGER ierror + END SUBROUTINE MPI_PUBLISH_NAME + + SUBROUTINE MPI_TYPE_CREATE_F90_REAL(v0,v1,v2,ierror) + INTEGER v0, v1, v2 + INTEGER ierror + END SUBROUTINE MPI_TYPE_CREATE_F90_REAL + + SUBROUTINE MPI_OPEN_PORT(v0,v1,ierror) + INTEGER v0 + CHARACTER (LEN=*) v1 + INTEGER ierror + END SUBROUTINE MPI_OPEN_PORT + + SUBROUTINE MPI_GROUP_UNION(v0,v1,v2,ierror) + INTEGER v0, v1, v2 + INTEGER ierror + END SUBROUTINE MPI_GROUP_UNION + + SUBROUTINE MPI_COMM_ACCEPT(v0,v1,v2,v3,v4,ierror) + CHARACTER (LEN=*) v0 + INTEGER v1, v2, v3, v4 + INTEGER ierror + END SUBROUTINE MPI_COMM_ACCEPT + + SUBROUTINE MPI_FILE_CREATE_ERRHANDLER(v0,v1,ierror) + INTERFACE + SUBROUTINE v0(vv0,vv1) + INTEGER vv0,vv1 + END SUBROUTINE + END INTERFACE + INTEGER v1 + INTEGER ierror + END SUBROUTINE MPI_FILE_CREATE_ERRHANDLER + + SUBROUTINE MPI_WIN_GET_NAME(v0,v1,v2,ierror) + INTEGER v0 + CHARACTER (LEN=*) v1 + INTEGER v2 + INTEGER ierror + END SUBROUTINE MPI_WIN_GET_NAME + + SUBROUTINE MPI_INFO_CREATE(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_INFO_CREATE + + SUBROUTINE MPI_TYPE_CREATE_F90_INTEGER(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_TYPE_CREATE_F90_INTEGER + + SUBROUTINE MPI_TYPE_SET_NAME(v0,v1,ierror) + INTEGER v0 + CHARACTER (LEN=*) v1 + INTEGER ierror + END SUBROUTINE MPI_TYPE_SET_NAME + + SUBROUTINE MPI_ATTR_DELETE(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_ATTR_DELETE + + SUBROUTINE MPI_GROUP_INCL(v0,v1,v2,v3,ierror) + INTEGER v0, v1, v2(*), v3 + INTEGER ierror + END SUBROUTINE MPI_GROUP_INCL + + SUBROUTINE MPI_COMM_CREATE_ERRHANDLER(v0,v1,ierror) + INTERFACE + SUBROUTINE v0(vv0,vv1) + INTEGER vv0,vv1 + END SUBROUTINE + END INTERFACE + INTEGER v1 + INTEGER ierror + END SUBROUTINE MPI_COMM_CREATE_ERRHANDLER + + SUBROUTINE MPI_COMM_CONNECT(v0,v1,v2,v3,v4,ierror) + CHARACTER (LEN=*) v0 + INTEGER v1, v2, v3, v4 + INTEGER ierror + END SUBROUTINE MPI_COMM_CONNECT + + SUBROUTINE MPI_ERROR_STRING(v0,v1,v2,ierror) + INTEGER v0 + CHARACTER (LEN=*) v1 + INTEGER v2 + INTEGER ierror + END SUBROUTINE MPI_ERROR_STRING + + SUBROUTINE MPI_TYPE_GET_CONTENTS(v0,v1,v2,v3,v4,v5,v6,ierror) + USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND + INTEGER v0, v1, v2, v3, v4(*) + INTEGER(KIND=MPI_ADDRESS_KIND) v5(*) + INTEGER v6(*) + INTEGER ierror + END SUBROUTINE MPI_TYPE_GET_CONTENTS + + SUBROUTINE MPI_TYPE_STRUCT(v0,v1,v2,v3,v4,ierror) + INTEGER v0, v1(*), v2(*), v3(*), v4 + INTEGER ierror + END SUBROUTINE MPI_TYPE_STRUCT + + SUBROUTINE MPI_TYPE_CREATE_INDEXED_BLOCK(v0,v1,v2,v3,v4,ierror) + INTEGER v0, v1, v2(*), v3, v4 + INTEGER ierror + END SUBROUTINE MPI_TYPE_CREATE_INDEXED_BLOCK + + SUBROUTINE MPI_TYPE_CREATE_HVECTOR(v0,v1,v2,v3,v4,ierror) + USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND + INTEGER v0, v1 + INTEGER(KIND=MPI_ADDRESS_KIND) v2 + INTEGER v3, v4 + INTEGER ierror + END SUBROUTINE MPI_TYPE_CREATE_HVECTOR + + SUBROUTINE MPI_TYPE_FREE_KEYVAL(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_TYPE_FREE_KEYVAL + + SUBROUTINE MPI_START(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_START + + SUBROUTINE MPI_ABORT(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_ABORT + + SUBROUTINE MPI_INTERCOMM_CREATE(v0,v1,v2,v3,v4,v5,ierror) + INTEGER v0, v1, v2, v3, v4, v5 + INTEGER ierror + END SUBROUTINE MPI_INTERCOMM_CREATE + + SUBROUTINE MPI_COMM_RANK(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_COMM_RANK + + SUBROUTINE MPI_COMM_GET_PARENT(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_COMM_GET_PARENT + + SUBROUTINE MPI_FINALIZED(v0,ierror) + LOGICAL v0 + INTEGER ierror + END SUBROUTINE MPI_FINALIZED + + SUBROUTINE MPI_INTERCOMM_MERGE(v0,v1,v2,ierror) + INTEGER v0 + LOGICAL v1 + INTEGER v2 + INTEGER ierror + END SUBROUTINE MPI_INTERCOMM_MERGE + + SUBROUTINE MPI_INFO_GET_NTHKEY(v0,v1,v2,ierror) + INTEGER v0, v1 + CHARACTER (LEN=*) v2 + INTEGER ierror + END SUBROUTINE MPI_INFO_GET_NTHKEY + + SUBROUTINE MPI_TYPE_MATCH_SIZE(v0,v1,v2,ierror) + INTEGER v0, v1, v2 + INTEGER ierror + END SUBROUTINE MPI_TYPE_MATCH_SIZE + + SUBROUTINE MPI_STATUS_SET_CANCELLED(v0,v1,ierror) + USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE + INTEGER v0(MPI_STATUS_SIZE), v1 + INTEGER ierror + END SUBROUTINE MPI_STATUS_SET_CANCELLED + + SUBROUTINE MPI_FILE_SET_ERRHANDLER(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_FILE_SET_ERRHANDLER + + SUBROUTINE MPI_INFO_DELETE(v0,v1,ierror) + INTEGER v0 + CHARACTER (LEN=*) v1 + INTEGER ierror + END SUBROUTINE MPI_INFO_DELETE + + SUBROUTINE MPI_UNPUBLISH_NAME(v0,v1,v2,ierror) + CHARACTER (LEN=*) v0 + INTEGER v1 + CHARACTER (LEN=*) v2 + INTEGER ierror + END SUBROUTINE MPI_UNPUBLISH_NAME + + SUBROUTINE MPI_TYPE_CONTIGUOUS(v0,v1,v2,ierror) + INTEGER v0, v1, v2 + INTEGER ierror + END SUBROUTINE MPI_TYPE_CONTIGUOUS + + SUBROUTINE MPI_INITIALIZED(v0,ierror) + LOGICAL v0 + INTEGER ierror + END SUBROUTINE MPI_INITIALIZED + + SUBROUTINE MPI_TYPE_CREATE_RESIZED(v0,v1,v2,v3,ierror) + USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND + INTEGER v0 + INTEGER(KIND=MPI_ADDRESS_KIND) v1, v2 + INTEGER v3 + INTEGER ierror + END SUBROUTINE MPI_TYPE_CREATE_RESIZED + + SUBROUTINE MPI_TYPE_UB(v0,v1,ierror) + USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND + INTEGER v0 + INTEGER(KIND=MPI_ADDRESS_KIND) v1 + INTEGER ierror + END SUBROUTINE MPI_TYPE_UB + + SUBROUTINE MPI_INFO_DUP(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_INFO_DUP + + SUBROUTINE MPI_TYPE_DUP(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_TYPE_DUP + + SUBROUTINE MPI_ERRHANDLER_SET(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_ERRHANDLER_SET + + SUBROUTINE MPI_WIN_DELETE_ATTR(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_WIN_DELETE_ATTR + + SUBROUTINE MPI_INFO_GET_NKEYS(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_INFO_GET_NKEYS + + SUBROUTINE MPI_GROUP_EXCL(v0,v1,v2,v3,ierror) + INTEGER v0, v1, v2(*), v3 + INTEGER ierror + END SUBROUTINE MPI_GROUP_EXCL + + SUBROUTINE MPI_INFO_SET(v0,v1,v2,ierror) + INTEGER v0 + CHARACTER (LEN=*) v1, v2 + INTEGER ierror + END SUBROUTINE MPI_INFO_SET + + SUBROUTINE MPI_WAIT(v0,v1,ierror) + USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE + INTEGER v0, v1(MPI_STATUS_SIZE) + INTEGER ierror + END SUBROUTINE MPI_WAIT + + SUBROUTINE MPI_COMM_DELETE_ATTR(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_COMM_DELETE_ATTR + + SUBROUTINE MPI_COMM_GET_NAME(v0,v1,v2,ierror) + INTEGER v0 + CHARACTER (LEN=*) v1 + INTEGER v2 + INTEGER ierror + END SUBROUTINE MPI_COMM_GET_NAME + + SUBROUTINE MPI_TEST(v0,v1,v2,ierror) + USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE + INTEGER v0 + LOGICAL v1 + INTEGER v2(MPI_STATUS_SIZE) + INTEGER ierror + END SUBROUTINE MPI_TEST + + SUBROUTINE MPI_GET_COUNT(v0,v1,v2,ierror) + USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE + INTEGER v0(MPI_STATUS_SIZE), v1, v2 + INTEGER ierror + END SUBROUTINE MPI_GET_COUNT + + SUBROUTINE MPI_ADD_ERROR_CLASS(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_ADD_ERROR_CLASS + + SUBROUTINE MPI_COMM_FREE(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_COMM_FREE + + SUBROUTINE MPI_COMM_SET_NAME(v0,v1,ierror) + INTEGER v0 + CHARACTER (LEN=*) v1 + INTEGER ierror + END SUBROUTINE MPI_COMM_SET_NAME + + SUBROUTINE MPI_COMM_DISCONNECT(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_COMM_DISCONNECT + + SUBROUTINE MPI_IPROBE(v0,v1,v2,v3,v4,ierror) + USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE + INTEGER v0, v1, v2 + LOGICAL v3 + INTEGER v4(MPI_STATUS_SIZE) + INTEGER ierror + END SUBROUTINE MPI_IPROBE + + SUBROUTINE MPI_IMPROBE(v0,v1,v2,v3,v4,v5,ierror) + USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE + INTEGER v0, v1, v2, v3, v4 + INTEGER v5(MPI_STATUS_SIZE) + INTEGER ierror + END SUBROUTINE MPI_IMPROBE + + SUBROUTINE MPI_MPROBE(v0,v1,v2,v3,v4,ierror) + USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE + INTEGER v0, v1, v2, v3 + INTEGER v4(MPI_STATUS_SIZE) + INTEGER ierror + END SUBROUTINE MPI_MPROBE + + SUBROUTINE MPI_ADD_ERROR_CODE(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_ADD_ERROR_CODE + + SUBROUTINE MPI_COMM_GET_ERRHANDLER(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_COMM_GET_ERRHANDLER + + SUBROUTINE MPI_COMM_CREATE(v0,v1,v2,ierror) + INTEGER v0, v1, v2 + INTEGER ierror + END SUBROUTINE MPI_COMM_CREATE + + SUBROUTINE MPI_OP_FREE(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_OP_FREE + + SUBROUTINE MPI_TOPO_TEST(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_TOPO_TEST + + SUBROUTINE MPI_GET_PROCESSOR_NAME(v0,v1,ierror) + CHARACTER (LEN=*) v0 + INTEGER v1 + INTEGER ierror + END SUBROUTINE MPI_GET_PROCESSOR_NAME + + SUBROUTINE MPI_COMM_SIZE(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_COMM_SIZE + + SUBROUTINE MPI_WIN_UNLOCK(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_WIN_UNLOCK + + SUBROUTINE MPI_WIN_FLUSH(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_WIN_FLUSH + + SUBROUTINE MPI_WIN_FLUSH_LOCAL(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_WIN_FLUSH_LOCAL + + SUBROUTINE MPI_ERRHANDLER_FREE(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_ERRHANDLER_FREE + + SUBROUTINE MPI_COMM_REMOTE_SIZE(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_COMM_REMOTE_SIZE + + SUBROUTINE MPI_PROBE(v0,v1,v2,v3,ierror) + USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE + INTEGER v0, v1, v2, v3(MPI_STATUS_SIZE) + INTEGER ierror + END SUBROUTINE MPI_PROBE + + SUBROUTINE MPI_TYPE_HINDEXED(v0,v1,v2,v3,v4,ierror) + INTEGER v0, v1(*), v2(*), v3, v4 + INTEGER ierror + END SUBROUTINE MPI_TYPE_HINDEXED + + SUBROUTINE MPI_WIN_WAIT(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_WIN_WAIT + + SUBROUTINE MPI_WIN_SET_NAME(v0,v1,ierror) + INTEGER v0 + CHARACTER (LEN=*) v1 + INTEGER ierror + END SUBROUTINE MPI_WIN_SET_NAME + + SUBROUTINE MPI_TYPE_SIZE(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_TYPE_SIZE + + SUBROUTINE MPI_TYPE_SIZE_X(v0,v1,ierror) + USE MPI_CONSTANTS,ONLY:MPI_COUNT_KIND + INTEGER v0 + INTEGER(KIND=MPI_COUNT_KIND) v1 + INTEGER ierror + END SUBROUTINE MPI_TYPE_SIZE_X + + SUBROUTINE MPI_TYPE_CREATE_SUBARRAY(v0,v1,v2,v3,v4,v5,v6,ierror) + INTEGER v0, v1(*), v2(*), v3(*), v4, v5, v6 + INTEGER ierror + END SUBROUTINE MPI_TYPE_CREATE_SUBARRAY + + SUBROUTINE MPI_WIN_CREATE_ERRHANDLER(v0,v1,ierror) + INTERFACE + SUBROUTINE v0(vv0,vv1) + INTEGER vv0,vv1 + END SUBROUTINE + END INTERFACE + INTEGER v1 + INTEGER ierror + END SUBROUTINE MPI_WIN_CREATE_ERRHANDLER + + SUBROUTINE MPI_WIN_START(v0,v1,v2,ierror) + INTEGER v0, v1, v2 + INTEGER ierror + END SUBROUTINE MPI_WIN_START + + SUBROUTINE MPI_TYPE_FREE(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_TYPE_FREE + + SUBROUTINE MPI_WIN_FENCE(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_WIN_FENCE + + SUBROUTINE MPI_GRAPHDIMS_GET(v0,v1,v2,ierror) + INTEGER v0, v1, v2 + INTEGER ierror + END SUBROUTINE MPI_GRAPHDIMS_GET + + SUBROUTINE MPI_FILE_CALL_ERRHANDLER(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_FILE_CALL_ERRHANDLER + + SUBROUTINE MPI_TYPE_GET_ENVELOPE(v0,v1,v2,v3,v4,ierror) + INTEGER v0, v1, v2, v3, v4 + INTEGER ierror + END SUBROUTINE MPI_TYPE_GET_ENVELOPE + + SUBROUTINE MPI_TYPE_DELETE_ATTR(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_TYPE_DELETE_ATTR + + SUBROUTINE MPI_TYPE_CREATE_HINDEXED(v0,v1,v2,v3,v4,ierror) + USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND + INTEGER v0, v1(*) + INTEGER(KIND=MPI_ADDRESS_KIND) v2(*) + INTEGER v3, v4 + INTEGER ierror + END SUBROUTINE MPI_TYPE_CREATE_HINDEXED + + SUBROUTINE MPI_TYPE_CREATE_HINDEXED_BLOCK(v0,v1,v2,v3,v4,ierror) + USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND + INTEGER v0, v1 + INTEGER(KIND=MPI_ADDRESS_KIND) v2(*) + INTEGER v3, v4 + INTEGER ierror + END SUBROUTINE MPI_TYPE_CREATE_HINDEXED_BLOCK + + SUBROUTINE MPI_TYPE_INDEXED(v0,v1,v2,v3,v4,ierror) + INTEGER v0, v1(*), v2(*), v3, v4 + INTEGER ierror + END SUBROUTINE MPI_TYPE_INDEXED + + SUBROUTINE MPI_GREQUEST_COMPLETE(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_GREQUEST_COMPLETE + + SUBROUTINE MPI_GRAPH_NEIGHBORS_COUNT(v0,v1,v2,ierror) + INTEGER v0, v1, v2 + INTEGER ierror + END SUBROUTINE MPI_GRAPH_NEIGHBORS_COUNT + + SUBROUTINE MPI_GET_VERSION(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_GET_VERSION + + SUBROUTINE MPI_GET_LIBRARY_VERSION(v0,v1,ierror) + CHARACTER (LEN=*) v0 + INTEGER v1 + INTEGER ierror + END SUBROUTINE MPI_GET_LIBRARY_VERSION + + SUBROUTINE MSMPI_GET_BSEND_OVERHEAD(size) + INTEGER size + END SUBROUTINE MSMPI_GET_BSEND_OVERHEAD + + SUBROUTINE MSMPI_GET_VERSION(version) + INTEGER version + END SUBROUTINE MSMPI_GET_VERSION + + SUBROUTINE MPI_TYPE_HVECTOR(v0,v1,v2,v3,v4,ierror) + USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND + INTEGER v0, v1 + INTEGER(KIND=MPI_ADDRESS_KIND) v2 + INTEGER v3, v4 + INTEGER ierror + END SUBROUTINE MPI_TYPE_HVECTOR + + SUBROUTINE MPI_KEYVAL_FREE(v0,ierror) + INTEGER v0 + INTEGER ierror + END SUBROUTINE MPI_KEYVAL_FREE + + SUBROUTINE MPI_COMM_CALL_ERRHANDLER(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_COMM_CALL_ERRHANDLER + + SUBROUTINE MPI_COMM_JOIN(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_COMM_JOIN + + SUBROUTINE MPI_COMM_TEST_INTER(v0,v1,ierror) + INTEGER v0 + LOGICAL v1 + INTEGER ierror + END SUBROUTINE MPI_COMM_TEST_INTER + + SUBROUTINE MPI_CLOSE_PORT(v0,ierror) + CHARACTER (LEN=*) v0 + INTEGER ierror + END SUBROUTINE MPI_CLOSE_PORT + + SUBROUTINE MPI_TYPE_CREATE_F90_COMPLEX(v0,v1,v2,ierror) + INTEGER v0, v1, v2 + INTEGER ierror + END SUBROUTINE MPI_TYPE_CREATE_F90_COMPLEX + + SUBROUTINE MPI_GROUP_DIFFERENCE(v0,v1,v2,ierror) + INTEGER v0, v1, v2 + INTEGER ierror + END SUBROUTINE MPI_GROUP_DIFFERENCE + + SUBROUTINE MPI_COMM_DUP(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_COMM_DUP + + SUBROUTINE MPI_ERROR_CLASS(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_ERROR_CLASS + + SUBROUTINE MPI_GROUP_RANK(v0,v1,ierror) + INTEGER v0, v1 + INTEGER ierror + END SUBROUTINE MPI_GROUP_RANK + + + SUBROUTINE MPI_INIT(ierror) + INTEGER ierror + END SUBROUTINE MPI_INIT + + SUBROUTINE MPI_INIT_THREAD(v0,v1,ierror) + INTEGER v0, v1, ierror + END SUBROUTINE MPI_INIT_THREAD + + FUNCTION MPI_WTIME() + DOUBLE PRECISION MPI_WTIME + END FUNCTION MPI_WTIME + + FUNCTION MPI_WTICK() + DOUBLE PRECISION MPI_WTICK + END FUNCTION MPI_WTICK + + FUNCTION PMPI_WTIME() + DOUBLE PRECISION PMPI_WTIME + END FUNCTION PMPI_WTIME + + FUNCTION PMPI_WTICK() + DOUBLE PRECISION PMPI_WTICK + END FUNCTION PMPI_WTICK + + SUBROUTINE MPI_NULL_DELETE_FN(a,b,c,d,e) + INTEGER a,b,c,d,e + END SUBROUTINE MPI_NULL_DELETE_FN + + SUBROUTINE MPI_DUP_FN(a,b,c,d,e,f,g) + INTEGER a,b,c,d,e,g + LOGICAL f + END SUBROUTINE MPI_DUP_FN + + SUBROUTINE MPI_NULL_COPY_FN(a,b,c,d,e,f,g) + INTEGER a,b,c,d,e,g + LOGICAL f + END SUBROUTINE MPI_NULL_COPY_FN + + SUBROUTINE MPI_COMM_NULL_DELETE_FN(a,b,c,d,e) + USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND + INTEGER a,b,e + INTEGER (KIND=MPI_ADDRESS_KIND) c, d + END SUBROUTINE MPI_COMM_NULL_DELETE_FN + + SUBROUTINE MPI_COMM_DUP_FN(a,b,c,d,e,f,g) + USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND + INTEGER a,b,g + INTEGER (KIND=MPI_ADDRESS_KIND) c,d,e + LOGICAL f + END SUBROUTINE MPI_COMM_DUP_FN + + SUBROUTINE MPI_COMM_NULL_COPY_FN(a,b,c,d,e,f,g) + USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND + INTEGER a,b,g + INTEGER (KIND=MPI_ADDRESS_KIND) c,d,e + LOGICAL f + END SUBROUTINE MPI_COMM_NULL_COPY_FN + + SUBROUTINE MPI_TYPE_NULL_DELETE_FN(a,b,c,d,e) + USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND + INTEGER a,b,e + INTEGER (KIND=MPI_ADDRESS_KIND) c, d + END SUBROUTINE MPI_TYPE_NULL_DELETE_FN + + SUBROUTINE MPI_TYPE_DUP_FN(a,b,c,d,e,f,g) + USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND + INTEGER a,b,g + INTEGER (KIND=MPI_ADDRESS_KIND) c,d,e + LOGICAL f + END SUBROUTINE MPI_TYPE_DUP_FN + + SUBROUTINE MPI_TYPE_NULL_COPY_FN(a,b,c,d,e,f,g) + USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND + INTEGER a,b,g + INTEGER (KIND=MPI_ADDRESS_KIND) c,d,e + LOGICAL f + END SUBROUTINE MPI_TYPE_NULL_COPY_FN + + SUBROUTINE MPI_WIN_NULL_DELETE_FN(a,b,c,d,e) + USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND + INTEGER a,b,e + INTEGER (KIND=MPI_ADDRESS_KIND) c, d + END SUBROUTINE MPI_WIN_NULL_DELETE_FN + + SUBROUTINE MPI_WIN_DUP_FN(a,b,c,d,e,f,g) + USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND + INTEGER a,b,g + INTEGER (KIND=MPI_ADDRESS_KIND) c,d,e + LOGICAL f + END SUBROUTINE MPI_WIN_DUP_FN + + SUBROUTINE MPI_WIN_NULL_COPY_FN(a,b,c,d,e,f,g) + USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND + INTEGER a,b,g + INTEGER (KIND=MPI_ADDRESS_KIND) c,d,e + LOGICAL f + END SUBROUTINE MPI_WIN_NULL_COPY_FN + + END INTERFACE + END MODULE MPI_BASE + + MODULE MPI_SIZEOFS +! This module contains the definitions for MPI_SIZEOF for the +! predefined, named types in Fortran 90. This is provided +! as a separate module to allow MPI_SIZEOF to supply the +! basic size information even when we do not provide the +! arbitrary choice types + IMPLICIT NONE + + PUBLIC :: MPI_SIZEOF + INTERFACE MPI_SIZEOF + MODULE PROCEDURE MPI_SIZEOF_I, MPI_SIZEOF_R, & + & MPI_SIZEOF_L, MPI_SIZEOF_CH, MPI_SIZEOF_CX,& + & MPI_SIZEOF_IV, MPI_SIZEOF_RV, & + & MPI_SIZEOF_LV, MPI_SIZEOF_CHV, MPI_SIZEOF_CXV + MODULE PROCEDURE MPI_SIZEOF_D, MPI_SIZEOF_DV + END INTERFACE ! MPI_SIZEOF + + CONTAINS + + SUBROUTINE MPI_SIZEOF_I( X, SIZE, IERROR ) + INTEGER X + INTEGER SIZE, IERROR + SIZE = 4 + IERROR = 0 + END SUBROUTINE MPI_SIZEOF_I + + SUBROUTINE MPI_SIZEOF_R( X, SIZE, IERROR ) + REAL X + INTEGER SIZE, IERROR + SIZE = 4 + IERROR = 0 + END SUBROUTINE MPI_SIZEOF_R + +! If reals and doubles have been forced to the same size (e.g., with +! -i8 -r8 to compilers like g95), then the compiler may refuse to +! allow interfaces that use real and double precision (failing to +! determine which one is intended) + SUBROUTINE MPI_SIZEOF_D( X, SIZE, IERROR ) + DOUBLE PRECISION X + INTEGER SIZE, IERROR + SIZE = 8 + IERROR = 0 + END SUBROUTINE MPI_SIZEOF_D + + SUBROUTINE MPI_SIZEOF_L( X, SIZE, IERROR ) + LOGICAL X + INTEGER SIZE, IERROR + SIZE = 4 + IERROR = 0 + END SUBROUTINE MPI_SIZEOF_L + + SUBROUTINE MPI_SIZEOF_CH( X, SIZE, IERROR ) + CHARACTER X + INTEGER SIZE, IERROR + SIZE = 1 + IERROR = 0 + END SUBROUTINE MPI_SIZEOF_CH + + SUBROUTINE MPI_SIZEOF_CX( X, SIZE, IERROR ) + COMPLEX X + INTEGER SIZE, IERROR + SIZE = 2*4 + IERROR = 0 + END SUBROUTINE MPI_SIZEOF_CX + + SUBROUTINE MPI_SIZEOF_IV( X, SIZE, IERROR ) + INTEGER X(*) + INTEGER SIZE, IERROR + SIZE = 4 + IERROR = 0 + END SUBROUTINE MPI_SIZEOF_IV + + SUBROUTINE MPI_SIZEOF_RV( X, SIZE, IERROR ) + REAL X(*) + INTEGER SIZE, IERROR + SIZE = 4 + IERROR = 0 + END SUBROUTINE MPI_SIZEOF_RV + +! If reals and doubles have been forced to the same size (e.g., with +! -i8 -r8 to compilers like g95), then the compiler may refuse to +! allow interfaces that use real and double precision (failing to +! determine which one is intended) + SUBROUTINE MPI_SIZEOF_DV( X, SIZE, IERROR ) + DOUBLE PRECISION X(*) + INTEGER SIZE, IERROR + SIZE = 8 + IERROR = 0 + END SUBROUTINE MPI_SIZEOF_DV + + SUBROUTINE MPI_SIZEOF_LV( X, SIZE, IERROR ) + LOGICAL X(*) + INTEGER SIZE, IERROR + SIZE = 4 + IERROR = 0 + END SUBROUTINE MPI_SIZEOF_LV + + SUBROUTINE MPI_SIZEOF_CHV( X, SIZE, IERROR ) + CHARACTER X(*) + INTEGER SIZE, IERROR + SIZE = 1 + IERROR = 0 + END SUBROUTINE MPI_SIZEOF_CHV + + SUBROUTINE MPI_SIZEOF_CXV( X, SIZE, IERROR ) + COMPLEX X(*) + INTEGER SIZE, IERROR + SIZE = 2*4 + IERROR = 0 + END SUBROUTINE MPI_SIZEOF_CXV + +! We don't include double complex. If we did, we'd need to include the +! same hack as for real and double above if the compiler has been forced +! to make them the same size. + END MODULE MPI_SIZEOFS + + MODULE MPI + USE MPI_CONSTANTS + USE MPI_SIZEOFS + USE MPI_BASE + END MODULE MPI diff --git a/deps/msmpi-10.1.2/sdk/mpi.h b/deps/msmpi-10.1.3/sdk/mpi.h similarity index 95% rename from deps/msmpi-10.1.2/sdk/mpi.h rename to deps/msmpi-10.1.3/sdk/mpi.h index ad8665de7b0b0c93609ef0b1f6164a2a2af03c35..c3925e7fe7ebdcf390cd74d65579933c9243dd03 100644 --- a/deps/msmpi-10.1.2/sdk/mpi.h +++ b/deps/msmpi-10.1.3/sdk/mpi.h @@ -1,7039 +1,7039 @@ -/* - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. - * - * (C) 2001 by Argonne National Laboratory. - * (C) 2015 by Microsoft Corporation. - * - * MPICH COPYRIGHT - * - * The following is a notice of limited availability of the code, and disclaimer - * which must be included in the prologue of the code and in all source listings - * of the code. - * - * Copyright Notice - * + 2002 University of Chicago - * - * Permission is hereby granted to use, reproduce, prepare derivative works, and - * to redistribute to others. This software was authored by: - * - * Mathematics and Computer Science Division - * Argonne National Laboratory, Argonne IL 60439 - * - * (and) - * - * Department of Computer Science - * University of Illinois at Urbana-Champaign - * - * - * GOVERNMENT LICENSE - * - * Portions of this material resulted from work developed under a U.S. - * Government Contract and are subject to the following license: the Government - * is granted for itself and others acting on its behalf a paid-up, nonexclusive, - * irrevocable worldwide license in this computer software to reproduce, prepare - * derivative works, and perform publicly and display publicly. - * - * DISCLAIMER - * - * This computer code material was prepared, in part, as an account of work - * sponsored by an agency of the United States Government. Neither the United - * States, nor the University of Chicago, nor any of their employees, makes any - * warranty express or implied, or assumes any legal liability or responsibility - * for the accuracy, completeness, or usefulness of any information, apparatus, - * product, or process disclosed, or represents that its use would not infringe - * privately owned rights. - * - */ - -#ifndef MPI_INCLUDED -#define MPI_INCLUDED - -#include <stdint.h> -#ifndef MSMPI_NO_SAL -#include <sal.h> -#endif - -#if defined(_MSC_VER) && _MSC_VER < 1600 -typedef signed __int64 _MSMPI_int64_t; -#else -#include <stdint.h> -typedef int64_t _MSMPI_int64_t; -#endif - -#if defined(__cplusplus) -extern "C" { -#endif - - -#ifndef MSMPI_VER -#define MSMPI_VER 0x100 -#endif - - -/*---------------------------------------------------------------------------*/ -/* SAL ANNOTATIONS */ -/*---------------------------------------------------------------------------*/ -/* - * Define SAL annotations if they aren't defined yet. - */ -#ifndef _Success_ -#define _Success_( x ) -#endif -#ifndef _Notref_ -#define _Notref_ -#endif -#ifndef _When_ -#define _When_( x, y ) -#endif -#ifndef _Pre_valid_ -#define _Pre_valid_ -#endif -#ifndef _Pre_opt_valid_ -#define _Pre_opt_valid_ -#endif -#ifndef _Post_invalid_ -#define _Post_invalid_ -#endif -#ifndef _In_ -#define _In_ -#endif -#ifndef _In_z_ -#define _In_z_ -#endif -#ifndef _In_opt_ -#define _In_opt_ -#endif -#ifndef _In_range_ -#define _In_range_( x, y ) -#endif -#ifndef _In_reads_ -#define _In_reads_( x ) -#endif -#ifndef _In_reads_z_ -#define _In_reads_z_( x ) -#endif -#ifndef _In_reads_opt_ -#define _In_reads_opt_( x ) -#endif -#ifndef _In_reads_bytes_opt_ -#define _In_reads_bytes_opt_( x ) -#endif -#ifndef _Out_ -#define _Out_ -#endif -#ifndef _Out_opt_ -#define _Out_opt_ -#endif -#ifndef _Out_writes_ -#define _Out_writes_( x ) -#endif -#ifndef _Out_writes_z_ -#define _Out_writes_z_( x ) -#endif -#ifndef _Out_writes_opt_ -#define _Out_writes_opt_( x ) -#endif -#ifndef _Out_writes_to_opt_ -#define _Out_writes_to_opt_( x, y ) -#endif -#ifndef _Out_writes_bytes_opt_ -#define _Out_writes_bytes_opt_( x ) -#endif -#ifndef _Inout_ -#define _Inout_ -#endif -#ifndef _Inout_opt_ -#define _Inout_opt_ -#endif -#ifndef _Inout_updates_opt_ -#define _Inout_updates_opt_( x ) -#endif -#ifndef _Deref_in_range_ -#define _Deref_in_range_( x, y ) -#endif -#ifndef _Deref_out_range_ -#define _Deref_out_range_( x, y ) -#endif -#ifndef _Pre_satisfies_ -#define _Pre_satisfies_( x ) -#endif -#ifndef _Post_satisfies_ -#define _Post_satisfies_( x ) -#endif -#ifndef _Post_equal_to_ -#define _Post_equal_to_( x ) -#endif - -#define _mpi_updates_(size) _When_(size != 0, _Inout_updates_(size)) -#define _mpi_reads_(size) _When_(size != 0, _In_reads_(size)) -#define _mpi_reads_bytes_(size) _When_(size != 0, _In_reads_bytes_(size)) -#define _mpi_writes_(size) _When_(size != 0, _Out_writes_(size)) -#define _mpi_writes_bytes_(size) _When_(size != 0, _Out_writes_bytes_(size)) -#define _mpi_writes_to_(size, count) _When_(size != 0, _Out_writes_to_(size, count)) -#define _mpi_out_flag_ _Out_ _Deref_out_range_(0, 1) -#define _mpi_out_(param, sentinel) _Out_ _Post_satisfies_(*param == sentinel || *param >= 0) -#define _mpi_out_range_(param, sentinel, ub) \ - _Out_ _Post_satisfies_(*param == sentinel || (ub > 0 && *param >= 0 && *param <= ub)) -#define _mpi_position_(ub) _Inout_ _Deref_in_range_(0, ub) _Deref_out_range_(0, ub) -#define _mpi_coll_rank_(param) _In_ _Pre_satisfies_(param == MPI_ROOT || param >= MPI_PROC_NULL) - -/*---------------------------------------------------------------------------*/ -/* MSMPI Calling convention */ -/*---------------------------------------------------------------------------*/ - -#define MPIAPI __stdcall - - -/*---------------------------------------------------------------------------*/ -/* MPI ERROR CLASS */ -/*---------------------------------------------------------------------------*/ - -#define MPI_SUCCESS 0 /* Successful return code */ - -#define MPI_ERR_BUFFER 1 /* Invalid buffer pointer */ -#define MPI_ERR_COUNT 2 /* Invalid count argument */ -#define MPI_ERR_TYPE 3 /* Invalid datatype argument */ -#define MPI_ERR_TAG 4 /* Invalid tag argument */ -#define MPI_ERR_COMM 5 /* Invalid communicator */ -#define MPI_ERR_RANK 6 /* Invalid rank */ -#define MPI_ERR_ROOT 7 /* Invalid root */ -#define MPI_ERR_GROUP 8 /* Invalid group */ -#define MPI_ERR_OP 9 /* Invalid operation */ -#define MPI_ERR_TOPOLOGY 10 /* Invalid topology */ -#define MPI_ERR_DIMS 11 /* Invalid dimension argument */ -#define MPI_ERR_ARG 12 /* Invalid argument */ -#define MPI_ERR_UNKNOWN 13 /* Unknown error */ -#define MPI_ERR_TRUNCATE 14 /* Message truncated on receive */ -#define MPI_ERR_OTHER 15 /* Other error; use Error_string */ -#define MPI_ERR_INTERN 16 /* Internal error code */ -#define MPI_ERR_IN_STATUS 17 /* Error code is in status */ -#define MPI_ERR_PENDING 18 /* Pending request */ -#define MPI_ERR_REQUEST 19 /* Invalid request (handle) */ -#define MPI_ERR_ACCESS 20 /* Premission denied */ -#define MPI_ERR_AMODE 21 /* Error related to amode passed to MPI_File_open */ -#define MPI_ERR_BAD_FILE 22 /* Invalid file name (e.g., path name too long) */ -#define MPI_ERR_CONVERSION 23 /* Error in user data conversion function */ -#define MPI_ERR_DUP_DATAREP 24 /* Data representation identifier already registered */ -#define MPI_ERR_FILE_EXISTS 25 /* File exists */ -#define MPI_ERR_FILE_IN_USE 26 /* File operation could not be completed, file in use */ -#define MPI_ERR_FILE 27 /* Invalid file handle */ -#define MPI_ERR_INFO 28 /* Invalid info argument */ -#define MPI_ERR_INFO_KEY 29 /* Key longer than MPI_MAX_INFO_KEY */ -#define MPI_ERR_INFO_VALUE 30 /* Value longer than MPI_MAX_INFO_VAL */ -#define MPI_ERR_INFO_NOKEY 31 /* Invalid key passed to MPI_Info_delete */ -#define MPI_ERR_IO 32 /* Other I/O error */ -#define MPI_ERR_NAME 33 /* Invalid service name in MPI_Lookup_name */ -#define MPI_ERR_NO_MEM 34 /* Alloc_mem could not allocate memory */ -#define MPI_ERR_NOT_SAME 35 /* Collective argument/sequence not the same on all processes */ -#define MPI_ERR_NO_SPACE 36 /* Not enough space */ -#define MPI_ERR_NO_SUCH_FILE 37 /* File does not exist */ -#define MPI_ERR_PORT 38 /* Invalid port name in MPI_comm_connect*/ -#define MPI_ERR_QUOTA 39 /* Quota exceeded */ -#define MPI_ERR_READ_ONLY 40 /* Read-only file or file system */ -#define MPI_ERR_SERVICE 41 /* Invalid service name in MPI_Unpublish_name */ -#define MPI_ERR_SPAWN 42 /* Error in spawning processes */ -#define MPI_ERR_UNSUPPORTED_DATAREP 43 /* Unsupported dararep in MPI_File_set_view */ -#define MPI_ERR_UNSUPPORTED_OPERATION 44 /* Unsupported operation on file */ -#define MPI_ERR_WIN 45 /* Invalid win argument */ -#define MPI_ERR_BASE 46 /* Invalid base passed to MPI_Free_mem */ -#define MPI_ERR_LOCKTYPE 47 /* Invalid locktype argument */ -#define MPI_ERR_KEYVAL 48 /* Invalid keyval */ -#define MPI_ERR_RMA_CONFLICT 49 /* Conflicting accesses to window */ -#define MPI_ERR_RMA_SYNC 50 /* Wrong synchronization of RMA calls */ -#define MPI_ERR_SIZE 51 /* Invalid size argument */ -#define MPI_ERR_DISP 52 /* Invalid disp argument */ -#define MPI_ERR_ASSERT 53 /* Invalid assert argument */ - -#define MPI_ERR_LASTCODE 0x3fffffff /* Last valid error code for a predefined error class */ - -#define MPICH_ERR_LAST_CLASS 53 - - -/*---------------------------------------------------------------------------*/ -/* MPI Basic integer types */ -/*---------------------------------------------------------------------------*/ - -/* Address size integer */ -#ifdef _WIN64 -typedef _MSMPI_int64_t MPI_Aint; -#else -typedef int MPI_Aint; -#endif - -/* Fortran INTEGER */ -typedef int MPI_Fint; - -/* File offset */ -typedef _MSMPI_int64_t MPI_Offset; - -// -// MPI-3 standard defines this type that can be used to address locations -// within either memory or files as well as express count values. -// -typedef _MSMPI_int64_t MPI_Count; - - -/*---------------------------------------------------------------------------*/ -/* MPI_Datatype */ -/*---------------------------------------------------------------------------*/ - -typedef int MPI_Datatype; -#define MPI_DATATYPE_NULL ((MPI_Datatype)0x0c000000) - -#define MPI_CHAR ((MPI_Datatype)0x4c000101) -#define MPI_UNSIGNED_CHAR ((MPI_Datatype)0x4c000102) -#define MPI_SHORT ((MPI_Datatype)0x4c000203) -#define MPI_UNSIGNED_SHORT ((MPI_Datatype)0x4c000204) -#define MPI_INT ((MPI_Datatype)0x4c000405) -#define MPI_UNSIGNED ((MPI_Datatype)0x4c000406) -#define MPI_LONG ((MPI_Datatype)0x4c000407) -#define MPI_UNSIGNED_LONG ((MPI_Datatype)0x4c000408) -#define MPI_LONG_LONG_INT ((MPI_Datatype)0x4c000809) -#define MPI_LONG_LONG MPI_LONG_LONG_INT -#define MPI_FLOAT ((MPI_Datatype)0x4c00040a) -#define MPI_DOUBLE ((MPI_Datatype)0x4c00080b) -#define MPI_LONG_DOUBLE ((MPI_Datatype)0x4c00080c) -#define MPI_BYTE ((MPI_Datatype)0x4c00010d) -#define MPI_WCHAR ((MPI_Datatype)0x4c00020e) - -#define MPI_PACKED ((MPI_Datatype)0x4c00010f) -#define MPI_LB ((MPI_Datatype)0x4c000010) -#define MPI_UB ((MPI_Datatype)0x4c000011) - -#define MPI_C_COMPLEX ((MPI_Datatype)0x4c000812) -#define MPI_C_FLOAT_COMPLEX ((MPI_Datatype)0x4c000813) -#define MPI_C_DOUBLE_COMPLEX ((MPI_Datatype)0x4c001014) -#define MPI_C_LONG_DOUBLE_COMPLEX ((MPI_Datatype)0x4c001015) - -#define MPI_2INT ((MPI_Datatype)0x4c000816) -#define MPI_C_BOOL ((MPI_Datatype)0x4c000117) -#define MPI_SIGNED_CHAR ((MPI_Datatype)0x4c000118) -#define MPI_UNSIGNED_LONG_LONG ((MPI_Datatype)0x4c000819) - -/* Fortran types */ -#define MPI_CHARACTER ((MPI_Datatype)0x4c00011a) -#define MPI_INTEGER ((MPI_Datatype)0x4c00041b) -#define MPI_REAL ((MPI_Datatype)0x4c00041c) -#define MPI_LOGICAL ((MPI_Datatype)0x4c00041d) -#define MPI_COMPLEX ((MPI_Datatype)0x4c00081e) -#define MPI_DOUBLE_PRECISION ((MPI_Datatype)0x4c00081f) -#define MPI_2INTEGER ((MPI_Datatype)0x4c000820) -#define MPI_2REAL ((MPI_Datatype)0x4c000821) -#define MPI_DOUBLE_COMPLEX ((MPI_Datatype)0x4c001022) -#define MPI_2DOUBLE_PRECISION ((MPI_Datatype)0x4c001023) -#define MPI_2COMPLEX ((MPI_Datatype)0x4c001024) -#define MPI_2DOUBLE_COMPLEX ((MPI_Datatype)0x4c002025) - -/* Size-specific types (see MPI 2.2, 16.2.5) */ -#define MPI_REAL2 MPI_DATATYPE_NULL -#define MPI_REAL4 ((MPI_Datatype)0x4c000427) -#define MPI_COMPLEX8 ((MPI_Datatype)0x4c000828) -#define MPI_REAL8 ((MPI_Datatype)0x4c000829) -#define MPI_COMPLEX16 ((MPI_Datatype)0x4c00102a) -#define MPI_REAL16 MPI_DATATYPE_NULL -#define MPI_COMPLEX32 MPI_DATATYPE_NULL -#define MPI_INTEGER1 ((MPI_Datatype)0x4c00012d) -#define MPI_COMPLEX4 MPI_DATATYPE_NULL -#define MPI_INTEGER2 ((MPI_Datatype)0x4c00022f) -#define MPI_INTEGER4 ((MPI_Datatype)0x4c000430) -#define MPI_INTEGER8 ((MPI_Datatype)0x4c000831) -#define MPI_INTEGER16 MPI_DATATYPE_NULL -#define MPI_INT8_T ((MPI_Datatype)0x4c000133) -#define MPI_INT16_T ((MPI_Datatype)0x4c000234) -#define MPI_INT32_T ((MPI_Datatype)0x4c000435) -#define MPI_INT64_T ((MPI_Datatype)0x4c000836) -#define MPI_UINT8_T ((MPI_Datatype)0x4c000137) -#define MPI_UINT16_T ((MPI_Datatype)0x4c000238) -#define MPI_UINT32_T ((MPI_Datatype)0x4c000439) -#define MPI_UINT64_T ((MPI_Datatype)0x4c00083a) - -#ifdef _WIN64 -#define MPI_AINT ((MPI_Datatype)0x4c00083b) -#else -#define MPI_AINT ((MPI_Datatype)0x4c00043b) -#endif -#define MPI_OFFSET ((MPI_Datatype)0x4c00083c) -#define MPI_COUNT ((MPI_Datatype)0x4c00083d) - -/* - * The layouts for the types MPI_DOUBLE_INT etc. are - * - * struct { double a; int b; } - */ -#define MPI_FLOAT_INT ((MPI_Datatype)0x8c000000) -#define MPI_DOUBLE_INT ((MPI_Datatype)0x8c000001) -#define MPI_LONG_INT ((MPI_Datatype)0x8c000002) -#define MPI_SHORT_INT ((MPI_Datatype)0x8c000003) -#define MPI_LONG_DOUBLE_INT ((MPI_Datatype)0x8c000004) - - -/*---------------------------------------------------------------------------*/ -/* MPI_Comm */ -/*---------------------------------------------------------------------------*/ - -typedef int MPI_Comm; -#define MPI_COMM_NULL ((MPI_Comm)0x04000000) - -#define MPI_COMM_WORLD ((MPI_Comm)0x44000000) -#define MPI_COMM_SELF ((MPI_Comm)0x44000001) - -/*---------------------------------------------------------------------------*/ -/* MPI_Comm Split Types */ -/*---------------------------------------------------------------------------*/ -enum -{ - MPI_COMM_TYPE_SHARED = 1, -}; - - -/*---------------------------------------------------------------------------*/ -/* MPI_Win */ -/*---------------------------------------------------------------------------*/ - -typedef int MPI_Win; -#define MPI_WIN_NULL ((MPI_Win)0x20000000) - - -/*---------------------------------------------------------------------------*/ -/* MPI_File */ -/*---------------------------------------------------------------------------*/ - -typedef struct ADIOI_FileD* MPI_File; -#define MPI_FILE_NULL ((MPI_File)0) - - -/*---------------------------------------------------------------------------*/ -/* MPI_Op */ -/*---------------------------------------------------------------------------*/ - -typedef int MPI_Op; -#define MPI_OP_NULL ((MPI_Op)0x18000000) - -#define MPI_MAX ((MPI_Op)0x58000001) -#define MPI_MIN ((MPI_Op)0x58000002) -#define MPI_SUM ((MPI_Op)0x58000003) -#define MPI_PROD ((MPI_Op)0x58000004) -#define MPI_LAND ((MPI_Op)0x58000005) -#define MPI_BAND ((MPI_Op)0x58000006) -#define MPI_LOR ((MPI_Op)0x58000007) -#define MPI_BOR ((MPI_Op)0x58000008) -#define MPI_LXOR ((MPI_Op)0x58000009) -#define MPI_BXOR ((MPI_Op)0x5800000a) -#define MPI_MINLOC ((MPI_Op)0x5800000b) -#define MPI_MAXLOC ((MPI_Op)0x5800000c) -#define MPI_REPLACE ((MPI_Op)0x5800000d) -#define MPI_NO_OP ((MPI_Op)0x5800000e) - - -/*---------------------------------------------------------------------------*/ -/* MPI_Info */ -/*---------------------------------------------------------------------------*/ - -typedef int MPI_Info; -#define MPI_INFO_NULL ((MPI_Info)0x1c000000) - - -/*---------------------------------------------------------------------------*/ -/* MPI_Request */ -/*---------------------------------------------------------------------------*/ - -typedef int MPI_Request; -#define MPI_REQUEST_NULL ((MPI_Request)0x2c000000) - - -/*---------------------------------------------------------------------------*/ -/* MPI_Group */ -/*---------------------------------------------------------------------------*/ - -typedef int MPI_Group; -#define MPI_GROUP_NULL ((MPI_Group)0x08000000) - -#define MPI_GROUP_EMPTY ((MPI_Group)0x48000000) - - -/*---------------------------------------------------------------------------*/ -/* MPI_Errhandler */ -/*---------------------------------------------------------------------------*/ - -typedef int MPI_Errhandler; -#define MPI_ERRHANDLER_NULL ((MPI_Errhandler)0x14000000) - -#define MPI_ERRORS_ARE_FATAL ((MPI_Errhandler)0x54000000) -#define MPI_ERRORS_RETURN ((MPI_Errhandler)0x54000001) - - -/*---------------------------------------------------------------------------*/ -/* MPI_Message */ -/*---------------------------------------------------------------------------*/ - -typedef int MPI_Message; -#define MPI_MESSAGE_NULL ((MPI_Message)0x30000000) -#define MPI_MESSAGE_NO_PROC ((MPI_Message)0x70000000) - -/*---------------------------------------------------------------------------*/ -/* MPI_Status */ -/*---------------------------------------------------------------------------*/ - -typedef struct MPI_Status -{ - int internal[2]; - - int MPI_SOURCE; - int MPI_TAG; - int MPI_ERROR; - -} MPI_Status; - -#define MPI_STATUS_IGNORE ((MPI_Status*)(MPI_Aint)1) -#define MPI_STATUSES_IGNORE ((MPI_Status*)(MPI_Aint)1) - - -/*---------------------------------------------------------------------------*/ -/* MISC CONSTANTS */ -/*---------------------------------------------------------------------------*/ - -/* Used in: Count, Index, Rank, Color, Toplogy, Precision, Exponent range */ -#define MPI_UNDEFINED (-32766) - -/* Used in: Rank */ -#define MPI_PROC_NULL (-1) -#define MPI_ANY_SOURCE (-2) -#define MPI_ROOT (-3) - -/* Used in: Tag */ -#define MPI_ANY_TAG (-1) - -/* Used for: Buffer address */ -#define MPI_BOTTOM ((void*)0) -#define MPI_UNWEIGHTED ((int*)1) -#define MPI_WEIGHTS_EMPTY ((int*)2) - -/*---------------------------------------------------------------------------*/ -/* Macro for function return values. */ -/*---------------------------------------------------------------------------*/ -#define MPI_METHOD _Success_( return == MPI_SUCCESS ) int MPIAPI - - -/*---------------------------------------------------------------------------*/ -/* Chapter 3: Point-to-Point Communication */ -/*---------------------------------------------------------------------------*/ - -/*---------------------------------------------*/ -/* Section 3.2: Blocking Communication */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Send( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm - ); - -MPI_METHOD -PMPI_Send( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm - ); - -MPI_METHOD -MPI_Recv( - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_ANY_SOURCE) int source, - _In_range_(>=, MPI_ANY_TAG) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_Recv( - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_ANY_SOURCE) int source, - _In_range_(>=, MPI_ANY_TAG) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Status* status - ); - -_Pre_satisfies_(status != MPI_STATUS_IGNORE) -MPI_METHOD -MPI_Get_count( - _In_ const MPI_Status* status, - _In_ MPI_Datatype datatype, - _mpi_out_(count, MPI_UNDEFINED) int* count - ); - -_Pre_satisfies_(status != MPI_STATUS_IGNORE) -MPI_METHOD -PMPI_Get_count( - _In_ const MPI_Status* status, - _In_ MPI_Datatype datatype, - _mpi_out_(count, MPI_UNDEFINED) int* count - ); - - -/*---------------------------------------------*/ -/* Section 3.4: Communication Modes */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Bsend( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm - ); - -MPI_METHOD -PMPI_Bsend( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm - ); - -MPI_METHOD -MPI_Ssend( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm - ); - -MPI_METHOD -PMPI_Ssend( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm - ); - -MPI_METHOD -MPI_Rsend( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm - ); - -MPI_METHOD -PMPI_Rsend( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm - ); - - -/*---------------------------------------------*/ -/* Section 3.6: Buffer Allocation */ -/*---------------------------------------------*/ - -/* Upper bound on bsend overhead for each message */ -#define MSMPI_BSEND_OVERHEAD_V1 95 -#define MSMPI_BSEND_OVERHEAD_V2 MSMPI_BSEND_OVERHEAD_V1 - -#if MSMPI_VER > 0x300 -# define MPI_BSEND_OVERHEAD MSMPI_Get_bsend_overhead() -#else -# define MPI_BSEND_OVERHEAD MSMPI_BSEND_OVERHEAD_V1 -#endif - -MPI_METHOD -MPI_Buffer_attach( - _In_ void* buffer, - _In_range_(>=, 0) int size - ); - -MPI_METHOD -PMPI_Buffer_attach( - _In_ void* buffer, - _In_range_(>=, 0) int size - ); - -MPI_METHOD -MPI_Buffer_detach( - _Out_ void* buffer_addr, - _Out_ int* size - ); - -MPI_METHOD -PMPI_Buffer_detach( - _Out_ void* buffer_addr, - _Out_ int* size - ); - - -/*---------------------------------------------*/ -/* Section 3.7: Nonblocking Communication */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Isend( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -PMPI_Isend( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -MPI_Ibsend( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -PMPI_Ibsend( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -MPI_Issend( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -PMPI_Issend( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -MPI_Irsend( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -PMPI_Irsend( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -MPI_Irecv( - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_ANY_SOURCE) int source, - _In_range_(>=, MPI_ANY_TAG) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -PMPI_Irecv( - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_ANY_SOURCE) int source, - _In_range_(>=, MPI_ANY_TAG) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - - -/*---------------------------------------------*/ -/* Section 3.7.3: Communication Completion */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Wait( - _Inout_ _Post_equal_to_(MPI_REQUEST_NULL) MPI_Request* request, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_Wait( - _Inout_ _Post_equal_to_(MPI_REQUEST_NULL) MPI_Request* request, - _Out_ MPI_Status* status - ); - -_Success_(return == MPI_SUCCESS && *flag != 0) -int -MPIAPI -MPI_Test( - _Inout_ _Post_equal_to_(MPI_REQUEST_NULL) MPI_Request* request, - _mpi_out_flag_ int* flag, - _Out_ MPI_Status* status - ); - -_Success_(return == MPI_SUCCESS && *flag != 0) -int -MPIAPI -PMPI_Test( - _Inout_ _Post_equal_to_(MPI_REQUEST_NULL) MPI_Request* request, - _mpi_out_flag_ int* flag, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_Request_free( - _Inout_ _Post_equal_to_(MPI_REQUEST_NULL) MPI_Request* request - ); - -MPI_METHOD -PMPI_Request_free( - _Inout_ _Post_equal_to_(MPI_REQUEST_NULL) MPI_Request* request - ); - - -/*---------------------------------------------*/ -/* Section 3.7.5: Multiple Completions */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Waitany( - _In_range_(>=, 0) int count, - _mpi_updates_(count) MPI_Request array_of_requests[], - _mpi_out_range_(index, MPI_UNDEFINED, (count - 1)) int* index, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_Waitany( - _In_range_(>=, 0) int count, - _mpi_updates_(count) MPI_Request array_of_requests[], - _mpi_out_range_(index, MPI_UNDEFINED, (count - 1)) int* index, - _Out_ MPI_Status* status - ); - -_Success_(return == MPI_SUCCESS && *flag != 0) -int -MPIAPI -MPI_Testany( - _In_range_(>=, 0) int count, - _mpi_updates_(count) MPI_Request array_of_requests[], - _mpi_out_range_(index, MPI_UNDEFINED, (count - 1)) int* index, - _mpi_out_flag_ int* flag, - _Out_ MPI_Status* status - ); - -_Success_(return == MPI_SUCCESS && *flag != 0) -int -MPIAPI -PMPI_Testany( - _In_range_(>=, 0) int count, - _mpi_updates_(count) MPI_Request array_of_requests[], - _mpi_out_range_(index, MPI_UNDEFINED, (count - 1)) int* index, - _mpi_out_flag_ int* flag, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_Waitall( - _In_range_(>=, 0) int count, - _mpi_updates_(count) MPI_Request array_of_requests[], - _Out_writes_opt_(count) MPI_Status array_of_statuses[] - ); - -MPI_METHOD -PMPI_Waitall( - _In_range_(>=, 0) int count, - _mpi_updates_(count) MPI_Request array_of_requests[], - _Out_writes_opt_(count) MPI_Status array_of_statuses[] - ); - -_Success_(return == MPI_SUCCESS && *flag != 0) -int -MPIAPI -MPI_Testall( - _In_range_(>=, 0) int count, - _mpi_updates_(count) MPI_Request array_of_requests[], - _mpi_out_flag_ int* flag, - _Out_writes_opt_(count) MPI_Status array_of_statuses[] - ); - -_Success_(return == MPI_SUCCESS && *flag != 0) -int -MPIAPI -PMPI_Testall( - _In_range_(>=, 0) int count, - _mpi_updates_(count) MPI_Request array_of_requests[], - _mpi_out_flag_ int* flag, - _Out_writes_opt_(count) MPI_Status array_of_statuses[] -); - -MPI_METHOD -MPI_Waitsome( - _In_range_(>=, 0) int incount, - _mpi_updates_(incount) MPI_Request array_of_requests[], - _mpi_out_range_(outcount, MPI_UNDEFINED, incount) int* outcount, - _mpi_writes_to_(incount,*outcount) int array_of_indices[], - _Out_writes_to_opt_(incount, *outcount) MPI_Status array_of_statuses[] - ); - -MPI_METHOD -PMPI_Waitsome( - _In_range_(>=, 0) int incount, - _mpi_updates_(incount) MPI_Request array_of_requests[], - _mpi_out_range_(outcount, MPI_UNDEFINED, incount) int* outcount, - _mpi_writes_to_(incount,*outcount) int array_of_indices[], - _Out_writes_to_opt_(incount, *outcount) MPI_Status array_of_statuses[] - ); - -_Success_(return == MPI_SUCCESS && *outcount > 0) -int -MPIAPI -MPI_Testsome( - _In_range_(>=, 0) int incount, - _mpi_updates_(incount) MPI_Request array_of_requests[], - _mpi_out_range_(outcount, MPI_UNDEFINED, incount) int* outcount, - _mpi_writes_to_(incount,*outcount) int array_of_indices[], - _Out_writes_to_opt_(incount, *outcount) MPI_Status array_of_statuses[] - ); - -_Success_(return == MPI_SUCCESS && *outcount > 0) -int -MPIAPI -PMPI_Testsome( - _In_range_(>=, 0) int incount, - _mpi_updates_(incount) MPI_Request array_of_requests[], - _mpi_out_range_(outcount, MPI_UNDEFINED, incount) int* outcount, - _mpi_writes_to_(incount,*outcount) int array_of_indices[], - _Out_writes_to_opt_(incount, *outcount) MPI_Status array_of_statuses[] - ); - - -/*---------------------------------------------*/ -/* Section 3.7.6: Test of status */ -/*---------------------------------------------*/ - -_Success_(return == MPI_SUCCESS && *flag != 0) -int -MPIAPI -MPI_Request_get_status( - _In_ MPI_Request request, - _mpi_out_flag_ int* flag, - _Out_ MPI_Status* status - ); - -_Success_(return == MPI_SUCCESS && *flag != 0) -int -MPIAPI -PMPI_Request_get_status( - _In_ MPI_Request request, - _mpi_out_flag_ int* flag, - _Out_ MPI_Status* status - ); - - -/*---------------------------------------------*/ -/* Section 3.8: Probe and Cancel */ -/*---------------------------------------------*/ - -_Success_(return == MPI_SUCCESS && *flag != 0) -int -MPIAPI -MPI_Iprobe( - _In_range_(>=, MPI_ANY_SOURCE) int source, - _In_range_(>=, MPI_ANY_TAG) int tag, - _In_ MPI_Comm comm, - _mpi_out_flag_ int* flag, - _Out_ MPI_Status* status - ); - -_Success_(return == MPI_SUCCESS && *flag != 0) -int -MPIAPI -PMPI_Iprobe( - _In_range_(>=, MPI_ANY_SOURCE) int source, - _In_range_(>=, MPI_ANY_TAG) int tag, - _In_ MPI_Comm comm, - _mpi_out_flag_ int* flag, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_Probe( - _In_range_(>=, MPI_ANY_SOURCE) int source, - _In_range_(>=, MPI_ANY_TAG) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_Probe( - _In_range_(>=, MPI_ANY_SOURCE) int source, - _In_range_(>=, MPI_ANY_TAG) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Status* status - ); - -_Success_(return == MPI_SUCCESS && *flag != 0) -int -MPIAPI -MPI_Improbe( - _In_range_(>=, MPI_ANY_SOURCE) int source, - _In_range_(>=, MPI_ANY_TAG) int tag, - _In_ MPI_Comm comm, - _mpi_out_flag_ int* flag, - _Out_ MPI_Message* message, - _Out_ MPI_Status* status - ); - -_Success_(return == MPI_SUCCESS && *flag != 0) -int -MPIAPI -PMPI_Improbe( - _In_range_(>=, MPI_ANY_SOURCE) int source, - _In_range_(>=, MPI_ANY_TAG) int tag, - _In_ MPI_Comm comm, - _mpi_out_flag_ int* flag, - _Out_ MPI_Message* message, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_Mprobe( - _In_range_(>=, MPI_ANY_SOURCE) int source, - _In_range_(>=, MPI_ANY_TAG) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Message* message, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_Mprobe( - _In_range_(>=, MPI_ANY_SOURCE) int source, - _In_range_(>=, MPI_ANY_TAG) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Message* message, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_Mrecv( - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Inout_ MPI_Message* message, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_Mrecv( - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Inout_ MPI_Message* message, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_Imrecv( - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Inout_ MPI_Message* message, - _Out_ MPI_Request* request - ); - -MPI_METHOD -PMPI_Imrecv( - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Inout_ MPI_Message* message, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(*request != MPI_REQUEST_NULL) -MPI_METHOD -MPI_Cancel( - _In_ MPI_Request* request - ); - -_Pre_satisfies_(*request != MPI_REQUEST_NULL) -MPI_METHOD -PMPI_Cancel( - _In_ MPI_Request* request - ); - -_Pre_satisfies_(status != MPI_STATUS_IGNORE) -MPI_METHOD -MPI_Test_cancelled( - _In_ const MPI_Status* status, - _mpi_out_flag_ int* flag - ); - -_Pre_satisfies_(status != MPI_STATUS_IGNORE) -MPI_METHOD -PMPI_Test_cancelled( - _In_ const MPI_Status* status, - _mpi_out_flag_ int* flag - ); - - -/*---------------------------------------------*/ -/* Section 3.9: Persistent Communication */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Send_init( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -PMPI_Send_init( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -MPI_Bsend_init( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -PMPI_Bsend_init( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -MPI_Ssend_init( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -PMPI_Ssend_init( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -MPI_Rsend_init( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -PMPI_Rsend_init( - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -MPI_Recv_init( - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_ANY_SOURCE) int source, - _In_range_(>=, MPI_ANY_TAG) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -PMPI_Recv_init( - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_ANY_SOURCE) int source, - _In_range_(>=, MPI_ANY_TAG) int tag, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(*request != MPI_REQUEST_NULL) -MPI_METHOD -MPI_Start( - _Inout_ MPI_Request* request - ); - -_Pre_satisfies_(*request != MPI_REQUEST_NULL) -MPI_METHOD -PMPI_Start( - _Inout_ MPI_Request* request - ); - -MPI_METHOD -MPI_Startall( - _In_range_(>=, 0) int count, - _mpi_updates_(count) MPI_Request array_of_requests[] - ); - -MPI_METHOD -PMPI_Startall( - _In_range_(>=, 0) int count, - _mpi_updates_(count) MPI_Request array_of_requests[] - ); - - -/*---------------------------------------------*/ -/* Section 3.10: Send-Recv */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Sendrecv( - _In_opt_ const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int sendtag, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _In_range_(>=, MPI_ANY_SOURCE) int source, - _In_range_(>=, MPI_ANY_TAG) int recvtag, - _In_ MPI_Comm comm, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_Sendrecv( - _In_opt_ const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int sendtag, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _In_range_(>=, MPI_ANY_SOURCE) int source, - _In_range_(>=, MPI_ANY_TAG) int recvtag, - _In_ MPI_Comm comm, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_Sendrecv_replace( - _Inout_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int sendtag, - _In_range_(>=, MPI_ANY_SOURCE) int source, - _In_range_(>=, MPI_ANY_TAG) int recvtag, - _In_ MPI_Comm comm, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_Sendrecv_replace( - _Inout_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_range_(>=, MPI_PROC_NULL) int dest, - _In_range_(>=, 0) int sendtag, - _In_range_(>=, MPI_ANY_SOURCE) int source, - _In_range_(>=, MPI_ANY_TAG) int recvtag, - _In_ MPI_Comm comm, - _Out_ MPI_Status* status - ); - - -/*---------------------------------------------------------------------------*/ -/* Chapter 4: Datatypes */ -/*---------------------------------------------------------------------------*/ - -/*---------------------------------------------*/ -/* Section 4.1: Derived Datatypes */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Type_contiguous( - _In_range_(>=, 0) int count, - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -PMPI_Type_contiguous( - _In_range_(>=, 0) int count, - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -MPI_Type_vector( - _In_range_(>=, 0) int count, - _In_range_(>=, 0) int blocklength, - _In_ int stride, - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -PMPI_Type_vector( - _In_range_(>=, 0) int count, - _In_range_(>=, 0) int blocklength, - _In_ int stride, - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -MPI_Type_create_hvector( - _In_range_(>=, 0) int count, - _In_range_(>=, 0) int blocklength, - _In_ MPI_Aint stride, - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -PMPI_Type_create_hvector( - _In_range_(>=, 0) int count, - _In_range_(>=, 0) int blocklength, - _In_ MPI_Aint stride, - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -MPI_Type_indexed( - _In_range_(>=, 0) int count, - _mpi_reads_(count) const int array_of_blocklengths[], - _mpi_reads_(count) const int array_of_displacements[], - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -PMPI_Type_indexed( - _In_range_(>=, 0) int count, - _mpi_reads_(count) const int array_of_blocklengths[], - _mpi_reads_(count) const int array_of_displacements[], - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -MPI_Type_create_hindexed( - _In_range_(>=, 0) int count, - _mpi_reads_(count) const int array_of_blocklengths[], - _mpi_reads_(count) const MPI_Aint array_of_displacements[], - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -PMPI_Type_create_hindexed( - _In_range_(>=, 0) int count, - _mpi_reads_(count) const int array_of_blocklengths[], - _mpi_reads_(count) const MPI_Aint array_of_displacements[], - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -MPI_Type_create_hindexed_block( - _In_range_(>=, 0) int count, - _In_range_(>=, 0) int blocklength, - _mpi_reads_(count) const MPI_Aint array_of_displacements[], - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -PMPI_Type_create_hindexed_block( - _In_range_(>=, 0) int count, - _In_range_(>=, 0) int blocklength, - _mpi_reads_(count) const MPI_Aint array_of_displacements[], - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -MPI_Type_create_indexed_block( - _In_range_(>=, 0) int count, - _In_range_(>=, 0) int blocklength, - _mpi_reads_(count) const int array_of_displacements[], - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -PMPI_Type_create_indexed_block( - _In_range_(>=, 0) int count, - _In_range_(>=, 0) int blocklength, - _mpi_reads_(count) const int array_of_displacements[], - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -MPI_Type_create_struct( - _In_range_(>=, 0) int count, - _mpi_reads_(count) const int array_of_blocklengths[], - _mpi_reads_(count) const MPI_Aint array_of_displacements[], - _mpi_reads_(count) const MPI_Datatype array_of_types[], - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -PMPI_Type_create_struct( - _In_range_(>=, 0) int count, - _mpi_reads_(count) const int array_of_blocklengths[], - _mpi_reads_(count) const MPI_Aint array_of_displacements[], - _mpi_reads_(count) const MPI_Datatype array_of_types[], - _Out_ MPI_Datatype* newtype - ); - - -#define MPI_ORDER_C 56 -#define MPI_ORDER_FORTRAN 57 - -MPI_METHOD -MPI_Type_create_subarray( - _In_range_(>=, 0) int ndims, - _mpi_reads_(ndims) const int array_of_sizes[], - _mpi_reads_(ndims) const int array_of_subsizes[], - _mpi_reads_(ndims) const int array_of_starts[], - _In_range_(MPI_ORDER_C, MPI_ORDER_FORTRAN) int order, - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -PMPI_Type_create_subarray( - _In_range_(>=, 0) int ndims, - _In_reads_opt_(ndims) const int array_of_sizes[], - _In_reads_opt_(ndims) const int array_of_subsizes[], - _In_reads_opt_(ndims) const int array_of_starts[], - _In_range_(MPI_ORDER_C, MPI_ORDER_FORTRAN) int order, - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - - -#define MPI_DISTRIBUTE_BLOCK 121 -#define MPI_DISTRIBUTE_CYCLIC 122 -#define MPI_DISTRIBUTE_NONE 123 -#define MPI_DISTRIBUTE_DFLT_DARG (-49767) - -_Pre_satisfies_( - order == MPI_DISTRIBUTE_DFLT_DARG || - (order >= MPI_DISTRIBUTE_BLOCK && order <= MPI_DISTRIBUTE_NONE) - ) -MPI_METHOD -MPI_Type_create_darray( - _In_range_(>=, 0) int size, - _In_range_(>=, 0) int rank, - _In_range_(>=, 0) int ndims, - _mpi_reads_(ndims) const int array_of_gsizes[], - _mpi_reads_(ndims) const int array_of_distribs[], - _mpi_reads_(ndims) const int array_of_dargs[], - _mpi_reads_(ndims) const int array_of_psizes[], - _In_ int order, - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -_Pre_satisfies_( - order == MPI_DISTRIBUTE_DFLT_DARG || - (order >= MPI_DISTRIBUTE_BLOCK && order <= MPI_DISTRIBUTE_NONE) - ) -MPI_METHOD -PMPI_Type_create_darray( - _In_range_(>=, 0) int size, - _In_range_(>=, 0) int rank, - _In_range_(>=, 0) int ndims, - _mpi_reads_(ndims) const int array_of_gsizes[], - _mpi_reads_(ndims) const int array_of_distribs[], - _mpi_reads_(ndims) const int array_of_dargs[], - _mpi_reads_(ndims) const int array_of_psizes[], - _In_ int order, - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - - -/*---------------------------------------------*/ -/* Section 4.1.5: Datatype Address and Size */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Get_address( - _In_ const void* location, - _Out_ MPI_Aint* address - ); - -MPI_METHOD -PMPI_Get_address( - _In_ const void* location, - _Out_ MPI_Aint* address - ); - -MPI_Aint -MPI_Aint_add( - _In_ MPI_Aint base, - _In_ MPI_Aint disp - ); - -MPI_Aint -PMPI_Aint_add( - _In_ MPI_Aint base, - _In_ MPI_Aint disp - ); - -MPI_Aint -MPI_Aint_diff( - _In_ MPI_Aint base, - _In_ MPI_Aint disp - ); - -MPI_Aint -PMPI_Aint_diff( - _In_ MPI_Aint base, - _In_ MPI_Aint disp - ); - -MPI_METHOD -MPI_Type_size( - _In_ MPI_Datatype datatype, - _mpi_out_(size, MPI_UNDEFINED) int* size - ); - -MPI_METHOD -PMPI_Type_size( - _In_ MPI_Datatype datatype, - _mpi_out_(size, MPI_UNDEFINED) int* size - ); - -MPI_METHOD -MPI_Type_size_x( - _In_ MPI_Datatype datatype, - _mpi_out_(size, MPI_UNDEFINED) MPI_Count *size - ); - -MPI_METHOD -PMPI_Type_size_x( - _In_ MPI_Datatype datatype, - _mpi_out_(size, MPI_UNDEFINED) MPI_Count *size - ); - - -/*---------------------------------------------*/ -/* Section 4.1.7: Datatype Extent and Bounds */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Type_get_extent( - _In_ MPI_Datatype datatype, - _mpi_out_(lb, MPI_UNDEFINED) MPI_Aint* lb, - _mpi_out_(extent, MPI_UNDEFINED) MPI_Aint* extent - ); - -MPI_METHOD -PMPI_Type_get_extent( - _In_ MPI_Datatype datatype, - _mpi_out_(lb, MPI_UNDEFINED) MPI_Aint* lb, - _mpi_out_(extent, MPI_UNDEFINED) MPI_Aint* extent - ); - -MPI_METHOD -MPI_Type_get_extent_x( - _In_ MPI_Datatype datatype, - _mpi_out_(lb, MPI_UNDEFINED) MPI_Count *lb, - _mpi_out_(extent, MPI_UNDEFINED) MPI_Count *extent - ); - -MPI_METHOD -PMPI_Type_get_extent_x( - _In_ MPI_Datatype datatype, - _mpi_out_(lb, MPI_UNDEFINED) MPI_Count *lb, - _mpi_out_(extent, MPI_UNDEFINED) MPI_Count *extent - ); - -MPI_METHOD -MPI_Type_create_resized( - _In_ MPI_Datatype oldtype, - _In_ MPI_Aint lb, - _In_range_(>=, 0) MPI_Aint extent, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -PMPI_Type_create_resized( - _In_ MPI_Datatype oldtype, - _In_ MPI_Aint lb, - _In_range_(>=, 0) MPI_Aint extent, - _Out_ MPI_Datatype* newtype - ); - - -/*---------------------------------------------*/ -/* Section 4.1.8: Datatype True Extent */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Type_get_true_extent( - _In_ MPI_Datatype datatype, - _mpi_out_(true_lb, MPI_UNDEFINED) MPI_Aint* true_lb, - _mpi_out_(true_extent, MPI_UNDEFINED) MPI_Aint* true_extent - ); - -MPI_METHOD -PMPI_Type_get_true_extent( - _In_ MPI_Datatype datatype, - _mpi_out_(true_lb, MPI_UNDEFINED) MPI_Aint* true_lb, - _mpi_out_(true_extent, MPI_UNDEFINED) MPI_Aint* true_extent - ); - -MPI_METHOD -MPI_Type_get_true_extent_x( - _In_ MPI_Datatype datatype, - _mpi_out_(true_lb, MPI_UNDEFINED) MPI_Count *true_lb, - _mpi_out_(true_extent, MPI_UNDEFINED) MPI_Count *true_extent - ); - -MPI_METHOD -PMPI_Type_get_true_extent_x( - _In_ MPI_Datatype datatype, - _mpi_out_(true_lb, MPI_UNDEFINED) MPI_Count *true_lb, - _mpi_out_(true_extent, MPI_UNDEFINED) MPI_Count *true_extent - ); - - -/*---------------------------------------------*/ -/* Section 4.1.9: Datatype Commit and Free */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Type_commit( - _In_ MPI_Datatype* datatype - ); - -MPI_METHOD -PMPI_Type_commit( - _In_ MPI_Datatype* datatype - ); - -MPI_METHOD -MPI_Type_free( - _Deref_out_range_(==, MPI_DATATYPE_NULL) _Inout_ MPI_Datatype* datatype - ); - -MPI_METHOD -PMPI_Type_free( - _Deref_out_range_(==, MPI_DATATYPE_NULL) _Inout_ MPI_Datatype* datatype - ); - - -/*---------------------------------------------*/ -/* Section 4.1.10: Datatype Duplication */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Type_dup( - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -PMPI_Type_dup( - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - - -/*---------------------------------------------*/ -/* Section 4.1.11: Datatype and Communication */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Get_elements( - _In_ const MPI_Status* status, - _In_ MPI_Datatype datatype, - _mpi_out_(count, MPI_UNDEFINED) int* count - ); - -MPI_METHOD -PMPI_Get_elements( - _In_ const MPI_Status* status, - _In_ MPI_Datatype datatype, - _mpi_out_(count, MPI_UNDEFINED) int* count - ); - -MPI_METHOD -MPI_Get_elements_x( - _In_ const MPI_Status* status, - _In_ MPI_Datatype datatype, - _mpi_out_(count, MPI_UNDEFINED) MPI_Count *count - ); - -MPI_METHOD -PMPI_Get_elements_x( - _In_ const MPI_Status* status, - _In_ MPI_Datatype datatype, - _mpi_out_(count, MPI_UNDEFINED) MPI_Count *count - ); - - -/*---------------------------------------------*/ -/* Section 4.1.13: Decoding a Datatype */ -/*---------------------------------------------*/ - -/* Datatype combiners result */ -enum -{ - MPI_COMBINER_NAMED = 1, - MPI_COMBINER_DUP = 2, - MPI_COMBINER_CONTIGUOUS = 3, - MPI_COMBINER_VECTOR = 4, - MPI_COMBINER_HVECTOR_INTEGER = 5, - MPI_COMBINER_HVECTOR = 6, - MPI_COMBINER_INDEXED = 7, - MPI_COMBINER_HINDEXED_INTEGER = 8, - MPI_COMBINER_HINDEXED = 9, - MPI_COMBINER_INDEXED_BLOCK = 10, - MPI_COMBINER_STRUCT_INTEGER = 11, - MPI_COMBINER_STRUCT = 12, - MPI_COMBINER_SUBARRAY = 13, - MPI_COMBINER_DARRAY = 14, - MPI_COMBINER_F90_REAL = 15, - MPI_COMBINER_F90_COMPLEX = 16, - MPI_COMBINER_F90_INTEGER = 17, - MPI_COMBINER_RESIZED = 18, - MPI_COMBINER_HINDEXED_BLOCK = 19 -}; - -MPI_METHOD -MPI_Type_get_envelope( - _In_ MPI_Datatype datatype, - _Out_ _Deref_out_range_(>=, 0) int* num_integers, - _Out_ _Deref_out_range_(>=, 0) int* num_addresses, - _Out_ _Deref_out_range_(>=, 0) int* num_datatypes, - _Out_ _Deref_out_range_(MPI_COMBINER_NAMED, MPI_COMBINER_RESIZED) int* combiner - ); - -MPI_METHOD -PMPI_Type_get_envelope( - _In_ MPI_Datatype datatype, - _Out_ _Deref_out_range_(>=, 0) int* num_integers, - _Out_ _Deref_out_range_(>=, 0) int* num_addresses, - _Out_ _Deref_out_range_(>=, 0) int* num_datatypes, - _Out_ _Deref_out_range_(MPI_COMBINER_NAMED, MPI_COMBINER_RESIZED) int* combiner - ); - -MPI_METHOD -MPI_Type_get_contents( - _In_ MPI_Datatype datatype, - _In_range_(>=, 0) int max_integers, - _In_range_(>=, 0) int max_addresses, - _In_range_(>=, 0) int max_datatypes, - _mpi_writes_(max_integers) int array_of_integers[], - _mpi_writes_(max_addresses) MPI_Aint array_of_addresses[], - _mpi_writes_(max_datatypes) MPI_Datatype array_of_datatypes[] - ); - -MPI_METHOD -PMPI_Type_get_contents( - _In_ MPI_Datatype datatype, - _In_range_(>=, 0) int max_integers, - _In_range_(>=, 0) int max_addresses, - _In_range_(>=, 0) int max_datatypes, - _mpi_writes_(max_integers) int array_of_integers[], - _mpi_writes_(max_addresses) MPI_Aint array_of_addresses[], - _mpi_writes_(max_datatypes) MPI_Datatype array_of_datatypes[] - ); - - -/*---------------------------------------------*/ -/* Section 4.2: Datatype Pack and Unpack */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Pack( - _In_opt_ const void* inbuf, - _In_range_(>=, 0) int incount, - _In_ MPI_Datatype datatype, - _mpi_writes_bytes_(outsize) void* outbuf, - _In_range_(>=, 0) int outsize, - _mpi_position_(outsize) int* position, - _In_ MPI_Comm comm - ); - -MPI_METHOD -PMPI_Pack( - _In_opt_ const void* inbuf, - _In_range_(>=, 0) int incount, - _In_ MPI_Datatype datatype, - _mpi_writes_bytes_(outsize) void* outbuf, - _In_range_(>=, 0) int outsize, - _mpi_position_(outsize) int* position, - _In_ MPI_Comm comm - ); - -MPI_METHOD -MPI_Unpack( - _mpi_reads_bytes_(insize) const void* inbuf, - _In_range_(>=, 0) int insize, - _mpi_position_(insize) int* position, - _When_(insize > 0, _Out_opt_) void* outbuf, - _In_range_(>=, 0) int outcount, - _In_ MPI_Datatype datatype, - _In_ MPI_Comm comm - ); - -MPI_METHOD -PMPI_Unpack( - _mpi_reads_bytes_(insize) const void* inbuf, - _In_range_(>=, 0) int insize, - _mpi_position_(insize) int* position, - _When_(insize > 0, _Out_opt_) void* outbuf, - _In_range_(>=, 0) int outcount, - _In_ MPI_Datatype datatype, - _In_ MPI_Comm comm - ); - -MPI_METHOD -MPI_Pack_size( - _In_range_(>=, 0) int incount, - _In_ MPI_Datatype datatype, - _In_ MPI_Comm comm, - _mpi_out_(size, MPI_UNDEFINED) int *size - ); - -MPI_METHOD -PMPI_Pack_size( - _In_range_(>=, 0) int incount, - _In_ MPI_Datatype datatype, - _In_ MPI_Comm comm, - _mpi_out_(size, MPI_UNDEFINED) int *size - ); - - -/*---------------------------------------------*/ -/* Section 4.3: Canonical Pack and Unpack */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Pack_external( - _In_z_ const char* datarep, - _In_opt_ const void* inbuf, - _In_range_(>=, 0) int incount, - _In_ MPI_Datatype datatype, - _mpi_writes_bytes_(outsize) void* outbuf, - _In_range_(>=, 0) MPI_Aint outsize, - _mpi_position_(outsize) MPI_Aint* position - ); - -MPI_METHOD -PMPI_Pack_external( - _In_z_ const char* datarep, - _In_opt_ const void* inbuf, - _In_range_(>=, 0) int incount, - _In_ MPI_Datatype datatype, - _mpi_writes_bytes_(outsize) void* outbuf, - _In_range_(>=, 0) MPI_Aint outsize, - _mpi_position_(outsize) MPI_Aint* position - ); - -MPI_METHOD -MPI_Unpack_external( - _In_z_ const char* datarep, - _In_reads_bytes_opt_(insize) const void* inbuf, - _In_range_(>=, 0) MPI_Aint insize, - _mpi_position_(insize) MPI_Aint* position, - _When_(insize > 0, _Out_opt_) void* outbuf, - _In_range_(>=, 0) int outcount, - _In_ MPI_Datatype datatype - ); - -MPI_METHOD -PMPI_Unpack_external( - _In_z_ const char* datarep, - _In_reads_bytes_opt_(insize) const void* inbuf, - _In_range_(>=, 0) MPI_Aint insize, - _mpi_position_(insize) MPI_Aint* position, - _When_(insize > 0, _Out_opt_) void* outbuf, - _In_range_(>=, 0) int outcount, - _In_ MPI_Datatype datatype - ); - -MPI_METHOD -MPI_Pack_external_size( - _In_z_ const char* datarep, - _In_range_(>=, 0) int incount, - _In_ MPI_Datatype datatype, - _Out_ MPI_Aint* size - ); - -MPI_METHOD -PMPI_Pack_external_size( - _In_z_ const char* datarep, - _In_range_(>=, 0) int incount, - _In_ MPI_Datatype datatype, - _Out_ MPI_Aint* size - ); - - -/*---------------------------------------------------------------------------*/ -/* Chapter 5: Collective Communication */ -/*---------------------------------------------------------------------------*/ - -#define MPI_IN_PLACE ((void*)(MPI_Aint)-1) - -/*---------------------------------------------*/ -/* Section 5.3: Barrier Synchronization */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Barrier( - _In_ MPI_Comm comm - ); - -MPI_METHOD -PMPI_Barrier( - _In_ MPI_Comm comm - ); - - -/*---------------------------------------------*/ -/* Section 5.4: Broadcast */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Bcast( - _Pre_opt_valid_ void* buffer, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm - ); - -MPI_METHOD -PMPI_Bcast( - _Pre_opt_valid_ void* buffer, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm - ); - - -/*---------------------------------------------*/ -/* Section 5.5: Gather */ -/*---------------------------------------------*/ - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Gather( - _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Gather( - _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Gatherv( - _In_opt_ const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, - _In_opt_ const int recvcounts[], - _In_opt_ const int displs[], - _In_ MPI_Datatype recvtype, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Gatherv( - _In_opt_ const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, - _In_opt_ const int recvcounts[], - _In_opt_ const int displs[], - _In_ MPI_Datatype recvtype, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm - ); - - -/*---------------------------------------------*/ -/* Section 5.6: Scatter */ -/*---------------------------------------------*/ - -_Pre_satisfies_(sendbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Scatter( - _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(sendbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Scatter( - _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(sendbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Scatterv( - _In_opt_ const void* sendbuf, - _In_opt_ const int sendcounts[], - _In_opt_ const int displs[], - _In_ MPI_Datatype sendtype, - _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(sendbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Scatterv( - _In_opt_ const void* sendbuf, - _In_opt_ const int sendcounts[], - _In_opt_ const int displs[], - _In_ MPI_Datatype sendtype, - _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm - ); - - -/*---------------------------------------------*/ -/* Section 5.6: Gather-to-all */ -/*---------------------------------------------*/ - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Allgather( - _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Allgather( - _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Allgatherv( - _In_opt_ const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _Out_opt_ void* recvbuf, - _In_ const int recvcounts[], - _In_ const int displs[], - _In_ MPI_Datatype recvtype, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Allgatherv( - _In_opt_ const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _Out_opt_ void* recvbuf, - _In_ const int recvcounts[], - _In_ const int displs[], - _In_ MPI_Datatype recvtype, - _In_ MPI_Comm comm - ); - - -/*---------------------------------------------*/ -/* Section 5.6: All-to-All Scatter/Gather */ -/*---------------------------------------------*/ - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Alltoall( - _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Alltoall( - _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Alltoallv( - _In_opt_ const void* sendbuf, - _In_opt_ const int sendcounts[], - _In_opt_ const int sdispls[], - _In_ MPI_Datatype sendtype, - _Out_opt_ void* recvbuf, - _In_ const int recvcounts[], - _In_ const int rdispls[], - _In_ MPI_Datatype recvtype, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Alltoallv( - _In_opt_ const void* sendbuf, - _In_opt_ const int sendcounts[], - _In_opt_ const int sdispls[], - _In_ MPI_Datatype sendtype, - _Out_opt_ void* recvbuf, - _In_ const int recvcounts[], - _In_ const int rdispls[], - _In_ MPI_Datatype recvtype, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Alltoallw( - _In_opt_ const void* sendbuf, - _In_opt_ const int sendcounts[], - _In_opt_ const int sdispls[], - _In_opt_ const MPI_Datatype sendtypes[], - _Out_opt_ void* recvbuf, - _In_ const int recvcounts[], - _In_ const int rdispls[], - _In_ const MPI_Datatype recvtypes[], - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Alltoallw( - _In_opt_ const void* sendbuf, - _In_opt_ const int sendcounts[], - _In_opt_ const int sdispls[], - _In_opt_ const MPI_Datatype sendtypes[], - _Out_opt_ void* recvbuf, - _In_ const int recvcounts[], - _In_ const int rdispls[], - _In_ const MPI_Datatype recvtypes[], - _In_ MPI_Comm comm - ); - - -/*---------------------------------------------*/ -/* Section 5.9: Global Reduction Operations */ -/*---------------------------------------------*/ - -typedef -void -(MPIAPI MPI_User_function)( - _In_opt_ void* invec, - _Inout_opt_ void* inoutvec, - _In_ int* len, - _In_ MPI_Datatype* datatype - ); - -MPI_METHOD -MPI_Op_commutative( - _In_ MPI_Op op, - _Out_ int* commute - ); - -MPI_METHOD -PMPI_Op_commutative( - _In_ MPI_Op op, - _Out_ int* commute - ); - -MPI_METHOD -MPI_Op_create( - _In_ MPI_User_function* user_fn, - _In_ int commute, - _Out_ MPI_Op* op - ); - -MPI_METHOD -PMPI_Op_create( - _In_ MPI_User_function* user_fn, - _In_ int commute, - _Out_ MPI_Op* op - ); - -MPI_METHOD -MPI_Op_free( - _Inout_ MPI_Op* op - ); - -MPI_METHOD -PMPI_Op_free( - _Inout_ MPI_Op* op - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Reduce( - _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, - _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Reduce( - _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, - _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Allreduce( - _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Allreduce( - _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(inbuf != MPI_IN_PLACE) -_Pre_satisfies_(inoutbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Reduce_local( - _In_opt_ _In_range_(!=, inoutbuf) const void *inbuf, - _Inout_opt_ void *inoutbuf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op - ); - -_Pre_satisfies_(inbuf != MPI_IN_PLACE) -_Pre_satisfies_(inoutbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Reduce_local( - _In_opt_ _In_range_(!=, inoutbuf) const void *inbuf, - _Inout_opt_ void *inoutbuf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op - ); - -/*---------------------------------------------*/ -/* Section 5.10: Reduce-Scatter */ -/*---------------------------------------------*/ - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Reduce_scatter_block( - _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_range_(>=,0) int recvcount, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Reduce_scatter_block( - _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Reduce_scatter( - _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_ const int recvcounts[], - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Reduce_scatter( - _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_ const int recvcounts[], - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _In_ MPI_Comm comm - ); - - -/*---------------------------------------------*/ -/* Section 5.11: Scan */ -/*---------------------------------------------*/ - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Scan( - _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Scan( - _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Exscan( - _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _In_ MPI_Comm comm - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Exscan( - _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _In_ MPI_Comm comm - ); - - -// -// Section 5.12: Nonblocking Collective Operations -// -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Iallgather( - _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Iallgather( - _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Iallgatherv( - _In_opt_ const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _Out_opt_ void* recvbuf, - _In_ const int recvcounts[], - _In_ const int displs[], - _In_ MPI_Datatype recvtype, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Iallgatherv( - _In_opt_ const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _Out_opt_ void* recvbuf, - _In_ const int recvcounts[], - _In_ const int displs[], - _In_ MPI_Datatype recvtype, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Iallreduce( - _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Iallreduce( - _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Ialltoall( - _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Ialltoall( - _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Ialltoallv( - _In_opt_ const void* sendbuf, - _In_opt_ const int sendcounts[], - _In_opt_ const int sdispls[], - _In_ MPI_Datatype sendtype, - _Out_opt_ void* recvbuf, - _In_ const int recvcounts[], - _In_ const int rdispls[], - _In_ MPI_Datatype recvtype, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Ialltoallv( - _In_opt_ const void* sendbuf, - _In_opt_ const int sendcounts[], - _In_opt_ const int sdispls[], - _In_ MPI_Datatype sendtype, - _Out_opt_ void* recvbuf, - _In_ const int recvcounts[], - _In_ const int rdispls[], - _In_ MPI_Datatype recvtype, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Ialltoallw( - _In_opt_ const void* sendbuf, - _In_opt_ const int sendcounts[], - _In_opt_ const int sdispls[], - _In_opt_ const MPI_Datatype sendtypes[], - _Out_opt_ void* recvbuf, - _In_ const int recvcounts[], - _In_ const int rdispls[], - _In_ const MPI_Datatype recvtypes[], - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Ialltoallw( - _In_opt_ const void* sendbuf, - _In_opt_ const int sendcounts[], - _In_opt_ const int sdispls[], - _In_opt_ const MPI_Datatype sendtypes[], - _Out_opt_ void* recvbuf, - _In_ const int recvcounts[], - _In_ const int rdispls[], - _In_ const MPI_Datatype recvtypes[], - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -MPI_Ibarrier( - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -PMPI_Ibarrier( - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -MPI_Ibcast( - _Pre_opt_valid_ void* buffer, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -MPI_METHOD -PMPI_Ibcast( - _Pre_opt_valid_ void* buffer, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Iexscan( - _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Iexscan( - _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Igather( - _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Igather( - _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Igatherv( - _In_opt_ const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _Out_opt_ void* recvbuf, - _In_opt_ const int recvcounts[], - _In_opt_ const int displs[], - _In_ MPI_Datatype recvtype, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Igatherv( - _In_opt_ const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _Out_opt_ void* recvbuf, - _In_opt_ const int recvcounts[], - _In_opt_ const int displs[], - _In_ MPI_Datatype recvtype, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Ireduce( - _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Ireduce( - _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Ireduce_scatter( - _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_ const int recvcounts[], - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Ireduce_scatter( - _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_ const int recvcounts[], - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Iscan( - _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Iscan( - _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Ireduce_scatter_block( - _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_range_(>=,0) int recvcount, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(recvbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Ireduce_scatter_block( - _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, - _Out_opt_ void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype datatype, - _In_ MPI_Op op, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(sendbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Iscatter( - _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(sendbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Iscatter( - _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, - _In_range_(>=, 0) int sendcount, - _In_ MPI_Datatype sendtype, - _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(sendbuf != MPI_IN_PLACE) -MPI_METHOD -MPI_Iscatterv( - _In_opt_ const void* sendbuf, - _In_opt_ const int sendcounts[], - _In_opt_ const int displs[], - _In_ MPI_Datatype sendtype, - _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -_Pre_satisfies_(sendbuf != MPI_IN_PLACE) -MPI_METHOD -PMPI_Iscatterv( - _In_opt_ const void* sendbuf, - _In_opt_ const int sendcounts[], - _In_opt_ const int displs[], - _In_ MPI_Datatype sendtype, - _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, - _In_range_(>=, 0) int recvcount, - _In_ MPI_Datatype recvtype, - _mpi_coll_rank_(root) int root, - _In_ MPI_Comm comm, - _Out_ MPI_Request* request - ); - -/*---------------------------------------------------------------------------*/ -/* Chapter 6: Groups, Contexts, Communicators, and Caching */ -/*---------------------------------------------------------------------------*/ - -/*---------------------------------------------*/ -/* Section 6.3: Group Management */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Group_size( - _In_ MPI_Group group, - _Out_ _Deref_out_range_(>, 0) int* size - ); - -MPI_METHOD -PMPI_Group_size( - _In_ MPI_Group group, - _Out_ _Deref_out_range_(>, 0) int* size - ); - -MPI_METHOD -MPI_Group_rank( - _In_ MPI_Group group, - _Out_ _Deref_out_range_(>=, MPI_UNDEFINED) int* rank - ); - -MPI_METHOD -PMPI_Group_rank( - _In_ MPI_Group group, - _Out_ _Deref_out_range_(>=, MPI_UNDEFINED) int* rank - ); - -MPI_METHOD -MPI_Group_translate_ranks( - _In_ MPI_Group group1, - _In_ int n, - _In_reads_opt_(n) const int ranks1[], - _In_ MPI_Group group2, - _Out_writes_opt_(n) int ranks2[] - ); - -MPI_METHOD -PMPI_Group_translate_ranks( - _In_ MPI_Group group1, - _In_ int n, - _In_reads_opt_(n) const int ranks1[], - _In_ MPI_Group group2, - _Out_writes_opt_(n) int ranks2[] - ); - -/* Results of the compare operations */ -#define MPI_IDENT 0 -#define MPI_CONGRUENT 1 -#define MPI_SIMILAR 2 -#define MPI_UNEQUAL 3 - -MPI_METHOD -MPI_Group_compare( - _In_ MPI_Group group1, - _In_ MPI_Group group2, - _Out_ int* result - ); - -MPI_METHOD -PMPI_Group_compare( - _In_ MPI_Group group1, - _In_ MPI_Group group2, - _Out_ int* result - ); - -MPI_METHOD -MPI_Comm_group( - _In_ MPI_Comm comm, - _Out_ MPI_Group* group - ); - -MPI_METHOD -PMPI_Comm_group( - _In_ MPI_Comm comm, - _Out_ MPI_Group* group - ); - -MPI_METHOD -MPI_Group_union( - _In_ MPI_Group group1, - _In_ MPI_Group group2, - _Out_ MPI_Group* newgroup - ); - -MPI_METHOD -PMPI_Group_union( - _In_ MPI_Group group1, - _In_ MPI_Group group2, - _Out_ MPI_Group* newgroup - ); - -MPI_METHOD -MPI_Group_intersection( - _In_ MPI_Group group1, - _In_ MPI_Group group2, - _Out_ MPI_Group* newgroup - ); - -MPI_METHOD -PMPI_Group_intersection( - _In_ MPI_Group group1, - _In_ MPI_Group group2, - _Out_ MPI_Group* newgroup - ); - -MPI_METHOD -MPI_Group_difference( - _In_ MPI_Group group1, - _In_ MPI_Group group2, - _Out_ MPI_Group* newgroup - ); - -MPI_METHOD -PMPI_Group_difference( - _In_ MPI_Group group1, - _In_ MPI_Group group2, - _Out_ MPI_Group* newgroup - ); - -MPI_METHOD -MPI_Group_incl( - _In_ MPI_Group group, - _In_range_(>=, 0) int n, - _In_reads_opt_(n) const int ranks[], - _Out_ MPI_Group* newgroup - ); - -MPI_METHOD -PMPI_Group_incl( - _In_ MPI_Group group, - _In_range_(>=, 0) int n, - _In_reads_opt_(n) const int ranks[], - _Out_ MPI_Group* newgroup - ); - -MPI_METHOD -MPI_Group_excl( - _In_ MPI_Group group, - _In_range_(>=, 0) int n, - _In_reads_opt_(n) const int ranks[], - _Out_ MPI_Group* newgroup - ); - -MPI_METHOD -PMPI_Group_excl( - _In_ MPI_Group group, - _In_range_(>=, 0) int n, - _In_reads_opt_(n) const int ranks[], - _Out_ MPI_Group* newgroup - ); - -MPI_METHOD -MPI_Group_range_incl( - _In_ MPI_Group group, - _In_range_(>=, 0) int n, - _In_reads_opt_(n) int ranges[][3], - _Out_ MPI_Group* newgroup - ); - -MPI_METHOD -PMPI_Group_range_incl( - _In_ MPI_Group group, - _In_range_(>=, 0) int n, - _In_reads_opt_(n) int ranges[][3], - _Out_ MPI_Group* newgroup - ); - -MPI_METHOD -MPI_Group_range_excl( - _In_ MPI_Group group, - _In_range_(>=, 0) int n, - _In_reads_opt_(n) int ranges[][3], - _Out_ MPI_Group* newgroup - ); - -MPI_METHOD -PMPI_Group_range_excl( - _In_ MPI_Group group, - _In_range_(>=, 0) int n, - _In_reads_opt_(n) int ranges[][3], - _Out_ MPI_Group* newgroup - ); - -MPI_METHOD -MPI_Group_free( - _Inout_ MPI_Group* group - ); - -MPI_METHOD -PMPI_Group_free( - _Inout_ MPI_Group* group - ); - - -/*---------------------------------------------*/ -/* Section 6.4: Communicator Management */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Comm_size( - _In_ MPI_Comm comm, - _Out_ _Deref_out_range_(>, 0) int* size - ); - -MPI_METHOD -PMPI_Comm_size( - _In_ MPI_Comm comm, - _Out_ _Deref_out_range_(>, 0) int* size - ); - -MPI_METHOD -MPI_Comm_rank( - _In_ MPI_Comm comm, - _Out_ _Deref_out_range_(>=, 0) int* rank - ); - -MPI_METHOD -PMPI_Comm_rank( - _In_ MPI_Comm comm, - _Out_ _Deref_out_range_(>=, 0) int* rank - ); - -MPI_METHOD -MPI_Comm_compare( - _In_ MPI_Comm comm1, - _In_ MPI_Comm comm2, - _Out_ int* result - ); - -MPI_METHOD -PMPI_Comm_compare( - _In_ MPI_Comm comm1, - _In_ MPI_Comm comm2, - _Out_ int* result - ); - -MPI_METHOD -MPI_Comm_dup( - _In_ MPI_Comm comm, - _Out_ MPI_Comm* newcomm - ); - -MPI_METHOD -PMPI_Comm_dup( - _In_ MPI_Comm comm, - _Out_ MPI_Comm* newcomm - ); - -MPI_METHOD -MPI_Comm_create( - _In_ MPI_Comm comm, - _In_ MPI_Group group, - _Out_ MPI_Comm* newcomm - ); - -MPI_METHOD -PMPI_Comm_create( - _In_ MPI_Comm comm, - _In_ MPI_Group group, - _Out_ MPI_Comm* newcomm - ); - -MPI_METHOD -MPI_Comm_split( - _In_ MPI_Comm comm, - _In_ int color, - _In_ int key, - _Out_ MPI_Comm* newcomm - ); - -MPI_METHOD -PMPI_Comm_split( - _In_ MPI_Comm comm, - _In_ int color, - _In_ int key, - _Out_ MPI_Comm* newcomm - ); - -MPI_METHOD -MPI_Comm_split_type( - _In_ MPI_Comm comm, - _In_ int split_type, - _In_ int key, - _In_ MPI_Info info, - _Out_ MPI_Comm *newcomm - ); - -MPI_METHOD -PMPI_Comm_split_type( - _In_ MPI_Comm comm, - _In_ int split_type, - _In_ int key, - _In_ MPI_Info info, - _Out_ MPI_Comm *newcomm - ); - -MPI_METHOD -MPI_Comm_free( - _Inout_ MPI_Comm* comm - ); - -MPI_METHOD -PMPI_Comm_free( - _Inout_ MPI_Comm* comm - ); - - -/*---------------------------------------------*/ -/* Section 6.6: Inter-Communication */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Comm_test_inter( - _In_ MPI_Comm comm, - _mpi_out_flag_ int* flag - ); - -MPI_METHOD -PMPI_Comm_test_inter( - _In_ MPI_Comm comm, - _mpi_out_flag_ int* flag - ); - -MPI_METHOD -MPI_Comm_remote_size( - _In_ MPI_Comm comm, - _Out_ int* size - ); - -MPI_METHOD -PMPI_Comm_remote_size( - _In_ MPI_Comm comm, - _Out_ int* size - ); - -MPI_METHOD -MPI_Comm_remote_group( - _In_ MPI_Comm comm, - _Out_ MPI_Group* group - ); - -MPI_METHOD -PMPI_Comm_remote_group( - _In_ MPI_Comm comm, - _Out_ MPI_Group* group - ); - -MPI_METHOD -MPI_Intercomm_create( - _In_ MPI_Comm local_comm, - _In_range_(>=, 0) int local_leader, - _In_ MPI_Comm peer_comm, - _In_range_(>=, 0) int remote_leader, - _In_range_(>=, 0) int tag, - _Out_ MPI_Comm* newintercomm - ); - -MPI_METHOD -PMPI_Intercomm_create( - _In_ MPI_Comm local_comm, - _In_range_(>=, 0) int local_leader, - _In_ MPI_Comm peer_comm, - _In_range_(>=, 0) int remote_leader, - _In_range_(>=, 0) int tag, - _Out_ MPI_Comm* newintercomm - ); - -MPI_METHOD -MPI_Intercomm_merge( - _In_ MPI_Comm intercomm, - _In_ int high, - _Out_ MPI_Comm* newintracomm - ); - -MPI_METHOD -PMPI_Intercomm_merge( - _In_ MPI_Comm intercomm, - _In_ int high, - _Out_ MPI_Comm* newintracomm - ); - - -/*---------------------------------------------*/ -/* Section 6.7: Caching */ -/*---------------------------------------------*/ - -#define MPI_KEYVAL_INVALID 0x24000000 - -typedef -int -(MPIAPI MPI_Comm_copy_attr_function)( - _In_ MPI_Comm oldcomm, - _In_ int comm_keyval, - _In_opt_ void* extra_state, - _In_opt_ void* attribute_val_in, - _Out_ void* attribute_val_out, - _mpi_out_flag_ int* flag - ); - -typedef -int -(MPIAPI MPI_Comm_delete_attr_function)( - _In_ MPI_Comm comm, - _In_ int comm_keyval, - _In_opt_ void* attribute_val, - _In_opt_ void* extra_state - ); - -#define MPI_COMM_NULL_COPY_FN ((MPI_Comm_copy_attr_function*)0) -#define MPI_COMM_NULL_DELETE_FN ((MPI_Comm_delete_attr_function*)0) -#define MPI_COMM_DUP_FN ((MPI_Comm_copy_attr_function*)MPIR_Dup_fn) - -MPI_METHOD -MPI_Comm_create_keyval( - _In_opt_ MPI_Comm_copy_attr_function* comm_copy_attr_fn, - _In_opt_ MPI_Comm_delete_attr_function* comm_delete_attr_fn, - _Out_ int* comm_keyval, - _In_opt_ void* extra_state - ); - -MPI_METHOD -PMPI_Comm_create_keyval( - _In_opt_ MPI_Comm_copy_attr_function* comm_copy_attr_fn, - _In_opt_ MPI_Comm_delete_attr_function* comm_delete_attr_fn, - _Out_ int* comm_keyval, - _In_opt_ void* extra_state - ); - -MPI_METHOD -MPI_Comm_free_keyval( - _Inout_ int* comm_keyval - ); - -MPI_METHOD -PMPI_Comm_free_keyval( - _Inout_ int* comm_keyval - ); - -MPI_METHOD -MPI_Comm_set_attr( - _In_ MPI_Comm comm, - _In_ int comm_keyval, - _In_opt_ void* attribute_val - ); - -MPI_METHOD -PMPI_Comm_set_attr( - _In_ MPI_Comm comm, - _In_ int comm_keyval, - _In_opt_ void* attribute_val - ); - - -/* Predefined comm attribute key values */ -/* C Versions (return pointer to value), - Fortran Versions (return integer value). - - DO NOT CHANGE THESE. The values encode: - builtin kind (0x1 in bit 30-31) - Keyval object (0x9 in bits 26-29) - for communicator (0x1 in bits 22-25) - - Fortran versions of the attributes are formed by adding one to - the C version. - */ -#define MPI_TAG_UB 0x64400001 -#define MPI_HOST 0x64400003 -#define MPI_IO 0x64400005 -#define MPI_WTIME_IS_GLOBAL 0x64400007 -#define MPI_UNIVERSE_SIZE 0x64400009 -#define MPI_LASTUSEDCODE 0x6440000b -#define MPI_APPNUM 0x6440000d - -MPI_METHOD -MPI_Comm_get_attr( - _In_ MPI_Comm comm, - _In_ int comm_keyval, - _When_(*flag != 0, _Out_) void* attribute_val, - _mpi_out_flag_ int* flag - ); - -MPI_METHOD -PMPI_Comm_get_attr( - _In_ MPI_Comm comm, - _In_ int comm_keyval, - _When_(*flag != 0, _Out_) void* attribute_val, - _mpi_out_flag_ int* flag - ); - -MPI_METHOD -MPI_Comm_delete_attr( - _In_ MPI_Comm comm, - _In_ int comm_keyval - ); - -MPI_METHOD -PMPI_Comm_delete_attr( - _In_ MPI_Comm comm, - _In_ int comm_keyval - ); - - -typedef -int -(MPIAPI MPI_Win_copy_attr_function)( - _In_ MPI_Win oldwin, - _In_ int win_keyval, - _In_opt_ void* extra_state, - _In_opt_ void* attribute_val_in, - _Out_ void* attribute_val_out, - _mpi_out_flag_ int* flag - ); - -typedef -int -(MPIAPI MPI_Win_delete_attr_function)( - _In_ MPI_Win win, - _In_ int win_keyval, - _In_opt_ void* attribute_val, - _In_opt_ void* extra_state - ); - -#define MPI_WIN_NULL_COPY_FN ((MPI_Win_copy_attr_function*)0) -#define MPI_WIN_NULL_DELETE_FN ((MPI_Win_delete_attr_function*)0) -#define MPI_WIN_DUP_FN ((MPI_Win_copy_attr_function*)MPIR_Dup_fn) - -MPI_METHOD -MPI_Win_create_keyval( - _In_opt_ MPI_Win_copy_attr_function* win_copy_attr_fn, - _In_opt_ MPI_Win_delete_attr_function* win_delete_attr_fn, - _Out_ int* win_keyval, - _In_opt_ void* extra_state - ); - -MPI_METHOD -PMPI_Win_create_keyval( - _In_opt_ MPI_Win_copy_attr_function* win_copy_attr_fn, - _In_opt_ MPI_Win_delete_attr_function* win_delete_attr_fn, - _Out_ int* win_keyval, - _In_opt_ void* extra_state - ); - -MPI_METHOD -MPI_Win_free_keyval( - _Inout_ int* win_keyval - ); - -MPI_METHOD -PMPI_Win_free_keyval( - _Inout_ int* win_keyval - ); - -MPI_METHOD -MPI_Win_set_attr( - _In_ MPI_Win win, - _In_ int win_keyval, - _In_opt_ void* attribute_val - ); - -MPI_METHOD -PMPI_Win_set_attr( - _In_ MPI_Win win, - _In_ int win_keyval, - _In_opt_ void* attribute_val - ); - - -/* Predefined window key value attributes */ -#define MPI_WIN_BASE 0x66000001 -#define MPI_WIN_SIZE 0x66000003 -#define MPI_WIN_DISP_UNIT 0x66000005 -#define MPI_WIN_CREATE_FLAVOR 0x66000007 -#define MPI_WIN_MODEL 0x66000009 - -/* MPI Window Create Flavors */ -#define MPI_WIN_FLAVOR_CREATE 1 -#define MPI_WIN_FLAVOR_ALLOCATE 2 -#define MPI_WIN_FLAVOR_DYNAMIC 3 -#define MPI_WIN_FLAVOR_SHARED 4 - -/* MPI Window Models */ -#define MPI_WIN_SEPARATE 1 -#define MPI_WIN_UNIFIED 2 - -MPI_METHOD -MPI_Win_get_attr( - _In_ MPI_Win win, - _In_ int win_keyval, - _When_(*flag != 0, _Out_) void* attribute_val, - _mpi_out_flag_ int* flag - ); - -MPI_METHOD -PMPI_Win_get_attr( - _In_ MPI_Win win, - _In_ int win_keyval, - _When_(*flag != 0, _Out_) void* attribute_val, - _mpi_out_flag_ int* flag - ); - -MPI_METHOD -MPI_Win_delete_attr( - _In_ MPI_Win win, - _In_ int win_keyval - ); - -MPI_METHOD -PMPI_Win_delete_attr( - _In_ MPI_Win win, - _In_ int win_keyval - ); - - -typedef -int -(MPIAPI MPI_Type_copy_attr_function)( - MPI_Datatype olddatatype, - int datatype_keyval, - _In_opt_ void* extra_state, - _In_opt_ void* attribute_val_in, - _Out_ void* attribute_val_out, - _mpi_out_flag_ int* flag - ); - -typedef -int -(MPIAPI MPI_Type_delete_attr_function)( - MPI_Datatype datatype, - int datatype_keyval, - _In_opt_ void* attribute_val, - _In_opt_ void* extra_state - ); - -#define MPI_TYPE_NULL_COPY_FN ((MPI_Type_copy_attr_function*)0) -#define MPI_TYPE_NULL_DELETE_FN ((MPI_Type_delete_attr_function*)0) -#define MPI_TYPE_DUP_FN ((MPI_Type_copy_attr_function*)MPIR_Dup_fn) - -MPI_METHOD -MPI_Type_create_keyval( - _In_opt_ MPI_Type_copy_attr_function* type_copy_attr_fn, - _In_opt_ MPI_Type_delete_attr_function* type_delete_attr_fn, - _Out_ int* type_keyval, - _In_opt_ void* extra_state - ); - -MPI_METHOD -PMPI_Type_create_keyval( - _In_opt_ MPI_Type_copy_attr_function* type_copy_attr_fn, - _In_opt_ MPI_Type_delete_attr_function* type_delete_attr_fn, - _Out_ int* type_keyval, - _In_opt_ void* extra_state - ); - -MPI_METHOD -MPI_Type_free_keyval( - _Inout_ int* type_keyval - ); - -MPI_METHOD -PMPI_Type_free_keyval( - _Inout_ int* type_keyval - ); - -MPI_METHOD -MPI_Type_set_attr( - _In_ MPI_Datatype type, - _In_ int type_keyval, - _In_opt_ void* attribute_val - ); - -MPI_METHOD -PMPI_Type_set_attr( - _In_ MPI_Datatype type, - _In_ int type_keyval, - _In_opt_ void* attribute_val - ); - -MPI_METHOD -MPI_Type_get_attr( - _In_ MPI_Datatype type, - _In_ int type_keyval, - _When_(*flag != 0, _Out_) void* attribute_val, - _mpi_out_flag_ int* flag - ); - -MPI_METHOD -PMPI_Type_get_attr( - _In_ MPI_Datatype type, - _In_ int type_keyval, - _When_(*flag != 0, _Out_) void* attribute_val, - _mpi_out_flag_ int* flag - ); - -MPI_METHOD -MPI_Type_delete_attr( - _In_ MPI_Datatype type, - _In_ int type_keyval - ); - -MPI_METHOD -PMPI_Type_delete_attr( - _In_ MPI_Datatype type, - _In_ int type_keyval - ); - - -/*---------------------------------------------*/ -/* Section 6.8: Naming Objects */ -/*---------------------------------------------*/ - -#define MPI_MAX_OBJECT_NAME 128 - -MPI_METHOD -MPI_Comm_set_name( - _In_ MPI_Comm comm, - _In_z_ const char* comm_name - ); - -MPI_METHOD -PMPI_Comm_set_name( - _In_ MPI_Comm comm, - _In_z_ const char* comm_name - ); - -MPI_METHOD -MPI_Comm_get_name( - _In_ MPI_Comm comm, - _Out_writes_z_(MPI_MAX_OBJECT_NAME) char* comm_name, - _Out_ int* resultlen - ); - -MPI_METHOD -PMPI_Comm_get_name( - _In_ MPI_Comm comm, - _Out_writes_z_(MPI_MAX_OBJECT_NAME) char* comm_name, - _Out_ int* resultlen - ); - -MPI_METHOD -MPI_Type_set_name( - _In_ MPI_Datatype datatype, - _In_z_ const char* type_name - ); - -MPI_METHOD -PMPI_Type_set_name( - _In_ MPI_Datatype datatype, - _In_z_ const char* type_name - ); - -MPI_METHOD -MPI_Type_get_name( - _In_ MPI_Datatype datatype, - _Out_writes_z_(MPI_MAX_OBJECT_NAME) char* type_name, - _Out_ int* resultlen - ); - -MPI_METHOD -PMPI_Type_get_name( - _In_ MPI_Datatype datatype, - _Out_writes_z_(MPI_MAX_OBJECT_NAME) char* type_name, - _Out_ int* resultlen - ); - -MPI_METHOD -MPI_Win_set_name( - _In_ MPI_Win win, - _In_z_ const char* win_name - ); - -MPI_METHOD -PMPI_Win_set_name( - _In_ MPI_Win win, - _In_z_ const char* win_name - ); - -MPI_METHOD -MPI_Win_get_name( - _In_ MPI_Win win, - _Out_writes_z_(MPI_MAX_OBJECT_NAME) char* win_name, - _Out_ int* resultlen - ); - -MPI_METHOD -PMPI_Win_get_name( - _In_ MPI_Win win, - _Out_writes_z_(MPI_MAX_OBJECT_NAME) char* win_name, - _Out_ int* resultlen - ); - - -/*---------------------------------------------------------------------------*/ -/* Chapter 7: Process Topologies */ -/*---------------------------------------------------------------------------*/ - -MPI_METHOD -MPI_Cart_create( - _In_ MPI_Comm comm_old, - _In_range_(>=, 0) int ndims, - _In_reads_opt_(ndims) const int dims[], - _In_reads_opt_(ndims) const int periods[], - _In_ int reorder, - _Out_ MPI_Comm* comm_cart - ); - -MPI_METHOD -PMPI_Cart_create( - _In_ MPI_Comm comm_old, - _In_range_(>=, 0) int ndims, - _In_reads_opt_(ndims) const int dims[], - _In_reads_opt_(ndims) const int periods[], - _In_ int reorder, - _Out_ MPI_Comm* comm_cart - ); - -MPI_METHOD -MPI_Dims_create( - _In_range_(>, 0) int nnodes, - _In_range_(>=, 0) int ndims, - _Inout_updates_opt_(ndims) int dims[] - ); - -MPI_METHOD -PMPI_Dims_create( - _In_range_(>, 0) int nnodes, - _In_range_(>=, 0) int ndims, - _Inout_updates_opt_(ndims) int dims[] - ); - -MPI_METHOD -MPI_Graph_create( - _In_ MPI_Comm comm_old, - _In_range_(>=, 0) int nnodes, - _In_reads_opt_(nnodes) const int index[], - _In_reads_opt_(nnodes) const int edges[], - _In_ int reorder, - _Out_ MPI_Comm* comm_graph - ); - -MPI_METHOD -PMPI_Graph_create( - _In_ MPI_Comm comm_old, - _In_range_(>=, 0) int nnodes, - _In_reads_opt_(nnodes) const int index[], - _In_opt_ const int edges[], - _In_ int reorder, - _Out_ MPI_Comm* comm_graph - ); - -MPI_METHOD -MPI_Dist_graph_create_adjacent( - _In_ MPI_Comm comm_old, - _In_range_(>=, 0) int indegree, - _In_reads_opt_(indegree) const int sources[], - _In_reads_opt_(indegree) const int sourceweights[], - _In_range_(>=, 0) int outdegree, - _In_reads_opt_(outdegree) const int destinations[], - _In_reads_opt_(outdegree) const int destweights[], - _In_ MPI_Info info, - _In_range_(0,1) int reorder, - _Out_ MPI_Comm* comm_dist_graph -); - -MPI_METHOD -PMPI_Dist_graph_create_adjacent( - _In_ MPI_Comm comm_old, - _In_range_(>=, 0) int indegree, - _In_reads_opt_(indegree) const int sources[], - _In_reads_opt_(indegree) const int sourceweights[], - _In_range_(>=, 0) int outdegree, - _In_reads_opt_(outdegree) const int destinations[], - _In_reads_opt_(outdegree) const int destweights[], - _In_ MPI_Info info, - _In_range_(0,1) int reorder, - _Out_ MPI_Comm* comm_dist_graph -); - -MPI_METHOD -MPI_Dist_graph_create( - _In_ MPI_Comm comm_old, - _In_range_(>=, 0) int n, - _In_reads_opt_(n) const int sources[], - _In_reads_opt_(n) const int degrees[], - _In_opt_ const int destinations[], - _In_opt_ const int weights[], - _In_ MPI_Info info, - _In_range_(0, 1) int reorder, - _Out_ MPI_Comm *comm_dist_graph - ); - -MPI_METHOD -PMPI_Dist_graph_create( - _In_ MPI_Comm comm_old, - _In_range_(>=, 0) int n, - _In_reads_opt_(n) const int sources[], - _In_reads_opt_(n) const int degrees[], - _In_opt_ const int destinations[], - _In_opt_ const int weights[], - _In_ MPI_Info info, - _In_range_(0, 1) int reorder, - _Out_ MPI_Comm *comm_dist_graph - ); - -/* Topology types */ -enum -{ - MPI_GRAPH = 1, - MPI_CART = 2, - MPI_DIST_GRAPH = 3 -}; - -MPI_METHOD -MPI_Topo_test( - _In_ MPI_Comm comm, - _Out_ int* status - ); - -MPI_METHOD -PMPI_Topo_test( - _In_ MPI_Comm comm, - _Out_ int* status - ); - -MPI_METHOD -MPI_Graphdims_get( - _In_ MPI_Comm comm, - _Out_ int* nnodes, - _Out_ int* nedges - ); - -MPI_METHOD -PMPI_Graphdims_get( - _In_ MPI_Comm comm, - _Out_ int* nnodes, - _Out_ int* nedges - ); - -MPI_METHOD -MPI_Graph_get( - _In_ MPI_Comm comm, - _In_range_(>=, 0) int maxindex, - _In_range_(>=, 0) int maxedges, - _Out_writes_opt_(maxindex) int index[], - _Out_writes_opt_(maxedges) int edges[] - ); - -MPI_METHOD -PMPI_Graph_get( - _In_ MPI_Comm comm, - _In_range_(>=, 0) int maxindex, - _In_range_(>=, 0) int maxedges, - _Out_writes_opt_(maxindex) int index[], - _Out_writes_opt_(maxedges) int edges[] - ); - -MPI_METHOD -MPI_Cartdim_get( - _In_ MPI_Comm comm, - _Out_ int* ndims - ); - -MPI_METHOD -PMPI_Cartdim_get( - _In_ MPI_Comm comm, - _Out_ int* ndims - ); - -MPI_METHOD -MPI_Cart_get( - _In_ MPI_Comm comm, - _In_range_(>=, 0) int maxdims, - _Out_writes_opt_(maxdims) int dims[], - _Out_writes_opt_(maxdims) int periods[], - _Out_writes_opt_(maxdims) int coords[] - ); - -MPI_METHOD -PMPI_Cart_get( - _In_ MPI_Comm comm, - _In_range_(>=, 0) int maxdims, - _Out_writes_opt_(maxdims) int dims[], - _Out_writes_opt_(maxdims) int periods[], - _Out_writes_opt_(maxdims) int coords[] - ); - -MPI_METHOD -MPI_Cart_rank( - _In_ MPI_Comm comm, - _In_ const int coords[], - _Out_ _Deref_out_range_(>=, 0) int* rank - ); - -MPI_METHOD -PMPI_Cart_rank( - _In_ MPI_Comm comm, - _In_ const int coords[], - _Out_ _Deref_out_range_(>=, 0) int* rank - ); - -MPI_METHOD -MPI_Cart_coords( - _In_ MPI_Comm comm, - _In_range_(>=, 0) int rank, - _In_range_(>=, 0) int maxdims, - _Out_writes_opt_(maxdims) int coords[] - ); - -MPI_METHOD -PMPI_Cart_coords( - _In_ MPI_Comm comm, - _In_range_(>=, 0) int rank, - _In_range_(>=, 0) int maxdims, - _Out_writes_opt_(maxdims) int coords[] - ); - -MPI_METHOD -MPI_Graph_neighbors_count( - _In_ MPI_Comm comm, - _In_range_(>=, 0) int rank, - _Out_ _Deref_out_range_(>=, 0) int* nneighbors - ); - -MPI_METHOD -PMPI_Graph_neighbors_count( - _In_ MPI_Comm comm, - _In_range_(>=, 0) int rank, - _Out_ _Deref_out_range_(>=, 0) int* nneighbors - ); - -MPI_METHOD -MPI_Graph_neighbors( - _In_ MPI_Comm comm, - _In_range_(>=, 0) int rank, - _In_range_(>=, 0) int maxneighbors, - _Out_writes_opt_(maxneighbors) int neighbors[] - ); - -MPI_METHOD -PMPI_Graph_neighbors( - _In_ MPI_Comm comm, - _In_range_(>=, 0) int rank, - _In_range_(>=, 0) int maxneighbors, - _Out_writes_opt_(maxneighbors) int neighbors[] - ); - -MPI_METHOD -MPI_Cart_shift( - _In_ MPI_Comm comm, - _In_range_(>=, 0) int direction, - _In_ int disp, - _Out_ _Deref_out_range_(>=, MPI_PROC_NULL) int* rank_source, - _Out_ _Deref_out_range_(>=, MPI_PROC_NULL) int* rank_dest - ); - -MPI_METHOD -PMPI_Cart_shift( - _In_ MPI_Comm comm, - _In_range_(>=, 0) int direction, - _In_ int disp, - _Out_ _Deref_out_range_(>=, MPI_PROC_NULL) int* rank_source, - _Out_ _Deref_out_range_(>=, MPI_PROC_NULL) int* rank_dest - ); - -MPI_METHOD -MPI_Cart_sub( - _In_ MPI_Comm comm, - _In_ const int remain_dims[], - _Out_ MPI_Comm* newcomm - ); - -MPI_METHOD -PMPI_Cart_sub( - _In_ MPI_Comm comm, - _In_ const int remain_dims[], - _Out_ MPI_Comm* newcomm - ); - -MPI_METHOD -MPI_Cart_map( - _In_ MPI_Comm comm, - _In_range_(>=, 0) int ndims, - _In_reads_opt_(ndims) const int dims[], - _In_reads_opt_(ndims) const int periods[], - _Out_ _Deref_out_range_(>=, MPI_UNDEFINED) int* newrank - ); - -MPI_METHOD -PMPI_Cart_map( - _In_ MPI_Comm comm, - _In_range_(>=, 0) int ndims, - _In_reads_opt_(ndims) const int dims[], - _In_reads_opt_(ndims) const int periods[], - _Out_ _Deref_out_range_(>=, MPI_UNDEFINED) int* newrank - ); - -MPI_METHOD -MPI_Graph_map( - _In_ MPI_Comm comm, - _In_range_(>, 0) int nnodes, - _In_reads_opt_(nnodes) const int index[], - _In_opt_ const int edges[], - _Out_ _Deref_out_range_(>=, MPI_UNDEFINED) int* newrank - ); - -MPI_METHOD -PMPI_Graph_map( - _In_ MPI_Comm comm, - _In_range_(>=, 0) int nnodes, - _In_reads_opt_(nnodes) const int index[], - _In_opt_ const int edges[], - _Out_ _Deref_out_range_(>=, MPI_UNDEFINED) int* newrank - ); - -MPI_METHOD -MPI_Dist_graph_neighbors_count( - _In_ MPI_Comm comm, - _Out_ _Deref_out_range_(>=, 0) int *indegree, - _Out_ _Deref_out_range_(>=, 0) int *outdegree, - _Out_ _Deref_out_range_(>=, 0) int *weighted - ); - -MPI_METHOD -PMPI_Dist_graph_neighbors_count( - _In_ MPI_Comm comm, - _Out_ _Deref_out_range_(>=, 0) int *indegree, - _Out_ _Deref_out_range_(>=, 0) int *outdegree, - _Out_ _Deref_out_range_(>=, 0) int *weighted - ); - -MPI_METHOD -MPI_Dist_graph_neighbors( - _In_ MPI_Comm comm, - _In_range_(>=, 0) int maxindegree, - _Out_writes_opt_(maxindegree) int sources[], - _Out_writes_opt_(maxindegree) int sourceweights[], - _In_range_(>=, 0) int maxoutdegree, - _Out_writes_opt_(maxoutdegree) int destinations[], - _Out_writes_opt_(maxoutdegree) int destweights[] - ); - -MPI_METHOD -PMPI_Dist_graph_neighbors( - _In_ MPI_Comm comm, - _In_range_(>=, 0) int maxindegree, - _Out_writes_opt_(maxindegree) int sources[], - _Out_writes_opt_(maxindegree) int sourceweights[], - _In_range_(>=, 0) int maxoutdegree, - _Out_writes_opt_(maxoutdegree) int destinations[], - _Out_writes_opt_(maxoutdegree) int destweights[] - ); - -/*---------------------------------------------------------------------------*/ -/* Chapter 8: Environmental Management */ -/*---------------------------------------------------------------------------*/ - -/*---------------------------------------------*/ -/* Section 8.1: Implementation Information */ -/*---------------------------------------------*/ - -#define MPI_VERSION 2 -#define MPI_SUBVERSION 0 - -MPI_METHOD -MPI_Get_version( - _Out_ int* version, - _Out_ int* subversion - ); - -MPI_METHOD -PMPI_Get_version( - _Out_ int* version, - _Out_ int* subversion - ); - -#define MPI_MAX_LIBRARY_VERSION_STRING 64 - -MPI_METHOD -MPI_Get_library_version( - _Out_writes_z_(MPI_MAX_LIBRARY_VERSION_STRING) char* version, - _Out_ int* resultlen -); - -MPI_METHOD -PMPI_Get_library_version( - _Out_writes_z_(MPI_MAX_LIBRARY_VERSION_STRING) char* version, - _Out_ int* resultlen -); - -#define MPI_MAX_PROCESSOR_NAME 128 - -MPI_METHOD -MPI_Get_processor_name( - _Out_writes_z_(MPI_MAX_PROCESSOR_NAME) char* name, - _Out_ int* resultlen - ); - -MPI_METHOD -PMPI_Get_processor_name( - _Out_writes_z_(MPI_MAX_PROCESSOR_NAME) char* name, - _Out_ int* resultlen - ); - -/*---------------------------------------------*/ -/* Section 8.2: Memory Allocation */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Alloc_mem( - _In_ MPI_Aint size, - _In_ MPI_Info info, - _Out_ void* baseptr - ); - -MPI_METHOD -PMPI_Alloc_mem( - _In_ MPI_Aint size, - _In_ MPI_Info info, - _Out_ void* baseptr - ); - -MPI_METHOD -MPI_Free_mem( - _In_ _Post_invalid_ void* base - ); - -MPI_METHOD -PMPI_Free_mem( - _In_ _Post_invalid_ void* base - ); - - -/*---------------------------------------------*/ -/* Section 8.3: Error Handling */ -/*---------------------------------------------*/ - -typedef -void -(MPIAPI MPI_Comm_errhandler_fn)( - _In_ MPI_Comm* comm, - _Inout_ int* errcode, - ... - ); - -MPI_METHOD -MPI_Comm_create_errhandler( - _In_ MPI_Comm_errhandler_fn* function, - _Out_ MPI_Errhandler* errhandler - ); - -MPI_METHOD -PMPI_Comm_create_errhandler( - _In_ MPI_Comm_errhandler_fn* function, - _Out_ MPI_Errhandler* errhandler - ); - -MPI_METHOD -MPI_Comm_set_errhandler( - _In_ MPI_Comm comm, - _In_ MPI_Errhandler errhandler - ); - -MPI_METHOD -PMPI_Comm_set_errhandler( - _In_ MPI_Comm comm, - _In_ MPI_Errhandler errhandler - ); - -MPI_METHOD -MPI_Comm_get_errhandler( - _In_ MPI_Comm comm, - _Out_ MPI_Errhandler* errhandler - ); - -MPI_METHOD -PMPI_Comm_get_errhandler( - _In_ MPI_Comm comm, - _Out_ MPI_Errhandler* errhandler - ); - - -typedef -void -(MPIAPI MPI_Win_errhandler_fn)( - _In_ MPI_Win* win, - _Inout_ int* errcode, - ... - ); - -MPI_METHOD -MPI_Win_create_errhandler( - _In_ MPI_Win_errhandler_fn* function, - _Out_ MPI_Errhandler* errhandler - ); - -MPI_METHOD -PMPI_Win_create_errhandler( - _In_ MPI_Win_errhandler_fn* function, - _Out_ MPI_Errhandler* errhandler - ); - -MPI_METHOD -MPI_Win_set_errhandler( - _In_ MPI_Win win, - _In_ MPI_Errhandler errhandler - ); - -MPI_METHOD -PMPI_Win_set_errhandler( - _In_ MPI_Win win, - _In_ MPI_Errhandler errhandler - ); - -MPI_METHOD -MPI_Win_get_errhandler( - _In_ MPI_Win win, - _Out_ MPI_Errhandler* errhandler - ); - -MPI_METHOD -PMPI_Win_get_errhandler( - _In_ MPI_Win win, - _Out_ MPI_Errhandler* errhandler - ); - - -typedef -void -(MPIAPI MPI_File_errhandler_fn)( - _In_ MPI_File* file, - _Inout_ int* errcode, - ... - ); - -MPI_METHOD -MPI_File_create_errhandler( - _In_ MPI_File_errhandler_fn* function, - _Out_ MPI_Errhandler* errhandler - ); - -MPI_METHOD -PMPI_File_create_errhandler( - _In_ MPI_File_errhandler_fn* function, - _Out_ MPI_Errhandler* errhandler - ); - -MPI_METHOD -MPI_File_set_errhandler( - _In_ MPI_File file, - _In_ MPI_Errhandler errhandler - ); - -MPI_METHOD -PMPI_File_set_errhandler( - _In_ MPI_File file, - _In_ MPI_Errhandler errhandler - ); - -MPI_METHOD -MPI_File_get_errhandler( - _In_ MPI_File file, - _Out_ MPI_Errhandler* errhandler - ); - -MPI_METHOD -PMPI_File_get_errhandler( - _In_ MPI_File file, - _Out_ MPI_Errhandler* errhandler - ); - -MPI_METHOD -MPI_Errhandler_free( - _Inout_ MPI_Errhandler* errhandler - ); - -MPI_METHOD -PMPI_Errhandler_free( - _Inout_ MPI_Errhandler* errhandler - ); - -#define MPI_MAX_ERROR_STRING 512 - -MPI_METHOD -MPI_Error_string( - _In_ int errorcode, - _Out_writes_z_(MPI_MAX_ERROR_STRING) char* string, - _Out_ int* resultlen - ); - -MPI_METHOD -PMPI_Error_string( - _In_ int errorcode, - _Out_writes_z_(MPI_MAX_ERROR_STRING) char* string, - _Out_ int* resultlen - ); - - -/*---------------------------------------------*/ -/* Section 8.4: Error Codes and Classes */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Error_class( - _In_ int errorcode, - _Out_ int* errorclass - ); - -MPI_METHOD -PMPI_Error_class( - _In_ int errorcode, - _Out_ int* errorclass - ); - -MPI_METHOD -MPI_Add_error_class( - _Out_ int* errorclass - ); - -MPI_METHOD -PMPI_Add_error_class( - _Out_ int* errorclass - ); - -MPI_METHOD -MPI_Add_error_code( - _In_ int errorclass, - _Out_ int* errorcode - ); - -MPI_METHOD -PMPI_Add_error_code( - _In_ int errorclass, - _Out_ int* errorcode - ); - -MPI_METHOD -MPI_Add_error_string( - _In_ int errorcode, - _In_z_ const char* string - ); - -MPI_METHOD -PMPI_Add_error_string( - _In_ int errorcode, - _In_z_ const char* string - ); - -MPI_METHOD -MPI_Comm_call_errhandler( - _In_ MPI_Comm comm, - _In_ int errorcode - ); - -MPI_METHOD -PMPI_Comm_call_errhandler( - _In_ MPI_Comm comm, - _In_ int errorcode - ); - -MPI_METHOD -MPI_Win_call_errhandler( - _In_ MPI_Win win, - _In_ int errorcode - ); - -MPI_METHOD -PMPI_Win_call_errhandler( - _In_ MPI_Win win, - _In_ int errorcode - ); - -MPI_METHOD -MPI_File_call_errhandler( - _In_ MPI_File file, - _In_ int errorcode - ); - -MPI_METHOD -PMPI_File_call_errhandler( - _In_ MPI_File file, - _In_ int errorcode - ); - - -/*---------------------------------------------*/ -/* Section 8.6: Timers and Synchronization */ -/*---------------------------------------------*/ - -double -MPIAPI -MPI_Wtime( - void - ); - -double -MPIAPI -PMPI_Wtime( - void - ); - -double -MPIAPI -MPI_Wtick( - void - ); - -double -MPIAPI -PMPI_Wtick( - void - ); - - -/*---------------------------------------------*/ -/* Section 8.7: Startup */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Init( - _In_opt_ const int* argc, - _Notref_ _In_reads_opt_(*argc) char*** argv - ); - -MPI_METHOD -PMPI_Init( - _In_opt_ int* argc, - _Notref_ _In_reads_opt_(*argc) char*** argv - ); - -MPI_METHOD -MPI_Finalize( - void - ); - -MPI_METHOD -PMPI_Finalize( - void - ); - -MPI_METHOD -MPI_Initialized( - _mpi_out_flag_ int* flag - ); - -MPI_METHOD -PMPI_Initialized( - _mpi_out_flag_ int* flag - ); - -MPI_METHOD -MPI_Abort( - _In_ MPI_Comm comm, - _In_ int errorcode - ); - -MPI_METHOD -PMPI_Abort( - _In_ MPI_Comm comm, - _In_ int errorcode - ); - -MPI_METHOD -MPI_Finalized( - _mpi_out_flag_ int* flag - ); - -MPI_METHOD -PMPI_Finalized( - _mpi_out_flag_ int* flag - ); - - -/*---------------------------------------------------------------------------*/ -/* Chapter 9: The Info Object */ -/*---------------------------------------------------------------------------*/ - -#define MPI_MAX_INFO_KEY 255 -#define MPI_MAX_INFO_VAL 1024 - -MPI_METHOD -MPI_Info_create( - _Out_ MPI_Info* info - ); - -MPI_METHOD -PMPI_Info_create( - _Out_ MPI_Info* info - ); - -MPI_METHOD -MPI_Info_set( - _In_ MPI_Info info, - _In_z_ const char* key, - _In_z_ const char* value - ); - -MPI_METHOD -PMPI_Info_set( - _In_ MPI_Info info, - _In_z_ const char* key, - _In_z_ const char* value - ); - -MPI_METHOD -MPI_Info_delete( - _In_ MPI_Info info, - _In_z_ const char* key - ); - -MPI_METHOD -PMPI_Info_delete( - _In_ MPI_Info info, - _In_z_ const char* key - ); - -MPI_METHOD -MPI_Info_get( - _In_ MPI_Info info, - _In_z_ const char* key, - _In_ int valuelen, - _When_(*flag != 0, _Out_writes_z_(valuelen)) char* value, - _mpi_out_flag_ int* flag - ); - -MPI_METHOD -PMPI_Info_get( - _In_ MPI_Info info, - _In_z_ const char* key, - _In_ int valuelen, - _When_(*flag != 0, _Out_writes_z_(valuelen)) char* value, - _mpi_out_flag_ int* flag - ); - -MPI_METHOD -MPI_Info_get_valuelen( - _In_ MPI_Info info, - _In_z_ const char* key, - _Out_ _Deref_out_range_(0, MPI_MAX_INFO_VAL) int* valuelen, - _mpi_out_flag_ int* flag - ); - -MPI_METHOD -PMPI_Info_get_valuelen( - _In_ MPI_Info info, - _In_z_ const char* key, - _Out_ _Deref_out_range_(0, MPI_MAX_INFO_VAL) int* valuelen, - _mpi_out_flag_ int* flag - ); - -MPI_METHOD -MPI_Info_get_nkeys( - _In_ MPI_Info info, - _Out_ int* nkeys - ); - -MPI_METHOD -PMPI_Info_get_nkeys( - _In_ MPI_Info info, - _Out_ int* nkeys - ); - -MPI_METHOD -MPI_Info_get_nthkey( - _In_ MPI_Info info, - _In_range_(>=, 0) int n, - _Out_writes_z_(MPI_MAX_INFO_KEY) char* key - ); - -MPI_METHOD -PMPI_Info_get_nthkey( - _In_ MPI_Info info, - _In_range_(>=, 0) int n, - _Out_writes_z_(MPI_MAX_INFO_KEY) char* key - ); - -MPI_METHOD -MPI_Info_dup( - _In_ MPI_Info info, - _Out_ MPI_Info* newinfo - ); - -MPI_METHOD -PMPI_Info_dup( - _In_ MPI_Info info, - _Out_ MPI_Info* newinfo - ); - -MPI_METHOD -MPI_Info_free( - _Inout_ MPI_Info* info - ); - -MPI_METHOD -PMPI_Info_free( - _Inout_ MPI_Info* info - ); - - -/*---------------------------------------------------------------------------*/ -/* Chapter 10: Process Creation and Management */ -/*---------------------------------------------------------------------------*/ - -/*---------------------------------------------*/ -/* Section 10.3: Process Manager Interface */ -/*---------------------------------------------*/ - -#define MPI_ARGV_NULL ((char**)0) -#define MPI_ARGVS_NULL ((char***)0) - -#define MPI_ERRCODES_IGNORE ((int*)0) - -MPI_METHOD -MPI_Comm_spawn( - _In_z_ const char* command, - _In_ char* argv[], - _In_range_(>=, 0) int maxprocs, - _In_ MPI_Info info, - _In_range_(>=, 0) int root, - _In_ MPI_Comm comm, - _Out_ MPI_Comm* intercomm, - _Out_writes_(maxprocs) int array_of_errcodes[] - ); - -MPI_METHOD -PMPI_Comm_spawn( - _In_z_ const char* command, - _In_ char* argv[], - _In_range_(>=, 0) int maxprocs, - _In_ MPI_Info info, - _In_range_(>=, 0) int root, - _In_ MPI_Comm comm, - _Out_ MPI_Comm* intercomm, - _Out_writes_(maxprocs) int array_of_errcodes[] - ); - -MPI_METHOD -MPI_Comm_get_parent( - _Out_ MPI_Comm* parent - ); - -MPI_METHOD -PMPI_Comm_get_parent( - _Out_ MPI_Comm* parent - ); - -MPI_METHOD -MPI_Comm_spawn_multiple( - _In_range_(>, 0) int count, - _In_reads_z_(count) char* array_of_commands[], - _In_reads_z_(count) char** array_of_argv[], - _In_reads_(count) const int array_of_maxprocs[], - _In_reads_(count) const MPI_Info array_of_info[], - _In_range_(>=, 0) int root, - _In_ MPI_Comm comm, - _Out_ MPI_Comm* intercomm, - _Out_ int array_of_errcodes[] - ); - -MPI_METHOD -PMPI_Comm_spawn_multiple( - _In_range_(>, 0) int count, - _In_reads_z_(count) char* array_of_commands[], - _In_reads_z_(count) char** array_of_argv[], - _In_reads_(count) const int array_of_maxprocs[], - _In_reads_(count) const MPI_Info array_of_info[], - _In_range_(>=, 0) int root, - _In_ MPI_Comm comm, - _Out_ MPI_Comm* intercomm, - _Out_ int array_of_errcodes[] - ); - - -/*---------------------------------------------*/ -/* Section 10.4: Establishing Communication */ -/*---------------------------------------------*/ - -#define MPI_MAX_PORT_NAME 256 - -MPI_METHOD -MPI_Open_port( - _In_ MPI_Info info, - _Out_writes_z_(MPI_MAX_PORT_NAME) char* port_name - ); - -MPI_METHOD -PMPI_Open_port( - _In_ MPI_Info info, - _Out_writes_z_(MPI_MAX_PORT_NAME) char* port_name - ); - -MPI_METHOD -MPI_Close_port( - _In_z_ const char* port_name - ); - -MPI_METHOD -PMPI_Close_port( - _In_z_ const char* port_name - ); - -MPI_METHOD -MPI_Comm_accept( - _In_z_ const char* port_name, - _In_ MPI_Info info, - _In_range_(>=, 0) int root, - _In_ MPI_Comm comm, - _Out_ MPI_Comm* newcomm - ); - -MPI_METHOD -PMPI_Comm_accept( - _In_z_ const char* port_name, - _In_ MPI_Info info, - _In_range_(>=, 0) int root, - _In_ MPI_Comm comm, - _Out_ MPI_Comm* newcomm - ); - -MPI_METHOD -MPI_Comm_connect( - _In_z_ const char* port_name, - _In_ MPI_Info info, - _In_range_(>=, 0) int root, - _In_ MPI_Comm comm, - _Out_ MPI_Comm* newcomm - ); - -MPI_METHOD -PMPI_Comm_connect( - _In_z_ const char* port_name, - _In_ MPI_Info info, - _In_range_(>=, 0) int root, - _In_ MPI_Comm comm, - _Out_ MPI_Comm* newcomm - ); - - -/*---------------------------------------------*/ -/* Section 10.4.4: Name Publishing */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Publish_name( - _In_z_ const char* service_name, - _In_ MPI_Info info, - _In_z_ const char* port_name - ); - -MPI_METHOD -PMPI_Publish_name( - _In_z_ const char* service_name, - _In_ MPI_Info info, - _In_z_ const char* port_name - ); - -MPI_METHOD -MPI_Unpublish_name( - _In_z_ const char* service_name, - _In_ MPI_Info info, - _In_z_ const char* port_name - ); - -MPI_METHOD -PMPI_Unpublish_name( - _In_z_ const char* service_name, - _In_ MPI_Info info, - _In_z_ const char* port_name - ); - -MPI_METHOD -MPI_Lookup_name( - _In_z_ const char* service_name, - _In_ MPI_Info info, - _Out_writes_z_(MPI_MAX_PORT_NAME) char* port_name - ); - -MPI_METHOD -PMPI_Lookup_name( - _In_z_ const char* service_name, - _In_ MPI_Info info, - _Out_writes_z_(MPI_MAX_PORT_NAME) char* port_name - ); - - -/*---------------------------------------------*/ -/* Section 10.5: Other Functionality */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Comm_disconnect( - _In_ MPI_Comm* comm - ); - -MPI_METHOD -PMPI_Comm_disconnect( - _In_ MPI_Comm* comm - ); - -MPI_METHOD -MPI_Comm_join( - _In_ int fd, - _Out_ MPI_Comm* intercomm - ); - -MPI_METHOD -PMPI_Comm_join( - _In_ int fd, - _Out_ MPI_Comm* intercomm - ); - - -/*---------------------------------------------------------------------------*/ -/* Chapter 11: One-Sided Communications */ -/*---------------------------------------------------------------------------*/ - -MPI_METHOD -MPI_Win_create( - _In_ void* base, - _In_range_(>=, 0) MPI_Aint size, - _In_range_(>, 0) int disp_unit, - _In_ MPI_Info info, - _In_ MPI_Comm comm, - _Out_ MPI_Win* win - ); - -MPI_METHOD -PMPI_Win_create( - _In_ void* base, - _In_range_(>=, 0) MPI_Aint size, - _In_range_(>, 0) int disp_unit, - _In_ MPI_Info info, - _In_ MPI_Comm comm, - _Out_ MPI_Win* win - ); - -MPI_METHOD -MPI_Win_allocate( - _In_range_(>= , 0) MPI_Aint size, - _In_range_(>, 0) int disp_unit, - _In_ MPI_Info info, - _In_ MPI_Comm comm, - _Out_ void *baseptr, - _Out_ MPI_Win *win - ); - -MPI_METHOD -PMPI_Win_allocate( - _In_range_(>= , 0) MPI_Aint size, - _In_range_(>, 0) int disp_unit, - _In_ MPI_Info info, - _In_ MPI_Comm comm, - _Out_ void *baseptr, - _Out_ MPI_Win *win - ); - -MPI_METHOD -MPI_Win_allocate_shared( - _In_range_(>=, 0) MPI_Aint size, - _In_range_(>, 0) int disp_unit, - _In_ MPI_Info info, - _In_ MPI_Comm comm, - _Out_ void *baseptr, - _Out_ MPI_Win *win - ); - -MPI_METHOD -PMPI_Win_allocate_shared( - _In_range_(>=, 0) MPI_Aint size, - _In_range_(>, 0) int disp_unit, - _In_ MPI_Info info, - _In_ MPI_Comm comm, - _Out_ void *baseptr, - _Out_ MPI_Win *win - ); - -MPI_METHOD -MPI_Win_shared_query( - _In_ MPI_Win win, - _In_range_(>=, MPI_PROC_NULL) int rank, - _Out_ MPI_Aint *size, - _Out_ int *disp_unit, - _Out_ void *baseptr - ); - -MPI_METHOD -PMPI_Win_shared_query( - _In_ MPI_Win win, - _In_range_(>=, MPI_PROC_NULL) int rank, - _Out_ MPI_Aint *size, - _Out_ int *disp_unit, - _Out_ void *baseptr - ); - -MPI_METHOD -MPI_Win_create_dynamic( - _In_ MPI_Info info, - _In_ MPI_Comm comm, - _Out_ MPI_Win* win - ); - -MPI_METHOD -PMPI_Win_create_dynamic( - _In_ MPI_Info info, - _In_ MPI_Comm comm, - _Out_ MPI_Win* win - ); - -MPI_METHOD -MPI_Win_free( - _Inout_ MPI_Win* win - ); - -MPI_METHOD -PMPI_Win_free( - _Inout_ MPI_Win* win - ); - -MPI_METHOD -MPI_Win_get_group( - _In_ MPI_Win win, - _Out_ MPI_Group* group - ); - -MPI_METHOD -PMPI_Win_get_group( - _In_ MPI_Win win, - _Out_ MPI_Group* group - ); - -MPI_METHOD -MPI_Win_attach( - _In_ MPI_Win win, - _In_ void* base, - _In_range_(>=, 0) MPI_Aint size - ); - -MPI_METHOD -PMPI_Win_attach( - _In_ MPI_Win win, - _In_ void* base, - _In_range_(>=, 0) MPI_Aint size - ); - -MPI_METHOD -MPI_Win_detach( - _In_ MPI_Win win, - _In_ void* base - ); - -MPI_METHOD -PMPI_Win_detach( - _In_ MPI_Win win, - _In_ void* base - ); - -MPI_METHOD -MPI_Put( - _In_opt_ const void* origin_addr, - _In_range_(>=, 0) int origin_count, - _In_ MPI_Datatype origin_datatype, - _In_range_(>=, MPI_PROC_NULL) int target_rank, - _In_range_(>=, 0) MPI_Aint target_disp, - _In_range_(>=, 0) int target_count, - _In_ MPI_Datatype target_datatype, - _In_ MPI_Win win - ); - -MPI_METHOD -PMPI_Put( - _In_opt_ const void* origin_addr, - _In_range_(>=, 0) int origin_count, - _In_ MPI_Datatype origin_datatype, - _In_range_(>=, MPI_PROC_NULL) int target_rank, - _In_range_(>=, 0) MPI_Aint target_disp, - _In_range_(>=, 0) int target_count, - _In_ MPI_Datatype target_datatype, - _In_ MPI_Win win - ); - -MPI_METHOD -MPI_Rput( - _In_opt_ const void* origin_addr, - _In_range_(>=, 0) int origin_count, - _In_ MPI_Datatype origin_datatype, - _In_range_(>=, MPI_PROC_NULL) int target_rank, - _In_range_(>=, 0) MPI_Aint target_disp, - _In_range_(>=, 0) int target_count, - _In_ MPI_Datatype target_datatype, - _In_ MPI_Win win, - _Out_ MPI_Request *request - ); - -MPI_METHOD -PMPI_Rput( - _In_opt_ const void* origin_addr, - _In_range_(>=, 0) int origin_count, - _In_ MPI_Datatype origin_datatype, - _In_range_(>=, MPI_PROC_NULL) int target_rank, - _In_range_(>=, 0) MPI_Aint target_disp, - _In_range_(>=, 0) int target_count, - _In_ MPI_Datatype target_datatype, - _In_ MPI_Win win, - _Out_ MPI_Request *request - ); - -MPI_METHOD -MPI_Get( - _In_opt_ void* origin_addr, - _In_range_(>=, 0) int origin_count, - _In_ MPI_Datatype origin_datatype, - _In_range_(>=, MPI_PROC_NULL) int target_rank, - _In_range_(>=, 0) MPI_Aint target_disp, - _In_range_(>=, 0) int target_count, - _In_ MPI_Datatype target_datatype, - _In_ MPI_Win win - ); - -MPI_METHOD -PMPI_Get( - _In_opt_ void* origin_addr, - _In_range_(>=, 0) int origin_count, - _In_ MPI_Datatype origin_datatype, - _In_range_(>=, MPI_PROC_NULL) int target_rank, - _In_range_(>=, 0) MPI_Aint target_disp, - _In_range_(>=, 0) int target_count, - _In_ MPI_Datatype target_datatype, - _In_ MPI_Win win - ); - -MPI_METHOD -MPI_Rget( - _In_opt_ void* origin_addr, - _In_range_(>= , 0) int origin_count, - _In_ MPI_Datatype origin_datatype, - _In_range_(>= , MPI_PROC_NULL) int target_rank, - _In_range_(>= , 0) MPI_Aint target_disp, - _In_range_(>= , 0) int target_count, - _In_ MPI_Datatype target_datatype, - _In_ MPI_Win win, - _Out_ MPI_Request *request - ); - -MPI_METHOD -PMPI_Rget( - _In_opt_ void* origin_addr, - _In_range_(>= , 0) int origin_count, - _In_ MPI_Datatype origin_datatype, - _In_range_(>= , MPI_PROC_NULL) int target_rank, - _In_range_(>= , 0) MPI_Aint target_disp, - _In_range_(>= , 0) int target_count, - _In_ MPI_Datatype target_datatype, - _In_ MPI_Win win, - _Out_ MPI_Request *request - ); - -MPI_METHOD -MPI_Accumulate( - _In_opt_ const void* origin_addr, - _In_range_(>=, 0) int origin_count, - _In_ MPI_Datatype origin_datatype, - _In_range_(>=, MPI_PROC_NULL) int target_rank, - _In_range_(>=, 0) MPI_Aint target_disp, - _In_range_(>=, 0) int target_count, - _In_ MPI_Datatype target_datatype, - _In_ MPI_Op op, - _In_ MPI_Win win - ); - -MPI_METHOD -PMPI_Accumulate( - _In_opt_ const void* origin_addr, - _In_range_(>=, 0) int origin_count, - _In_ MPI_Datatype origin_datatype, - _In_range_(>=, MPI_PROC_NULL) int target_rank, - _In_range_(>=, 0) MPI_Aint target_disp, - _In_range_(>=, 0) int target_count, - _In_ MPI_Datatype target_datatype, - _In_ MPI_Op op, - _In_ MPI_Win win - ); - -MPI_METHOD -MPI_Raccumulate( - _In_opt_ const void* origin_addr, - _In_range_(>=, 0) int origin_count, - _In_ MPI_Datatype origin_datatype, - _In_range_(>=, MPI_PROC_NULL) int target_rank, - _In_range_(>=, 0) MPI_Aint target_disp, - _In_range_(>=, 0) int target_count, - _In_ MPI_Datatype target_datatype, - _In_ MPI_Op op, - _In_ MPI_Win win, - _Out_ MPI_Request *request - ); - -MPI_METHOD -PMPI_Raccumulate( - _In_opt_ const void* origin_addr, - _In_range_(>=, 0) int origin_count, - _In_ MPI_Datatype origin_datatype, - _In_range_(>=, MPI_PROC_NULL) int target_rank, - _In_range_(>=, 0) MPI_Aint target_disp, - _In_range_(>=, 0) int target_count, - _In_ MPI_Datatype target_datatype, - _In_ MPI_Op op, - _In_ MPI_Win win, - _Out_ MPI_Request *request - ); - -MPI_METHOD -MPI_Get_accumulate( - _In_opt_ const void* origin_addr, - _In_range_(>= , 0) int origin_count, - _In_ MPI_Datatype origin_datatype, - _In_opt_ void* result_addr, - _In_range_(>= , 0) int result_count, - _In_ MPI_Datatype result_datatype, - _In_range_(>= , MPI_PROC_NULL) int target_rank, - _In_range_(>= , 0) MPI_Aint target_disp, - _In_range_(>= , 0) int target_count, - _In_ MPI_Datatype target_datatype, - _In_ MPI_Op op, - _In_ MPI_Win win -); - -MPI_METHOD -PMPI_Get_accumulate( - _In_opt_ const void* origin_addr, - _In_range_(>= , 0) int origin_count, - _In_ MPI_Datatype origin_datatype, - _In_opt_ void* result_addr, - _In_range_(>= , 0) int result_count, - _In_ MPI_Datatype result_datatype, - _In_range_(>= , MPI_PROC_NULL) int target_rank, - _In_range_(>= , 0) MPI_Aint target_disp, - _In_range_(>= , 0) int target_count, - _In_ MPI_Datatype target_datatype, - _In_ MPI_Op op, - _In_ MPI_Win win -); - -MPI_METHOD -MPI_Rget_accumulate( - _In_opt_ const void* origin_addr, - _In_range_(>= , 0) int origin_count, - _In_ MPI_Datatype origin_datatype, - _In_opt_ void* result_addr, - _In_range_(>= , 0) int result_count, - _In_ MPI_Datatype result_datatype, - _In_range_(>= , MPI_PROC_NULL) int target_rank, - _In_range_(>= , 0) MPI_Aint target_disp, - _In_range_(>= , 0) int target_count, - _In_ MPI_Datatype target_datatype, - _In_ MPI_Op op, - _In_ MPI_Win win, - _Out_ MPI_Request *request -); - -MPI_METHOD -PMPI_Rget_accumulate( - _In_opt_ const void* origin_addr, - _In_range_(>= , 0) int origin_count, - _In_ MPI_Datatype origin_datatype, - _In_opt_ void* result_addr, - _In_range_(>= , 0) int result_count, - _In_ MPI_Datatype result_datatype, - _In_range_(>= , MPI_PROC_NULL) int target_rank, - _In_range_(>= , 0) MPI_Aint target_disp, - _In_range_(>= , 0) int target_count, - _In_ MPI_Datatype target_datatype, - _In_ MPI_Op op, - _In_ MPI_Win win, - _Out_ MPI_Request *request -); - -MPI_METHOD -MPI_Fetch_and_op( - _In_opt_ const void* origin_addr, - _When_(target_rank != MPI_PROC_NULL, _In_) - _When_(target_rank == MPI_PROC_NULL, _In_opt_) - void* result_addr, - _In_ MPI_Datatype datatype, - _In_range_(>= , MPI_PROC_NULL) int target_rank, - _In_range_(>= , 0) MPI_Aint target_disp, - _In_ MPI_Op op, - _In_ MPI_Win win -); - -MPI_METHOD -PMPI_Fetch_and_op( - _In_opt_ const void* origin_addr, - _When_(target_rank != MPI_PROC_NULL, _In_) - _When_(target_rank == MPI_PROC_NULL, _In_opt_) - void* result_addr, - _In_ MPI_Datatype datatype, - _In_range_(>= , MPI_PROC_NULL) int target_rank, - _In_range_(>= , 0) MPI_Aint target_disp, - _In_ MPI_Op op, - _In_ MPI_Win win -); - -MPI_METHOD -MPI_Compare_and_swap( - _When_(target_rank != MPI_PROC_NULL, _In_) - _When_(target_rank == MPI_PROC_NULL, _In_opt_) - const void* origin_addr, - _When_(target_rank != MPI_PROC_NULL, _In_) - _When_(target_rank == MPI_PROC_NULL, _In_opt_) - const void* compare_addr, - _When_(target_rank != MPI_PROC_NULL, _In_) - _When_(target_rank == MPI_PROC_NULL, _In_opt_) - void* result_addr, - _In_ MPI_Datatype datatype, - _In_range_(>= , MPI_PROC_NULL) int target_rank, - _In_range_(>= , 0) MPI_Aint target_disp, - _In_ MPI_Win win -); - -MPI_METHOD -PMPI_Compare_and_swap( - _When_(target_rank != MPI_PROC_NULL, _In_) - _When_(target_rank == MPI_PROC_NULL, _In_opt_) - const void* origin_addr, - _When_(target_rank != MPI_PROC_NULL, _In_) - _When_(target_rank == MPI_PROC_NULL, _In_opt_) - const void* compare_addr, - _When_(target_rank != MPI_PROC_NULL, _In_) - _When_(target_rank == MPI_PROC_NULL, _In_opt_) - void* result_addr, - _In_ MPI_Datatype datatype, - _In_range_(>= , MPI_PROC_NULL) int target_rank, - _In_range_(>= , 0) MPI_Aint target_disp, - _In_ MPI_Win win -); - -/* Asserts for one-sided communication */ -#define MPI_MODE_NOCHECK 1024 -#define MPI_MODE_NOSTORE 2048 -#define MPI_MODE_NOPUT 4096 -#define MPI_MODE_NOPRECEDE 8192 -#define MPI_MODE_NOSUCCEED 16384 - -MPI_METHOD -MPI_Win_fence( - _In_ int assert, - _In_ MPI_Win win - ); - -MPI_METHOD -PMPI_Win_fence( - _In_ int assert, - _In_ MPI_Win win - ); - -MPI_METHOD -MPI_Win_start( - _In_ MPI_Group group, - _In_ int assert, - _In_ MPI_Win win - ); - -MPI_METHOD -PMPI_Win_start( - _In_ MPI_Group group, - _In_ int assert, - _In_ MPI_Win win - ); - -MPI_METHOD -MPI_Win_complete( - _In_ MPI_Win win - ); - -MPI_METHOD -PMPI_Win_complete( - _In_ MPI_Win win - ); - -MPI_METHOD -MPI_Win_post( - _In_ MPI_Group group, - _In_ int assert, - _In_ MPI_Win win - ); - -MPI_METHOD -PMPI_Win_post( - _In_ MPI_Group group, - _In_ int assert, - _In_ MPI_Win win - ); - -MPI_METHOD -MPI_Win_wait( - _In_ MPI_Win win - ); - -MPI_METHOD -PMPI_Win_wait( - _In_ MPI_Win win - ); - -MPI_METHOD -MPI_Win_test( - _In_ MPI_Win win, - _mpi_out_flag_ int* flag - ); - -MPI_METHOD -PMPI_Win_test( - _In_ MPI_Win win, - _mpi_out_flag_ int* flag - ); - -#define MPI_LOCK_EXCLUSIVE 234 -#define MPI_LOCK_SHARED 235 - -MPI_METHOD -MPI_Win_lock( - _In_ int lock_type, - _In_range_(>=, MPI_PROC_NULL) int rank, - _In_ int assert, - _In_ MPI_Win win - ); - -MPI_METHOD -PMPI_Win_lock( - _In_ int lock_type, - _In_range_(>=, MPI_PROC_NULL) int rank, - _In_ int assert, - _In_ MPI_Win win - ); - -MPI_METHOD -MPI_Win_lock_all( - _In_ int assert, - _In_ MPI_Win win - ); - -MPI_METHOD -PMPI_Win_lock_all( - _In_ int assert, - _In_ MPI_Win win - ); - -MPI_METHOD -MPI_Win_unlock( - _In_range_(>=, MPI_PROC_NULL) int rank, - _In_ MPI_Win win - ); - -MPI_METHOD -PMPI_Win_unlock( - _In_range_(>=, MPI_PROC_NULL) int rank, - _In_ MPI_Win win - ); - -MPI_METHOD -MPI_Win_unlock_all( - _In_ MPI_Win win - ); - -MPI_METHOD -PMPI_Win_unlock_all( - _In_ MPI_Win win - ); - -MPI_METHOD -MPI_Win_flush( - _In_range_(>=, MPI_PROC_NULL) int rank, - _In_ MPI_Win win - ); - -MPI_METHOD -PMPI_Win_flush( - _In_range_(>=, MPI_PROC_NULL) int rank, - _In_ MPI_Win win - ); - -MPI_METHOD -MPI_Win_flush_all( - _In_ MPI_Win win - ); - -MPI_METHOD -PMPI_Win_flush_all( - _In_ MPI_Win win - ); - -MPI_METHOD -MPI_Win_flush_local( - _In_range_(>= , MPI_PROC_NULL) int rank, - _In_ MPI_Win win - ); - -MPI_METHOD -PMPI_Win_flush_local( - _In_range_(>= , MPI_PROC_NULL) int rank, - _In_ MPI_Win win - ); - -MPI_METHOD -MPI_Win_flush_local_all( - _In_ MPI_Win win - ); - -MPI_METHOD -PMPI_Win_flush_local_all( - _In_ MPI_Win win - ); - -MPI_METHOD -MPI_Win_sync( - _In_ MPI_Win win - ); - -MPI_METHOD -PMPI_Win_sync( - _In_ MPI_Win win - ); - -/*---------------------------------------------------------------------------*/ -/* Chapter 12: External Interfaces */ -/*---------------------------------------------------------------------------*/ - -/*---------------------------------------------*/ -/* Section 12.2: Generalized Requests */ -/*---------------------------------------------*/ - -typedef -int -(MPIAPI MPI_Grequest_query_function)( - _In_opt_ void* extra_state, - _Out_ MPI_Status* status - ); - -typedef -int -(MPIAPI MPI_Grequest_free_function)( - _In_opt_ void* extra_state - ); - -typedef -int -(MPIAPI MPI_Grequest_cancel_function)( - _In_opt_ void* extra_state, - _In_ int complete - ); - -MPI_METHOD -MPI_Grequest_start( - _In_ MPI_Grequest_query_function* query_fn, - _In_ MPI_Grequest_free_function* free_fn, - _In_ MPI_Grequest_cancel_function* cancel_fn, - _In_opt_ void* extra_state, - _Out_ MPI_Request* request - ); - -MPI_METHOD -PMPI_Grequest_start( - _In_ MPI_Grequest_query_function* query_fn, - _In_ MPI_Grequest_free_function* free_fn, - _In_ MPI_Grequest_cancel_function* cancel_fn, - _In_opt_ void* extra_state, - _Out_ MPI_Request* request - ); - -MPI_METHOD -MPI_Grequest_complete( - _In_ MPI_Request request - ); - -MPI_METHOD -PMPI_Grequest_complete( - _In_ MPI_Request request - ); - - -/*---------------------------------------------*/ -/* Section 12.3: Information with Status */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Status_set_elements( - _In_ MPI_Status* status, - _In_ MPI_Datatype datatype, - _In_range_(>=, 0) int count - ); - -MPI_METHOD -PMPI_Status_set_elements( - _In_ MPI_Status* status, - _In_ MPI_Datatype datatype, - _In_range_(>=, 0) int count - ); - -MPI_METHOD -MPI_Status_set_elements_x( - _In_ MPI_Status* status, - _In_ MPI_Datatype datatype, - _In_range_(>=, 0) MPI_Count count - ); - -MPI_METHOD -PMPI_Status_set_elements_x( - _In_ MPI_Status* status, - _In_ MPI_Datatype datatype, - _In_range_(>=, 0) MPI_Count count - ); - -MPI_METHOD -MPI_Status_set_cancelled( - _In_ MPI_Status* status, - _In_range_(0,1) int flag - ); - -MPI_METHOD -PMPI_Status_set_cancelled( - _In_ MPI_Status* status, - _In_range_(0,1) int flag - ); - - -/*---------------------------------------------*/ -/* Section 12.4: Threads */ -/*---------------------------------------------*/ - -#define MPI_THREAD_SINGLE 0 -#define MPI_THREAD_FUNNELED 1 -#define MPI_THREAD_SERIALIZED 2 -#define MPI_THREAD_MULTIPLE 3 - -MPI_METHOD -MPI_Init_thread( - _In_opt_ const int* argc, - _Notref_ _In_reads_opt_(*argc) char*** argv, - _In_ int required, - _Out_ int* provided - ); - -MPI_METHOD -PMPI_Init_thread( - _In_opt_ int* argc, - _Notref_ _In_reads_opt_(*argc) char*** argv, - _In_ int required, - _Out_ int* provided - ); - -MPI_METHOD -MPI_Query_thread( - _Out_ int* provided - ); - -MPI_METHOD -PMPI_Query_thread( - _Out_ int* provided - ); - -MPI_METHOD -MPI_Is_thread_main( - _mpi_out_flag_ int* flag - ); - -MPI_METHOD -PMPI_Is_thread_main( - _mpi_out_flag_ int* flag - ); - - -/*---------------------------------------------------------------------------*/ -/* Chapter 13: I/O */ -/*---------------------------------------------------------------------------*/ - -/*---------------------------------------------*/ -/* Section 13.2: File Manipulation */ -/*---------------------------------------------*/ - -#define MPI_MODE_CREATE 0x00000001 -#define MPI_MODE_RDONLY 0x00000002 -#define MPI_MODE_WRONLY 0x00000004 -#define MPI_MODE_RDWR 0x00000008 -#define MPI_MODE_DELETE_ON_CLOSE 0x00000010 -#define MPI_MODE_UNIQUE_OPEN 0x00000020 -#define MPI_MODE_EXCL 0x00000040 -#define MPI_MODE_APPEND 0x00000080 -#define MPI_MODE_SEQUENTIAL 0x00000100 -#define MSMPI_MODE_HIDDEN 0x00000200 - -MPI_METHOD -MPI_File_open( - _In_ MPI_Comm comm, - _In_z_ const char* filename, - _In_ int amode, - _In_ MPI_Info info, - _Out_ MPI_File* fh - ); - -MPI_METHOD -PMPI_File_open( - _In_ MPI_Comm comm, - _In_z_ const char* filename, - _In_ int amode, - _In_ MPI_Info info, - _Out_ MPI_File* fh - ); - -MPI_METHOD -MPI_File_close( - _In_ MPI_File* fh - ); - -MPI_METHOD -PMPI_File_close( - _In_ MPI_File* fh - ); - -MPI_METHOD -MPI_File_delete( - _In_z_ const char* filename, - _In_ MPI_Info info - ); - -MPI_METHOD -PMPI_File_delete( - _In_z_ const char* filename, - _In_ MPI_Info info - ); - -MPI_METHOD -MPI_File_set_size( - _In_ MPI_File fh, - _In_ MPI_Offset size - ); - -MPI_METHOD -PMPI_File_set_size( - _In_ MPI_File fh, - _In_ MPI_Offset size - ); - -MPI_METHOD -MPI_File_preallocate( - _In_ MPI_File fh, - _In_ MPI_Offset size - ); - -MPI_METHOD -PMPI_File_preallocate( - _In_ MPI_File fh, - _In_ MPI_Offset size - ); - -MPI_METHOD -MPI_File_get_size( - _In_ MPI_File fh, - _Out_ MPI_Offset* size - ); - -MPI_METHOD -PMPI_File_get_size( - _In_ MPI_File fh, - _Out_ MPI_Offset* size - ); - -MPI_METHOD -MPI_File_get_group( - _In_ MPI_File fh, - _Out_ MPI_Group* group - ); - -MPI_METHOD -PMPI_File_get_group( - _In_ MPI_File fh, - _Out_ MPI_Group* group - ); - -MPI_METHOD -MPI_File_get_amode( - _In_ MPI_File fh, - _Out_ int* amode - ); - -MPI_METHOD -PMPI_File_get_amode( - _In_ MPI_File fh, - _Out_ int* amode - ); - -MPI_METHOD -MPI_File_set_info( - _In_ MPI_File fh, - _In_ MPI_Info info - ); - -MPI_METHOD -PMPI_File_set_info( - _In_ MPI_File fh, - _In_ MPI_Info info - ); - -MPI_METHOD -MPI_File_get_info( - _In_ MPI_File fh, - _Out_ MPI_Info* info_used - ); - -MPI_METHOD -PMPI_File_get_info( - _In_ MPI_File fh, - _Out_ MPI_Info* info_used - ); - - -/*---------------------------------------------*/ -/* Section 13.3: File Views */ -/*---------------------------------------------*/ - -#define MPI_DISPLACEMENT_CURRENT (-54278278) - -MPI_METHOD -MPI_File_set_view( - _In_ MPI_File fh, - _In_ MPI_Offset disp, - _In_ MPI_Datatype etype, - _In_ MPI_Datatype filetype, - _In_z_ const char* datarep, - _In_ MPI_Info info - ); - -MPI_METHOD -PMPI_File_set_view( - _In_ MPI_File fh, - _In_ MPI_Offset disp, - _In_ MPI_Datatype etype, - _In_ MPI_Datatype filetype, - _In_z_ const char* datarep, - _In_ MPI_Info info - ); - -#define MPI_MAX_DATAREP_STRING 128 - -MPI_METHOD -MPI_File_get_view( - _In_ MPI_File fh, - _Out_ MPI_Offset* disp, - _Out_ MPI_Datatype* etype, - _Out_ MPI_Datatype* filetype, - _Out_writes_z_(MPI_MAX_DATAREP_STRING) char* datarep - ); - -MPI_METHOD -PMPI_File_get_view( - _In_ MPI_File fh, - _Out_ MPI_Offset* disp, - _Out_ MPI_Datatype* etype, - _Out_ MPI_Datatype* filetype, - _Out_writes_z_(MPI_MAX_DATAREP_STRING) char* datarep - ); - - -/*---------------------------------------------*/ -/* Section 13.4: Data Access */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_File_read_at( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_File_read_at( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_File_read_at_all( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_File_read_at_all( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_File_write_at( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_File_write_at( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_File_write_at_all( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_File_write_at_all( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_File_iread_at( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Request* request - ); - -MPI_METHOD -PMPI_File_iread_at( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Request* request - ); - -MPI_METHOD -MPI_File_iwrite_at( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Request* request - ); - -MPI_METHOD -PMPI_File_iwrite_at( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Request* request - ); - -MPI_METHOD -MPI_File_read( - _In_ MPI_File fh, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_File_read( - _In_ MPI_File fh, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_File_read_all( - _In_ MPI_File fh, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_File_read_all( - _In_ MPI_File fh, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_File_write( - _In_ MPI_File fh, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_File_write( - _In_ MPI_File fh, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_File_write_all( - _In_ MPI_File fh, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_File_write_all( - _In_ MPI_File fh, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - - -MPI_METHOD -MPI_File_iread( - _In_ MPI_File fh, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Request* request - ); - -MPI_METHOD -PMPI_File_iread( - _In_ MPI_File fh, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Request* request - ); - -MPI_METHOD -MPI_File_iwrite( - _In_ MPI_File fh, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Request* request - ); - -MPI_METHOD -PMPI_File_iwrite( - _In_ MPI_File fh, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Request* request - ); - - -/* File seek whence */ -#define MPI_SEEK_SET 600 -#define MPI_SEEK_CUR 602 -#define MPI_SEEK_END 604 - -MPI_METHOD -MPI_File_seek( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _In_ int whence - ); - -MPI_METHOD -PMPI_File_seek( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _In_ int whence - ); - -MPI_METHOD -MPI_File_get_position( - _In_ MPI_File fh, - _Out_ MPI_Offset* offset - ); - -MPI_METHOD -PMPI_File_get_position( - _In_ MPI_File fh, - _Out_ MPI_Offset* offset - ); - -MPI_METHOD -MPI_File_get_byte_offset( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _Out_ MPI_Offset* disp - ); - -MPI_METHOD -PMPI_File_get_byte_offset( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _Out_ MPI_Offset* disp - ); - -MPI_METHOD -MPI_File_read_shared( - _In_ MPI_File fh, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_File_read_shared( - _In_ MPI_File fh, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_File_write_shared( - _In_ MPI_File fh, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_File_write_shared( - _In_ MPI_File fh, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_File_iread_shared( - _In_ MPI_File fh, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Request* request - ); - -MPI_METHOD -PMPI_File_iread_shared( - _In_ MPI_File fh, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Request* request - ); - -MPI_METHOD -MPI_File_iwrite_shared( - _In_ MPI_File fh, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Request* request - ); - -MPI_METHOD -PMPI_File_iwrite_shared( - _In_ MPI_File fh, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Request* request - ); - -MPI_METHOD -MPI_File_read_ordered( - _In_ MPI_File fh, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_File_read_ordered( - _In_ MPI_File fh, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_File_write_ordered( - _In_ MPI_File fh, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_File_write_ordered( - _In_ MPI_File fh, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_File_seek_shared( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _In_ int whence - ); - -MPI_METHOD -PMPI_File_seek_shared( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _In_ int whence - ); - -MPI_METHOD -MPI_File_get_position_shared( - _In_ MPI_File fh, - _Out_ MPI_Offset* offset - ); - -MPI_METHOD -PMPI_File_get_position_shared( - _In_ MPI_File fh, - _Out_ MPI_Offset* offset - ); - -MPI_METHOD -MPI_File_read_at_all_begin( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype - ); - -MPI_METHOD -PMPI_File_read_at_all_begin( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype - ); - -MPI_METHOD -MPI_File_read_at_all_end( - _In_ MPI_File fh, - _Out_ void* buf, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_File_read_at_all_end( - _In_ MPI_File fh, - _Out_ void* buf, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_File_write_at_all_begin( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype - ); - -MPI_METHOD -PMPI_File_write_at_all_begin( - _In_ MPI_File fh, - _In_ MPI_Offset offset, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype - ); - -MPI_METHOD -MPI_File_write_at_all_end( - _In_ MPI_File fh, - _In_ const void* buf, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_File_write_at_all_end( - _In_ MPI_File fh, - _In_ const void* buf, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_File_read_all_begin( - _In_ MPI_File fh, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype - ); - -MPI_METHOD -PMPI_File_read_all_begin( - _In_ MPI_File fh, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype - ); - -MPI_METHOD -MPI_File_read_all_end( - _In_ MPI_File fh, - _Out_ void* buf, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_File_read_all_end( - _In_ MPI_File fh, - _Out_ void* buf, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_File_write_all_begin( - _In_ MPI_File fh, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype - ); - -MPI_METHOD -PMPI_File_write_all_begin( - _In_ MPI_File fh, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype - ); - -MPI_METHOD -MPI_File_write_all_end( - _In_ MPI_File fh, - _In_ const void* buf, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_File_write_all_end( - _In_ MPI_File fh, - _In_ const void* buf, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_File_read_ordered_begin( - _In_ MPI_File fh, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype - ); - -MPI_METHOD -PMPI_File_read_ordered_begin( - _In_ MPI_File fh, - _Out_opt_ void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype - ); - -MPI_METHOD -MPI_File_read_ordered_end( - _In_ MPI_File fh, - _Out_ void* buf, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_File_read_ordered_end( - _In_ MPI_File fh, - _Out_ void* buf, - _Out_ MPI_Status* status - ); - -MPI_METHOD -MPI_File_write_ordered_begin( - _In_ MPI_File fh, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype - ); - -MPI_METHOD -PMPI_File_write_ordered_begin( - _In_ MPI_File fh, - _In_opt_ const void* buf, - _In_range_(>=, 0) int count, - _In_ MPI_Datatype datatype - ); - -MPI_METHOD -MPI_File_write_ordered_end( - _In_ MPI_File fh, - _In_ const void* buf, - _Out_ MPI_Status* status - ); - -MPI_METHOD -PMPI_File_write_ordered_end( - _In_ MPI_File fh, - _In_ const void* buf, - _Out_ MPI_Status* status - ); - - -/*---------------------------------------------*/ -/* Section 13.5: File Interoperability */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_File_get_type_extent( - _In_ MPI_File fh, - _In_ MPI_Datatype datatype, - _Out_ MPI_Aint* extent - ); - -MPI_METHOD -PMPI_File_get_type_extent( - _In_ MPI_File fh, - _In_ MPI_Datatype datatype, - _Out_ MPI_Aint* extent - ); - - -typedef -int -(MPIAPI MPI_Datarep_conversion_function)( - _Inout_ void* userbuf, - _In_ MPI_Datatype datatype, - _In_range_(>=, 0) int count, - _Inout_ void* filebuf, - _In_ MPI_Offset position, - _In_opt_ void* extra_state - ); - -typedef -int -(MPIAPI MPI_Datarep_extent_function)( - _In_ MPI_Datatype datatype, - _Out_ MPI_Aint* file_extent, - _In_opt_ void* extra_state - ); - -#define MPI_CONVERSION_FN_NULL ((MPI_Datarep_conversion_function*)0) - -MPI_METHOD -MPI_Register_datarep( - _In_z_ const char* datarep, - _In_opt_ MPI_Datarep_conversion_function* read_conversion_fn, - _In_opt_ MPI_Datarep_conversion_function* write_conversion_fn, - _In_ MPI_Datarep_extent_function* dtype_file_extent_fn, - _In_opt_ void* extra_state - ); - -MPI_METHOD -PMPI_Register_datarep( - _In_z_ const char* datarep, - _In_opt_ MPI_Datarep_conversion_function* read_conversion_fn, - _In_opt_ MPI_Datarep_conversion_function* write_conversion_fn, - _In_ MPI_Datarep_extent_function* dtype_file_extent_fn, - _In_opt_ void* extra_state - ); - - -/*---------------------------------------------*/ -/* Section 13.6: Consistency and Semantics */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_File_set_atomicity( - _In_ MPI_File fh, - _In_range_(0, 1) int flag - ); - -MPI_METHOD -PMPI_File_set_atomicity( - _In_ MPI_File fh, - _In_range_(0, 1) int flag - ); - -MPI_METHOD -MPI_File_get_atomicity( - _In_ MPI_File fh, - _mpi_out_flag_ int* flag - ); - -MPI_METHOD -PMPI_File_get_atomicity( - _In_ MPI_File fh, - _mpi_out_flag_ int* flag - ); - -MPI_METHOD -MPI_File_sync( - _In_ MPI_File fh - ); - -MPI_METHOD -PMPI_File_sync( - _In_ MPI_File fh - ); - - -/*---------------------------------------------------------------------------*/ -/* Chapter 14: Profiling Interface */ -/*---------------------------------------------------------------------------*/ - -MPI_METHOD -MPI_Pcontrol( - _In_ const int level, - ... - ); - -MPI_METHOD -PMPI_Pcontrol( - _In_ const int level, - ... - ); - - -/*---------------------------------------------------------------------------*/ -/* Chapter 15: Deprecated Functions */ -/*---------------------------------------------------------------------------*/ - -#ifdef MSMPI_NO_DEPRECATE_20 -#define MSMPI_DEPRECATE_20( x ) -#else -#define MSMPI_DEPRECATE_20( x ) __declspec(deprecated( \ - "Deprecated in MPI 2.0, use '" #x "'. " \ - "To disable deprecation, define MSMPI_NO_DEPRECATE_20." )) -#endif - -MSMPI_DEPRECATE_20( MPI_Type_create_hvector ) -MPI_METHOD -MPI_Type_hvector( - _In_range_(>=, 0) int count, - _In_range_(>=, 0) int blocklength, - _In_ MPI_Aint stride, - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -MSMPI_DEPRECATE_20( PMPI_Type_create_hvector ) -MPI_METHOD -PMPI_Type_hvector( - _In_range_(>=, 0) int count, - _In_range_(>=, 0) int blocklength, - _In_ MPI_Aint stride, - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -MSMPI_DEPRECATE_20( MPI_Type_create_hindexed ) -MPI_METHOD -MPI_Type_hindexed( - _In_range_(>=, 0) int count, - _In_reads_opt_(count) const int array_of_blocklengths[], - _In_reads_opt_(count) const MPI_Aint array_of_displacements[], - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -MSMPI_DEPRECATE_20( PMPI_Type_create_hindexed ) -MPI_METHOD -PMPI_Type_hindexed( - _In_range_(>=, 0) int count, - _In_reads_opt_(count) const int array_of_blocklengths[], - _In_reads_opt_(count) const MPI_Aint array_of_displacements[], - _In_ MPI_Datatype oldtype, - _Out_ MPI_Datatype* newtype - ); - -MSMPI_DEPRECATE_20( MPI_Type_create_struct ) -MPI_METHOD -MPI_Type_struct( - _In_range_(>=, 0) int count, - _In_reads_opt_(count) const int array_of_blocklengths[], - _In_reads_opt_(count) const MPI_Aint array_of_displacements[], - _In_reads_opt_(count) const MPI_Datatype array_of_types[], - _Out_ MPI_Datatype* newtype - ); - -MSMPI_DEPRECATE_20( PMPI_Type_create_struct ) -MPI_METHOD -PMPI_Type_struct( - _In_range_(>=, 0) int count, - _In_reads_opt_(count) const int array_of_blocklengths[], - _In_reads_opt_(count) const MPI_Aint array_of_displacements[], - _In_reads_opt_(count) const MPI_Datatype array_of_types[], - _Out_ MPI_Datatype* newtype - ); - -MSMPI_DEPRECATE_20( MPI_Get_address ) -MPI_METHOD -MPI_Address( - _In_ void* location, - _Out_ MPI_Aint* address - ); - -MSMPI_DEPRECATE_20( PMPI_Get_address ) -MPI_METHOD -PMPI_Address( - _In_ void* location, - _Out_ MPI_Aint* address - ); - -MSMPI_DEPRECATE_20( MPI_Type_get_extent ) -MPI_METHOD -MPI_Type_extent( - _In_ MPI_Datatype datatype, - _Out_ MPI_Aint* extent - ); - -MSMPI_DEPRECATE_20( PMPI_Type_get_extent ) -MPI_METHOD -PMPI_Type_extent( - _In_ MPI_Datatype datatype, - _Out_ MPI_Aint* extent - ); - -MSMPI_DEPRECATE_20( MPI_Type_get_extent ) -MPI_METHOD -MPI_Type_lb( - _In_ MPI_Datatype datatype, - _Out_ MPI_Aint* displacement - ); - -MSMPI_DEPRECATE_20( PMPI_Type_get_extent ) -MPI_METHOD -PMPI_Type_lb( - _In_ MPI_Datatype datatype, - _Out_ MPI_Aint* displacement - ); - -MSMPI_DEPRECATE_20( MPI_Type_get_extent ) -MPI_METHOD -MPI_Type_ub( - _In_ MPI_Datatype datatype, - _Out_ MPI_Aint* displacement - ); - -MSMPI_DEPRECATE_20( PMPI_Type_get_extent ) -MPI_METHOD -PMPI_Type_ub( - _In_ MPI_Datatype datatype, - _Out_ MPI_Aint* displacement - ); - - -typedef MPI_Comm_copy_attr_function MPI_Copy_function; -typedef MPI_Comm_delete_attr_function MPI_Delete_function; - -#define MPI_NULL_COPY_FN ((MPI_Copy_function*)0) -#define MPI_NULL_DELETE_FN ((MPI_Delete_function*)0) -#define MPI_DUP_FN MPIR_Dup_fn - - -MSMPI_DEPRECATE_20( MPI_Comm_create_keyval ) -MPI_METHOD -MPI_Keyval_create( - _In_opt_ MPI_Copy_function* copy_fn, - _In_opt_ MPI_Delete_function* delete_fn, - _Out_ int* keyval, - _In_opt_ void* extra_state - ); - -MSMPI_DEPRECATE_20( PMPI_Comm_create_keyval ) -MPI_METHOD -PMPI_Keyval_create( - _In_opt_ MPI_Copy_function* copy_fn, - _In_opt_ MPI_Delete_function* delete_fn, - _Out_ int* keyval, - _In_opt_ void* extra_state - ); - -MSMPI_DEPRECATE_20( MPI_Comm_free_keyval ) -MPI_METHOD -MPI_Keyval_free( - _Inout_ int* keyval - ); - -MSMPI_DEPRECATE_20( PMPI_Comm_free_keyval ) -MPI_METHOD -PMPI_Keyval_free( - _Inout_ int* keyval - ); - -MSMPI_DEPRECATE_20( MPI_Comm_set_attr ) -MPI_METHOD -MPI_Attr_put( - _In_ MPI_Comm comm, - _In_ int keyval, - _In_opt_ void* attribute_val - ); - -MSMPI_DEPRECATE_20( PMPI_Comm_set_attr ) -MPI_METHOD -PMPI_Attr_put( - _In_ MPI_Comm comm, - _In_ int keyval, - _In_opt_ void* attribute_val - ); - -MSMPI_DEPRECATE_20( MPI_Comm_get_attr ) -MPI_METHOD -MPI_Attr_get( - _In_ MPI_Comm comm, - _In_ int keyval, - _Out_ void* attribute_val, - _mpi_out_flag_ int* flag - ); - -MSMPI_DEPRECATE_20( PMPI_Comm_get_attr ) -MPI_METHOD -PMPI_Attr_get( - _In_ MPI_Comm comm, - _In_ int keyval, - _Out_ void* attribute_val, - _mpi_out_flag_ int* flag - ); - -MSMPI_DEPRECATE_20( MPI_Comm_delete_attr ) -MPI_METHOD -MPI_Attr_delete( - _In_ MPI_Comm comm, - _In_ int keyval - ); - -MSMPI_DEPRECATE_20( PMPI_Comm_delete_attr ) -MPI_METHOD -PMPI_Attr_delete( - _In_ MPI_Comm comm, - _In_ int keyval - ); - - -typedef MPI_Comm_errhandler_fn MPI_Handler_function; - -MSMPI_DEPRECATE_20( MPI_Comm_create_errhandler ) -MPI_METHOD -MPI_Errhandler_create( - _In_ MPI_Handler_function* function, - _Out_ MPI_Errhandler* errhandler - ); - -MSMPI_DEPRECATE_20( PMPI_Comm_create_errhandler ) -MPI_METHOD -PMPI_Errhandler_create( - _In_ MPI_Handler_function* function, - _Out_ MPI_Errhandler* errhandler - ); - -MSMPI_DEPRECATE_20( MPI_Comm_set_errhandler ) -MPI_METHOD -MPI_Errhandler_set( - _In_ MPI_Comm comm, - _In_ MPI_Errhandler errhandler - ); - -MSMPI_DEPRECATE_20( PMPI_Comm_set_errhandler ) -MPI_METHOD -PMPI_Errhandler_set( - _In_ MPI_Comm comm, - _In_ MPI_Errhandler errhandler - ); - -MSMPI_DEPRECATE_20( MPI_Comm_get_errhandler ) -MPI_METHOD -MPI_Errhandler_get( - _In_ MPI_Comm comm, - _Out_ MPI_Errhandler* errhandler - ); - -MSMPI_DEPRECATE_20( PMPI_Comm_get_errhandler ) -MPI_METHOD -PMPI_Errhandler_get( - _In_ MPI_Comm comm, - _Out_ MPI_Errhandler* errhandler - ); - - -/*---------------------------------------------------------------------------*/ -/* Chapter 16: Language Bindings */ -/*---------------------------------------------------------------------------*/ - -/*---------------------------------------------*/ -/* Section 16.2: Fortran Support */ -/*---------------------------------------------*/ - -MPI_METHOD -MPI_Type_create_f90_real( - _In_ int p, - _In_ int r, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -PMPI_Type_create_f90_real( - _In_ int p, - _In_ int r, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -MPI_Type_create_f90_complex( - _In_ int p, - _In_ int r, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -PMPI_Type_create_f90_complex( - _In_ int p, - _In_ int r, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -MPI_Type_create_f90_integer( - _In_ int r, - _Out_ MPI_Datatype* newtype - ); - -MPI_METHOD -PMPI_Type_create_f90_integer( - _In_ int r, - _Out_ MPI_Datatype* newtype - ); - -/* typeclasses */ -#define MPI_TYPECLASS_REAL 1 -#define MPI_TYPECLASS_INTEGER 2 -#define MPI_TYPECLASS_COMPLEX 3 - -MPI_METHOD -MPI_Type_match_size( - _In_ int typeclass, - _In_ int size, - _Out_ MPI_Datatype* datatype - ); - -MPI_METHOD -PMPI_Type_match_size( - _In_ int typeclass, - _In_ int size, - _Out_ MPI_Datatype* datatype - ); - - -/*---------------------------------------------*/ -/* Section 16.3: Language Interoperability */ -/*---------------------------------------------*/ - -#define MPI_Comm_c2f(comm) (MPI_Fint)(comm) -#define PMPI_Comm_c2f(comm) (MPI_Fint)(comm) - -#define MPI_Comm_f2c(comm) (MPI_Comm)(comm) -#define PMPI_Comm_f2c(comm) (MPI_Comm)(comm) - - -#define MPI_Type_f2c(datatype) (MPI_Datatype)(datatype) -#define PMPI_Type_f2c(datatype) (MPI_Datatype)(datatype) - -#define MPI_Type_c2f(datatype) (MPI_Fint)(datatype) -#define PMPI_Type_c2f(datatype) (MPI_Fint)(datatype) - - -#define MPI_Group_f2c(group) (MPI_Group)(group) -#define PMPI_Group_f2c(group) (MPI_Group)(group) - -#define MPI_Group_c2f(group) (MPI_Fint)(group) -#define PMPI_Group_c2f(group) (MPI_Fint)(group) - - -#define MPI_Request_f2c(request) (MPI_Request)(request) -#define PMPI_Request_f2c(request) (MPI_Request)(request) - -#define MPI_Request_c2f(request) (MPI_Fint)(request) -#define PMPI_Request_c2f(request) (MPI_Fint)(request) - - -#define MPI_Win_f2c(win) (MPI_Win)(win) -#define PMPI_Win_f2c(win) (MPI_Win)(win) - -#define MPI_Win_c2f(win) (MPI_Fint)(win) -#define PMPI_Win_c2f(win) (MPI_Fint)(win) - - -#define MPI_Op_c2f(op) (MPI_Fint)(op) -#define PMPI_Op_c2f(op) (MPI_Fint)(op) - -#define MPI_Op_f2c(op) (MPI_Op)(op) -#define PMPI_Op_f2c(op) (MPI_Op)(op) - - -#define MPI_Info_c2f(info) (MPI_Fint)(info) -#define PMPI_Info_c2f(info) (MPI_Fint)(info) - -#define MPI_Info_f2c(info) (MPI_Info)(info) -#define PMPI_Info_f2c(info) (MPI_Info)(info) - - -#define MPI_Message_c2f(msg) (MPI_Fint)(msg) -#define PMPI_Message_c2f(msg) (MPI_Fint)(msg) - -#define MPI_Message_f2c(msg) (MPI_Message)(msg) -#define PMPI_Message_f2c(msg) (MPI_Message)(msg) - - -#define MPI_Errhandler_c2f(errhandler) (MPI_Fint)(errhandler) -#define PMPI_Errhandler_c2f(errhandler) (MPI_Fint)(errhandler) - -#define MPI_Errhandler_f2c(errhandler) (MPI_Errhandler)(errhandler) -#define PMPI_Errhandler_f2c(errhandler) (MPI_Errhandler)(errhandler) - - -MPI_File -MPIAPI -MPI_File_f2c( - _In_ MPI_Fint file - ); - -MPI_File -MPIAPI -PMPI_File_f2c( - _In_ MPI_Fint file - ); - -MPI_Fint -MPIAPI -MPI_File_c2f( - _In_ MPI_File file - ); - -MPI_Fint -MPIAPI -PMPI_File_c2f( - _In_ MPI_File file - ); - -MPI_METHOD -MPI_Status_f2c( - _In_ const MPI_Fint* f_status, - _Out_ MPI_Status* c_status - ); - -MPI_METHOD -PMPI_Status_f2c( - _In_ const MPI_Fint* f_status, - _Out_ MPI_Status* c_status - ); - -MPI_METHOD -MPI_Status_c2f( - _In_ const MPI_Status* c_status, - _Out_ MPI_Fint* f_status - ); - -MPI_METHOD -PMPI_Status_c2f( - _In_ const MPI_Status* c_status, - _Out_ MPI_Fint* f_status - ); - - -#if !defined(_MPICH_DLL_) -#define MPIU_DLL_SPEC __declspec(dllimport) -#else -#define MPIU_DLL_SPEC -#endif - -extern MPIU_DLL_SPEC MPI_Fint* MPI_F_STATUS_IGNORE; -extern MPIU_DLL_SPEC MPI_Fint* MPI_F_STATUSES_IGNORE; - - -/*---------------------------------------------------------------------------*/ -/* Implementation Specific */ -/*---------------------------------------------------------------------------*/ - -MPI_METHOD -MPIR_Dup_fn( - _In_ MPI_Comm oldcomm, - _In_ int keyval, - _In_opt_ void* extra_state, - _In_opt_ void* attribute_val_in, - _Out_ void* attribute_val_out, - _mpi_out_flag_ int* flag - ); - - -#if MSMPI_VER >= 0x300 - -MPI_METHOD -MSMPI_Get_bsend_overhead(); - -#endif - - -#if MSMPI_VER >= 0x300 - -MPI_METHOD -MSMPI_Get_version(); - -#else -# define MSMPI_Get_version() (MSMPI_VER) -#endif - -typedef void -(MPIAPI MSMPI_Request_callback)( - _In_ MPI_Status* status - ); - -MPI_METHOD -MSMPI_Request_set_apc( - _In_ MPI_Request request, - _In_ MSMPI_Request_callback* callback_fn, - _In_ MPI_Status* callback_status - ); - -typedef struct _MSMPI_LOCK_QUEUE -{ - struct _MSMPI_LOCK_QUEUE* volatile next; - volatile MPI_Aint flags; - -} MSMPI_Lock_queue; - -void -MPIAPI -MSMPI_Queuelock_acquire( - _Out_ MSMPI_Lock_queue* queue - ); - -void -MPIAPI -MSMPI_Queuelock_release( - _In_ MSMPI_Lock_queue* queue - ); - -MPI_METHOD -MSMPI_Waitsome_interruptible( - _In_range_(>=, 0) int incount, - _Inout_updates_opt_(incount) MPI_Request array_of_requests[], - _Out_ _Deref_out_range_(MPI_UNDEFINED, incount) int* outcount, - _Out_writes_to_opt_(incount,*outcount) int array_of_indices[], - _Out_writes_to_opt_(incount,*outcount) MPI_Status array_of_statuses[] - ); - - -#if defined(__cplusplus) -} -#endif - -#endif /* MPI_INCLUDED */ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + * + * (C) 2001 by Argonne National Laboratory. + * (C) 2015 by Microsoft Corporation. + * + * MPICH COPYRIGHT + * + * The following is a notice of limited availability of the code, and disclaimer + * which must be included in the prologue of the code and in all source listings + * of the code. + * + * Copyright Notice + * + 2002 University of Chicago + * + * Permission is hereby granted to use, reproduce, prepare derivative works, and + * to redistribute to others. This software was authored by: + * + * Mathematics and Computer Science Division + * Argonne National Laboratory, Argonne IL 60439 + * + * (and) + * + * Department of Computer Science + * University of Illinois at Urbana-Champaign + * + * + * GOVERNMENT LICENSE + * + * Portions of this material resulted from work developed under a U.S. + * Government Contract and are subject to the following license: the Government + * is granted for itself and others acting on its behalf a paid-up, nonexclusive, + * irrevocable worldwide license in this computer software to reproduce, prepare + * derivative works, and perform publicly and display publicly. + * + * DISCLAIMER + * + * This computer code material was prepared, in part, as an account of work + * sponsored by an agency of the United States Government. Neither the United + * States, nor the University of Chicago, nor any of their employees, makes any + * warranty express or implied, or assumes any legal liability or responsibility + * for the accuracy, completeness, or usefulness of any information, apparatus, + * product, or process disclosed, or represents that its use would not infringe + * privately owned rights. + * + */ + +#ifndef MPI_INCLUDED +#define MPI_INCLUDED + +#include <stdint.h> +#ifndef MSMPI_NO_SAL +#include <sal.h> +#endif + +#if defined(_MSC_VER) && _MSC_VER < 1600 +typedef signed __int64 _MSMPI_int64_t; +#else +#include <stdint.h> +typedef int64_t _MSMPI_int64_t; +#endif + +#if defined(__cplusplus) +extern "C" { +#endif + + +#ifndef MSMPI_VER +#define MSMPI_VER 0x100 +#endif + + +/*---------------------------------------------------------------------------*/ +/* SAL ANNOTATIONS */ +/*---------------------------------------------------------------------------*/ +/* + * Define SAL annotations if they aren't defined yet. + */ +#ifndef _Success_ +#define _Success_( x ) +#endif +#ifndef _Notref_ +#define _Notref_ +#endif +#ifndef _When_ +#define _When_( x, y ) +#endif +#ifndef _Pre_valid_ +#define _Pre_valid_ +#endif +#ifndef _Pre_opt_valid_ +#define _Pre_opt_valid_ +#endif +#ifndef _Post_invalid_ +#define _Post_invalid_ +#endif +#ifndef _In_ +#define _In_ +#endif +#ifndef _In_z_ +#define _In_z_ +#endif +#ifndef _In_opt_ +#define _In_opt_ +#endif +#ifndef _In_range_ +#define _In_range_( x, y ) +#endif +#ifndef _In_reads_ +#define _In_reads_( x ) +#endif +#ifndef _In_reads_z_ +#define _In_reads_z_( x ) +#endif +#ifndef _In_reads_opt_ +#define _In_reads_opt_( x ) +#endif +#ifndef _In_reads_bytes_opt_ +#define _In_reads_bytes_opt_( x ) +#endif +#ifndef _Out_ +#define _Out_ +#endif +#ifndef _Out_opt_ +#define _Out_opt_ +#endif +#ifndef _Out_writes_ +#define _Out_writes_( x ) +#endif +#ifndef _Out_writes_z_ +#define _Out_writes_z_( x ) +#endif +#ifndef _Out_writes_opt_ +#define _Out_writes_opt_( x ) +#endif +#ifndef _Out_writes_to_opt_ +#define _Out_writes_to_opt_( x, y ) +#endif +#ifndef _Out_writes_bytes_opt_ +#define _Out_writes_bytes_opt_( x ) +#endif +#ifndef _Inout_ +#define _Inout_ +#endif +#ifndef _Inout_opt_ +#define _Inout_opt_ +#endif +#ifndef _Inout_updates_opt_ +#define _Inout_updates_opt_( x ) +#endif +#ifndef _Deref_in_range_ +#define _Deref_in_range_( x, y ) +#endif +#ifndef _Deref_out_range_ +#define _Deref_out_range_( x, y ) +#endif +#ifndef _Pre_satisfies_ +#define _Pre_satisfies_( x ) +#endif +#ifndef _Post_satisfies_ +#define _Post_satisfies_( x ) +#endif +#ifndef _Post_equal_to_ +#define _Post_equal_to_( x ) +#endif + +#define _mpi_updates_(size) _When_(size != 0, _Inout_updates_(size)) +#define _mpi_reads_(size) _When_(size != 0, _In_reads_(size)) +#define _mpi_reads_bytes_(size) _When_(size != 0, _In_reads_bytes_(size)) +#define _mpi_writes_(size) _When_(size != 0, _Out_writes_(size)) +#define _mpi_writes_bytes_(size) _When_(size != 0, _Out_writes_bytes_(size)) +#define _mpi_writes_to_(size, count) _When_(size != 0, _Out_writes_to_(size, count)) +#define _mpi_out_flag_ _Out_ _Deref_out_range_(0, 1) +#define _mpi_out_(param, sentinel) _Out_ _Post_satisfies_(*param == sentinel || *param >= 0) +#define _mpi_out_range_(param, sentinel, ub) \ + _Out_ _Post_satisfies_(*param == sentinel || (ub > 0 && *param >= 0 && *param <= ub)) +#define _mpi_position_(ub) _Inout_ _Deref_in_range_(0, ub) _Deref_out_range_(0, ub) +#define _mpi_coll_rank_(param) _In_ _Pre_satisfies_(param == MPI_ROOT || param >= MPI_PROC_NULL) + +/*---------------------------------------------------------------------------*/ +/* MSMPI Calling convention */ +/*---------------------------------------------------------------------------*/ + +#define MPIAPI __stdcall + + +/*---------------------------------------------------------------------------*/ +/* MPI ERROR CLASS */ +/*---------------------------------------------------------------------------*/ + +#define MPI_SUCCESS 0 /* Successful return code */ + +#define MPI_ERR_BUFFER 1 /* Invalid buffer pointer */ +#define MPI_ERR_COUNT 2 /* Invalid count argument */ +#define MPI_ERR_TYPE 3 /* Invalid datatype argument */ +#define MPI_ERR_TAG 4 /* Invalid tag argument */ +#define MPI_ERR_COMM 5 /* Invalid communicator */ +#define MPI_ERR_RANK 6 /* Invalid rank */ +#define MPI_ERR_ROOT 7 /* Invalid root */ +#define MPI_ERR_GROUP 8 /* Invalid group */ +#define MPI_ERR_OP 9 /* Invalid operation */ +#define MPI_ERR_TOPOLOGY 10 /* Invalid topology */ +#define MPI_ERR_DIMS 11 /* Invalid dimension argument */ +#define MPI_ERR_ARG 12 /* Invalid argument */ +#define MPI_ERR_UNKNOWN 13 /* Unknown error */ +#define MPI_ERR_TRUNCATE 14 /* Message truncated on receive */ +#define MPI_ERR_OTHER 15 /* Other error; use Error_string */ +#define MPI_ERR_INTERN 16 /* Internal error code */ +#define MPI_ERR_IN_STATUS 17 /* Error code is in status */ +#define MPI_ERR_PENDING 18 /* Pending request */ +#define MPI_ERR_REQUEST 19 /* Invalid request (handle) */ +#define MPI_ERR_ACCESS 20 /* Premission denied */ +#define MPI_ERR_AMODE 21 /* Error related to amode passed to MPI_File_open */ +#define MPI_ERR_BAD_FILE 22 /* Invalid file name (e.g., path name too long) */ +#define MPI_ERR_CONVERSION 23 /* Error in user data conversion function */ +#define MPI_ERR_DUP_DATAREP 24 /* Data representation identifier already registered */ +#define MPI_ERR_FILE_EXISTS 25 /* File exists */ +#define MPI_ERR_FILE_IN_USE 26 /* File operation could not be completed, file in use */ +#define MPI_ERR_FILE 27 /* Invalid file handle */ +#define MPI_ERR_INFO 28 /* Invalid info argument */ +#define MPI_ERR_INFO_KEY 29 /* Key longer than MPI_MAX_INFO_KEY */ +#define MPI_ERR_INFO_VALUE 30 /* Value longer than MPI_MAX_INFO_VAL */ +#define MPI_ERR_INFO_NOKEY 31 /* Invalid key passed to MPI_Info_delete */ +#define MPI_ERR_IO 32 /* Other I/O error */ +#define MPI_ERR_NAME 33 /* Invalid service name in MPI_Lookup_name */ +#define MPI_ERR_NO_MEM 34 /* Alloc_mem could not allocate memory */ +#define MPI_ERR_NOT_SAME 35 /* Collective argument/sequence not the same on all processes */ +#define MPI_ERR_NO_SPACE 36 /* Not enough space */ +#define MPI_ERR_NO_SUCH_FILE 37 /* File does not exist */ +#define MPI_ERR_PORT 38 /* Invalid port name in MPI_comm_connect*/ +#define MPI_ERR_QUOTA 39 /* Quota exceeded */ +#define MPI_ERR_READ_ONLY 40 /* Read-only file or file system */ +#define MPI_ERR_SERVICE 41 /* Invalid service name in MPI_Unpublish_name */ +#define MPI_ERR_SPAWN 42 /* Error in spawning processes */ +#define MPI_ERR_UNSUPPORTED_DATAREP 43 /* Unsupported dararep in MPI_File_set_view */ +#define MPI_ERR_UNSUPPORTED_OPERATION 44 /* Unsupported operation on file */ +#define MPI_ERR_WIN 45 /* Invalid win argument */ +#define MPI_ERR_BASE 46 /* Invalid base passed to MPI_Free_mem */ +#define MPI_ERR_LOCKTYPE 47 /* Invalid locktype argument */ +#define MPI_ERR_KEYVAL 48 /* Invalid keyval */ +#define MPI_ERR_RMA_CONFLICT 49 /* Conflicting accesses to window */ +#define MPI_ERR_RMA_SYNC 50 /* Wrong synchronization of RMA calls */ +#define MPI_ERR_SIZE 51 /* Invalid size argument */ +#define MPI_ERR_DISP 52 /* Invalid disp argument */ +#define MPI_ERR_ASSERT 53 /* Invalid assert argument */ + +#define MPI_ERR_LASTCODE 0x3fffffff /* Last valid error code for a predefined error class */ + +#define MPICH_ERR_LAST_CLASS 53 + + +/*---------------------------------------------------------------------------*/ +/* MPI Basic integer types */ +/*---------------------------------------------------------------------------*/ + +/* Address size integer */ +#ifdef _WIN64 +typedef _MSMPI_int64_t MPI_Aint; +#else +typedef int MPI_Aint; +#endif + +/* Fortran INTEGER */ +typedef int MPI_Fint; + +/* File offset */ +typedef _MSMPI_int64_t MPI_Offset; + +// +// MPI-3 standard defines this type that can be used to address locations +// within either memory or files as well as express count values. +// +typedef _MSMPI_int64_t MPI_Count; + + +/*---------------------------------------------------------------------------*/ +/* MPI_Datatype */ +/*---------------------------------------------------------------------------*/ + +typedef int MPI_Datatype; +#define MPI_DATATYPE_NULL ((MPI_Datatype)0x0c000000) + +#define MPI_CHAR ((MPI_Datatype)0x4c000101) +#define MPI_UNSIGNED_CHAR ((MPI_Datatype)0x4c000102) +#define MPI_SHORT ((MPI_Datatype)0x4c000203) +#define MPI_UNSIGNED_SHORT ((MPI_Datatype)0x4c000204) +#define MPI_INT ((MPI_Datatype)0x4c000405) +#define MPI_UNSIGNED ((MPI_Datatype)0x4c000406) +#define MPI_LONG ((MPI_Datatype)0x4c000407) +#define MPI_UNSIGNED_LONG ((MPI_Datatype)0x4c000408) +#define MPI_LONG_LONG_INT ((MPI_Datatype)0x4c000809) +#define MPI_LONG_LONG MPI_LONG_LONG_INT +#define MPI_FLOAT ((MPI_Datatype)0x4c00040a) +#define MPI_DOUBLE ((MPI_Datatype)0x4c00080b) +#define MPI_LONG_DOUBLE ((MPI_Datatype)0x4c00080c) +#define MPI_BYTE ((MPI_Datatype)0x4c00010d) +#define MPI_WCHAR ((MPI_Datatype)0x4c00020e) + +#define MPI_PACKED ((MPI_Datatype)0x4c00010f) +#define MPI_LB ((MPI_Datatype)0x4c000010) +#define MPI_UB ((MPI_Datatype)0x4c000011) + +#define MPI_C_COMPLEX ((MPI_Datatype)0x4c000812) +#define MPI_C_FLOAT_COMPLEX ((MPI_Datatype)0x4c000813) +#define MPI_C_DOUBLE_COMPLEX ((MPI_Datatype)0x4c001014) +#define MPI_C_LONG_DOUBLE_COMPLEX ((MPI_Datatype)0x4c001015) + +#define MPI_2INT ((MPI_Datatype)0x4c000816) +#define MPI_C_BOOL ((MPI_Datatype)0x4c000117) +#define MPI_SIGNED_CHAR ((MPI_Datatype)0x4c000118) +#define MPI_UNSIGNED_LONG_LONG ((MPI_Datatype)0x4c000819) + +/* Fortran types */ +#define MPI_CHARACTER ((MPI_Datatype)0x4c00011a) +#define MPI_INTEGER ((MPI_Datatype)0x4c00041b) +#define MPI_REAL ((MPI_Datatype)0x4c00041c) +#define MPI_LOGICAL ((MPI_Datatype)0x4c00041d) +#define MPI_COMPLEX ((MPI_Datatype)0x4c00081e) +#define MPI_DOUBLE_PRECISION ((MPI_Datatype)0x4c00081f) +#define MPI_2INTEGER ((MPI_Datatype)0x4c000820) +#define MPI_2REAL ((MPI_Datatype)0x4c000821) +#define MPI_DOUBLE_COMPLEX ((MPI_Datatype)0x4c001022) +#define MPI_2DOUBLE_PRECISION ((MPI_Datatype)0x4c001023) +#define MPI_2COMPLEX ((MPI_Datatype)0x4c001024) +#define MPI_2DOUBLE_COMPLEX ((MPI_Datatype)0x4c002025) + +/* Size-specific types (see MPI 2.2, 16.2.5) */ +#define MPI_REAL2 MPI_DATATYPE_NULL +#define MPI_REAL4 ((MPI_Datatype)0x4c000427) +#define MPI_COMPLEX8 ((MPI_Datatype)0x4c000828) +#define MPI_REAL8 ((MPI_Datatype)0x4c000829) +#define MPI_COMPLEX16 ((MPI_Datatype)0x4c00102a) +#define MPI_REAL16 MPI_DATATYPE_NULL +#define MPI_COMPLEX32 MPI_DATATYPE_NULL +#define MPI_INTEGER1 ((MPI_Datatype)0x4c00012d) +#define MPI_COMPLEX4 MPI_DATATYPE_NULL +#define MPI_INTEGER2 ((MPI_Datatype)0x4c00022f) +#define MPI_INTEGER4 ((MPI_Datatype)0x4c000430) +#define MPI_INTEGER8 ((MPI_Datatype)0x4c000831) +#define MPI_INTEGER16 MPI_DATATYPE_NULL +#define MPI_INT8_T ((MPI_Datatype)0x4c000133) +#define MPI_INT16_T ((MPI_Datatype)0x4c000234) +#define MPI_INT32_T ((MPI_Datatype)0x4c000435) +#define MPI_INT64_T ((MPI_Datatype)0x4c000836) +#define MPI_UINT8_T ((MPI_Datatype)0x4c000137) +#define MPI_UINT16_T ((MPI_Datatype)0x4c000238) +#define MPI_UINT32_T ((MPI_Datatype)0x4c000439) +#define MPI_UINT64_T ((MPI_Datatype)0x4c00083a) + +#ifdef _WIN64 +#define MPI_AINT ((MPI_Datatype)0x4c00083b) +#else +#define MPI_AINT ((MPI_Datatype)0x4c00043b) +#endif +#define MPI_OFFSET ((MPI_Datatype)0x4c00083c) +#define MPI_COUNT ((MPI_Datatype)0x4c00083d) + +/* + * The layouts for the types MPI_DOUBLE_INT etc. are + * + * struct { double a; int b; } + */ +#define MPI_FLOAT_INT ((MPI_Datatype)0x8c000000) +#define MPI_DOUBLE_INT ((MPI_Datatype)0x8c000001) +#define MPI_LONG_INT ((MPI_Datatype)0x8c000002) +#define MPI_SHORT_INT ((MPI_Datatype)0x8c000003) +#define MPI_LONG_DOUBLE_INT ((MPI_Datatype)0x8c000004) + + +/*---------------------------------------------------------------------------*/ +/* MPI_Comm */ +/*---------------------------------------------------------------------------*/ + +typedef int MPI_Comm; +#define MPI_COMM_NULL ((MPI_Comm)0x04000000) + +#define MPI_COMM_WORLD ((MPI_Comm)0x44000000) +#define MPI_COMM_SELF ((MPI_Comm)0x44000001) + +/*---------------------------------------------------------------------------*/ +/* MPI_Comm Split Types */ +/*---------------------------------------------------------------------------*/ +enum +{ + MPI_COMM_TYPE_SHARED = 1, +}; + + +/*---------------------------------------------------------------------------*/ +/* MPI_Win */ +/*---------------------------------------------------------------------------*/ + +typedef int MPI_Win; +#define MPI_WIN_NULL ((MPI_Win)0x20000000) + + +/*---------------------------------------------------------------------------*/ +/* MPI_File */ +/*---------------------------------------------------------------------------*/ + +typedef struct ADIOI_FileD* MPI_File; +#define MPI_FILE_NULL ((MPI_File)0) + + +/*---------------------------------------------------------------------------*/ +/* MPI_Op */ +/*---------------------------------------------------------------------------*/ + +typedef int MPI_Op; +#define MPI_OP_NULL ((MPI_Op)0x18000000) + +#define MPI_MAX ((MPI_Op)0x58000001) +#define MPI_MIN ((MPI_Op)0x58000002) +#define MPI_SUM ((MPI_Op)0x58000003) +#define MPI_PROD ((MPI_Op)0x58000004) +#define MPI_LAND ((MPI_Op)0x58000005) +#define MPI_BAND ((MPI_Op)0x58000006) +#define MPI_LOR ((MPI_Op)0x58000007) +#define MPI_BOR ((MPI_Op)0x58000008) +#define MPI_LXOR ((MPI_Op)0x58000009) +#define MPI_BXOR ((MPI_Op)0x5800000a) +#define MPI_MINLOC ((MPI_Op)0x5800000b) +#define MPI_MAXLOC ((MPI_Op)0x5800000c) +#define MPI_REPLACE ((MPI_Op)0x5800000d) +#define MPI_NO_OP ((MPI_Op)0x5800000e) + + +/*---------------------------------------------------------------------------*/ +/* MPI_Info */ +/*---------------------------------------------------------------------------*/ + +typedef int MPI_Info; +#define MPI_INFO_NULL ((MPI_Info)0x1c000000) + + +/*---------------------------------------------------------------------------*/ +/* MPI_Request */ +/*---------------------------------------------------------------------------*/ + +typedef int MPI_Request; +#define MPI_REQUEST_NULL ((MPI_Request)0x2c000000) + + +/*---------------------------------------------------------------------------*/ +/* MPI_Group */ +/*---------------------------------------------------------------------------*/ + +typedef int MPI_Group; +#define MPI_GROUP_NULL ((MPI_Group)0x08000000) + +#define MPI_GROUP_EMPTY ((MPI_Group)0x48000000) + + +/*---------------------------------------------------------------------------*/ +/* MPI_Errhandler */ +/*---------------------------------------------------------------------------*/ + +typedef int MPI_Errhandler; +#define MPI_ERRHANDLER_NULL ((MPI_Errhandler)0x14000000) + +#define MPI_ERRORS_ARE_FATAL ((MPI_Errhandler)0x54000000) +#define MPI_ERRORS_RETURN ((MPI_Errhandler)0x54000001) + + +/*---------------------------------------------------------------------------*/ +/* MPI_Message */ +/*---------------------------------------------------------------------------*/ + +typedef int MPI_Message; +#define MPI_MESSAGE_NULL ((MPI_Message)0x30000000) +#define MPI_MESSAGE_NO_PROC ((MPI_Message)0x70000000) + +/*---------------------------------------------------------------------------*/ +/* MPI_Status */ +/*---------------------------------------------------------------------------*/ + +typedef struct MPI_Status +{ + int internal[2]; + + int MPI_SOURCE; + int MPI_TAG; + int MPI_ERROR; + +} MPI_Status; + +#define MPI_STATUS_IGNORE ((MPI_Status*)(MPI_Aint)1) +#define MPI_STATUSES_IGNORE ((MPI_Status*)(MPI_Aint)1) + + +/*---------------------------------------------------------------------------*/ +/* MISC CONSTANTS */ +/*---------------------------------------------------------------------------*/ + +/* Used in: Count, Index, Rank, Color, Toplogy, Precision, Exponent range */ +#define MPI_UNDEFINED (-32766) + +/* Used in: Rank */ +#define MPI_PROC_NULL (-1) +#define MPI_ANY_SOURCE (-2) +#define MPI_ROOT (-3) + +/* Used in: Tag */ +#define MPI_ANY_TAG (-1) + +/* Used for: Buffer address */ +#define MPI_BOTTOM ((void*)0) +#define MPI_UNWEIGHTED ((int*)1) +#define MPI_WEIGHTS_EMPTY ((int*)2) + +/*---------------------------------------------------------------------------*/ +/* Macro for function return values. */ +/*---------------------------------------------------------------------------*/ +#define MPI_METHOD _Success_( return == MPI_SUCCESS ) int MPIAPI + + +/*---------------------------------------------------------------------------*/ +/* Chapter 3: Point-to-Point Communication */ +/*---------------------------------------------------------------------------*/ + +/*---------------------------------------------*/ +/* Section 3.2: Blocking Communication */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Send( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm + ); + +MPI_METHOD +PMPI_Send( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm + ); + +MPI_METHOD +MPI_Recv( + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_ANY_SOURCE) int source, + _In_range_(>=, MPI_ANY_TAG) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_Recv( + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_ANY_SOURCE) int source, + _In_range_(>=, MPI_ANY_TAG) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Status* status + ); + +_Pre_satisfies_(status != MPI_STATUS_IGNORE) +MPI_METHOD +MPI_Get_count( + _In_ const MPI_Status* status, + _In_ MPI_Datatype datatype, + _mpi_out_(count, MPI_UNDEFINED) int* count + ); + +_Pre_satisfies_(status != MPI_STATUS_IGNORE) +MPI_METHOD +PMPI_Get_count( + _In_ const MPI_Status* status, + _In_ MPI_Datatype datatype, + _mpi_out_(count, MPI_UNDEFINED) int* count + ); + + +/*---------------------------------------------*/ +/* Section 3.4: Communication Modes */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Bsend( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm + ); + +MPI_METHOD +PMPI_Bsend( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm + ); + +MPI_METHOD +MPI_Ssend( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm + ); + +MPI_METHOD +PMPI_Ssend( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm + ); + +MPI_METHOD +MPI_Rsend( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm + ); + +MPI_METHOD +PMPI_Rsend( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm + ); + + +/*---------------------------------------------*/ +/* Section 3.6: Buffer Allocation */ +/*---------------------------------------------*/ + +/* Upper bound on bsend overhead for each message */ +#define MSMPI_BSEND_OVERHEAD_V1 95 +#define MSMPI_BSEND_OVERHEAD_V2 MSMPI_BSEND_OVERHEAD_V1 + +#if MSMPI_VER > 0x300 +# define MPI_BSEND_OVERHEAD MSMPI_Get_bsend_overhead() +#else +# define MPI_BSEND_OVERHEAD MSMPI_BSEND_OVERHEAD_V1 +#endif + +MPI_METHOD +MPI_Buffer_attach( + _In_ void* buffer, + _In_range_(>=, 0) int size + ); + +MPI_METHOD +PMPI_Buffer_attach( + _In_ void* buffer, + _In_range_(>=, 0) int size + ); + +MPI_METHOD +MPI_Buffer_detach( + _Out_ void* buffer_addr, + _Out_ int* size + ); + +MPI_METHOD +PMPI_Buffer_detach( + _Out_ void* buffer_addr, + _Out_ int* size + ); + + +/*---------------------------------------------*/ +/* Section 3.7: Nonblocking Communication */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Isend( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +PMPI_Isend( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +MPI_Ibsend( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +PMPI_Ibsend( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +MPI_Issend( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +PMPI_Issend( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +MPI_Irsend( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +PMPI_Irsend( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +MPI_Irecv( + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_ANY_SOURCE) int source, + _In_range_(>=, MPI_ANY_TAG) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +PMPI_Irecv( + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_ANY_SOURCE) int source, + _In_range_(>=, MPI_ANY_TAG) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + + +/*---------------------------------------------*/ +/* Section 3.7.3: Communication Completion */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Wait( + _Inout_ _Post_equal_to_(MPI_REQUEST_NULL) MPI_Request* request, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_Wait( + _Inout_ _Post_equal_to_(MPI_REQUEST_NULL) MPI_Request* request, + _Out_ MPI_Status* status + ); + +_Success_(return == MPI_SUCCESS && *flag != 0) +int +MPIAPI +MPI_Test( + _Inout_ _Post_equal_to_(MPI_REQUEST_NULL) MPI_Request* request, + _mpi_out_flag_ int* flag, + _Out_ MPI_Status* status + ); + +_Success_(return == MPI_SUCCESS && *flag != 0) +int +MPIAPI +PMPI_Test( + _Inout_ _Post_equal_to_(MPI_REQUEST_NULL) MPI_Request* request, + _mpi_out_flag_ int* flag, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_Request_free( + _Inout_ _Post_equal_to_(MPI_REQUEST_NULL) MPI_Request* request + ); + +MPI_METHOD +PMPI_Request_free( + _Inout_ _Post_equal_to_(MPI_REQUEST_NULL) MPI_Request* request + ); + + +/*---------------------------------------------*/ +/* Section 3.7.5: Multiple Completions */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Waitany( + _In_range_(>=, 0) int count, + _mpi_updates_(count) MPI_Request array_of_requests[], + _mpi_out_range_(index, MPI_UNDEFINED, (count - 1)) int* index, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_Waitany( + _In_range_(>=, 0) int count, + _mpi_updates_(count) MPI_Request array_of_requests[], + _mpi_out_range_(index, MPI_UNDEFINED, (count - 1)) int* index, + _Out_ MPI_Status* status + ); + +_Success_(return == MPI_SUCCESS && *flag != 0) +int +MPIAPI +MPI_Testany( + _In_range_(>=, 0) int count, + _mpi_updates_(count) MPI_Request array_of_requests[], + _mpi_out_range_(index, MPI_UNDEFINED, (count - 1)) int* index, + _mpi_out_flag_ int* flag, + _Out_ MPI_Status* status + ); + +_Success_(return == MPI_SUCCESS && *flag != 0) +int +MPIAPI +PMPI_Testany( + _In_range_(>=, 0) int count, + _mpi_updates_(count) MPI_Request array_of_requests[], + _mpi_out_range_(index, MPI_UNDEFINED, (count - 1)) int* index, + _mpi_out_flag_ int* flag, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_Waitall( + _In_range_(>=, 0) int count, + _mpi_updates_(count) MPI_Request array_of_requests[], + _Out_writes_opt_(count) MPI_Status array_of_statuses[] + ); + +MPI_METHOD +PMPI_Waitall( + _In_range_(>=, 0) int count, + _mpi_updates_(count) MPI_Request array_of_requests[], + _Out_writes_opt_(count) MPI_Status array_of_statuses[] + ); + +_Success_(return == MPI_SUCCESS && *flag != 0) +int +MPIAPI +MPI_Testall( + _In_range_(>=, 0) int count, + _mpi_updates_(count) MPI_Request array_of_requests[], + _mpi_out_flag_ int* flag, + _Out_writes_opt_(count) MPI_Status array_of_statuses[] + ); + +_Success_(return == MPI_SUCCESS && *flag != 0) +int +MPIAPI +PMPI_Testall( + _In_range_(>=, 0) int count, + _mpi_updates_(count) MPI_Request array_of_requests[], + _mpi_out_flag_ int* flag, + _Out_writes_opt_(count) MPI_Status array_of_statuses[] +); + +MPI_METHOD +MPI_Waitsome( + _In_range_(>=, 0) int incount, + _mpi_updates_(incount) MPI_Request array_of_requests[], + _mpi_out_range_(outcount, MPI_UNDEFINED, incount) int* outcount, + _mpi_writes_to_(incount,*outcount) int array_of_indices[], + _Out_writes_to_opt_(incount, *outcount) MPI_Status array_of_statuses[] + ); + +MPI_METHOD +PMPI_Waitsome( + _In_range_(>=, 0) int incount, + _mpi_updates_(incount) MPI_Request array_of_requests[], + _mpi_out_range_(outcount, MPI_UNDEFINED, incount) int* outcount, + _mpi_writes_to_(incount,*outcount) int array_of_indices[], + _Out_writes_to_opt_(incount, *outcount) MPI_Status array_of_statuses[] + ); + +_Success_(return == MPI_SUCCESS && *outcount > 0) +int +MPIAPI +MPI_Testsome( + _In_range_(>=, 0) int incount, + _mpi_updates_(incount) MPI_Request array_of_requests[], + _mpi_out_range_(outcount, MPI_UNDEFINED, incount) int* outcount, + _mpi_writes_to_(incount,*outcount) int array_of_indices[], + _Out_writes_to_opt_(incount, *outcount) MPI_Status array_of_statuses[] + ); + +_Success_(return == MPI_SUCCESS && *outcount > 0) +int +MPIAPI +PMPI_Testsome( + _In_range_(>=, 0) int incount, + _mpi_updates_(incount) MPI_Request array_of_requests[], + _mpi_out_range_(outcount, MPI_UNDEFINED, incount) int* outcount, + _mpi_writes_to_(incount,*outcount) int array_of_indices[], + _Out_writes_to_opt_(incount, *outcount) MPI_Status array_of_statuses[] + ); + + +/*---------------------------------------------*/ +/* Section 3.7.6: Test of status */ +/*---------------------------------------------*/ + +_Success_(return == MPI_SUCCESS && *flag != 0) +int +MPIAPI +MPI_Request_get_status( + _In_ MPI_Request request, + _mpi_out_flag_ int* flag, + _Out_ MPI_Status* status + ); + +_Success_(return == MPI_SUCCESS && *flag != 0) +int +MPIAPI +PMPI_Request_get_status( + _In_ MPI_Request request, + _mpi_out_flag_ int* flag, + _Out_ MPI_Status* status + ); + + +/*---------------------------------------------*/ +/* Section 3.8: Probe and Cancel */ +/*---------------------------------------------*/ + +_Success_(return == MPI_SUCCESS && *flag != 0) +int +MPIAPI +MPI_Iprobe( + _In_range_(>=, MPI_ANY_SOURCE) int source, + _In_range_(>=, MPI_ANY_TAG) int tag, + _In_ MPI_Comm comm, + _mpi_out_flag_ int* flag, + _Out_ MPI_Status* status + ); + +_Success_(return == MPI_SUCCESS && *flag != 0) +int +MPIAPI +PMPI_Iprobe( + _In_range_(>=, MPI_ANY_SOURCE) int source, + _In_range_(>=, MPI_ANY_TAG) int tag, + _In_ MPI_Comm comm, + _mpi_out_flag_ int* flag, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_Probe( + _In_range_(>=, MPI_ANY_SOURCE) int source, + _In_range_(>=, MPI_ANY_TAG) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_Probe( + _In_range_(>=, MPI_ANY_SOURCE) int source, + _In_range_(>=, MPI_ANY_TAG) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Status* status + ); + +_Success_(return == MPI_SUCCESS && *flag != 0) +int +MPIAPI +MPI_Improbe( + _In_range_(>=, MPI_ANY_SOURCE) int source, + _In_range_(>=, MPI_ANY_TAG) int tag, + _In_ MPI_Comm comm, + _mpi_out_flag_ int* flag, + _Out_ MPI_Message* message, + _Out_ MPI_Status* status + ); + +_Success_(return == MPI_SUCCESS && *flag != 0) +int +MPIAPI +PMPI_Improbe( + _In_range_(>=, MPI_ANY_SOURCE) int source, + _In_range_(>=, MPI_ANY_TAG) int tag, + _In_ MPI_Comm comm, + _mpi_out_flag_ int* flag, + _Out_ MPI_Message* message, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_Mprobe( + _In_range_(>=, MPI_ANY_SOURCE) int source, + _In_range_(>=, MPI_ANY_TAG) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Message* message, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_Mprobe( + _In_range_(>=, MPI_ANY_SOURCE) int source, + _In_range_(>=, MPI_ANY_TAG) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Message* message, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_Mrecv( + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Inout_ MPI_Message* message, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_Mrecv( + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Inout_ MPI_Message* message, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_Imrecv( + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Inout_ MPI_Message* message, + _Out_ MPI_Request* request + ); + +MPI_METHOD +PMPI_Imrecv( + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Inout_ MPI_Message* message, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(*request != MPI_REQUEST_NULL) +MPI_METHOD +MPI_Cancel( + _In_ MPI_Request* request + ); + +_Pre_satisfies_(*request != MPI_REQUEST_NULL) +MPI_METHOD +PMPI_Cancel( + _In_ MPI_Request* request + ); + +_Pre_satisfies_(status != MPI_STATUS_IGNORE) +MPI_METHOD +MPI_Test_cancelled( + _In_ const MPI_Status* status, + _mpi_out_flag_ int* flag + ); + +_Pre_satisfies_(status != MPI_STATUS_IGNORE) +MPI_METHOD +PMPI_Test_cancelled( + _In_ const MPI_Status* status, + _mpi_out_flag_ int* flag + ); + + +/*---------------------------------------------*/ +/* Section 3.9: Persistent Communication */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Send_init( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +PMPI_Send_init( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +MPI_Bsend_init( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +PMPI_Bsend_init( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +MPI_Ssend_init( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +PMPI_Ssend_init( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +MPI_Rsend_init( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +PMPI_Rsend_init( + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +MPI_Recv_init( + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_ANY_SOURCE) int source, + _In_range_(>=, MPI_ANY_TAG) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +PMPI_Recv_init( + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_ANY_SOURCE) int source, + _In_range_(>=, MPI_ANY_TAG) int tag, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(*request != MPI_REQUEST_NULL) +MPI_METHOD +MPI_Start( + _Inout_ MPI_Request* request + ); + +_Pre_satisfies_(*request != MPI_REQUEST_NULL) +MPI_METHOD +PMPI_Start( + _Inout_ MPI_Request* request + ); + +MPI_METHOD +MPI_Startall( + _In_range_(>=, 0) int count, + _mpi_updates_(count) MPI_Request array_of_requests[] + ); + +MPI_METHOD +PMPI_Startall( + _In_range_(>=, 0) int count, + _mpi_updates_(count) MPI_Request array_of_requests[] + ); + + +/*---------------------------------------------*/ +/* Section 3.10: Send-Recv */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Sendrecv( + _In_opt_ const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int sendtag, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _In_range_(>=, MPI_ANY_SOURCE) int source, + _In_range_(>=, MPI_ANY_TAG) int recvtag, + _In_ MPI_Comm comm, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_Sendrecv( + _In_opt_ const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int sendtag, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _In_range_(>=, MPI_ANY_SOURCE) int source, + _In_range_(>=, MPI_ANY_TAG) int recvtag, + _In_ MPI_Comm comm, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_Sendrecv_replace( + _Inout_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int sendtag, + _In_range_(>=, MPI_ANY_SOURCE) int source, + _In_range_(>=, MPI_ANY_TAG) int recvtag, + _In_ MPI_Comm comm, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_Sendrecv_replace( + _Inout_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_range_(>=, MPI_PROC_NULL) int dest, + _In_range_(>=, 0) int sendtag, + _In_range_(>=, MPI_ANY_SOURCE) int source, + _In_range_(>=, MPI_ANY_TAG) int recvtag, + _In_ MPI_Comm comm, + _Out_ MPI_Status* status + ); + + +/*---------------------------------------------------------------------------*/ +/* Chapter 4: Datatypes */ +/*---------------------------------------------------------------------------*/ + +/*---------------------------------------------*/ +/* Section 4.1: Derived Datatypes */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Type_contiguous( + _In_range_(>=, 0) int count, + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +PMPI_Type_contiguous( + _In_range_(>=, 0) int count, + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +MPI_Type_vector( + _In_range_(>=, 0) int count, + _In_range_(>=, 0) int blocklength, + _In_ int stride, + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +PMPI_Type_vector( + _In_range_(>=, 0) int count, + _In_range_(>=, 0) int blocklength, + _In_ int stride, + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +MPI_Type_create_hvector( + _In_range_(>=, 0) int count, + _In_range_(>=, 0) int blocklength, + _In_ MPI_Aint stride, + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +PMPI_Type_create_hvector( + _In_range_(>=, 0) int count, + _In_range_(>=, 0) int blocklength, + _In_ MPI_Aint stride, + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +MPI_Type_indexed( + _In_range_(>=, 0) int count, + _mpi_reads_(count) const int array_of_blocklengths[], + _mpi_reads_(count) const int array_of_displacements[], + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +PMPI_Type_indexed( + _In_range_(>=, 0) int count, + _mpi_reads_(count) const int array_of_blocklengths[], + _mpi_reads_(count) const int array_of_displacements[], + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +MPI_Type_create_hindexed( + _In_range_(>=, 0) int count, + _mpi_reads_(count) const int array_of_blocklengths[], + _mpi_reads_(count) const MPI_Aint array_of_displacements[], + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +PMPI_Type_create_hindexed( + _In_range_(>=, 0) int count, + _mpi_reads_(count) const int array_of_blocklengths[], + _mpi_reads_(count) const MPI_Aint array_of_displacements[], + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +MPI_Type_create_hindexed_block( + _In_range_(>=, 0) int count, + _In_range_(>=, 0) int blocklength, + _mpi_reads_(count) const MPI_Aint array_of_displacements[], + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +PMPI_Type_create_hindexed_block( + _In_range_(>=, 0) int count, + _In_range_(>=, 0) int blocklength, + _mpi_reads_(count) const MPI_Aint array_of_displacements[], + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +MPI_Type_create_indexed_block( + _In_range_(>=, 0) int count, + _In_range_(>=, 0) int blocklength, + _mpi_reads_(count) const int array_of_displacements[], + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +PMPI_Type_create_indexed_block( + _In_range_(>=, 0) int count, + _In_range_(>=, 0) int blocklength, + _mpi_reads_(count) const int array_of_displacements[], + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +MPI_Type_create_struct( + _In_range_(>=, 0) int count, + _mpi_reads_(count) const int array_of_blocklengths[], + _mpi_reads_(count) const MPI_Aint array_of_displacements[], + _mpi_reads_(count) const MPI_Datatype array_of_types[], + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +PMPI_Type_create_struct( + _In_range_(>=, 0) int count, + _mpi_reads_(count) const int array_of_blocklengths[], + _mpi_reads_(count) const MPI_Aint array_of_displacements[], + _mpi_reads_(count) const MPI_Datatype array_of_types[], + _Out_ MPI_Datatype* newtype + ); + + +#define MPI_ORDER_C 56 +#define MPI_ORDER_FORTRAN 57 + +MPI_METHOD +MPI_Type_create_subarray( + _In_range_(>=, 0) int ndims, + _mpi_reads_(ndims) const int array_of_sizes[], + _mpi_reads_(ndims) const int array_of_subsizes[], + _mpi_reads_(ndims) const int array_of_starts[], + _In_range_(MPI_ORDER_C, MPI_ORDER_FORTRAN) int order, + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +PMPI_Type_create_subarray( + _In_range_(>=, 0) int ndims, + _In_reads_opt_(ndims) const int array_of_sizes[], + _In_reads_opt_(ndims) const int array_of_subsizes[], + _In_reads_opt_(ndims) const int array_of_starts[], + _In_range_(MPI_ORDER_C, MPI_ORDER_FORTRAN) int order, + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + + +#define MPI_DISTRIBUTE_BLOCK 121 +#define MPI_DISTRIBUTE_CYCLIC 122 +#define MPI_DISTRIBUTE_NONE 123 +#define MPI_DISTRIBUTE_DFLT_DARG (-49767) + +_Pre_satisfies_( + order == MPI_DISTRIBUTE_DFLT_DARG || + (order >= MPI_DISTRIBUTE_BLOCK && order <= MPI_DISTRIBUTE_NONE) + ) +MPI_METHOD +MPI_Type_create_darray( + _In_range_(>=, 0) int size, + _In_range_(>=, 0) int rank, + _In_range_(>=, 0) int ndims, + _mpi_reads_(ndims) const int array_of_gsizes[], + _mpi_reads_(ndims) const int array_of_distribs[], + _mpi_reads_(ndims) const int array_of_dargs[], + _mpi_reads_(ndims) const int array_of_psizes[], + _In_ int order, + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +_Pre_satisfies_( + order == MPI_DISTRIBUTE_DFLT_DARG || + (order >= MPI_DISTRIBUTE_BLOCK && order <= MPI_DISTRIBUTE_NONE) + ) +MPI_METHOD +PMPI_Type_create_darray( + _In_range_(>=, 0) int size, + _In_range_(>=, 0) int rank, + _In_range_(>=, 0) int ndims, + _mpi_reads_(ndims) const int array_of_gsizes[], + _mpi_reads_(ndims) const int array_of_distribs[], + _mpi_reads_(ndims) const int array_of_dargs[], + _mpi_reads_(ndims) const int array_of_psizes[], + _In_ int order, + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + + +/*---------------------------------------------*/ +/* Section 4.1.5: Datatype Address and Size */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Get_address( + _In_ const void* location, + _Out_ MPI_Aint* address + ); + +MPI_METHOD +PMPI_Get_address( + _In_ const void* location, + _Out_ MPI_Aint* address + ); + +MPI_Aint +MPI_Aint_add( + _In_ MPI_Aint base, + _In_ MPI_Aint disp + ); + +MPI_Aint +PMPI_Aint_add( + _In_ MPI_Aint base, + _In_ MPI_Aint disp + ); + +MPI_Aint +MPI_Aint_diff( + _In_ MPI_Aint base, + _In_ MPI_Aint disp + ); + +MPI_Aint +PMPI_Aint_diff( + _In_ MPI_Aint base, + _In_ MPI_Aint disp + ); + +MPI_METHOD +MPI_Type_size( + _In_ MPI_Datatype datatype, + _mpi_out_(size, MPI_UNDEFINED) int* size + ); + +MPI_METHOD +PMPI_Type_size( + _In_ MPI_Datatype datatype, + _mpi_out_(size, MPI_UNDEFINED) int* size + ); + +MPI_METHOD +MPI_Type_size_x( + _In_ MPI_Datatype datatype, + _mpi_out_(size, MPI_UNDEFINED) MPI_Count *size + ); + +MPI_METHOD +PMPI_Type_size_x( + _In_ MPI_Datatype datatype, + _mpi_out_(size, MPI_UNDEFINED) MPI_Count *size + ); + + +/*---------------------------------------------*/ +/* Section 4.1.7: Datatype Extent and Bounds */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Type_get_extent( + _In_ MPI_Datatype datatype, + _mpi_out_(lb, MPI_UNDEFINED) MPI_Aint* lb, + _mpi_out_(extent, MPI_UNDEFINED) MPI_Aint* extent + ); + +MPI_METHOD +PMPI_Type_get_extent( + _In_ MPI_Datatype datatype, + _mpi_out_(lb, MPI_UNDEFINED) MPI_Aint* lb, + _mpi_out_(extent, MPI_UNDEFINED) MPI_Aint* extent + ); + +MPI_METHOD +MPI_Type_get_extent_x( + _In_ MPI_Datatype datatype, + _mpi_out_(lb, MPI_UNDEFINED) MPI_Count *lb, + _mpi_out_(extent, MPI_UNDEFINED) MPI_Count *extent + ); + +MPI_METHOD +PMPI_Type_get_extent_x( + _In_ MPI_Datatype datatype, + _mpi_out_(lb, MPI_UNDEFINED) MPI_Count *lb, + _mpi_out_(extent, MPI_UNDEFINED) MPI_Count *extent + ); + +MPI_METHOD +MPI_Type_create_resized( + _In_ MPI_Datatype oldtype, + _In_ MPI_Aint lb, + _In_range_(>=, 0) MPI_Aint extent, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +PMPI_Type_create_resized( + _In_ MPI_Datatype oldtype, + _In_ MPI_Aint lb, + _In_range_(>=, 0) MPI_Aint extent, + _Out_ MPI_Datatype* newtype + ); + + +/*---------------------------------------------*/ +/* Section 4.1.8: Datatype True Extent */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Type_get_true_extent( + _In_ MPI_Datatype datatype, + _mpi_out_(true_lb, MPI_UNDEFINED) MPI_Aint* true_lb, + _mpi_out_(true_extent, MPI_UNDEFINED) MPI_Aint* true_extent + ); + +MPI_METHOD +PMPI_Type_get_true_extent( + _In_ MPI_Datatype datatype, + _mpi_out_(true_lb, MPI_UNDEFINED) MPI_Aint* true_lb, + _mpi_out_(true_extent, MPI_UNDEFINED) MPI_Aint* true_extent + ); + +MPI_METHOD +MPI_Type_get_true_extent_x( + _In_ MPI_Datatype datatype, + _mpi_out_(true_lb, MPI_UNDEFINED) MPI_Count *true_lb, + _mpi_out_(true_extent, MPI_UNDEFINED) MPI_Count *true_extent + ); + +MPI_METHOD +PMPI_Type_get_true_extent_x( + _In_ MPI_Datatype datatype, + _mpi_out_(true_lb, MPI_UNDEFINED) MPI_Count *true_lb, + _mpi_out_(true_extent, MPI_UNDEFINED) MPI_Count *true_extent + ); + + +/*---------------------------------------------*/ +/* Section 4.1.9: Datatype Commit and Free */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Type_commit( + _In_ MPI_Datatype* datatype + ); + +MPI_METHOD +PMPI_Type_commit( + _In_ MPI_Datatype* datatype + ); + +MPI_METHOD +MPI_Type_free( + _Deref_out_range_(==, MPI_DATATYPE_NULL) _Inout_ MPI_Datatype* datatype + ); + +MPI_METHOD +PMPI_Type_free( + _Deref_out_range_(==, MPI_DATATYPE_NULL) _Inout_ MPI_Datatype* datatype + ); + + +/*---------------------------------------------*/ +/* Section 4.1.10: Datatype Duplication */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Type_dup( + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +PMPI_Type_dup( + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + + +/*---------------------------------------------*/ +/* Section 4.1.11: Datatype and Communication */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Get_elements( + _In_ const MPI_Status* status, + _In_ MPI_Datatype datatype, + _mpi_out_(count, MPI_UNDEFINED) int* count + ); + +MPI_METHOD +PMPI_Get_elements( + _In_ const MPI_Status* status, + _In_ MPI_Datatype datatype, + _mpi_out_(count, MPI_UNDEFINED) int* count + ); + +MPI_METHOD +MPI_Get_elements_x( + _In_ const MPI_Status* status, + _In_ MPI_Datatype datatype, + _mpi_out_(count, MPI_UNDEFINED) MPI_Count *count + ); + +MPI_METHOD +PMPI_Get_elements_x( + _In_ const MPI_Status* status, + _In_ MPI_Datatype datatype, + _mpi_out_(count, MPI_UNDEFINED) MPI_Count *count + ); + + +/*---------------------------------------------*/ +/* Section 4.1.13: Decoding a Datatype */ +/*---------------------------------------------*/ + +/* Datatype combiners result */ +enum +{ + MPI_COMBINER_NAMED = 1, + MPI_COMBINER_DUP = 2, + MPI_COMBINER_CONTIGUOUS = 3, + MPI_COMBINER_VECTOR = 4, + MPI_COMBINER_HVECTOR_INTEGER = 5, + MPI_COMBINER_HVECTOR = 6, + MPI_COMBINER_INDEXED = 7, + MPI_COMBINER_HINDEXED_INTEGER = 8, + MPI_COMBINER_HINDEXED = 9, + MPI_COMBINER_INDEXED_BLOCK = 10, + MPI_COMBINER_STRUCT_INTEGER = 11, + MPI_COMBINER_STRUCT = 12, + MPI_COMBINER_SUBARRAY = 13, + MPI_COMBINER_DARRAY = 14, + MPI_COMBINER_F90_REAL = 15, + MPI_COMBINER_F90_COMPLEX = 16, + MPI_COMBINER_F90_INTEGER = 17, + MPI_COMBINER_RESIZED = 18, + MPI_COMBINER_HINDEXED_BLOCK = 19 +}; + +MPI_METHOD +MPI_Type_get_envelope( + _In_ MPI_Datatype datatype, + _Out_ _Deref_out_range_(>=, 0) int* num_integers, + _Out_ _Deref_out_range_(>=, 0) int* num_addresses, + _Out_ _Deref_out_range_(>=, 0) int* num_datatypes, + _Out_ _Deref_out_range_(MPI_COMBINER_NAMED, MPI_COMBINER_RESIZED) int* combiner + ); + +MPI_METHOD +PMPI_Type_get_envelope( + _In_ MPI_Datatype datatype, + _Out_ _Deref_out_range_(>=, 0) int* num_integers, + _Out_ _Deref_out_range_(>=, 0) int* num_addresses, + _Out_ _Deref_out_range_(>=, 0) int* num_datatypes, + _Out_ _Deref_out_range_(MPI_COMBINER_NAMED, MPI_COMBINER_RESIZED) int* combiner + ); + +MPI_METHOD +MPI_Type_get_contents( + _In_ MPI_Datatype datatype, + _In_range_(>=, 0) int max_integers, + _In_range_(>=, 0) int max_addresses, + _In_range_(>=, 0) int max_datatypes, + _mpi_writes_(max_integers) int array_of_integers[], + _mpi_writes_(max_addresses) MPI_Aint array_of_addresses[], + _mpi_writes_(max_datatypes) MPI_Datatype array_of_datatypes[] + ); + +MPI_METHOD +PMPI_Type_get_contents( + _In_ MPI_Datatype datatype, + _In_range_(>=, 0) int max_integers, + _In_range_(>=, 0) int max_addresses, + _In_range_(>=, 0) int max_datatypes, + _mpi_writes_(max_integers) int array_of_integers[], + _mpi_writes_(max_addresses) MPI_Aint array_of_addresses[], + _mpi_writes_(max_datatypes) MPI_Datatype array_of_datatypes[] + ); + + +/*---------------------------------------------*/ +/* Section 4.2: Datatype Pack and Unpack */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Pack( + _In_opt_ const void* inbuf, + _In_range_(>=, 0) int incount, + _In_ MPI_Datatype datatype, + _mpi_writes_bytes_(outsize) void* outbuf, + _In_range_(>=, 0) int outsize, + _mpi_position_(outsize) int* position, + _In_ MPI_Comm comm + ); + +MPI_METHOD +PMPI_Pack( + _In_opt_ const void* inbuf, + _In_range_(>=, 0) int incount, + _In_ MPI_Datatype datatype, + _mpi_writes_bytes_(outsize) void* outbuf, + _In_range_(>=, 0) int outsize, + _mpi_position_(outsize) int* position, + _In_ MPI_Comm comm + ); + +MPI_METHOD +MPI_Unpack( + _mpi_reads_bytes_(insize) const void* inbuf, + _In_range_(>=, 0) int insize, + _mpi_position_(insize) int* position, + _When_(insize > 0, _Out_opt_) void* outbuf, + _In_range_(>=, 0) int outcount, + _In_ MPI_Datatype datatype, + _In_ MPI_Comm comm + ); + +MPI_METHOD +PMPI_Unpack( + _mpi_reads_bytes_(insize) const void* inbuf, + _In_range_(>=, 0) int insize, + _mpi_position_(insize) int* position, + _When_(insize > 0, _Out_opt_) void* outbuf, + _In_range_(>=, 0) int outcount, + _In_ MPI_Datatype datatype, + _In_ MPI_Comm comm + ); + +MPI_METHOD +MPI_Pack_size( + _In_range_(>=, 0) int incount, + _In_ MPI_Datatype datatype, + _In_ MPI_Comm comm, + _mpi_out_(size, MPI_UNDEFINED) int *size + ); + +MPI_METHOD +PMPI_Pack_size( + _In_range_(>=, 0) int incount, + _In_ MPI_Datatype datatype, + _In_ MPI_Comm comm, + _mpi_out_(size, MPI_UNDEFINED) int *size + ); + + +/*---------------------------------------------*/ +/* Section 4.3: Canonical Pack and Unpack */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Pack_external( + _In_z_ const char* datarep, + _In_opt_ const void* inbuf, + _In_range_(>=, 0) int incount, + _In_ MPI_Datatype datatype, + _mpi_writes_bytes_(outsize) void* outbuf, + _In_range_(>=, 0) MPI_Aint outsize, + _mpi_position_(outsize) MPI_Aint* position + ); + +MPI_METHOD +PMPI_Pack_external( + _In_z_ const char* datarep, + _In_opt_ const void* inbuf, + _In_range_(>=, 0) int incount, + _In_ MPI_Datatype datatype, + _mpi_writes_bytes_(outsize) void* outbuf, + _In_range_(>=, 0) MPI_Aint outsize, + _mpi_position_(outsize) MPI_Aint* position + ); + +MPI_METHOD +MPI_Unpack_external( + _In_z_ const char* datarep, + _In_reads_bytes_opt_(insize) const void* inbuf, + _In_range_(>=, 0) MPI_Aint insize, + _mpi_position_(insize) MPI_Aint* position, + _When_(insize > 0, _Out_opt_) void* outbuf, + _In_range_(>=, 0) int outcount, + _In_ MPI_Datatype datatype + ); + +MPI_METHOD +PMPI_Unpack_external( + _In_z_ const char* datarep, + _In_reads_bytes_opt_(insize) const void* inbuf, + _In_range_(>=, 0) MPI_Aint insize, + _mpi_position_(insize) MPI_Aint* position, + _When_(insize > 0, _Out_opt_) void* outbuf, + _In_range_(>=, 0) int outcount, + _In_ MPI_Datatype datatype + ); + +MPI_METHOD +MPI_Pack_external_size( + _In_z_ const char* datarep, + _In_range_(>=, 0) int incount, + _In_ MPI_Datatype datatype, + _Out_ MPI_Aint* size + ); + +MPI_METHOD +PMPI_Pack_external_size( + _In_z_ const char* datarep, + _In_range_(>=, 0) int incount, + _In_ MPI_Datatype datatype, + _Out_ MPI_Aint* size + ); + + +/*---------------------------------------------------------------------------*/ +/* Chapter 5: Collective Communication */ +/*---------------------------------------------------------------------------*/ + +#define MPI_IN_PLACE ((void*)(MPI_Aint)-1) + +/*---------------------------------------------*/ +/* Section 5.3: Barrier Synchronization */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Barrier( + _In_ MPI_Comm comm + ); + +MPI_METHOD +PMPI_Barrier( + _In_ MPI_Comm comm + ); + + +/*---------------------------------------------*/ +/* Section 5.4: Broadcast */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Bcast( + _Pre_opt_valid_ void* buffer, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm + ); + +MPI_METHOD +PMPI_Bcast( + _Pre_opt_valid_ void* buffer, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm + ); + + +/*---------------------------------------------*/ +/* Section 5.5: Gather */ +/*---------------------------------------------*/ + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Gather( + _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Gather( + _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Gatherv( + _In_opt_ const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, + _In_opt_ const int recvcounts[], + _In_opt_ const int displs[], + _In_ MPI_Datatype recvtype, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Gatherv( + _In_opt_ const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, + _In_opt_ const int recvcounts[], + _In_opt_ const int displs[], + _In_ MPI_Datatype recvtype, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm + ); + + +/*---------------------------------------------*/ +/* Section 5.6: Scatter */ +/*---------------------------------------------*/ + +_Pre_satisfies_(sendbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Scatter( + _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(sendbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Scatter( + _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(sendbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Scatterv( + _In_opt_ const void* sendbuf, + _In_opt_ const int sendcounts[], + _In_opt_ const int displs[], + _In_ MPI_Datatype sendtype, + _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(sendbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Scatterv( + _In_opt_ const void* sendbuf, + _In_opt_ const int sendcounts[], + _In_opt_ const int displs[], + _In_ MPI_Datatype sendtype, + _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm + ); + + +/*---------------------------------------------*/ +/* Section 5.6: Gather-to-all */ +/*---------------------------------------------*/ + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Allgather( + _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Allgather( + _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Allgatherv( + _In_opt_ const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _Out_opt_ void* recvbuf, + _In_ const int recvcounts[], + _In_ const int displs[], + _In_ MPI_Datatype recvtype, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Allgatherv( + _In_opt_ const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _Out_opt_ void* recvbuf, + _In_ const int recvcounts[], + _In_ const int displs[], + _In_ MPI_Datatype recvtype, + _In_ MPI_Comm comm + ); + + +/*---------------------------------------------*/ +/* Section 5.6: All-to-All Scatter/Gather */ +/*---------------------------------------------*/ + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Alltoall( + _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Alltoall( + _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Alltoallv( + _In_opt_ const void* sendbuf, + _In_opt_ const int sendcounts[], + _In_opt_ const int sdispls[], + _In_ MPI_Datatype sendtype, + _Out_opt_ void* recvbuf, + _In_ const int recvcounts[], + _In_ const int rdispls[], + _In_ MPI_Datatype recvtype, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Alltoallv( + _In_opt_ const void* sendbuf, + _In_opt_ const int sendcounts[], + _In_opt_ const int sdispls[], + _In_ MPI_Datatype sendtype, + _Out_opt_ void* recvbuf, + _In_ const int recvcounts[], + _In_ const int rdispls[], + _In_ MPI_Datatype recvtype, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Alltoallw( + _In_opt_ const void* sendbuf, + _In_opt_ const int sendcounts[], + _In_opt_ const int sdispls[], + _In_opt_ const MPI_Datatype sendtypes[], + _Out_opt_ void* recvbuf, + _In_ const int recvcounts[], + _In_ const int rdispls[], + _In_ const MPI_Datatype recvtypes[], + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Alltoallw( + _In_opt_ const void* sendbuf, + _In_opt_ const int sendcounts[], + _In_opt_ const int sdispls[], + _In_opt_ const MPI_Datatype sendtypes[], + _Out_opt_ void* recvbuf, + _In_ const int recvcounts[], + _In_ const int rdispls[], + _In_ const MPI_Datatype recvtypes[], + _In_ MPI_Comm comm + ); + + +/*---------------------------------------------*/ +/* Section 5.9: Global Reduction Operations */ +/*---------------------------------------------*/ + +typedef +void +(MPIAPI MPI_User_function)( + _In_opt_ void* invec, + _Inout_opt_ void* inoutvec, + _In_ int* len, + _In_ MPI_Datatype* datatype + ); + +MPI_METHOD +MPI_Op_commutative( + _In_ MPI_Op op, + _Out_ int* commute + ); + +MPI_METHOD +PMPI_Op_commutative( + _In_ MPI_Op op, + _Out_ int* commute + ); + +MPI_METHOD +MPI_Op_create( + _In_ MPI_User_function* user_fn, + _In_ int commute, + _Out_ MPI_Op* op + ); + +MPI_METHOD +PMPI_Op_create( + _In_ MPI_User_function* user_fn, + _In_ int commute, + _Out_ MPI_Op* op + ); + +MPI_METHOD +MPI_Op_free( + _Inout_ MPI_Op* op + ); + +MPI_METHOD +PMPI_Op_free( + _Inout_ MPI_Op* op + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Reduce( + _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, + _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Reduce( + _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, + _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Allreduce( + _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Allreduce( + _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(inbuf != MPI_IN_PLACE) +_Pre_satisfies_(inoutbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Reduce_local( + _In_opt_ _In_range_(!=, inoutbuf) const void *inbuf, + _Inout_opt_ void *inoutbuf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op + ); + +_Pre_satisfies_(inbuf != MPI_IN_PLACE) +_Pre_satisfies_(inoutbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Reduce_local( + _In_opt_ _In_range_(!=, inoutbuf) const void *inbuf, + _Inout_opt_ void *inoutbuf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op + ); + +/*---------------------------------------------*/ +/* Section 5.10: Reduce-Scatter */ +/*---------------------------------------------*/ + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Reduce_scatter_block( + _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_range_(>=,0) int recvcount, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Reduce_scatter_block( + _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Reduce_scatter( + _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_ const int recvcounts[], + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Reduce_scatter( + _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_ const int recvcounts[], + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _In_ MPI_Comm comm + ); + + +/*---------------------------------------------*/ +/* Section 5.11: Scan */ +/*---------------------------------------------*/ + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Scan( + _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Scan( + _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Exscan( + _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _In_ MPI_Comm comm + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Exscan( + _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _In_ MPI_Comm comm + ); + + +// +// Section 5.12: Nonblocking Collective Operations +// +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Iallgather( + _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Iallgather( + _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Iallgatherv( + _In_opt_ const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _Out_opt_ void* recvbuf, + _In_ const int recvcounts[], + _In_ const int displs[], + _In_ MPI_Datatype recvtype, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Iallgatherv( + _In_opt_ const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _Out_opt_ void* recvbuf, + _In_ const int recvcounts[], + _In_ const int displs[], + _In_ MPI_Datatype recvtype, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Iallreduce( + _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Iallreduce( + _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Ialltoall( + _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Ialltoall( + _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Ialltoallv( + _In_opt_ const void* sendbuf, + _In_opt_ const int sendcounts[], + _In_opt_ const int sdispls[], + _In_ MPI_Datatype sendtype, + _Out_opt_ void* recvbuf, + _In_ const int recvcounts[], + _In_ const int rdispls[], + _In_ MPI_Datatype recvtype, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Ialltoallv( + _In_opt_ const void* sendbuf, + _In_opt_ const int sendcounts[], + _In_opt_ const int sdispls[], + _In_ MPI_Datatype sendtype, + _Out_opt_ void* recvbuf, + _In_ const int recvcounts[], + _In_ const int rdispls[], + _In_ MPI_Datatype recvtype, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Ialltoallw( + _In_opt_ const void* sendbuf, + _In_opt_ const int sendcounts[], + _In_opt_ const int sdispls[], + _In_opt_ const MPI_Datatype sendtypes[], + _Out_opt_ void* recvbuf, + _In_ const int recvcounts[], + _In_ const int rdispls[], + _In_ const MPI_Datatype recvtypes[], + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Ialltoallw( + _In_opt_ const void* sendbuf, + _In_opt_ const int sendcounts[], + _In_opt_ const int sdispls[], + _In_opt_ const MPI_Datatype sendtypes[], + _Out_opt_ void* recvbuf, + _In_ const int recvcounts[], + _In_ const int rdispls[], + _In_ const MPI_Datatype recvtypes[], + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +MPI_Ibarrier( + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +PMPI_Ibarrier( + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +MPI_Ibcast( + _Pre_opt_valid_ void* buffer, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +MPI_METHOD +PMPI_Ibcast( + _Pre_opt_valid_ void* buffer, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Iexscan( + _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Iexscan( + _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Igather( + _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Igather( + _In_opt_ _When_(sendtype == recvtype, _In_range_(!=, recvbuf)) const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Igatherv( + _In_opt_ const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _Out_opt_ void* recvbuf, + _In_opt_ const int recvcounts[], + _In_opt_ const int displs[], + _In_ MPI_Datatype recvtype, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Igatherv( + _In_opt_ const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _Out_opt_ void* recvbuf, + _In_opt_ const int recvcounts[], + _In_opt_ const int displs[], + _In_ MPI_Datatype recvtype, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Ireduce( + _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Ireduce( + _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Ireduce_scatter( + _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_ const int recvcounts[], + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Ireduce_scatter( + _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_ const int recvcounts[], + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Iscan( + _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Iscan( + _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Ireduce_scatter_block( + _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_range_(>=,0) int recvcount, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(recvbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Ireduce_scatter_block( + _In_opt_ _In_range_(!=, recvbuf) const void* sendbuf, + _Out_opt_ void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype datatype, + _In_ MPI_Op op, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(sendbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Iscatter( + _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(sendbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Iscatter( + _In_range_(!=, recvbuf) _In_opt_ const void* sendbuf, + _In_range_(>=, 0) int sendcount, + _In_ MPI_Datatype sendtype, + _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(sendbuf != MPI_IN_PLACE) +MPI_METHOD +MPI_Iscatterv( + _In_opt_ const void* sendbuf, + _In_opt_ const int sendcounts[], + _In_opt_ const int displs[], + _In_ MPI_Datatype sendtype, + _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +_Pre_satisfies_(sendbuf != MPI_IN_PLACE) +MPI_METHOD +PMPI_Iscatterv( + _In_opt_ const void* sendbuf, + _In_opt_ const int sendcounts[], + _In_opt_ const int displs[], + _In_ MPI_Datatype sendtype, + _When_(root != MPI_PROC_NULL, _Out_opt_) void* recvbuf, + _In_range_(>=, 0) int recvcount, + _In_ MPI_Datatype recvtype, + _mpi_coll_rank_(root) int root, + _In_ MPI_Comm comm, + _Out_ MPI_Request* request + ); + +/*---------------------------------------------------------------------------*/ +/* Chapter 6: Groups, Contexts, Communicators, and Caching */ +/*---------------------------------------------------------------------------*/ + +/*---------------------------------------------*/ +/* Section 6.3: Group Management */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Group_size( + _In_ MPI_Group group, + _Out_ _Deref_out_range_(>, 0) int* size + ); + +MPI_METHOD +PMPI_Group_size( + _In_ MPI_Group group, + _Out_ _Deref_out_range_(>, 0) int* size + ); + +MPI_METHOD +MPI_Group_rank( + _In_ MPI_Group group, + _Out_ _Deref_out_range_(>=, MPI_UNDEFINED) int* rank + ); + +MPI_METHOD +PMPI_Group_rank( + _In_ MPI_Group group, + _Out_ _Deref_out_range_(>=, MPI_UNDEFINED) int* rank + ); + +MPI_METHOD +MPI_Group_translate_ranks( + _In_ MPI_Group group1, + _In_ int n, + _In_reads_opt_(n) const int ranks1[], + _In_ MPI_Group group2, + _Out_writes_opt_(n) int ranks2[] + ); + +MPI_METHOD +PMPI_Group_translate_ranks( + _In_ MPI_Group group1, + _In_ int n, + _In_reads_opt_(n) const int ranks1[], + _In_ MPI_Group group2, + _Out_writes_opt_(n) int ranks2[] + ); + +/* Results of the compare operations */ +#define MPI_IDENT 0 +#define MPI_CONGRUENT 1 +#define MPI_SIMILAR 2 +#define MPI_UNEQUAL 3 + +MPI_METHOD +MPI_Group_compare( + _In_ MPI_Group group1, + _In_ MPI_Group group2, + _Out_ int* result + ); + +MPI_METHOD +PMPI_Group_compare( + _In_ MPI_Group group1, + _In_ MPI_Group group2, + _Out_ int* result + ); + +MPI_METHOD +MPI_Comm_group( + _In_ MPI_Comm comm, + _Out_ MPI_Group* group + ); + +MPI_METHOD +PMPI_Comm_group( + _In_ MPI_Comm comm, + _Out_ MPI_Group* group + ); + +MPI_METHOD +MPI_Group_union( + _In_ MPI_Group group1, + _In_ MPI_Group group2, + _Out_ MPI_Group* newgroup + ); + +MPI_METHOD +PMPI_Group_union( + _In_ MPI_Group group1, + _In_ MPI_Group group2, + _Out_ MPI_Group* newgroup + ); + +MPI_METHOD +MPI_Group_intersection( + _In_ MPI_Group group1, + _In_ MPI_Group group2, + _Out_ MPI_Group* newgroup + ); + +MPI_METHOD +PMPI_Group_intersection( + _In_ MPI_Group group1, + _In_ MPI_Group group2, + _Out_ MPI_Group* newgroup + ); + +MPI_METHOD +MPI_Group_difference( + _In_ MPI_Group group1, + _In_ MPI_Group group2, + _Out_ MPI_Group* newgroup + ); + +MPI_METHOD +PMPI_Group_difference( + _In_ MPI_Group group1, + _In_ MPI_Group group2, + _Out_ MPI_Group* newgroup + ); + +MPI_METHOD +MPI_Group_incl( + _In_ MPI_Group group, + _In_range_(>=, 0) int n, + _In_reads_opt_(n) const int ranks[], + _Out_ MPI_Group* newgroup + ); + +MPI_METHOD +PMPI_Group_incl( + _In_ MPI_Group group, + _In_range_(>=, 0) int n, + _In_reads_opt_(n) const int ranks[], + _Out_ MPI_Group* newgroup + ); + +MPI_METHOD +MPI_Group_excl( + _In_ MPI_Group group, + _In_range_(>=, 0) int n, + _In_reads_opt_(n) const int ranks[], + _Out_ MPI_Group* newgroup + ); + +MPI_METHOD +PMPI_Group_excl( + _In_ MPI_Group group, + _In_range_(>=, 0) int n, + _In_reads_opt_(n) const int ranks[], + _Out_ MPI_Group* newgroup + ); + +MPI_METHOD +MPI_Group_range_incl( + _In_ MPI_Group group, + _In_range_(>=, 0) int n, + _In_reads_opt_(n) int ranges[][3], + _Out_ MPI_Group* newgroup + ); + +MPI_METHOD +PMPI_Group_range_incl( + _In_ MPI_Group group, + _In_range_(>=, 0) int n, + _In_reads_opt_(n) int ranges[][3], + _Out_ MPI_Group* newgroup + ); + +MPI_METHOD +MPI_Group_range_excl( + _In_ MPI_Group group, + _In_range_(>=, 0) int n, + _In_reads_opt_(n) int ranges[][3], + _Out_ MPI_Group* newgroup + ); + +MPI_METHOD +PMPI_Group_range_excl( + _In_ MPI_Group group, + _In_range_(>=, 0) int n, + _In_reads_opt_(n) int ranges[][3], + _Out_ MPI_Group* newgroup + ); + +MPI_METHOD +MPI_Group_free( + _Inout_ MPI_Group* group + ); + +MPI_METHOD +PMPI_Group_free( + _Inout_ MPI_Group* group + ); + + +/*---------------------------------------------*/ +/* Section 6.4: Communicator Management */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Comm_size( + _In_ MPI_Comm comm, + _Out_ _Deref_out_range_(>, 0) int* size + ); + +MPI_METHOD +PMPI_Comm_size( + _In_ MPI_Comm comm, + _Out_ _Deref_out_range_(>, 0) int* size + ); + +MPI_METHOD +MPI_Comm_rank( + _In_ MPI_Comm comm, + _Out_ _Deref_out_range_(>=, 0) int* rank + ); + +MPI_METHOD +PMPI_Comm_rank( + _In_ MPI_Comm comm, + _Out_ _Deref_out_range_(>=, 0) int* rank + ); + +MPI_METHOD +MPI_Comm_compare( + _In_ MPI_Comm comm1, + _In_ MPI_Comm comm2, + _Out_ int* result + ); + +MPI_METHOD +PMPI_Comm_compare( + _In_ MPI_Comm comm1, + _In_ MPI_Comm comm2, + _Out_ int* result + ); + +MPI_METHOD +MPI_Comm_dup( + _In_ MPI_Comm comm, + _Out_ MPI_Comm* newcomm + ); + +MPI_METHOD +PMPI_Comm_dup( + _In_ MPI_Comm comm, + _Out_ MPI_Comm* newcomm + ); + +MPI_METHOD +MPI_Comm_create( + _In_ MPI_Comm comm, + _In_ MPI_Group group, + _Out_ MPI_Comm* newcomm + ); + +MPI_METHOD +PMPI_Comm_create( + _In_ MPI_Comm comm, + _In_ MPI_Group group, + _Out_ MPI_Comm* newcomm + ); + +MPI_METHOD +MPI_Comm_split( + _In_ MPI_Comm comm, + _In_ int color, + _In_ int key, + _Out_ MPI_Comm* newcomm + ); + +MPI_METHOD +PMPI_Comm_split( + _In_ MPI_Comm comm, + _In_ int color, + _In_ int key, + _Out_ MPI_Comm* newcomm + ); + +MPI_METHOD +MPI_Comm_split_type( + _In_ MPI_Comm comm, + _In_ int split_type, + _In_ int key, + _In_ MPI_Info info, + _Out_ MPI_Comm *newcomm + ); + +MPI_METHOD +PMPI_Comm_split_type( + _In_ MPI_Comm comm, + _In_ int split_type, + _In_ int key, + _In_ MPI_Info info, + _Out_ MPI_Comm *newcomm + ); + +MPI_METHOD +MPI_Comm_free( + _Inout_ MPI_Comm* comm + ); + +MPI_METHOD +PMPI_Comm_free( + _Inout_ MPI_Comm* comm + ); + + +/*---------------------------------------------*/ +/* Section 6.6: Inter-Communication */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Comm_test_inter( + _In_ MPI_Comm comm, + _mpi_out_flag_ int* flag + ); + +MPI_METHOD +PMPI_Comm_test_inter( + _In_ MPI_Comm comm, + _mpi_out_flag_ int* flag + ); + +MPI_METHOD +MPI_Comm_remote_size( + _In_ MPI_Comm comm, + _Out_ int* size + ); + +MPI_METHOD +PMPI_Comm_remote_size( + _In_ MPI_Comm comm, + _Out_ int* size + ); + +MPI_METHOD +MPI_Comm_remote_group( + _In_ MPI_Comm comm, + _Out_ MPI_Group* group + ); + +MPI_METHOD +PMPI_Comm_remote_group( + _In_ MPI_Comm comm, + _Out_ MPI_Group* group + ); + +MPI_METHOD +MPI_Intercomm_create( + _In_ MPI_Comm local_comm, + _In_range_(>=, 0) int local_leader, + _In_ MPI_Comm peer_comm, + _In_range_(>=, 0) int remote_leader, + _In_range_(>=, 0) int tag, + _Out_ MPI_Comm* newintercomm + ); + +MPI_METHOD +PMPI_Intercomm_create( + _In_ MPI_Comm local_comm, + _In_range_(>=, 0) int local_leader, + _In_ MPI_Comm peer_comm, + _In_range_(>=, 0) int remote_leader, + _In_range_(>=, 0) int tag, + _Out_ MPI_Comm* newintercomm + ); + +MPI_METHOD +MPI_Intercomm_merge( + _In_ MPI_Comm intercomm, + _In_ int high, + _Out_ MPI_Comm* newintracomm + ); + +MPI_METHOD +PMPI_Intercomm_merge( + _In_ MPI_Comm intercomm, + _In_ int high, + _Out_ MPI_Comm* newintracomm + ); + + +/*---------------------------------------------*/ +/* Section 6.7: Caching */ +/*---------------------------------------------*/ + +#define MPI_KEYVAL_INVALID 0x24000000 + +typedef +int +(MPIAPI MPI_Comm_copy_attr_function)( + _In_ MPI_Comm oldcomm, + _In_ int comm_keyval, + _In_opt_ void* extra_state, + _In_opt_ void* attribute_val_in, + _Out_ void* attribute_val_out, + _mpi_out_flag_ int* flag + ); + +typedef +int +(MPIAPI MPI_Comm_delete_attr_function)( + _In_ MPI_Comm comm, + _In_ int comm_keyval, + _In_opt_ void* attribute_val, + _In_opt_ void* extra_state + ); + +#define MPI_COMM_NULL_COPY_FN ((MPI_Comm_copy_attr_function*)0) +#define MPI_COMM_NULL_DELETE_FN ((MPI_Comm_delete_attr_function*)0) +#define MPI_COMM_DUP_FN ((MPI_Comm_copy_attr_function*)MPIR_Dup_fn) + +MPI_METHOD +MPI_Comm_create_keyval( + _In_opt_ MPI_Comm_copy_attr_function* comm_copy_attr_fn, + _In_opt_ MPI_Comm_delete_attr_function* comm_delete_attr_fn, + _Out_ int* comm_keyval, + _In_opt_ void* extra_state + ); + +MPI_METHOD +PMPI_Comm_create_keyval( + _In_opt_ MPI_Comm_copy_attr_function* comm_copy_attr_fn, + _In_opt_ MPI_Comm_delete_attr_function* comm_delete_attr_fn, + _Out_ int* comm_keyval, + _In_opt_ void* extra_state + ); + +MPI_METHOD +MPI_Comm_free_keyval( + _Inout_ int* comm_keyval + ); + +MPI_METHOD +PMPI_Comm_free_keyval( + _Inout_ int* comm_keyval + ); + +MPI_METHOD +MPI_Comm_set_attr( + _In_ MPI_Comm comm, + _In_ int comm_keyval, + _In_opt_ void* attribute_val + ); + +MPI_METHOD +PMPI_Comm_set_attr( + _In_ MPI_Comm comm, + _In_ int comm_keyval, + _In_opt_ void* attribute_val + ); + + +/* Predefined comm attribute key values */ +/* C Versions (return pointer to value), + Fortran Versions (return integer value). + + DO NOT CHANGE THESE. The values encode: + builtin kind (0x1 in bit 30-31) + Keyval object (0x9 in bits 26-29) + for communicator (0x1 in bits 22-25) + + Fortran versions of the attributes are formed by adding one to + the C version. + */ +#define MPI_TAG_UB 0x64400001 +#define MPI_HOST 0x64400003 +#define MPI_IO 0x64400005 +#define MPI_WTIME_IS_GLOBAL 0x64400007 +#define MPI_UNIVERSE_SIZE 0x64400009 +#define MPI_LASTUSEDCODE 0x6440000b +#define MPI_APPNUM 0x6440000d + +MPI_METHOD +MPI_Comm_get_attr( + _In_ MPI_Comm comm, + _In_ int comm_keyval, + _When_(*flag != 0, _Out_) void* attribute_val, + _mpi_out_flag_ int* flag + ); + +MPI_METHOD +PMPI_Comm_get_attr( + _In_ MPI_Comm comm, + _In_ int comm_keyval, + _When_(*flag != 0, _Out_) void* attribute_val, + _mpi_out_flag_ int* flag + ); + +MPI_METHOD +MPI_Comm_delete_attr( + _In_ MPI_Comm comm, + _In_ int comm_keyval + ); + +MPI_METHOD +PMPI_Comm_delete_attr( + _In_ MPI_Comm comm, + _In_ int comm_keyval + ); + + +typedef +int +(MPIAPI MPI_Win_copy_attr_function)( + _In_ MPI_Win oldwin, + _In_ int win_keyval, + _In_opt_ void* extra_state, + _In_opt_ void* attribute_val_in, + _Out_ void* attribute_val_out, + _mpi_out_flag_ int* flag + ); + +typedef +int +(MPIAPI MPI_Win_delete_attr_function)( + _In_ MPI_Win win, + _In_ int win_keyval, + _In_opt_ void* attribute_val, + _In_opt_ void* extra_state + ); + +#define MPI_WIN_NULL_COPY_FN ((MPI_Win_copy_attr_function*)0) +#define MPI_WIN_NULL_DELETE_FN ((MPI_Win_delete_attr_function*)0) +#define MPI_WIN_DUP_FN ((MPI_Win_copy_attr_function*)MPIR_Dup_fn) + +MPI_METHOD +MPI_Win_create_keyval( + _In_opt_ MPI_Win_copy_attr_function* win_copy_attr_fn, + _In_opt_ MPI_Win_delete_attr_function* win_delete_attr_fn, + _Out_ int* win_keyval, + _In_opt_ void* extra_state + ); + +MPI_METHOD +PMPI_Win_create_keyval( + _In_opt_ MPI_Win_copy_attr_function* win_copy_attr_fn, + _In_opt_ MPI_Win_delete_attr_function* win_delete_attr_fn, + _Out_ int* win_keyval, + _In_opt_ void* extra_state + ); + +MPI_METHOD +MPI_Win_free_keyval( + _Inout_ int* win_keyval + ); + +MPI_METHOD +PMPI_Win_free_keyval( + _Inout_ int* win_keyval + ); + +MPI_METHOD +MPI_Win_set_attr( + _In_ MPI_Win win, + _In_ int win_keyval, + _In_opt_ void* attribute_val + ); + +MPI_METHOD +PMPI_Win_set_attr( + _In_ MPI_Win win, + _In_ int win_keyval, + _In_opt_ void* attribute_val + ); + + +/* Predefined window key value attributes */ +#define MPI_WIN_BASE 0x66000001 +#define MPI_WIN_SIZE 0x66000003 +#define MPI_WIN_DISP_UNIT 0x66000005 +#define MPI_WIN_CREATE_FLAVOR 0x66000007 +#define MPI_WIN_MODEL 0x66000009 + +/* MPI Window Create Flavors */ +#define MPI_WIN_FLAVOR_CREATE 1 +#define MPI_WIN_FLAVOR_ALLOCATE 2 +#define MPI_WIN_FLAVOR_DYNAMIC 3 +#define MPI_WIN_FLAVOR_SHARED 4 + +/* MPI Window Models */ +#define MPI_WIN_SEPARATE 1 +#define MPI_WIN_UNIFIED 2 + +MPI_METHOD +MPI_Win_get_attr( + _In_ MPI_Win win, + _In_ int win_keyval, + _When_(*flag != 0, _Out_) void* attribute_val, + _mpi_out_flag_ int* flag + ); + +MPI_METHOD +PMPI_Win_get_attr( + _In_ MPI_Win win, + _In_ int win_keyval, + _When_(*flag != 0, _Out_) void* attribute_val, + _mpi_out_flag_ int* flag + ); + +MPI_METHOD +MPI_Win_delete_attr( + _In_ MPI_Win win, + _In_ int win_keyval + ); + +MPI_METHOD +PMPI_Win_delete_attr( + _In_ MPI_Win win, + _In_ int win_keyval + ); + + +typedef +int +(MPIAPI MPI_Type_copy_attr_function)( + MPI_Datatype olddatatype, + int datatype_keyval, + _In_opt_ void* extra_state, + _In_opt_ void* attribute_val_in, + _Out_ void* attribute_val_out, + _mpi_out_flag_ int* flag + ); + +typedef +int +(MPIAPI MPI_Type_delete_attr_function)( + MPI_Datatype datatype, + int datatype_keyval, + _In_opt_ void* attribute_val, + _In_opt_ void* extra_state + ); + +#define MPI_TYPE_NULL_COPY_FN ((MPI_Type_copy_attr_function*)0) +#define MPI_TYPE_NULL_DELETE_FN ((MPI_Type_delete_attr_function*)0) +#define MPI_TYPE_DUP_FN ((MPI_Type_copy_attr_function*)MPIR_Dup_fn) + +MPI_METHOD +MPI_Type_create_keyval( + _In_opt_ MPI_Type_copy_attr_function* type_copy_attr_fn, + _In_opt_ MPI_Type_delete_attr_function* type_delete_attr_fn, + _Out_ int* type_keyval, + _In_opt_ void* extra_state + ); + +MPI_METHOD +PMPI_Type_create_keyval( + _In_opt_ MPI_Type_copy_attr_function* type_copy_attr_fn, + _In_opt_ MPI_Type_delete_attr_function* type_delete_attr_fn, + _Out_ int* type_keyval, + _In_opt_ void* extra_state + ); + +MPI_METHOD +MPI_Type_free_keyval( + _Inout_ int* type_keyval + ); + +MPI_METHOD +PMPI_Type_free_keyval( + _Inout_ int* type_keyval + ); + +MPI_METHOD +MPI_Type_set_attr( + _In_ MPI_Datatype type, + _In_ int type_keyval, + _In_opt_ void* attribute_val + ); + +MPI_METHOD +PMPI_Type_set_attr( + _In_ MPI_Datatype type, + _In_ int type_keyval, + _In_opt_ void* attribute_val + ); + +MPI_METHOD +MPI_Type_get_attr( + _In_ MPI_Datatype type, + _In_ int type_keyval, + _When_(*flag != 0, _Out_) void* attribute_val, + _mpi_out_flag_ int* flag + ); + +MPI_METHOD +PMPI_Type_get_attr( + _In_ MPI_Datatype type, + _In_ int type_keyval, + _When_(*flag != 0, _Out_) void* attribute_val, + _mpi_out_flag_ int* flag + ); + +MPI_METHOD +MPI_Type_delete_attr( + _In_ MPI_Datatype type, + _In_ int type_keyval + ); + +MPI_METHOD +PMPI_Type_delete_attr( + _In_ MPI_Datatype type, + _In_ int type_keyval + ); + + +/*---------------------------------------------*/ +/* Section 6.8: Naming Objects */ +/*---------------------------------------------*/ + +#define MPI_MAX_OBJECT_NAME 128 + +MPI_METHOD +MPI_Comm_set_name( + _In_ MPI_Comm comm, + _In_z_ const char* comm_name + ); + +MPI_METHOD +PMPI_Comm_set_name( + _In_ MPI_Comm comm, + _In_z_ const char* comm_name + ); + +MPI_METHOD +MPI_Comm_get_name( + _In_ MPI_Comm comm, + _Out_writes_z_(MPI_MAX_OBJECT_NAME) char* comm_name, + _Out_ int* resultlen + ); + +MPI_METHOD +PMPI_Comm_get_name( + _In_ MPI_Comm comm, + _Out_writes_z_(MPI_MAX_OBJECT_NAME) char* comm_name, + _Out_ int* resultlen + ); + +MPI_METHOD +MPI_Type_set_name( + _In_ MPI_Datatype datatype, + _In_z_ const char* type_name + ); + +MPI_METHOD +PMPI_Type_set_name( + _In_ MPI_Datatype datatype, + _In_z_ const char* type_name + ); + +MPI_METHOD +MPI_Type_get_name( + _In_ MPI_Datatype datatype, + _Out_writes_z_(MPI_MAX_OBJECT_NAME) char* type_name, + _Out_ int* resultlen + ); + +MPI_METHOD +PMPI_Type_get_name( + _In_ MPI_Datatype datatype, + _Out_writes_z_(MPI_MAX_OBJECT_NAME) char* type_name, + _Out_ int* resultlen + ); + +MPI_METHOD +MPI_Win_set_name( + _In_ MPI_Win win, + _In_z_ const char* win_name + ); + +MPI_METHOD +PMPI_Win_set_name( + _In_ MPI_Win win, + _In_z_ const char* win_name + ); + +MPI_METHOD +MPI_Win_get_name( + _In_ MPI_Win win, + _Out_writes_z_(MPI_MAX_OBJECT_NAME) char* win_name, + _Out_ int* resultlen + ); + +MPI_METHOD +PMPI_Win_get_name( + _In_ MPI_Win win, + _Out_writes_z_(MPI_MAX_OBJECT_NAME) char* win_name, + _Out_ int* resultlen + ); + + +/*---------------------------------------------------------------------------*/ +/* Chapter 7: Process Topologies */ +/*---------------------------------------------------------------------------*/ + +MPI_METHOD +MPI_Cart_create( + _In_ MPI_Comm comm_old, + _In_range_(>=, 0) int ndims, + _In_reads_opt_(ndims) const int dims[], + _In_reads_opt_(ndims) const int periods[], + _In_ int reorder, + _Out_ MPI_Comm* comm_cart + ); + +MPI_METHOD +PMPI_Cart_create( + _In_ MPI_Comm comm_old, + _In_range_(>=, 0) int ndims, + _In_reads_opt_(ndims) const int dims[], + _In_reads_opt_(ndims) const int periods[], + _In_ int reorder, + _Out_ MPI_Comm* comm_cart + ); + +MPI_METHOD +MPI_Dims_create( + _In_range_(>, 0) int nnodes, + _In_range_(>=, 0) int ndims, + _Inout_updates_opt_(ndims) int dims[] + ); + +MPI_METHOD +PMPI_Dims_create( + _In_range_(>, 0) int nnodes, + _In_range_(>=, 0) int ndims, + _Inout_updates_opt_(ndims) int dims[] + ); + +MPI_METHOD +MPI_Graph_create( + _In_ MPI_Comm comm_old, + _In_range_(>=, 0) int nnodes, + _In_reads_opt_(nnodes) const int index[], + _In_reads_opt_(nnodes) const int edges[], + _In_ int reorder, + _Out_ MPI_Comm* comm_graph + ); + +MPI_METHOD +PMPI_Graph_create( + _In_ MPI_Comm comm_old, + _In_range_(>=, 0) int nnodes, + _In_reads_opt_(nnodes) const int index[], + _In_opt_ const int edges[], + _In_ int reorder, + _Out_ MPI_Comm* comm_graph + ); + +MPI_METHOD +MPI_Dist_graph_create_adjacent( + _In_ MPI_Comm comm_old, + _In_range_(>=, 0) int indegree, + _In_reads_opt_(indegree) const int sources[], + _In_reads_opt_(indegree) const int sourceweights[], + _In_range_(>=, 0) int outdegree, + _In_reads_opt_(outdegree) const int destinations[], + _In_reads_opt_(outdegree) const int destweights[], + _In_ MPI_Info info, + _In_range_(0,1) int reorder, + _Out_ MPI_Comm* comm_dist_graph +); + +MPI_METHOD +PMPI_Dist_graph_create_adjacent( + _In_ MPI_Comm comm_old, + _In_range_(>=, 0) int indegree, + _In_reads_opt_(indegree) const int sources[], + _In_reads_opt_(indegree) const int sourceweights[], + _In_range_(>=, 0) int outdegree, + _In_reads_opt_(outdegree) const int destinations[], + _In_reads_opt_(outdegree) const int destweights[], + _In_ MPI_Info info, + _In_range_(0,1) int reorder, + _Out_ MPI_Comm* comm_dist_graph +); + +MPI_METHOD +MPI_Dist_graph_create( + _In_ MPI_Comm comm_old, + _In_range_(>=, 0) int n, + _In_reads_opt_(n) const int sources[], + _In_reads_opt_(n) const int degrees[], + _In_opt_ const int destinations[], + _In_opt_ const int weights[], + _In_ MPI_Info info, + _In_range_(0, 1) int reorder, + _Out_ MPI_Comm *comm_dist_graph + ); + +MPI_METHOD +PMPI_Dist_graph_create( + _In_ MPI_Comm comm_old, + _In_range_(>=, 0) int n, + _In_reads_opt_(n) const int sources[], + _In_reads_opt_(n) const int degrees[], + _In_opt_ const int destinations[], + _In_opt_ const int weights[], + _In_ MPI_Info info, + _In_range_(0, 1) int reorder, + _Out_ MPI_Comm *comm_dist_graph + ); + +/* Topology types */ +enum +{ + MPI_GRAPH = 1, + MPI_CART = 2, + MPI_DIST_GRAPH = 3 +}; + +MPI_METHOD +MPI_Topo_test( + _In_ MPI_Comm comm, + _Out_ int* status + ); + +MPI_METHOD +PMPI_Topo_test( + _In_ MPI_Comm comm, + _Out_ int* status + ); + +MPI_METHOD +MPI_Graphdims_get( + _In_ MPI_Comm comm, + _Out_ int* nnodes, + _Out_ int* nedges + ); + +MPI_METHOD +PMPI_Graphdims_get( + _In_ MPI_Comm comm, + _Out_ int* nnodes, + _Out_ int* nedges + ); + +MPI_METHOD +MPI_Graph_get( + _In_ MPI_Comm comm, + _In_range_(>=, 0) int maxindex, + _In_range_(>=, 0) int maxedges, + _Out_writes_opt_(maxindex) int index[], + _Out_writes_opt_(maxedges) int edges[] + ); + +MPI_METHOD +PMPI_Graph_get( + _In_ MPI_Comm comm, + _In_range_(>=, 0) int maxindex, + _In_range_(>=, 0) int maxedges, + _Out_writes_opt_(maxindex) int index[], + _Out_writes_opt_(maxedges) int edges[] + ); + +MPI_METHOD +MPI_Cartdim_get( + _In_ MPI_Comm comm, + _Out_ int* ndims + ); + +MPI_METHOD +PMPI_Cartdim_get( + _In_ MPI_Comm comm, + _Out_ int* ndims + ); + +MPI_METHOD +MPI_Cart_get( + _In_ MPI_Comm comm, + _In_range_(>=, 0) int maxdims, + _Out_writes_opt_(maxdims) int dims[], + _Out_writes_opt_(maxdims) int periods[], + _Out_writes_opt_(maxdims) int coords[] + ); + +MPI_METHOD +PMPI_Cart_get( + _In_ MPI_Comm comm, + _In_range_(>=, 0) int maxdims, + _Out_writes_opt_(maxdims) int dims[], + _Out_writes_opt_(maxdims) int periods[], + _Out_writes_opt_(maxdims) int coords[] + ); + +MPI_METHOD +MPI_Cart_rank( + _In_ MPI_Comm comm, + _In_ const int coords[], + _Out_ _Deref_out_range_(>=, 0) int* rank + ); + +MPI_METHOD +PMPI_Cart_rank( + _In_ MPI_Comm comm, + _In_ const int coords[], + _Out_ _Deref_out_range_(>=, 0) int* rank + ); + +MPI_METHOD +MPI_Cart_coords( + _In_ MPI_Comm comm, + _In_range_(>=, 0) int rank, + _In_range_(>=, 0) int maxdims, + _Out_writes_opt_(maxdims) int coords[] + ); + +MPI_METHOD +PMPI_Cart_coords( + _In_ MPI_Comm comm, + _In_range_(>=, 0) int rank, + _In_range_(>=, 0) int maxdims, + _Out_writes_opt_(maxdims) int coords[] + ); + +MPI_METHOD +MPI_Graph_neighbors_count( + _In_ MPI_Comm comm, + _In_range_(>=, 0) int rank, + _Out_ _Deref_out_range_(>=, 0) int* nneighbors + ); + +MPI_METHOD +PMPI_Graph_neighbors_count( + _In_ MPI_Comm comm, + _In_range_(>=, 0) int rank, + _Out_ _Deref_out_range_(>=, 0) int* nneighbors + ); + +MPI_METHOD +MPI_Graph_neighbors( + _In_ MPI_Comm comm, + _In_range_(>=, 0) int rank, + _In_range_(>=, 0) int maxneighbors, + _Out_writes_opt_(maxneighbors) int neighbors[] + ); + +MPI_METHOD +PMPI_Graph_neighbors( + _In_ MPI_Comm comm, + _In_range_(>=, 0) int rank, + _In_range_(>=, 0) int maxneighbors, + _Out_writes_opt_(maxneighbors) int neighbors[] + ); + +MPI_METHOD +MPI_Cart_shift( + _In_ MPI_Comm comm, + _In_range_(>=, 0) int direction, + _In_ int disp, + _Out_ _Deref_out_range_(>=, MPI_PROC_NULL) int* rank_source, + _Out_ _Deref_out_range_(>=, MPI_PROC_NULL) int* rank_dest + ); + +MPI_METHOD +PMPI_Cart_shift( + _In_ MPI_Comm comm, + _In_range_(>=, 0) int direction, + _In_ int disp, + _Out_ _Deref_out_range_(>=, MPI_PROC_NULL) int* rank_source, + _Out_ _Deref_out_range_(>=, MPI_PROC_NULL) int* rank_dest + ); + +MPI_METHOD +MPI_Cart_sub( + _In_ MPI_Comm comm, + _In_ const int remain_dims[], + _Out_ MPI_Comm* newcomm + ); + +MPI_METHOD +PMPI_Cart_sub( + _In_ MPI_Comm comm, + _In_ const int remain_dims[], + _Out_ MPI_Comm* newcomm + ); + +MPI_METHOD +MPI_Cart_map( + _In_ MPI_Comm comm, + _In_range_(>=, 0) int ndims, + _In_reads_opt_(ndims) const int dims[], + _In_reads_opt_(ndims) const int periods[], + _Out_ _Deref_out_range_(>=, MPI_UNDEFINED) int* newrank + ); + +MPI_METHOD +PMPI_Cart_map( + _In_ MPI_Comm comm, + _In_range_(>=, 0) int ndims, + _In_reads_opt_(ndims) const int dims[], + _In_reads_opt_(ndims) const int periods[], + _Out_ _Deref_out_range_(>=, MPI_UNDEFINED) int* newrank + ); + +MPI_METHOD +MPI_Graph_map( + _In_ MPI_Comm comm, + _In_range_(>, 0) int nnodes, + _In_reads_opt_(nnodes) const int index[], + _In_opt_ const int edges[], + _Out_ _Deref_out_range_(>=, MPI_UNDEFINED) int* newrank + ); + +MPI_METHOD +PMPI_Graph_map( + _In_ MPI_Comm comm, + _In_range_(>=, 0) int nnodes, + _In_reads_opt_(nnodes) const int index[], + _In_opt_ const int edges[], + _Out_ _Deref_out_range_(>=, MPI_UNDEFINED) int* newrank + ); + +MPI_METHOD +MPI_Dist_graph_neighbors_count( + _In_ MPI_Comm comm, + _Out_ _Deref_out_range_(>=, 0) int *indegree, + _Out_ _Deref_out_range_(>=, 0) int *outdegree, + _Out_ _Deref_out_range_(>=, 0) int *weighted + ); + +MPI_METHOD +PMPI_Dist_graph_neighbors_count( + _In_ MPI_Comm comm, + _Out_ _Deref_out_range_(>=, 0) int *indegree, + _Out_ _Deref_out_range_(>=, 0) int *outdegree, + _Out_ _Deref_out_range_(>=, 0) int *weighted + ); + +MPI_METHOD +MPI_Dist_graph_neighbors( + _In_ MPI_Comm comm, + _In_range_(>=, 0) int maxindegree, + _Out_writes_opt_(maxindegree) int sources[], + _Out_writes_opt_(maxindegree) int sourceweights[], + _In_range_(>=, 0) int maxoutdegree, + _Out_writes_opt_(maxoutdegree) int destinations[], + _Out_writes_opt_(maxoutdegree) int destweights[] + ); + +MPI_METHOD +PMPI_Dist_graph_neighbors( + _In_ MPI_Comm comm, + _In_range_(>=, 0) int maxindegree, + _Out_writes_opt_(maxindegree) int sources[], + _Out_writes_opt_(maxindegree) int sourceweights[], + _In_range_(>=, 0) int maxoutdegree, + _Out_writes_opt_(maxoutdegree) int destinations[], + _Out_writes_opt_(maxoutdegree) int destweights[] + ); + +/*---------------------------------------------------------------------------*/ +/* Chapter 8: Environmental Management */ +/*---------------------------------------------------------------------------*/ + +/*---------------------------------------------*/ +/* Section 8.1: Implementation Information */ +/*---------------------------------------------*/ + +#define MPI_VERSION 2 +#define MPI_SUBVERSION 0 + +MPI_METHOD +MPI_Get_version( + _Out_ int* version, + _Out_ int* subversion + ); + +MPI_METHOD +PMPI_Get_version( + _Out_ int* version, + _Out_ int* subversion + ); + +#define MPI_MAX_LIBRARY_VERSION_STRING 64 + +MPI_METHOD +MPI_Get_library_version( + _Out_writes_z_(MPI_MAX_LIBRARY_VERSION_STRING) char* version, + _Out_ int* resultlen +); + +MPI_METHOD +PMPI_Get_library_version( + _Out_writes_z_(MPI_MAX_LIBRARY_VERSION_STRING) char* version, + _Out_ int* resultlen +); + +#define MPI_MAX_PROCESSOR_NAME 128 + +MPI_METHOD +MPI_Get_processor_name( + _Out_writes_z_(MPI_MAX_PROCESSOR_NAME) char* name, + _Out_ int* resultlen + ); + +MPI_METHOD +PMPI_Get_processor_name( + _Out_writes_z_(MPI_MAX_PROCESSOR_NAME) char* name, + _Out_ int* resultlen + ); + +/*---------------------------------------------*/ +/* Section 8.2: Memory Allocation */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Alloc_mem( + _In_ MPI_Aint size, + _In_ MPI_Info info, + _Out_ void* baseptr + ); + +MPI_METHOD +PMPI_Alloc_mem( + _In_ MPI_Aint size, + _In_ MPI_Info info, + _Out_ void* baseptr + ); + +MPI_METHOD +MPI_Free_mem( + _In_ _Post_invalid_ void* base + ); + +MPI_METHOD +PMPI_Free_mem( + _In_ _Post_invalid_ void* base + ); + + +/*---------------------------------------------*/ +/* Section 8.3: Error Handling */ +/*---------------------------------------------*/ + +typedef +void +(MPIAPI MPI_Comm_errhandler_fn)( + _In_ MPI_Comm* comm, + _Inout_ int* errcode, + ... + ); + +MPI_METHOD +MPI_Comm_create_errhandler( + _In_ MPI_Comm_errhandler_fn* function, + _Out_ MPI_Errhandler* errhandler + ); + +MPI_METHOD +PMPI_Comm_create_errhandler( + _In_ MPI_Comm_errhandler_fn* function, + _Out_ MPI_Errhandler* errhandler + ); + +MPI_METHOD +MPI_Comm_set_errhandler( + _In_ MPI_Comm comm, + _In_ MPI_Errhandler errhandler + ); + +MPI_METHOD +PMPI_Comm_set_errhandler( + _In_ MPI_Comm comm, + _In_ MPI_Errhandler errhandler + ); + +MPI_METHOD +MPI_Comm_get_errhandler( + _In_ MPI_Comm comm, + _Out_ MPI_Errhandler* errhandler + ); + +MPI_METHOD +PMPI_Comm_get_errhandler( + _In_ MPI_Comm comm, + _Out_ MPI_Errhandler* errhandler + ); + + +typedef +void +(MPIAPI MPI_Win_errhandler_fn)( + _In_ MPI_Win* win, + _Inout_ int* errcode, + ... + ); + +MPI_METHOD +MPI_Win_create_errhandler( + _In_ MPI_Win_errhandler_fn* function, + _Out_ MPI_Errhandler* errhandler + ); + +MPI_METHOD +PMPI_Win_create_errhandler( + _In_ MPI_Win_errhandler_fn* function, + _Out_ MPI_Errhandler* errhandler + ); + +MPI_METHOD +MPI_Win_set_errhandler( + _In_ MPI_Win win, + _In_ MPI_Errhandler errhandler + ); + +MPI_METHOD +PMPI_Win_set_errhandler( + _In_ MPI_Win win, + _In_ MPI_Errhandler errhandler + ); + +MPI_METHOD +MPI_Win_get_errhandler( + _In_ MPI_Win win, + _Out_ MPI_Errhandler* errhandler + ); + +MPI_METHOD +PMPI_Win_get_errhandler( + _In_ MPI_Win win, + _Out_ MPI_Errhandler* errhandler + ); + + +typedef +void +(MPIAPI MPI_File_errhandler_fn)( + _In_ MPI_File* file, + _Inout_ int* errcode, + ... + ); + +MPI_METHOD +MPI_File_create_errhandler( + _In_ MPI_File_errhandler_fn* function, + _Out_ MPI_Errhandler* errhandler + ); + +MPI_METHOD +PMPI_File_create_errhandler( + _In_ MPI_File_errhandler_fn* function, + _Out_ MPI_Errhandler* errhandler + ); + +MPI_METHOD +MPI_File_set_errhandler( + _In_ MPI_File file, + _In_ MPI_Errhandler errhandler + ); + +MPI_METHOD +PMPI_File_set_errhandler( + _In_ MPI_File file, + _In_ MPI_Errhandler errhandler + ); + +MPI_METHOD +MPI_File_get_errhandler( + _In_ MPI_File file, + _Out_ MPI_Errhandler* errhandler + ); + +MPI_METHOD +PMPI_File_get_errhandler( + _In_ MPI_File file, + _Out_ MPI_Errhandler* errhandler + ); + +MPI_METHOD +MPI_Errhandler_free( + _Inout_ MPI_Errhandler* errhandler + ); + +MPI_METHOD +PMPI_Errhandler_free( + _Inout_ MPI_Errhandler* errhandler + ); + +#define MPI_MAX_ERROR_STRING 512 + +MPI_METHOD +MPI_Error_string( + _In_ int errorcode, + _Out_writes_z_(MPI_MAX_ERROR_STRING) char* string, + _Out_ int* resultlen + ); + +MPI_METHOD +PMPI_Error_string( + _In_ int errorcode, + _Out_writes_z_(MPI_MAX_ERROR_STRING) char* string, + _Out_ int* resultlen + ); + + +/*---------------------------------------------*/ +/* Section 8.4: Error Codes and Classes */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Error_class( + _In_ int errorcode, + _Out_ int* errorclass + ); + +MPI_METHOD +PMPI_Error_class( + _In_ int errorcode, + _Out_ int* errorclass + ); + +MPI_METHOD +MPI_Add_error_class( + _Out_ int* errorclass + ); + +MPI_METHOD +PMPI_Add_error_class( + _Out_ int* errorclass + ); + +MPI_METHOD +MPI_Add_error_code( + _In_ int errorclass, + _Out_ int* errorcode + ); + +MPI_METHOD +PMPI_Add_error_code( + _In_ int errorclass, + _Out_ int* errorcode + ); + +MPI_METHOD +MPI_Add_error_string( + _In_ int errorcode, + _In_z_ const char* string + ); + +MPI_METHOD +PMPI_Add_error_string( + _In_ int errorcode, + _In_z_ const char* string + ); + +MPI_METHOD +MPI_Comm_call_errhandler( + _In_ MPI_Comm comm, + _In_ int errorcode + ); + +MPI_METHOD +PMPI_Comm_call_errhandler( + _In_ MPI_Comm comm, + _In_ int errorcode + ); + +MPI_METHOD +MPI_Win_call_errhandler( + _In_ MPI_Win win, + _In_ int errorcode + ); + +MPI_METHOD +PMPI_Win_call_errhandler( + _In_ MPI_Win win, + _In_ int errorcode + ); + +MPI_METHOD +MPI_File_call_errhandler( + _In_ MPI_File file, + _In_ int errorcode + ); + +MPI_METHOD +PMPI_File_call_errhandler( + _In_ MPI_File file, + _In_ int errorcode + ); + + +/*---------------------------------------------*/ +/* Section 8.6: Timers and Synchronization */ +/*---------------------------------------------*/ + +double +MPIAPI +MPI_Wtime( + void + ); + +double +MPIAPI +PMPI_Wtime( + void + ); + +double +MPIAPI +MPI_Wtick( + void + ); + +double +MPIAPI +PMPI_Wtick( + void + ); + + +/*---------------------------------------------*/ +/* Section 8.7: Startup */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Init( + _In_opt_ const int* argc, + _Notref_ _In_reads_opt_(*argc) char*** argv + ); + +MPI_METHOD +PMPI_Init( + _In_opt_ int* argc, + _Notref_ _In_reads_opt_(*argc) char*** argv + ); + +MPI_METHOD +MPI_Finalize( + void + ); + +MPI_METHOD +PMPI_Finalize( + void + ); + +MPI_METHOD +MPI_Initialized( + _mpi_out_flag_ int* flag + ); + +MPI_METHOD +PMPI_Initialized( + _mpi_out_flag_ int* flag + ); + +MPI_METHOD +MPI_Abort( + _In_ MPI_Comm comm, + _In_ int errorcode + ); + +MPI_METHOD +PMPI_Abort( + _In_ MPI_Comm comm, + _In_ int errorcode + ); + +MPI_METHOD +MPI_Finalized( + _mpi_out_flag_ int* flag + ); + +MPI_METHOD +PMPI_Finalized( + _mpi_out_flag_ int* flag + ); + + +/*---------------------------------------------------------------------------*/ +/* Chapter 9: The Info Object */ +/*---------------------------------------------------------------------------*/ + +#define MPI_MAX_INFO_KEY 255 +#define MPI_MAX_INFO_VAL 1024 + +MPI_METHOD +MPI_Info_create( + _Out_ MPI_Info* info + ); + +MPI_METHOD +PMPI_Info_create( + _Out_ MPI_Info* info + ); + +MPI_METHOD +MPI_Info_set( + _In_ MPI_Info info, + _In_z_ const char* key, + _In_z_ const char* value + ); + +MPI_METHOD +PMPI_Info_set( + _In_ MPI_Info info, + _In_z_ const char* key, + _In_z_ const char* value + ); + +MPI_METHOD +MPI_Info_delete( + _In_ MPI_Info info, + _In_z_ const char* key + ); + +MPI_METHOD +PMPI_Info_delete( + _In_ MPI_Info info, + _In_z_ const char* key + ); + +MPI_METHOD +MPI_Info_get( + _In_ MPI_Info info, + _In_z_ const char* key, + _In_ int valuelen, + _When_(*flag != 0, _Out_writes_z_(valuelen)) char* value, + _mpi_out_flag_ int* flag + ); + +MPI_METHOD +PMPI_Info_get( + _In_ MPI_Info info, + _In_z_ const char* key, + _In_ int valuelen, + _When_(*flag != 0, _Out_writes_z_(valuelen)) char* value, + _mpi_out_flag_ int* flag + ); + +MPI_METHOD +MPI_Info_get_valuelen( + _In_ MPI_Info info, + _In_z_ const char* key, + _Out_ _Deref_out_range_(0, MPI_MAX_INFO_VAL) int* valuelen, + _mpi_out_flag_ int* flag + ); + +MPI_METHOD +PMPI_Info_get_valuelen( + _In_ MPI_Info info, + _In_z_ const char* key, + _Out_ _Deref_out_range_(0, MPI_MAX_INFO_VAL) int* valuelen, + _mpi_out_flag_ int* flag + ); + +MPI_METHOD +MPI_Info_get_nkeys( + _In_ MPI_Info info, + _Out_ int* nkeys + ); + +MPI_METHOD +PMPI_Info_get_nkeys( + _In_ MPI_Info info, + _Out_ int* nkeys + ); + +MPI_METHOD +MPI_Info_get_nthkey( + _In_ MPI_Info info, + _In_range_(>=, 0) int n, + _Out_writes_z_(MPI_MAX_INFO_KEY) char* key + ); + +MPI_METHOD +PMPI_Info_get_nthkey( + _In_ MPI_Info info, + _In_range_(>=, 0) int n, + _Out_writes_z_(MPI_MAX_INFO_KEY) char* key + ); + +MPI_METHOD +MPI_Info_dup( + _In_ MPI_Info info, + _Out_ MPI_Info* newinfo + ); + +MPI_METHOD +PMPI_Info_dup( + _In_ MPI_Info info, + _Out_ MPI_Info* newinfo + ); + +MPI_METHOD +MPI_Info_free( + _Inout_ MPI_Info* info + ); + +MPI_METHOD +PMPI_Info_free( + _Inout_ MPI_Info* info + ); + + +/*---------------------------------------------------------------------------*/ +/* Chapter 10: Process Creation and Management */ +/*---------------------------------------------------------------------------*/ + +/*---------------------------------------------*/ +/* Section 10.3: Process Manager Interface */ +/*---------------------------------------------*/ + +#define MPI_ARGV_NULL ((char**)0) +#define MPI_ARGVS_NULL ((char***)0) + +#define MPI_ERRCODES_IGNORE ((int*)0) + +MPI_METHOD +MPI_Comm_spawn( + _In_z_ const char* command, + _In_ char* argv[], + _In_range_(>=, 0) int maxprocs, + _In_ MPI_Info info, + _In_range_(>=, 0) int root, + _In_ MPI_Comm comm, + _Out_ MPI_Comm* intercomm, + _Out_writes_(maxprocs) int array_of_errcodes[] + ); + +MPI_METHOD +PMPI_Comm_spawn( + _In_z_ const char* command, + _In_ char* argv[], + _In_range_(>=, 0) int maxprocs, + _In_ MPI_Info info, + _In_range_(>=, 0) int root, + _In_ MPI_Comm comm, + _Out_ MPI_Comm* intercomm, + _Out_writes_(maxprocs) int array_of_errcodes[] + ); + +MPI_METHOD +MPI_Comm_get_parent( + _Out_ MPI_Comm* parent + ); + +MPI_METHOD +PMPI_Comm_get_parent( + _Out_ MPI_Comm* parent + ); + +MPI_METHOD +MPI_Comm_spawn_multiple( + _In_range_(>, 0) int count, + _In_reads_z_(count) char* array_of_commands[], + _In_reads_z_(count) char** array_of_argv[], + _In_reads_(count) const int array_of_maxprocs[], + _In_reads_(count) const MPI_Info array_of_info[], + _In_range_(>=, 0) int root, + _In_ MPI_Comm comm, + _Out_ MPI_Comm* intercomm, + _Out_ int array_of_errcodes[] + ); + +MPI_METHOD +PMPI_Comm_spawn_multiple( + _In_range_(>, 0) int count, + _In_reads_z_(count) char* array_of_commands[], + _In_reads_z_(count) char** array_of_argv[], + _In_reads_(count) const int array_of_maxprocs[], + _In_reads_(count) const MPI_Info array_of_info[], + _In_range_(>=, 0) int root, + _In_ MPI_Comm comm, + _Out_ MPI_Comm* intercomm, + _Out_ int array_of_errcodes[] + ); + + +/*---------------------------------------------*/ +/* Section 10.4: Establishing Communication */ +/*---------------------------------------------*/ + +#define MPI_MAX_PORT_NAME 256 + +MPI_METHOD +MPI_Open_port( + _In_ MPI_Info info, + _Out_writes_z_(MPI_MAX_PORT_NAME) char* port_name + ); + +MPI_METHOD +PMPI_Open_port( + _In_ MPI_Info info, + _Out_writes_z_(MPI_MAX_PORT_NAME) char* port_name + ); + +MPI_METHOD +MPI_Close_port( + _In_z_ const char* port_name + ); + +MPI_METHOD +PMPI_Close_port( + _In_z_ const char* port_name + ); + +MPI_METHOD +MPI_Comm_accept( + _In_z_ const char* port_name, + _In_ MPI_Info info, + _In_range_(>=, 0) int root, + _In_ MPI_Comm comm, + _Out_ MPI_Comm* newcomm + ); + +MPI_METHOD +PMPI_Comm_accept( + _In_z_ const char* port_name, + _In_ MPI_Info info, + _In_range_(>=, 0) int root, + _In_ MPI_Comm comm, + _Out_ MPI_Comm* newcomm + ); + +MPI_METHOD +MPI_Comm_connect( + _In_z_ const char* port_name, + _In_ MPI_Info info, + _In_range_(>=, 0) int root, + _In_ MPI_Comm comm, + _Out_ MPI_Comm* newcomm + ); + +MPI_METHOD +PMPI_Comm_connect( + _In_z_ const char* port_name, + _In_ MPI_Info info, + _In_range_(>=, 0) int root, + _In_ MPI_Comm comm, + _Out_ MPI_Comm* newcomm + ); + + +/*---------------------------------------------*/ +/* Section 10.4.4: Name Publishing */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Publish_name( + _In_z_ const char* service_name, + _In_ MPI_Info info, + _In_z_ const char* port_name + ); + +MPI_METHOD +PMPI_Publish_name( + _In_z_ const char* service_name, + _In_ MPI_Info info, + _In_z_ const char* port_name + ); + +MPI_METHOD +MPI_Unpublish_name( + _In_z_ const char* service_name, + _In_ MPI_Info info, + _In_z_ const char* port_name + ); + +MPI_METHOD +PMPI_Unpublish_name( + _In_z_ const char* service_name, + _In_ MPI_Info info, + _In_z_ const char* port_name + ); + +MPI_METHOD +MPI_Lookup_name( + _In_z_ const char* service_name, + _In_ MPI_Info info, + _Out_writes_z_(MPI_MAX_PORT_NAME) char* port_name + ); + +MPI_METHOD +PMPI_Lookup_name( + _In_z_ const char* service_name, + _In_ MPI_Info info, + _Out_writes_z_(MPI_MAX_PORT_NAME) char* port_name + ); + + +/*---------------------------------------------*/ +/* Section 10.5: Other Functionality */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Comm_disconnect( + _In_ MPI_Comm* comm + ); + +MPI_METHOD +PMPI_Comm_disconnect( + _In_ MPI_Comm* comm + ); + +MPI_METHOD +MPI_Comm_join( + _In_ int fd, + _Out_ MPI_Comm* intercomm + ); + +MPI_METHOD +PMPI_Comm_join( + _In_ int fd, + _Out_ MPI_Comm* intercomm + ); + + +/*---------------------------------------------------------------------------*/ +/* Chapter 11: One-Sided Communications */ +/*---------------------------------------------------------------------------*/ + +MPI_METHOD +MPI_Win_create( + _In_ void* base, + _In_range_(>=, 0) MPI_Aint size, + _In_range_(>, 0) int disp_unit, + _In_ MPI_Info info, + _In_ MPI_Comm comm, + _Out_ MPI_Win* win + ); + +MPI_METHOD +PMPI_Win_create( + _In_ void* base, + _In_range_(>=, 0) MPI_Aint size, + _In_range_(>, 0) int disp_unit, + _In_ MPI_Info info, + _In_ MPI_Comm comm, + _Out_ MPI_Win* win + ); + +MPI_METHOD +MPI_Win_allocate( + _In_range_(>= , 0) MPI_Aint size, + _In_range_(>, 0) int disp_unit, + _In_ MPI_Info info, + _In_ MPI_Comm comm, + _Out_ void *baseptr, + _Out_ MPI_Win *win + ); + +MPI_METHOD +PMPI_Win_allocate( + _In_range_(>= , 0) MPI_Aint size, + _In_range_(>, 0) int disp_unit, + _In_ MPI_Info info, + _In_ MPI_Comm comm, + _Out_ void *baseptr, + _Out_ MPI_Win *win + ); + +MPI_METHOD +MPI_Win_allocate_shared( + _In_range_(>=, 0) MPI_Aint size, + _In_range_(>, 0) int disp_unit, + _In_ MPI_Info info, + _In_ MPI_Comm comm, + _Out_ void *baseptr, + _Out_ MPI_Win *win + ); + +MPI_METHOD +PMPI_Win_allocate_shared( + _In_range_(>=, 0) MPI_Aint size, + _In_range_(>, 0) int disp_unit, + _In_ MPI_Info info, + _In_ MPI_Comm comm, + _Out_ void *baseptr, + _Out_ MPI_Win *win + ); + +MPI_METHOD +MPI_Win_shared_query( + _In_ MPI_Win win, + _In_range_(>=, MPI_PROC_NULL) int rank, + _Out_ MPI_Aint *size, + _Out_ int *disp_unit, + _Out_ void *baseptr + ); + +MPI_METHOD +PMPI_Win_shared_query( + _In_ MPI_Win win, + _In_range_(>=, MPI_PROC_NULL) int rank, + _Out_ MPI_Aint *size, + _Out_ int *disp_unit, + _Out_ void *baseptr + ); + +MPI_METHOD +MPI_Win_create_dynamic( + _In_ MPI_Info info, + _In_ MPI_Comm comm, + _Out_ MPI_Win* win + ); + +MPI_METHOD +PMPI_Win_create_dynamic( + _In_ MPI_Info info, + _In_ MPI_Comm comm, + _Out_ MPI_Win* win + ); + +MPI_METHOD +MPI_Win_free( + _Inout_ MPI_Win* win + ); + +MPI_METHOD +PMPI_Win_free( + _Inout_ MPI_Win* win + ); + +MPI_METHOD +MPI_Win_get_group( + _In_ MPI_Win win, + _Out_ MPI_Group* group + ); + +MPI_METHOD +PMPI_Win_get_group( + _In_ MPI_Win win, + _Out_ MPI_Group* group + ); + +MPI_METHOD +MPI_Win_attach( + _In_ MPI_Win win, + _In_ void* base, + _In_range_(>=, 0) MPI_Aint size + ); + +MPI_METHOD +PMPI_Win_attach( + _In_ MPI_Win win, + _In_ void* base, + _In_range_(>=, 0) MPI_Aint size + ); + +MPI_METHOD +MPI_Win_detach( + _In_ MPI_Win win, + _In_ void* base + ); + +MPI_METHOD +PMPI_Win_detach( + _In_ MPI_Win win, + _In_ void* base + ); + +MPI_METHOD +MPI_Put( + _In_opt_ const void* origin_addr, + _In_range_(>=, 0) int origin_count, + _In_ MPI_Datatype origin_datatype, + _In_range_(>=, MPI_PROC_NULL) int target_rank, + _In_range_(>=, 0) MPI_Aint target_disp, + _In_range_(>=, 0) int target_count, + _In_ MPI_Datatype target_datatype, + _In_ MPI_Win win + ); + +MPI_METHOD +PMPI_Put( + _In_opt_ const void* origin_addr, + _In_range_(>=, 0) int origin_count, + _In_ MPI_Datatype origin_datatype, + _In_range_(>=, MPI_PROC_NULL) int target_rank, + _In_range_(>=, 0) MPI_Aint target_disp, + _In_range_(>=, 0) int target_count, + _In_ MPI_Datatype target_datatype, + _In_ MPI_Win win + ); + +MPI_METHOD +MPI_Rput( + _In_opt_ const void* origin_addr, + _In_range_(>=, 0) int origin_count, + _In_ MPI_Datatype origin_datatype, + _In_range_(>=, MPI_PROC_NULL) int target_rank, + _In_range_(>=, 0) MPI_Aint target_disp, + _In_range_(>=, 0) int target_count, + _In_ MPI_Datatype target_datatype, + _In_ MPI_Win win, + _Out_ MPI_Request *request + ); + +MPI_METHOD +PMPI_Rput( + _In_opt_ const void* origin_addr, + _In_range_(>=, 0) int origin_count, + _In_ MPI_Datatype origin_datatype, + _In_range_(>=, MPI_PROC_NULL) int target_rank, + _In_range_(>=, 0) MPI_Aint target_disp, + _In_range_(>=, 0) int target_count, + _In_ MPI_Datatype target_datatype, + _In_ MPI_Win win, + _Out_ MPI_Request *request + ); + +MPI_METHOD +MPI_Get( + _In_opt_ void* origin_addr, + _In_range_(>=, 0) int origin_count, + _In_ MPI_Datatype origin_datatype, + _In_range_(>=, MPI_PROC_NULL) int target_rank, + _In_range_(>=, 0) MPI_Aint target_disp, + _In_range_(>=, 0) int target_count, + _In_ MPI_Datatype target_datatype, + _In_ MPI_Win win + ); + +MPI_METHOD +PMPI_Get( + _In_opt_ void* origin_addr, + _In_range_(>=, 0) int origin_count, + _In_ MPI_Datatype origin_datatype, + _In_range_(>=, MPI_PROC_NULL) int target_rank, + _In_range_(>=, 0) MPI_Aint target_disp, + _In_range_(>=, 0) int target_count, + _In_ MPI_Datatype target_datatype, + _In_ MPI_Win win + ); + +MPI_METHOD +MPI_Rget( + _In_opt_ void* origin_addr, + _In_range_(>= , 0) int origin_count, + _In_ MPI_Datatype origin_datatype, + _In_range_(>= , MPI_PROC_NULL) int target_rank, + _In_range_(>= , 0) MPI_Aint target_disp, + _In_range_(>= , 0) int target_count, + _In_ MPI_Datatype target_datatype, + _In_ MPI_Win win, + _Out_ MPI_Request *request + ); + +MPI_METHOD +PMPI_Rget( + _In_opt_ void* origin_addr, + _In_range_(>= , 0) int origin_count, + _In_ MPI_Datatype origin_datatype, + _In_range_(>= , MPI_PROC_NULL) int target_rank, + _In_range_(>= , 0) MPI_Aint target_disp, + _In_range_(>= , 0) int target_count, + _In_ MPI_Datatype target_datatype, + _In_ MPI_Win win, + _Out_ MPI_Request *request + ); + +MPI_METHOD +MPI_Accumulate( + _In_opt_ const void* origin_addr, + _In_range_(>=, 0) int origin_count, + _In_ MPI_Datatype origin_datatype, + _In_range_(>=, MPI_PROC_NULL) int target_rank, + _In_range_(>=, 0) MPI_Aint target_disp, + _In_range_(>=, 0) int target_count, + _In_ MPI_Datatype target_datatype, + _In_ MPI_Op op, + _In_ MPI_Win win + ); + +MPI_METHOD +PMPI_Accumulate( + _In_opt_ const void* origin_addr, + _In_range_(>=, 0) int origin_count, + _In_ MPI_Datatype origin_datatype, + _In_range_(>=, MPI_PROC_NULL) int target_rank, + _In_range_(>=, 0) MPI_Aint target_disp, + _In_range_(>=, 0) int target_count, + _In_ MPI_Datatype target_datatype, + _In_ MPI_Op op, + _In_ MPI_Win win + ); + +MPI_METHOD +MPI_Raccumulate( + _In_opt_ const void* origin_addr, + _In_range_(>=, 0) int origin_count, + _In_ MPI_Datatype origin_datatype, + _In_range_(>=, MPI_PROC_NULL) int target_rank, + _In_range_(>=, 0) MPI_Aint target_disp, + _In_range_(>=, 0) int target_count, + _In_ MPI_Datatype target_datatype, + _In_ MPI_Op op, + _In_ MPI_Win win, + _Out_ MPI_Request *request + ); + +MPI_METHOD +PMPI_Raccumulate( + _In_opt_ const void* origin_addr, + _In_range_(>=, 0) int origin_count, + _In_ MPI_Datatype origin_datatype, + _In_range_(>=, MPI_PROC_NULL) int target_rank, + _In_range_(>=, 0) MPI_Aint target_disp, + _In_range_(>=, 0) int target_count, + _In_ MPI_Datatype target_datatype, + _In_ MPI_Op op, + _In_ MPI_Win win, + _Out_ MPI_Request *request + ); + +MPI_METHOD +MPI_Get_accumulate( + _In_opt_ const void* origin_addr, + _In_range_(>= , 0) int origin_count, + _In_ MPI_Datatype origin_datatype, + _In_opt_ void* result_addr, + _In_range_(>= , 0) int result_count, + _In_ MPI_Datatype result_datatype, + _In_range_(>= , MPI_PROC_NULL) int target_rank, + _In_range_(>= , 0) MPI_Aint target_disp, + _In_range_(>= , 0) int target_count, + _In_ MPI_Datatype target_datatype, + _In_ MPI_Op op, + _In_ MPI_Win win +); + +MPI_METHOD +PMPI_Get_accumulate( + _In_opt_ const void* origin_addr, + _In_range_(>= , 0) int origin_count, + _In_ MPI_Datatype origin_datatype, + _In_opt_ void* result_addr, + _In_range_(>= , 0) int result_count, + _In_ MPI_Datatype result_datatype, + _In_range_(>= , MPI_PROC_NULL) int target_rank, + _In_range_(>= , 0) MPI_Aint target_disp, + _In_range_(>= , 0) int target_count, + _In_ MPI_Datatype target_datatype, + _In_ MPI_Op op, + _In_ MPI_Win win +); + +MPI_METHOD +MPI_Rget_accumulate( + _In_opt_ const void* origin_addr, + _In_range_(>= , 0) int origin_count, + _In_ MPI_Datatype origin_datatype, + _In_opt_ void* result_addr, + _In_range_(>= , 0) int result_count, + _In_ MPI_Datatype result_datatype, + _In_range_(>= , MPI_PROC_NULL) int target_rank, + _In_range_(>= , 0) MPI_Aint target_disp, + _In_range_(>= , 0) int target_count, + _In_ MPI_Datatype target_datatype, + _In_ MPI_Op op, + _In_ MPI_Win win, + _Out_ MPI_Request *request +); + +MPI_METHOD +PMPI_Rget_accumulate( + _In_opt_ const void* origin_addr, + _In_range_(>= , 0) int origin_count, + _In_ MPI_Datatype origin_datatype, + _In_opt_ void* result_addr, + _In_range_(>= , 0) int result_count, + _In_ MPI_Datatype result_datatype, + _In_range_(>= , MPI_PROC_NULL) int target_rank, + _In_range_(>= , 0) MPI_Aint target_disp, + _In_range_(>= , 0) int target_count, + _In_ MPI_Datatype target_datatype, + _In_ MPI_Op op, + _In_ MPI_Win win, + _Out_ MPI_Request *request +); + +MPI_METHOD +MPI_Fetch_and_op( + _In_opt_ const void* origin_addr, + _When_(target_rank != MPI_PROC_NULL, _In_) + _When_(target_rank == MPI_PROC_NULL, _In_opt_) + void* result_addr, + _In_ MPI_Datatype datatype, + _In_range_(>= , MPI_PROC_NULL) int target_rank, + _In_range_(>= , 0) MPI_Aint target_disp, + _In_ MPI_Op op, + _In_ MPI_Win win +); + +MPI_METHOD +PMPI_Fetch_and_op( + _In_opt_ const void* origin_addr, + _When_(target_rank != MPI_PROC_NULL, _In_) + _When_(target_rank == MPI_PROC_NULL, _In_opt_) + void* result_addr, + _In_ MPI_Datatype datatype, + _In_range_(>= , MPI_PROC_NULL) int target_rank, + _In_range_(>= , 0) MPI_Aint target_disp, + _In_ MPI_Op op, + _In_ MPI_Win win +); + +MPI_METHOD +MPI_Compare_and_swap( + _When_(target_rank != MPI_PROC_NULL, _In_) + _When_(target_rank == MPI_PROC_NULL, _In_opt_) + const void* origin_addr, + _When_(target_rank != MPI_PROC_NULL, _In_) + _When_(target_rank == MPI_PROC_NULL, _In_opt_) + const void* compare_addr, + _When_(target_rank != MPI_PROC_NULL, _In_) + _When_(target_rank == MPI_PROC_NULL, _In_opt_) + void* result_addr, + _In_ MPI_Datatype datatype, + _In_range_(>= , MPI_PROC_NULL) int target_rank, + _In_range_(>= , 0) MPI_Aint target_disp, + _In_ MPI_Win win +); + +MPI_METHOD +PMPI_Compare_and_swap( + _When_(target_rank != MPI_PROC_NULL, _In_) + _When_(target_rank == MPI_PROC_NULL, _In_opt_) + const void* origin_addr, + _When_(target_rank != MPI_PROC_NULL, _In_) + _When_(target_rank == MPI_PROC_NULL, _In_opt_) + const void* compare_addr, + _When_(target_rank != MPI_PROC_NULL, _In_) + _When_(target_rank == MPI_PROC_NULL, _In_opt_) + void* result_addr, + _In_ MPI_Datatype datatype, + _In_range_(>= , MPI_PROC_NULL) int target_rank, + _In_range_(>= , 0) MPI_Aint target_disp, + _In_ MPI_Win win +); + +/* Asserts for one-sided communication */ +#define MPI_MODE_NOCHECK 1024 +#define MPI_MODE_NOSTORE 2048 +#define MPI_MODE_NOPUT 4096 +#define MPI_MODE_NOPRECEDE 8192 +#define MPI_MODE_NOSUCCEED 16384 + +MPI_METHOD +MPI_Win_fence( + _In_ int assert, + _In_ MPI_Win win + ); + +MPI_METHOD +PMPI_Win_fence( + _In_ int assert, + _In_ MPI_Win win + ); + +MPI_METHOD +MPI_Win_start( + _In_ MPI_Group group, + _In_ int assert, + _In_ MPI_Win win + ); + +MPI_METHOD +PMPI_Win_start( + _In_ MPI_Group group, + _In_ int assert, + _In_ MPI_Win win + ); + +MPI_METHOD +MPI_Win_complete( + _In_ MPI_Win win + ); + +MPI_METHOD +PMPI_Win_complete( + _In_ MPI_Win win + ); + +MPI_METHOD +MPI_Win_post( + _In_ MPI_Group group, + _In_ int assert, + _In_ MPI_Win win + ); + +MPI_METHOD +PMPI_Win_post( + _In_ MPI_Group group, + _In_ int assert, + _In_ MPI_Win win + ); + +MPI_METHOD +MPI_Win_wait( + _In_ MPI_Win win + ); + +MPI_METHOD +PMPI_Win_wait( + _In_ MPI_Win win + ); + +MPI_METHOD +MPI_Win_test( + _In_ MPI_Win win, + _mpi_out_flag_ int* flag + ); + +MPI_METHOD +PMPI_Win_test( + _In_ MPI_Win win, + _mpi_out_flag_ int* flag + ); + +#define MPI_LOCK_EXCLUSIVE 234 +#define MPI_LOCK_SHARED 235 + +MPI_METHOD +MPI_Win_lock( + _In_ int lock_type, + _In_range_(>=, MPI_PROC_NULL) int rank, + _In_ int assert, + _In_ MPI_Win win + ); + +MPI_METHOD +PMPI_Win_lock( + _In_ int lock_type, + _In_range_(>=, MPI_PROC_NULL) int rank, + _In_ int assert, + _In_ MPI_Win win + ); + +MPI_METHOD +MPI_Win_lock_all( + _In_ int assert, + _In_ MPI_Win win + ); + +MPI_METHOD +PMPI_Win_lock_all( + _In_ int assert, + _In_ MPI_Win win + ); + +MPI_METHOD +MPI_Win_unlock( + _In_range_(>=, MPI_PROC_NULL) int rank, + _In_ MPI_Win win + ); + +MPI_METHOD +PMPI_Win_unlock( + _In_range_(>=, MPI_PROC_NULL) int rank, + _In_ MPI_Win win + ); + +MPI_METHOD +MPI_Win_unlock_all( + _In_ MPI_Win win + ); + +MPI_METHOD +PMPI_Win_unlock_all( + _In_ MPI_Win win + ); + +MPI_METHOD +MPI_Win_flush( + _In_range_(>=, MPI_PROC_NULL) int rank, + _In_ MPI_Win win + ); + +MPI_METHOD +PMPI_Win_flush( + _In_range_(>=, MPI_PROC_NULL) int rank, + _In_ MPI_Win win + ); + +MPI_METHOD +MPI_Win_flush_all( + _In_ MPI_Win win + ); + +MPI_METHOD +PMPI_Win_flush_all( + _In_ MPI_Win win + ); + +MPI_METHOD +MPI_Win_flush_local( + _In_range_(>= , MPI_PROC_NULL) int rank, + _In_ MPI_Win win + ); + +MPI_METHOD +PMPI_Win_flush_local( + _In_range_(>= , MPI_PROC_NULL) int rank, + _In_ MPI_Win win + ); + +MPI_METHOD +MPI_Win_flush_local_all( + _In_ MPI_Win win + ); + +MPI_METHOD +PMPI_Win_flush_local_all( + _In_ MPI_Win win + ); + +MPI_METHOD +MPI_Win_sync( + _In_ MPI_Win win + ); + +MPI_METHOD +PMPI_Win_sync( + _In_ MPI_Win win + ); + +/*---------------------------------------------------------------------------*/ +/* Chapter 12: External Interfaces */ +/*---------------------------------------------------------------------------*/ + +/*---------------------------------------------*/ +/* Section 12.2: Generalized Requests */ +/*---------------------------------------------*/ + +typedef +int +(MPIAPI MPI_Grequest_query_function)( + _In_opt_ void* extra_state, + _Out_ MPI_Status* status + ); + +typedef +int +(MPIAPI MPI_Grequest_free_function)( + _In_opt_ void* extra_state + ); + +typedef +int +(MPIAPI MPI_Grequest_cancel_function)( + _In_opt_ void* extra_state, + _In_ int complete + ); + +MPI_METHOD +MPI_Grequest_start( + _In_ MPI_Grequest_query_function* query_fn, + _In_ MPI_Grequest_free_function* free_fn, + _In_ MPI_Grequest_cancel_function* cancel_fn, + _In_opt_ void* extra_state, + _Out_ MPI_Request* request + ); + +MPI_METHOD +PMPI_Grequest_start( + _In_ MPI_Grequest_query_function* query_fn, + _In_ MPI_Grequest_free_function* free_fn, + _In_ MPI_Grequest_cancel_function* cancel_fn, + _In_opt_ void* extra_state, + _Out_ MPI_Request* request + ); + +MPI_METHOD +MPI_Grequest_complete( + _In_ MPI_Request request + ); + +MPI_METHOD +PMPI_Grequest_complete( + _In_ MPI_Request request + ); + + +/*---------------------------------------------*/ +/* Section 12.3: Information with Status */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Status_set_elements( + _In_ MPI_Status* status, + _In_ MPI_Datatype datatype, + _In_range_(>=, 0) int count + ); + +MPI_METHOD +PMPI_Status_set_elements( + _In_ MPI_Status* status, + _In_ MPI_Datatype datatype, + _In_range_(>=, 0) int count + ); + +MPI_METHOD +MPI_Status_set_elements_x( + _In_ MPI_Status* status, + _In_ MPI_Datatype datatype, + _In_range_(>=, 0) MPI_Count count + ); + +MPI_METHOD +PMPI_Status_set_elements_x( + _In_ MPI_Status* status, + _In_ MPI_Datatype datatype, + _In_range_(>=, 0) MPI_Count count + ); + +MPI_METHOD +MPI_Status_set_cancelled( + _In_ MPI_Status* status, + _In_range_(0,1) int flag + ); + +MPI_METHOD +PMPI_Status_set_cancelled( + _In_ MPI_Status* status, + _In_range_(0,1) int flag + ); + + +/*---------------------------------------------*/ +/* Section 12.4: Threads */ +/*---------------------------------------------*/ + +#define MPI_THREAD_SINGLE 0 +#define MPI_THREAD_FUNNELED 1 +#define MPI_THREAD_SERIALIZED 2 +#define MPI_THREAD_MULTIPLE 3 + +MPI_METHOD +MPI_Init_thread( + _In_opt_ const int* argc, + _Notref_ _In_reads_opt_(*argc) char*** argv, + _In_ int required, + _Out_ int* provided + ); + +MPI_METHOD +PMPI_Init_thread( + _In_opt_ int* argc, + _Notref_ _In_reads_opt_(*argc) char*** argv, + _In_ int required, + _Out_ int* provided + ); + +MPI_METHOD +MPI_Query_thread( + _Out_ int* provided + ); + +MPI_METHOD +PMPI_Query_thread( + _Out_ int* provided + ); + +MPI_METHOD +MPI_Is_thread_main( + _mpi_out_flag_ int* flag + ); + +MPI_METHOD +PMPI_Is_thread_main( + _mpi_out_flag_ int* flag + ); + + +/*---------------------------------------------------------------------------*/ +/* Chapter 13: I/O */ +/*---------------------------------------------------------------------------*/ + +/*---------------------------------------------*/ +/* Section 13.2: File Manipulation */ +/*---------------------------------------------*/ + +#define MPI_MODE_CREATE 0x00000001 +#define MPI_MODE_RDONLY 0x00000002 +#define MPI_MODE_WRONLY 0x00000004 +#define MPI_MODE_RDWR 0x00000008 +#define MPI_MODE_DELETE_ON_CLOSE 0x00000010 +#define MPI_MODE_UNIQUE_OPEN 0x00000020 +#define MPI_MODE_EXCL 0x00000040 +#define MPI_MODE_APPEND 0x00000080 +#define MPI_MODE_SEQUENTIAL 0x00000100 +#define MSMPI_MODE_HIDDEN 0x00000200 + +MPI_METHOD +MPI_File_open( + _In_ MPI_Comm comm, + _In_z_ const char* filename, + _In_ int amode, + _In_ MPI_Info info, + _Out_ MPI_File* fh + ); + +MPI_METHOD +PMPI_File_open( + _In_ MPI_Comm comm, + _In_z_ const char* filename, + _In_ int amode, + _In_ MPI_Info info, + _Out_ MPI_File* fh + ); + +MPI_METHOD +MPI_File_close( + _In_ MPI_File* fh + ); + +MPI_METHOD +PMPI_File_close( + _In_ MPI_File* fh + ); + +MPI_METHOD +MPI_File_delete( + _In_z_ const char* filename, + _In_ MPI_Info info + ); + +MPI_METHOD +PMPI_File_delete( + _In_z_ const char* filename, + _In_ MPI_Info info + ); + +MPI_METHOD +MPI_File_set_size( + _In_ MPI_File fh, + _In_ MPI_Offset size + ); + +MPI_METHOD +PMPI_File_set_size( + _In_ MPI_File fh, + _In_ MPI_Offset size + ); + +MPI_METHOD +MPI_File_preallocate( + _In_ MPI_File fh, + _In_ MPI_Offset size + ); + +MPI_METHOD +PMPI_File_preallocate( + _In_ MPI_File fh, + _In_ MPI_Offset size + ); + +MPI_METHOD +MPI_File_get_size( + _In_ MPI_File fh, + _Out_ MPI_Offset* size + ); + +MPI_METHOD +PMPI_File_get_size( + _In_ MPI_File fh, + _Out_ MPI_Offset* size + ); + +MPI_METHOD +MPI_File_get_group( + _In_ MPI_File fh, + _Out_ MPI_Group* group + ); + +MPI_METHOD +PMPI_File_get_group( + _In_ MPI_File fh, + _Out_ MPI_Group* group + ); + +MPI_METHOD +MPI_File_get_amode( + _In_ MPI_File fh, + _Out_ int* amode + ); + +MPI_METHOD +PMPI_File_get_amode( + _In_ MPI_File fh, + _Out_ int* amode + ); + +MPI_METHOD +MPI_File_set_info( + _In_ MPI_File fh, + _In_ MPI_Info info + ); + +MPI_METHOD +PMPI_File_set_info( + _In_ MPI_File fh, + _In_ MPI_Info info + ); + +MPI_METHOD +MPI_File_get_info( + _In_ MPI_File fh, + _Out_ MPI_Info* info_used + ); + +MPI_METHOD +PMPI_File_get_info( + _In_ MPI_File fh, + _Out_ MPI_Info* info_used + ); + + +/*---------------------------------------------*/ +/* Section 13.3: File Views */ +/*---------------------------------------------*/ + +#define MPI_DISPLACEMENT_CURRENT (-54278278) + +MPI_METHOD +MPI_File_set_view( + _In_ MPI_File fh, + _In_ MPI_Offset disp, + _In_ MPI_Datatype etype, + _In_ MPI_Datatype filetype, + _In_z_ const char* datarep, + _In_ MPI_Info info + ); + +MPI_METHOD +PMPI_File_set_view( + _In_ MPI_File fh, + _In_ MPI_Offset disp, + _In_ MPI_Datatype etype, + _In_ MPI_Datatype filetype, + _In_z_ const char* datarep, + _In_ MPI_Info info + ); + +#define MPI_MAX_DATAREP_STRING 128 + +MPI_METHOD +MPI_File_get_view( + _In_ MPI_File fh, + _Out_ MPI_Offset* disp, + _Out_ MPI_Datatype* etype, + _Out_ MPI_Datatype* filetype, + _Out_writes_z_(MPI_MAX_DATAREP_STRING) char* datarep + ); + +MPI_METHOD +PMPI_File_get_view( + _In_ MPI_File fh, + _Out_ MPI_Offset* disp, + _Out_ MPI_Datatype* etype, + _Out_ MPI_Datatype* filetype, + _Out_writes_z_(MPI_MAX_DATAREP_STRING) char* datarep + ); + + +/*---------------------------------------------*/ +/* Section 13.4: Data Access */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_File_read_at( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_File_read_at( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_File_read_at_all( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_File_read_at_all( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_File_write_at( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_File_write_at( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_File_write_at_all( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_File_write_at_all( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_File_iread_at( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Request* request + ); + +MPI_METHOD +PMPI_File_iread_at( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Request* request + ); + +MPI_METHOD +MPI_File_iwrite_at( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Request* request + ); + +MPI_METHOD +PMPI_File_iwrite_at( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Request* request + ); + +MPI_METHOD +MPI_File_read( + _In_ MPI_File fh, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_File_read( + _In_ MPI_File fh, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_File_read_all( + _In_ MPI_File fh, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_File_read_all( + _In_ MPI_File fh, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_File_write( + _In_ MPI_File fh, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_File_write( + _In_ MPI_File fh, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_File_write_all( + _In_ MPI_File fh, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_File_write_all( + _In_ MPI_File fh, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + + +MPI_METHOD +MPI_File_iread( + _In_ MPI_File fh, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Request* request + ); + +MPI_METHOD +PMPI_File_iread( + _In_ MPI_File fh, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Request* request + ); + +MPI_METHOD +MPI_File_iwrite( + _In_ MPI_File fh, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Request* request + ); + +MPI_METHOD +PMPI_File_iwrite( + _In_ MPI_File fh, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Request* request + ); + + +/* File seek whence */ +#define MPI_SEEK_SET 600 +#define MPI_SEEK_CUR 602 +#define MPI_SEEK_END 604 + +MPI_METHOD +MPI_File_seek( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _In_ int whence + ); + +MPI_METHOD +PMPI_File_seek( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _In_ int whence + ); + +MPI_METHOD +MPI_File_get_position( + _In_ MPI_File fh, + _Out_ MPI_Offset* offset + ); + +MPI_METHOD +PMPI_File_get_position( + _In_ MPI_File fh, + _Out_ MPI_Offset* offset + ); + +MPI_METHOD +MPI_File_get_byte_offset( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _Out_ MPI_Offset* disp + ); + +MPI_METHOD +PMPI_File_get_byte_offset( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _Out_ MPI_Offset* disp + ); + +MPI_METHOD +MPI_File_read_shared( + _In_ MPI_File fh, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_File_read_shared( + _In_ MPI_File fh, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_File_write_shared( + _In_ MPI_File fh, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_File_write_shared( + _In_ MPI_File fh, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_File_iread_shared( + _In_ MPI_File fh, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Request* request + ); + +MPI_METHOD +PMPI_File_iread_shared( + _In_ MPI_File fh, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Request* request + ); + +MPI_METHOD +MPI_File_iwrite_shared( + _In_ MPI_File fh, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Request* request + ); + +MPI_METHOD +PMPI_File_iwrite_shared( + _In_ MPI_File fh, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Request* request + ); + +MPI_METHOD +MPI_File_read_ordered( + _In_ MPI_File fh, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_File_read_ordered( + _In_ MPI_File fh, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_File_write_ordered( + _In_ MPI_File fh, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_File_write_ordered( + _In_ MPI_File fh, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_File_seek_shared( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _In_ int whence + ); + +MPI_METHOD +PMPI_File_seek_shared( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _In_ int whence + ); + +MPI_METHOD +MPI_File_get_position_shared( + _In_ MPI_File fh, + _Out_ MPI_Offset* offset + ); + +MPI_METHOD +PMPI_File_get_position_shared( + _In_ MPI_File fh, + _Out_ MPI_Offset* offset + ); + +MPI_METHOD +MPI_File_read_at_all_begin( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype + ); + +MPI_METHOD +PMPI_File_read_at_all_begin( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype + ); + +MPI_METHOD +MPI_File_read_at_all_end( + _In_ MPI_File fh, + _Out_ void* buf, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_File_read_at_all_end( + _In_ MPI_File fh, + _Out_ void* buf, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_File_write_at_all_begin( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype + ); + +MPI_METHOD +PMPI_File_write_at_all_begin( + _In_ MPI_File fh, + _In_ MPI_Offset offset, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype + ); + +MPI_METHOD +MPI_File_write_at_all_end( + _In_ MPI_File fh, + _In_ const void* buf, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_File_write_at_all_end( + _In_ MPI_File fh, + _In_ const void* buf, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_File_read_all_begin( + _In_ MPI_File fh, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype + ); + +MPI_METHOD +PMPI_File_read_all_begin( + _In_ MPI_File fh, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype + ); + +MPI_METHOD +MPI_File_read_all_end( + _In_ MPI_File fh, + _Out_ void* buf, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_File_read_all_end( + _In_ MPI_File fh, + _Out_ void* buf, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_File_write_all_begin( + _In_ MPI_File fh, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype + ); + +MPI_METHOD +PMPI_File_write_all_begin( + _In_ MPI_File fh, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype + ); + +MPI_METHOD +MPI_File_write_all_end( + _In_ MPI_File fh, + _In_ const void* buf, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_File_write_all_end( + _In_ MPI_File fh, + _In_ const void* buf, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_File_read_ordered_begin( + _In_ MPI_File fh, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype + ); + +MPI_METHOD +PMPI_File_read_ordered_begin( + _In_ MPI_File fh, + _Out_opt_ void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype + ); + +MPI_METHOD +MPI_File_read_ordered_end( + _In_ MPI_File fh, + _Out_ void* buf, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_File_read_ordered_end( + _In_ MPI_File fh, + _Out_ void* buf, + _Out_ MPI_Status* status + ); + +MPI_METHOD +MPI_File_write_ordered_begin( + _In_ MPI_File fh, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype + ); + +MPI_METHOD +PMPI_File_write_ordered_begin( + _In_ MPI_File fh, + _In_opt_ const void* buf, + _In_range_(>=, 0) int count, + _In_ MPI_Datatype datatype + ); + +MPI_METHOD +MPI_File_write_ordered_end( + _In_ MPI_File fh, + _In_ const void* buf, + _Out_ MPI_Status* status + ); + +MPI_METHOD +PMPI_File_write_ordered_end( + _In_ MPI_File fh, + _In_ const void* buf, + _Out_ MPI_Status* status + ); + + +/*---------------------------------------------*/ +/* Section 13.5: File Interoperability */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_File_get_type_extent( + _In_ MPI_File fh, + _In_ MPI_Datatype datatype, + _Out_ MPI_Aint* extent + ); + +MPI_METHOD +PMPI_File_get_type_extent( + _In_ MPI_File fh, + _In_ MPI_Datatype datatype, + _Out_ MPI_Aint* extent + ); + + +typedef +int +(MPIAPI MPI_Datarep_conversion_function)( + _Inout_ void* userbuf, + _In_ MPI_Datatype datatype, + _In_range_(>=, 0) int count, + _Inout_ void* filebuf, + _In_ MPI_Offset position, + _In_opt_ void* extra_state + ); + +typedef +int +(MPIAPI MPI_Datarep_extent_function)( + _In_ MPI_Datatype datatype, + _Out_ MPI_Aint* file_extent, + _In_opt_ void* extra_state + ); + +#define MPI_CONVERSION_FN_NULL ((MPI_Datarep_conversion_function*)0) + +MPI_METHOD +MPI_Register_datarep( + _In_z_ const char* datarep, + _In_opt_ MPI_Datarep_conversion_function* read_conversion_fn, + _In_opt_ MPI_Datarep_conversion_function* write_conversion_fn, + _In_ MPI_Datarep_extent_function* dtype_file_extent_fn, + _In_opt_ void* extra_state + ); + +MPI_METHOD +PMPI_Register_datarep( + _In_z_ const char* datarep, + _In_opt_ MPI_Datarep_conversion_function* read_conversion_fn, + _In_opt_ MPI_Datarep_conversion_function* write_conversion_fn, + _In_ MPI_Datarep_extent_function* dtype_file_extent_fn, + _In_opt_ void* extra_state + ); + + +/*---------------------------------------------*/ +/* Section 13.6: Consistency and Semantics */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_File_set_atomicity( + _In_ MPI_File fh, + _In_range_(0, 1) int flag + ); + +MPI_METHOD +PMPI_File_set_atomicity( + _In_ MPI_File fh, + _In_range_(0, 1) int flag + ); + +MPI_METHOD +MPI_File_get_atomicity( + _In_ MPI_File fh, + _mpi_out_flag_ int* flag + ); + +MPI_METHOD +PMPI_File_get_atomicity( + _In_ MPI_File fh, + _mpi_out_flag_ int* flag + ); + +MPI_METHOD +MPI_File_sync( + _In_ MPI_File fh + ); + +MPI_METHOD +PMPI_File_sync( + _In_ MPI_File fh + ); + + +/*---------------------------------------------------------------------------*/ +/* Chapter 14: Profiling Interface */ +/*---------------------------------------------------------------------------*/ + +MPI_METHOD +MPI_Pcontrol( + _In_ const int level, + ... + ); + +MPI_METHOD +PMPI_Pcontrol( + _In_ const int level, + ... + ); + + +/*---------------------------------------------------------------------------*/ +/* Chapter 15: Deprecated Functions */ +/*---------------------------------------------------------------------------*/ + +#ifdef MSMPI_NO_DEPRECATE_20 +#define MSMPI_DEPRECATE_20( x ) +#else +#define MSMPI_DEPRECATE_20( x ) __declspec(deprecated( \ + "Deprecated in MPI 2.0, use '" #x "'. " \ + "To disable deprecation, define MSMPI_NO_DEPRECATE_20." )) +#endif + +MSMPI_DEPRECATE_20( MPI_Type_create_hvector ) +MPI_METHOD +MPI_Type_hvector( + _In_range_(>=, 0) int count, + _In_range_(>=, 0) int blocklength, + _In_ MPI_Aint stride, + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +MSMPI_DEPRECATE_20( PMPI_Type_create_hvector ) +MPI_METHOD +PMPI_Type_hvector( + _In_range_(>=, 0) int count, + _In_range_(>=, 0) int blocklength, + _In_ MPI_Aint stride, + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +MSMPI_DEPRECATE_20( MPI_Type_create_hindexed ) +MPI_METHOD +MPI_Type_hindexed( + _In_range_(>=, 0) int count, + _In_reads_opt_(count) const int array_of_blocklengths[], + _In_reads_opt_(count) const MPI_Aint array_of_displacements[], + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +MSMPI_DEPRECATE_20( PMPI_Type_create_hindexed ) +MPI_METHOD +PMPI_Type_hindexed( + _In_range_(>=, 0) int count, + _In_reads_opt_(count) const int array_of_blocklengths[], + _In_reads_opt_(count) const MPI_Aint array_of_displacements[], + _In_ MPI_Datatype oldtype, + _Out_ MPI_Datatype* newtype + ); + +MSMPI_DEPRECATE_20( MPI_Type_create_struct ) +MPI_METHOD +MPI_Type_struct( + _In_range_(>=, 0) int count, + _In_reads_opt_(count) const int array_of_blocklengths[], + _In_reads_opt_(count) const MPI_Aint array_of_displacements[], + _In_reads_opt_(count) const MPI_Datatype array_of_types[], + _Out_ MPI_Datatype* newtype + ); + +MSMPI_DEPRECATE_20( PMPI_Type_create_struct ) +MPI_METHOD +PMPI_Type_struct( + _In_range_(>=, 0) int count, + _In_reads_opt_(count) const int array_of_blocklengths[], + _In_reads_opt_(count) const MPI_Aint array_of_displacements[], + _In_reads_opt_(count) const MPI_Datatype array_of_types[], + _Out_ MPI_Datatype* newtype + ); + +MSMPI_DEPRECATE_20( MPI_Get_address ) +MPI_METHOD +MPI_Address( + _In_ void* location, + _Out_ MPI_Aint* address + ); + +MSMPI_DEPRECATE_20( PMPI_Get_address ) +MPI_METHOD +PMPI_Address( + _In_ void* location, + _Out_ MPI_Aint* address + ); + +MSMPI_DEPRECATE_20( MPI_Type_get_extent ) +MPI_METHOD +MPI_Type_extent( + _In_ MPI_Datatype datatype, + _Out_ MPI_Aint* extent + ); + +MSMPI_DEPRECATE_20( PMPI_Type_get_extent ) +MPI_METHOD +PMPI_Type_extent( + _In_ MPI_Datatype datatype, + _Out_ MPI_Aint* extent + ); + +MSMPI_DEPRECATE_20( MPI_Type_get_extent ) +MPI_METHOD +MPI_Type_lb( + _In_ MPI_Datatype datatype, + _Out_ MPI_Aint* displacement + ); + +MSMPI_DEPRECATE_20( PMPI_Type_get_extent ) +MPI_METHOD +PMPI_Type_lb( + _In_ MPI_Datatype datatype, + _Out_ MPI_Aint* displacement + ); + +MSMPI_DEPRECATE_20( MPI_Type_get_extent ) +MPI_METHOD +MPI_Type_ub( + _In_ MPI_Datatype datatype, + _Out_ MPI_Aint* displacement + ); + +MSMPI_DEPRECATE_20( PMPI_Type_get_extent ) +MPI_METHOD +PMPI_Type_ub( + _In_ MPI_Datatype datatype, + _Out_ MPI_Aint* displacement + ); + + +typedef MPI_Comm_copy_attr_function MPI_Copy_function; +typedef MPI_Comm_delete_attr_function MPI_Delete_function; + +#define MPI_NULL_COPY_FN ((MPI_Copy_function*)0) +#define MPI_NULL_DELETE_FN ((MPI_Delete_function*)0) +#define MPI_DUP_FN MPIR_Dup_fn + + +MSMPI_DEPRECATE_20( MPI_Comm_create_keyval ) +MPI_METHOD +MPI_Keyval_create( + _In_opt_ MPI_Copy_function* copy_fn, + _In_opt_ MPI_Delete_function* delete_fn, + _Out_ int* keyval, + _In_opt_ void* extra_state + ); + +MSMPI_DEPRECATE_20( PMPI_Comm_create_keyval ) +MPI_METHOD +PMPI_Keyval_create( + _In_opt_ MPI_Copy_function* copy_fn, + _In_opt_ MPI_Delete_function* delete_fn, + _Out_ int* keyval, + _In_opt_ void* extra_state + ); + +MSMPI_DEPRECATE_20( MPI_Comm_free_keyval ) +MPI_METHOD +MPI_Keyval_free( + _Inout_ int* keyval + ); + +MSMPI_DEPRECATE_20( PMPI_Comm_free_keyval ) +MPI_METHOD +PMPI_Keyval_free( + _Inout_ int* keyval + ); + +MSMPI_DEPRECATE_20( MPI_Comm_set_attr ) +MPI_METHOD +MPI_Attr_put( + _In_ MPI_Comm comm, + _In_ int keyval, + _In_opt_ void* attribute_val + ); + +MSMPI_DEPRECATE_20( PMPI_Comm_set_attr ) +MPI_METHOD +PMPI_Attr_put( + _In_ MPI_Comm comm, + _In_ int keyval, + _In_opt_ void* attribute_val + ); + +MSMPI_DEPRECATE_20( MPI_Comm_get_attr ) +MPI_METHOD +MPI_Attr_get( + _In_ MPI_Comm comm, + _In_ int keyval, + _Out_ void* attribute_val, + _mpi_out_flag_ int* flag + ); + +MSMPI_DEPRECATE_20( PMPI_Comm_get_attr ) +MPI_METHOD +PMPI_Attr_get( + _In_ MPI_Comm comm, + _In_ int keyval, + _Out_ void* attribute_val, + _mpi_out_flag_ int* flag + ); + +MSMPI_DEPRECATE_20( MPI_Comm_delete_attr ) +MPI_METHOD +MPI_Attr_delete( + _In_ MPI_Comm comm, + _In_ int keyval + ); + +MSMPI_DEPRECATE_20( PMPI_Comm_delete_attr ) +MPI_METHOD +PMPI_Attr_delete( + _In_ MPI_Comm comm, + _In_ int keyval + ); + + +typedef MPI_Comm_errhandler_fn MPI_Handler_function; + +MSMPI_DEPRECATE_20( MPI_Comm_create_errhandler ) +MPI_METHOD +MPI_Errhandler_create( + _In_ MPI_Handler_function* function, + _Out_ MPI_Errhandler* errhandler + ); + +MSMPI_DEPRECATE_20( PMPI_Comm_create_errhandler ) +MPI_METHOD +PMPI_Errhandler_create( + _In_ MPI_Handler_function* function, + _Out_ MPI_Errhandler* errhandler + ); + +MSMPI_DEPRECATE_20( MPI_Comm_set_errhandler ) +MPI_METHOD +MPI_Errhandler_set( + _In_ MPI_Comm comm, + _In_ MPI_Errhandler errhandler + ); + +MSMPI_DEPRECATE_20( PMPI_Comm_set_errhandler ) +MPI_METHOD +PMPI_Errhandler_set( + _In_ MPI_Comm comm, + _In_ MPI_Errhandler errhandler + ); + +MSMPI_DEPRECATE_20( MPI_Comm_get_errhandler ) +MPI_METHOD +MPI_Errhandler_get( + _In_ MPI_Comm comm, + _Out_ MPI_Errhandler* errhandler + ); + +MSMPI_DEPRECATE_20( PMPI_Comm_get_errhandler ) +MPI_METHOD +PMPI_Errhandler_get( + _In_ MPI_Comm comm, + _Out_ MPI_Errhandler* errhandler + ); + + +/*---------------------------------------------------------------------------*/ +/* Chapter 16: Language Bindings */ +/*---------------------------------------------------------------------------*/ + +/*---------------------------------------------*/ +/* Section 16.2: Fortran Support */ +/*---------------------------------------------*/ + +MPI_METHOD +MPI_Type_create_f90_real( + _In_ int p, + _In_ int r, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +PMPI_Type_create_f90_real( + _In_ int p, + _In_ int r, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +MPI_Type_create_f90_complex( + _In_ int p, + _In_ int r, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +PMPI_Type_create_f90_complex( + _In_ int p, + _In_ int r, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +MPI_Type_create_f90_integer( + _In_ int r, + _Out_ MPI_Datatype* newtype + ); + +MPI_METHOD +PMPI_Type_create_f90_integer( + _In_ int r, + _Out_ MPI_Datatype* newtype + ); + +/* typeclasses */ +#define MPI_TYPECLASS_REAL 1 +#define MPI_TYPECLASS_INTEGER 2 +#define MPI_TYPECLASS_COMPLEX 3 + +MPI_METHOD +MPI_Type_match_size( + _In_ int typeclass, + _In_ int size, + _Out_ MPI_Datatype* datatype + ); + +MPI_METHOD +PMPI_Type_match_size( + _In_ int typeclass, + _In_ int size, + _Out_ MPI_Datatype* datatype + ); + + +/*---------------------------------------------*/ +/* Section 16.3: Language Interoperability */ +/*---------------------------------------------*/ + +#define MPI_Comm_c2f(comm) (MPI_Fint)(comm) +#define PMPI_Comm_c2f(comm) (MPI_Fint)(comm) + +#define MPI_Comm_f2c(comm) (MPI_Comm)(comm) +#define PMPI_Comm_f2c(comm) (MPI_Comm)(comm) + + +#define MPI_Type_f2c(datatype) (MPI_Datatype)(datatype) +#define PMPI_Type_f2c(datatype) (MPI_Datatype)(datatype) + +#define MPI_Type_c2f(datatype) (MPI_Fint)(datatype) +#define PMPI_Type_c2f(datatype) (MPI_Fint)(datatype) + + +#define MPI_Group_f2c(group) (MPI_Group)(group) +#define PMPI_Group_f2c(group) (MPI_Group)(group) + +#define MPI_Group_c2f(group) (MPI_Fint)(group) +#define PMPI_Group_c2f(group) (MPI_Fint)(group) + + +#define MPI_Request_f2c(request) (MPI_Request)(request) +#define PMPI_Request_f2c(request) (MPI_Request)(request) + +#define MPI_Request_c2f(request) (MPI_Fint)(request) +#define PMPI_Request_c2f(request) (MPI_Fint)(request) + + +#define MPI_Win_f2c(win) (MPI_Win)(win) +#define PMPI_Win_f2c(win) (MPI_Win)(win) + +#define MPI_Win_c2f(win) (MPI_Fint)(win) +#define PMPI_Win_c2f(win) (MPI_Fint)(win) + + +#define MPI_Op_c2f(op) (MPI_Fint)(op) +#define PMPI_Op_c2f(op) (MPI_Fint)(op) + +#define MPI_Op_f2c(op) (MPI_Op)(op) +#define PMPI_Op_f2c(op) (MPI_Op)(op) + + +#define MPI_Info_c2f(info) (MPI_Fint)(info) +#define PMPI_Info_c2f(info) (MPI_Fint)(info) + +#define MPI_Info_f2c(info) (MPI_Info)(info) +#define PMPI_Info_f2c(info) (MPI_Info)(info) + + +#define MPI_Message_c2f(msg) (MPI_Fint)(msg) +#define PMPI_Message_c2f(msg) (MPI_Fint)(msg) + +#define MPI_Message_f2c(msg) (MPI_Message)(msg) +#define PMPI_Message_f2c(msg) (MPI_Message)(msg) + + +#define MPI_Errhandler_c2f(errhandler) (MPI_Fint)(errhandler) +#define PMPI_Errhandler_c2f(errhandler) (MPI_Fint)(errhandler) + +#define MPI_Errhandler_f2c(errhandler) (MPI_Errhandler)(errhandler) +#define PMPI_Errhandler_f2c(errhandler) (MPI_Errhandler)(errhandler) + + +MPI_File +MPIAPI +MPI_File_f2c( + _In_ MPI_Fint file + ); + +MPI_File +MPIAPI +PMPI_File_f2c( + _In_ MPI_Fint file + ); + +MPI_Fint +MPIAPI +MPI_File_c2f( + _In_ MPI_File file + ); + +MPI_Fint +MPIAPI +PMPI_File_c2f( + _In_ MPI_File file + ); + +MPI_METHOD +MPI_Status_f2c( + _In_ const MPI_Fint* f_status, + _Out_ MPI_Status* c_status + ); + +MPI_METHOD +PMPI_Status_f2c( + _In_ const MPI_Fint* f_status, + _Out_ MPI_Status* c_status + ); + +MPI_METHOD +MPI_Status_c2f( + _In_ const MPI_Status* c_status, + _Out_ MPI_Fint* f_status + ); + +MPI_METHOD +PMPI_Status_c2f( + _In_ const MPI_Status* c_status, + _Out_ MPI_Fint* f_status + ); + + +#if !defined(_MPICH_DLL_) +#define MPIU_DLL_SPEC __declspec(dllimport) +#else +#define MPIU_DLL_SPEC +#endif + +extern MPIU_DLL_SPEC MPI_Fint* MPI_F_STATUS_IGNORE; +extern MPIU_DLL_SPEC MPI_Fint* MPI_F_STATUSES_IGNORE; + + +/*---------------------------------------------------------------------------*/ +/* Implementation Specific */ +/*---------------------------------------------------------------------------*/ + +MPI_METHOD +MPIR_Dup_fn( + _In_ MPI_Comm oldcomm, + _In_ int keyval, + _In_opt_ void* extra_state, + _In_opt_ void* attribute_val_in, + _Out_ void* attribute_val_out, + _mpi_out_flag_ int* flag + ); + + +#if MSMPI_VER >= 0x300 + +MPI_METHOD +MSMPI_Get_bsend_overhead(); + +#endif + + +#if MSMPI_VER >= 0x300 + +MPI_METHOD +MSMPI_Get_version(); + +#else +# define MSMPI_Get_version() (MSMPI_VER) +#endif + +typedef void +(MPIAPI MSMPI_Request_callback)( + _In_ MPI_Status* status + ); + +MPI_METHOD +MSMPI_Request_set_apc( + _In_ MPI_Request request, + _In_ MSMPI_Request_callback* callback_fn, + _In_ MPI_Status* callback_status + ); + +typedef struct _MSMPI_LOCK_QUEUE +{ + struct _MSMPI_LOCK_QUEUE* volatile next; + volatile MPI_Aint flags; + +} MSMPI_Lock_queue; + +void +MPIAPI +MSMPI_Queuelock_acquire( + _Out_ MSMPI_Lock_queue* queue + ); + +void +MPIAPI +MSMPI_Queuelock_release( + _In_ MSMPI_Lock_queue* queue + ); + +MPI_METHOD +MSMPI_Waitsome_interruptible( + _In_range_(>=, 0) int incount, + _Inout_updates_opt_(incount) MPI_Request array_of_requests[], + _Out_ _Deref_out_range_(MPI_UNDEFINED, incount) int* outcount, + _Out_writes_to_opt_(incount,*outcount) int array_of_indices[], + _Out_writes_to_opt_(incount,*outcount) MPI_Status array_of_statuses[] + ); + + +#if defined(__cplusplus) +} +#endif + +#endif /* MPI_INCLUDED */ diff --git a/deps/msmpi-10.1.2/sdk/mpif.h b/deps/msmpi-10.1.3/sdk/mpif.h similarity index 97% rename from deps/msmpi-10.1.2/sdk/mpif.h rename to deps/msmpi-10.1.3/sdk/mpif.h index f531a15707952f7b9802fc0c70083d207d058e49..5123741009bbc99ca9c72324711990b05c9ac723 100644 --- a/deps/msmpi-10.1.2/sdk/mpif.h +++ b/deps/msmpi-10.1.3/sdk/mpif.h @@ -1,536 +1,536 @@ -! /* -*- Mode: Fortran; -*- */ -! -! Copyright (c) Microsoft Corporation. All rights reserved. -! Licensed under the MIT License. -! -! (C) 2001 by Argonne National Laboratory. -! (C) 2015 by Microsoft Corporation -! -! MPICH COPYRIGHT -! -! The following is a notice of limited availability of the code, and disclaimer -! which must be included in the prologue of the code and in all source listings -! of the code. -! -! Copyright Notice -! + 2002 University of Chicago -! -! Permission is hereby granted to use, reproduce, prepare derivative works, and -! to redistribute to others. This software was authored by: -! -! Mathematics and Computer Science Division -! Argonne National Laboratory, Argonne IL 60439 -! -! (and) -! -! Department of Computer Science -! University of Illinois at Urbana-Champaign -! -! -! GOVERNMENT LICENSE -! -! Portions of this material resulted from work developed under a U.S. -! Government Contract and are subject to the following license: the Government -! is granted for itself and others acting on its behalf a paid-up, nonexclusive, -! irrevocable worldwide license in this computer software to reproduce, prepare -! derivative works, and perform publicly and display publicly. -! -! DISCLAIMER -! -! This computer code material was prepared, in part, as an account of work -! sponsored by an agency of the United States Government. Neither the United -! States, nor the University of Chicago, nor any of their employees, makes any -! warranty express or implied, or assumes any legal liability or responsibility -! for the accuracy, completeness, or usefulness of any information, apparatus, -! product, or process disclosed, or represents that its use would not infringe -! privately owned rights. -! -! - INTEGER MPI_SOURCE, MPI_TAG, MPI_ERROR - PARAMETER (MPI_SOURCE=3,MPI_TAG=4,MPI_ERROR=5) - INTEGER MPI_STATUS_SIZE - PARAMETER (MPI_STATUS_SIZE=5) - INTEGER MPI_STATUS_IGNORE(MPI_STATUS_SIZE) - INTEGER MPI_STATUSES_IGNORE(MPI_STATUS_SIZE,1) - INTEGER MPI_ERRCODES_IGNORE(1) - CHARACTER*1 MPI_ARGVS_NULL(1,1) - CHARACTER*1 MPI_ARGV_NULL(1) - INTEGER MPI_SUCCESS - PARAMETER (MPI_SUCCESS=0) - INTEGER MPI_ERR_OTHER - PARAMETER (MPI_ERR_OTHER=15) - INTEGER MPI_ERR_WIN - PARAMETER (MPI_ERR_WIN=45) - INTEGER MPI_ERR_FILE - PARAMETER (MPI_ERR_FILE=27) - INTEGER MPI_ERR_COUNT - PARAMETER (MPI_ERR_COUNT=2) - INTEGER MPI_ERR_SPAWN - PARAMETER (MPI_ERR_SPAWN=42) - INTEGER MPI_ERR_BASE - PARAMETER (MPI_ERR_BASE=46) - INTEGER MPI_ERR_RMA_CONFLICT - PARAMETER (MPI_ERR_RMA_CONFLICT=49) - INTEGER MPI_ERR_IN_STATUS - PARAMETER (MPI_ERR_IN_STATUS=17) - INTEGER MPI_ERR_INFO_KEY - PARAMETER (MPI_ERR_INFO_KEY=29) - INTEGER MPI_ERR_LOCKTYPE - PARAMETER (MPI_ERR_LOCKTYPE=47) - INTEGER MPI_ERR_OP - PARAMETER (MPI_ERR_OP=9) - INTEGER MPI_ERR_ARG - PARAMETER (MPI_ERR_ARG=12) - INTEGER MPI_ERR_READ_ONLY - PARAMETER (MPI_ERR_READ_ONLY=40) - INTEGER MPI_ERR_SIZE - PARAMETER (MPI_ERR_SIZE=51) - INTEGER MPI_ERR_BUFFER - PARAMETER (MPI_ERR_BUFFER=1) - INTEGER MPI_ERR_DUP_DATAREP - PARAMETER (MPI_ERR_DUP_DATAREP=24) - INTEGER MPI_ERR_UNSUPPORTED_DATAREP - PARAMETER (MPI_ERR_UNSUPPORTED_DATAREP=43) - INTEGER MPI_ERR_LASTCODE - PARAMETER (MPI_ERR_LASTCODE=1073741823) - INTEGER MPI_ERR_TRUNCATE - PARAMETER (MPI_ERR_TRUNCATE=14) - INTEGER MPI_ERR_DISP - PARAMETER (MPI_ERR_DISP=52) - INTEGER MPI_ERR_PORT - PARAMETER (MPI_ERR_PORT=38) - INTEGER MPI_ERR_INFO_NOKEY - PARAMETER (MPI_ERR_INFO_NOKEY=31) - INTEGER MPI_ERR_ASSERT - PARAMETER (MPI_ERR_ASSERT=53) - INTEGER MPI_ERR_FILE_EXISTS - PARAMETER (MPI_ERR_FILE_EXISTS=25) - INTEGER MPI_ERR_PENDING - PARAMETER (MPI_ERR_PENDING=18) - INTEGER MPI_ERR_COMM - PARAMETER (MPI_ERR_COMM=5) - INTEGER MPI_ERR_KEYVAL - PARAMETER (MPI_ERR_KEYVAL=48) - INTEGER MPI_ERR_NAME - PARAMETER (MPI_ERR_NAME=33) - INTEGER MPI_ERR_REQUEST - PARAMETER (MPI_ERR_REQUEST=19) - INTEGER MPI_ERR_GROUP - PARAMETER (MPI_ERR_GROUP=8) - INTEGER MPI_ERR_TOPOLOGY - PARAMETER (MPI_ERR_TOPOLOGY=10) - INTEGER MPI_ERR_TYPE - PARAMETER (MPI_ERR_TYPE=3) - INTEGER MPI_ERR_TAG - PARAMETER (MPI_ERR_TAG=4) - INTEGER MPI_ERR_INFO_VALUE - PARAMETER (MPI_ERR_INFO_VALUE=30) - INTEGER MPI_ERR_NOT_SAME - PARAMETER (MPI_ERR_NOT_SAME=35) - INTEGER MPI_ERR_RMA_SYNC - PARAMETER (MPI_ERR_RMA_SYNC=50) - INTEGER MPI_ERR_INFO - PARAMETER (MPI_ERR_INFO=28) - INTEGER MPI_ERR_NO_MEM - PARAMETER (MPI_ERR_NO_MEM=34) - INTEGER MPI_ERR_BAD_FILE - PARAMETER (MPI_ERR_BAD_FILE=22) - INTEGER MPI_ERR_FILE_IN_USE - PARAMETER (MPI_ERR_FILE_IN_USE=26) - INTEGER MPI_ERR_UNKNOWN - PARAMETER (MPI_ERR_UNKNOWN=13) - INTEGER MPI_ERR_UNSUPPORTED_OPERATION - PARAMETER (MPI_ERR_UNSUPPORTED_OPERATION=44) - INTEGER MPI_ERR_QUOTA - PARAMETER (MPI_ERR_QUOTA=39) - INTEGER MPI_ERR_AMODE - PARAMETER (MPI_ERR_AMODE=21) - INTEGER MPI_ERR_ROOT - PARAMETER (MPI_ERR_ROOT=7) - INTEGER MPI_ERR_RANK - PARAMETER (MPI_ERR_RANK=6) - INTEGER MPI_ERR_DIMS - PARAMETER (MPI_ERR_DIMS=11) - INTEGER MPI_ERR_NO_SUCH_FILE - PARAMETER (MPI_ERR_NO_SUCH_FILE=37) - INTEGER MPI_ERR_SERVICE - PARAMETER (MPI_ERR_SERVICE=41) - INTEGER MPI_ERR_INTERN - PARAMETER (MPI_ERR_INTERN=16) - INTEGER MPI_ERR_IO - PARAMETER (MPI_ERR_IO=32) - INTEGER MPI_ERR_ACCESS - PARAMETER (MPI_ERR_ACCESS=20) - INTEGER MPI_ERR_NO_SPACE - PARAMETER (MPI_ERR_NO_SPACE=36) - INTEGER MPI_ERR_CONVERSION - PARAMETER (MPI_ERR_CONVERSION=23) - INTEGER MPI_ERRORS_ARE_FATAL - PARAMETER (MPI_ERRORS_ARE_FATAL=1409286144) - INTEGER MPI_ERRORS_RETURN - PARAMETER (MPI_ERRORS_RETURN=1409286145) - INTEGER MPI_IDENT - PARAMETER (MPI_IDENT=0) - INTEGER MPI_CONGRUENT - PARAMETER (MPI_CONGRUENT=1) - INTEGER MPI_SIMILAR - PARAMETER (MPI_SIMILAR=2) - INTEGER MPI_UNEQUAL - PARAMETER (MPI_UNEQUAL=3) - INTEGER MPI_MAX - PARAMETER (MPI_MAX=1476395009) - INTEGER MPI_MIN - PARAMETER (MPI_MIN=1476395010) - INTEGER MPI_SUM - PARAMETER (MPI_SUM=1476395011) - INTEGER MPI_PROD - PARAMETER (MPI_PROD=1476395012) - INTEGER MPI_LAND - PARAMETER (MPI_LAND=1476395013) - INTEGER MPI_BAND - PARAMETER (MPI_BAND=1476395014) - INTEGER MPI_LOR - PARAMETER (MPI_LOR=1476395015) - INTEGER MPI_BOR - PARAMETER (MPI_BOR=1476395016) - INTEGER MPI_LXOR - PARAMETER (MPI_LXOR=1476395017) - INTEGER MPI_BXOR - PARAMETER (MPI_BXOR=1476395018) - INTEGER MPI_MINLOC - PARAMETER (MPI_MINLOC=1476395019) - INTEGER MPI_MAXLOC - PARAMETER (MPI_MAXLOC=1476395020) - INTEGER MPI_REPLACE - PARAMETER (MPI_REPLACE=1476395021) - INTEGER MPI_NO_OP - PARAMETER (MPI_NO_OP=1476395022) - INTEGER MPI_COMM_WORLD - PARAMETER (MPI_COMM_WORLD=1140850688) - INTEGER MPI_COMM_SELF - PARAMETER (MPI_COMM_SELF=1140850689) - INTEGER MPI_COMM_TYPE_SHARED - PARAMETER (MPI_COMM_TYPE_SHARED=1) - INTEGER MPI_GROUP_EMPTY - PARAMETER (MPI_GROUP_EMPTY=1207959552) - INTEGER MPI_COMM_NULL - PARAMETER (MPI_COMM_NULL=67108864) - INTEGER MPI_WIN_NULL - PARAMETER (MPI_WIN_NULL=536870912) - INTEGER MPI_FILE_NULL - PARAMETER (MPI_FILE_NULL=0) - INTEGER MPI_GROUP_NULL - PARAMETER (MPI_GROUP_NULL=134217728) - INTEGER MPI_OP_NULL - PARAMETER (MPI_OP_NULL=402653184) - INTEGER MPI_DATATYPE_NULL - PARAMETER (MPI_DATATYPE_NULL=z'0c000000') - INTEGER MPI_REQUEST_NULL - PARAMETER (MPI_REQUEST_NULL=738197504) - INTEGER MPI_ERRHANDLER_NULL - PARAMETER (MPI_ERRHANDLER_NULL=335544320) - INTEGER MPI_INFO_NULL - PARAMETER (MPI_INFO_NULL=469762048) - INTEGER MPI_MESSAGE_NULL - PARAMETER (MPI_MESSAGE_NULL=805306368) - INTEGER MPI_MESSAGE_NO_PROC - PARAMETER (MPI_MESSAGE_NO_PROC=1879048192) - INTEGER MPI_TAG_UB - PARAMETER (MPI_TAG_UB=1681915906) - INTEGER MPI_HOST - PARAMETER (MPI_HOST=1681915908) - INTEGER MPI_IO - PARAMETER (MPI_IO=1681915910) - INTEGER MPI_WTIME_IS_GLOBAL - PARAMETER (MPI_WTIME_IS_GLOBAL=1681915912) - INTEGER MPI_UNIVERSE_SIZE - PARAMETER (MPI_UNIVERSE_SIZE=1681915914) - INTEGER MPI_LASTUSEDCODE - PARAMETER (MPI_LASTUSEDCODE=1681915916) - INTEGER MPI_APPNUM - PARAMETER (MPI_APPNUM=1681915918) - INTEGER MPI_WIN_BASE - PARAMETER (MPI_WIN_BASE=1711276034) - INTEGER MPI_WIN_SIZE - PARAMETER (MPI_WIN_SIZE=1711276036) - INTEGER MPI_WIN_DISP_UNIT - PARAMETER (MPI_WIN_DISP_UNIT=1711276038) - INTEGER MPI_MAX_ERROR_STRING - PARAMETER (MPI_MAX_ERROR_STRING=511) - INTEGER MPI_MAX_PORT_NAME - PARAMETER (MPI_MAX_PORT_NAME=255) - INTEGER MPI_MAX_OBJECT_NAME - PARAMETER (MPI_MAX_OBJECT_NAME=127) - INTEGER MPI_MAX_INFO_KEY - PARAMETER (MPI_MAX_INFO_KEY=254) - INTEGER MPI_MAX_INFO_VAL - PARAMETER (MPI_MAX_INFO_VAL=1023) - INTEGER MPI_MAX_PROCESSOR_NAME - PARAMETER (MPI_MAX_PROCESSOR_NAME=128-1) - INTEGER MPI_MAX_DATAREP_STRING - PARAMETER (MPI_MAX_DATAREP_STRING=127) - INTEGER MPI_MAX_LIBRARY_VERSION_STRING - PARAMETER (MPI_MAX_LIBRARY_VERSION_STRING=64-1) - INTEGER MPI_UNDEFINED - PARAMETER (MPI_UNDEFINED=(-32766)) - INTEGER MPI_KEYVAL_INVALID - PARAMETER (MPI_KEYVAL_INVALID=603979776) - INTEGER MPI_BSEND_OVERHEAD - PARAMETER (MPI_BSEND_OVERHEAD=(95)) - INTEGER MPI_PROC_NULL - PARAMETER (MPI_PROC_NULL=-1) - INTEGER MPI_ANY_SOURCE - PARAMETER (MPI_ANY_SOURCE=-2) - INTEGER MPI_ANY_TAG - PARAMETER (MPI_ANY_TAG=-1) - INTEGER MPI_ROOT - PARAMETER (MPI_ROOT=-3) - INTEGER MPI_GRAPH - PARAMETER (MPI_GRAPH=1) - INTEGER MPI_CART - PARAMETER (MPI_CART=2) - INTEGER MPI_DIST_GRAPH - PARAMETER (MPI_DIST_GRAPH=3) - INTEGER MPI_VERSION - PARAMETER (MPI_VERSION=2) - INTEGER MPI_SUBVERSION - PARAMETER (MPI_SUBVERSION=0) - INTEGER MPI_LOCK_EXCLUSIVE - PARAMETER (MPI_LOCK_EXCLUSIVE=234) - INTEGER MPI_LOCK_SHARED - PARAMETER (MPI_LOCK_SHARED=235) - INTEGER MPI_CHAR - PARAMETER (MPI_CHAR=z'4c000101') - INTEGER MPI_UNSIGNED_CHAR - PARAMETER (MPI_UNSIGNED_CHAR=z'4c000102') - INTEGER MPI_SHORT - PARAMETER (MPI_SHORT=z'4c000203') - INTEGER MPI_UNSIGNED_SHORT - PARAMETER (MPI_UNSIGNED_SHORT=z'4c000204') - INTEGER MPI_INT - PARAMETER (MPI_INT=z'4c000405') - INTEGER MPI_UNSIGNED - PARAMETER (MPI_UNSIGNED=z'4c000406') - INTEGER MPI_LONG - PARAMETER (MPI_LONG=z'4c000407') - INTEGER MPI_UNSIGNED_LONG - PARAMETER (MPI_UNSIGNED_LONG=z'4c000408') - INTEGER MPI_LONG_LONG - PARAMETER (MPI_LONG_LONG=z'4c000809') - INTEGER MPI_LONG_LONG_INT - PARAMETER (MPI_LONG_LONG_INT=z'4c000809') - INTEGER MPI_FLOAT - PARAMETER (MPI_FLOAT=z'4c00040a') - INTEGER MPI_DOUBLE - PARAMETER (MPI_DOUBLE=z'4c00080b') - INTEGER MPI_LONG_DOUBLE - PARAMETER (MPI_LONG_DOUBLE=z'4c00080c') - INTEGER MPI_BYTE - PARAMETER (MPI_BYTE=z'4c00010d') - INTEGER MPI_WCHAR - PARAMETER (MPI_WCHAR=z'4c00020e') - INTEGER MPI_PACKED - PARAMETER (MPI_PACKED=z'4c00010f') - INTEGER MPI_LB - PARAMETER (MPI_LB=z'4c000010') - INTEGER MPI_UB - PARAMETER (MPI_UB=z'4c000011') - INTEGER MPI_2INT - PARAMETER (MPI_2INT=z'4c000816') - INTEGER MPI_SIGNED_CHAR - PARAMETER (MPI_SIGNED_CHAR=z'4c000118') - INTEGER MPI_UNSIGNED_LONG_LONG - PARAMETER (MPI_UNSIGNED_LONG_LONG=z'4c000819') - INTEGER MPI_CHARACTER - PARAMETER (MPI_CHARACTER=z'4c00011a') - INTEGER MPI_INTEGER - PARAMETER (MPI_INTEGER=z'4c00041b') - INTEGER MPI_REAL - PARAMETER (MPI_REAL=z'4c00041c') - INTEGER MPI_LOGICAL - PARAMETER (MPI_LOGICAL=z'4c00041d') - INTEGER MPI_COMPLEX - PARAMETER (MPI_COMPLEX=z'4c00081e') - INTEGER MPI_DOUBLE_PRECISION - PARAMETER (MPI_DOUBLE_PRECISION=z'4c00081f') - INTEGER MPI_2INTEGER - PARAMETER (MPI_2INTEGER=z'4c000820') - INTEGER MPI_2REAL - PARAMETER (MPI_2REAL=z'4c000821') - INTEGER MPI_DOUBLE_COMPLEX - PARAMETER (MPI_DOUBLE_COMPLEX=z'4c001022') - INTEGER MPI_2DOUBLE_PRECISION - PARAMETER (MPI_2DOUBLE_PRECISION=z'4c001023') - INTEGER MPI_2COMPLEX - PARAMETER (MPI_2COMPLEX=z'4c001024') - INTEGER MPI_2DOUBLE_COMPLEX - PARAMETER (MPI_2DOUBLE_COMPLEX=z'4c002025') - INTEGER MPI_REAL2 - PARAMETER (MPI_REAL2=z'0c000000') - INTEGER MPI_REAL4 - PARAMETER (MPI_REAL4=z'4c000427') - INTEGER MPI_COMPLEX8 - PARAMETER (MPI_COMPLEX8=z'4c000828') - INTEGER MPI_REAL8 - PARAMETER (MPI_REAL8=z'4c000829') - INTEGER MPI_COMPLEX16 - PARAMETER (MPI_COMPLEX16=z'4c00102a') - INTEGER MPI_REAL16 - PARAMETER (MPI_REAL16=z'0c000000') - INTEGER MPI_COMPLEX32 - PARAMETER (MPI_COMPLEX32=z'0c000000') - INTEGER MPI_INTEGER1 - PARAMETER (MPI_INTEGER1=z'4c00012d') - INTEGER MPI_COMPLEX4 - PARAMETER (MPI_COMPLEX4=z'0c000000') - INTEGER MPI_INTEGER2 - PARAMETER (MPI_INTEGER2=z'4c00022f') - INTEGER MPI_INTEGER4 - PARAMETER (MPI_INTEGER4=z'4c000430') - INTEGER MPI_INTEGER8 - PARAMETER (MPI_INTEGER8=z'4c000831') - INTEGER MPI_INTEGER16 - PARAMETER (MPI_INTEGER16=z'0c000000') - - INCLUDE 'mpifptr.h' - - INTEGER MPI_OFFSET - PARAMETER (MPI_OFFSET=z'4c00083c') - INTEGER MPI_COUNT - PARAMETER (MPI_COUNT=z'4c00083d') - INTEGER MPI_FLOAT_INT - PARAMETER (MPI_FLOAT_INT=-1946157056) - INTEGER MPI_DOUBLE_INT - PARAMETER (MPI_DOUBLE_INT=-1946157055) - INTEGER MPI_LONG_INT - PARAMETER (MPI_LONG_INT=-1946157054) - INTEGER MPI_SHORT_INT - PARAMETER (MPI_SHORT_INT=-1946157053) - INTEGER MPI_LONG_DOUBLE_INT - PARAMETER (MPI_LONG_DOUBLE_INT=-1946157052) - INTEGER MPI_INTEGER_KIND - PARAMETER (MPI_INTEGER_KIND=4) - INTEGER MPI_OFFSET_KIND - PARAMETER (MPI_OFFSET_KIND=8) - INTEGER MPI_COUNT_KIND - PARAMETER (MPI_COUNT_KIND=8) - INTEGER MPI_COMBINER_NAMED - PARAMETER (MPI_COMBINER_NAMED=1) - INTEGER MPI_COMBINER_DUP - PARAMETER (MPI_COMBINER_DUP=2) - INTEGER MPI_COMBINER_CONTIGUOUS - PARAMETER (MPI_COMBINER_CONTIGUOUS=3) - INTEGER MPI_COMBINER_VECTOR - PARAMETER (MPI_COMBINER_VECTOR=4) - INTEGER MPI_COMBINER_HVECTOR_INTEGER - PARAMETER (MPI_COMBINER_HVECTOR_INTEGER=5) - INTEGER MPI_COMBINER_HVECTOR - PARAMETER (MPI_COMBINER_HVECTOR=6) - INTEGER MPI_COMBINER_INDEXED - PARAMETER (MPI_COMBINER_INDEXED=7) - INTEGER MPI_COMBINER_HINDEXED_INTEGER - PARAMETER (MPI_COMBINER_HINDEXED_INTEGER=8) - INTEGER MPI_COMBINER_HINDEXED - PARAMETER (MPI_COMBINER_HINDEXED=9) - INTEGER MPI_COMBINER_INDEXED_BLOCK - PARAMETER (MPI_COMBINER_INDEXED_BLOCK=10) - INTEGER MPI_COMBINER_STRUCT_INTEGER - PARAMETER (MPI_COMBINER_STRUCT_INTEGER=11) - INTEGER MPI_COMBINER_STRUCT - PARAMETER (MPI_COMBINER_STRUCT=12) - INTEGER MPI_COMBINER_SUBARRAY - PARAMETER (MPI_COMBINER_SUBARRAY=13) - INTEGER MPI_COMBINER_DARRAY - PARAMETER (MPI_COMBINER_DARRAY=14) - INTEGER MPI_COMBINER_F90_REAL - PARAMETER (MPI_COMBINER_F90_REAL=15) - INTEGER MPI_COMBINER_F90_COMPLEX - PARAMETER (MPI_COMBINER_F90_COMPLEX=16) - INTEGER MPI_COMBINER_F90_INTEGER - PARAMETER (MPI_COMBINER_F90_INTEGER=17) - INTEGER MPI_COMBINER_RESIZED - PARAMETER (MPI_COMBINER_RESIZED=18) - INTEGER MPI_COMBINER_HINDEXED_BLOCK - PARAMETER (MPI_COMBINER_HINDEXED_BLOCK=19) - INTEGER MPI_MODE_NOCHECK - PARAMETER (MPI_MODE_NOCHECK=1024) - INTEGER MPI_MODE_NOSTORE - PARAMETER (MPI_MODE_NOSTORE=2048) - INTEGER MPI_MODE_NOPUT - PARAMETER (MPI_MODE_NOPUT=4096) - INTEGER MPI_MODE_NOPRECEDE - PARAMETER (MPI_MODE_NOPRECEDE=8192) - INTEGER MPI_MODE_NOSUCCEED - PARAMETER (MPI_MODE_NOSUCCEED=16384) - INTEGER MPI_THREAD_SINGLE - PARAMETER (MPI_THREAD_SINGLE=0) - INTEGER MPI_THREAD_FUNNELED - PARAMETER (MPI_THREAD_FUNNELED=1) - INTEGER MPI_THREAD_SERIALIZED - PARAMETER (MPI_THREAD_SERIALIZED=2) - INTEGER MPI_THREAD_MULTIPLE - PARAMETER (MPI_THREAD_MULTIPLE=3) - INTEGER MPI_MODE_RDONLY - PARAMETER (MPI_MODE_RDONLY=2) - INTEGER MPI_MODE_RDWR - PARAMETER (MPI_MODE_RDWR=8) - INTEGER MPI_MODE_WRONLY - PARAMETER (MPI_MODE_WRONLY=4) - INTEGER MPI_MODE_DELETE_ON_CLOSE - PARAMETER (MPI_MODE_DELETE_ON_CLOSE=16) - INTEGER MPI_MODE_UNIQUE_OPEN - PARAMETER (MPI_MODE_UNIQUE_OPEN=32) - INTEGER MPI_MODE_CREATE - PARAMETER (MPI_MODE_CREATE=1) - INTEGER MPI_MODE_EXCL - PARAMETER (MPI_MODE_EXCL=64) - INTEGER MPI_MODE_APPEND - PARAMETER (MPI_MODE_APPEND=128) - INTEGER MPI_MODE_SEQUENTIAL - PARAMETER (MPI_MODE_SEQUENTIAL=256) - INTEGER MPI_SEEK_SET - PARAMETER (MPI_SEEK_SET=600) - INTEGER MPI_SEEK_CUR - PARAMETER (MPI_SEEK_CUR=602) - INTEGER MPI_SEEK_END - PARAMETER (MPI_SEEK_END=604) - INTEGER MPI_ORDER_C - PARAMETER (MPI_ORDER_C=56) - INTEGER MPI_ORDER_FORTRAN - PARAMETER (MPI_ORDER_FORTRAN=57) - INTEGER MPI_DISTRIBUTE_BLOCK - PARAMETER (MPI_DISTRIBUTE_BLOCK=121) - INTEGER MPI_DISTRIBUTE_CYCLIC - PARAMETER (MPI_DISTRIBUTE_CYCLIC=122) - INTEGER MPI_DISTRIBUTE_NONE - PARAMETER (MPI_DISTRIBUTE_NONE=123) - INTEGER MPI_DISTRIBUTE_DFLT_DARG - PARAMETER (MPI_DISTRIBUTE_DFLT_DARG=-49767) - INTEGER (KIND=8) MPI_DISPLACEMENT_CURRENT - PARAMETER (MPI_DISPLACEMENT_CURRENT=-54278278) - INTEGER MPI_BOTTOM, MPI_IN_PLACE - INTEGER MPI_UNWEIGHTED, MPI_WEIGHTS_EMPTY - EXTERNAL MPI_DUP_FN, MPI_NULL_DELETE_FN, MPI_NULL_COPY_FN - EXTERNAL MPI_WTIME, MPI_WTICK - EXTERNAL PMPI_WTIME, PMPI_WTICK - EXTERNAL MPI_COMM_DUP_FN, MPI_COMM_NULL_DELETE_FN - EXTERNAL MPI_COMM_NULL_COPY_FN - EXTERNAL MPI_WIN_DUP_FN, MPI_WIN_NULL_DELETE_FN - EXTERNAL MPI_WIN_NULL_COPY_FN - EXTERNAL MPI_TYPE_DUP_FN, MPI_TYPE_NULL_DELETE_FN - EXTERNAL MPI_TYPE_NULL_COPY_FN - EXTERNAL MPI_CONVERSION_FN_NULL - DOUBLE PRECISION MPI_WTIME, MPI_WTICK - DOUBLE PRECISION PMPI_WTIME, PMPI_WTICK - - COMMON /MPIPRIV1/ MPI_BOTTOM, MPI_IN_PLACE, MPI_STATUS_IGNORE - - COMMON /MPIPRIV2/ MPI_STATUSES_IGNORE, MPI_ERRCODES_IGNORE -!DEC$ ATTRIBUTES DLLIMPORT :: /MPIPRIV1/, /MPIPRIV2/ - - COMMON /MPIFCMB5/ MPI_UNWEIGHTED - COMMON /MPIFCMB9/ MPI_WEIGHTS_EMPTY -!DEC$ ATTRIBUTES DLLIMPORT :: /MPIFCMB5/, /MPIFCMB9/ - - COMMON /MPIPRIVC/ MPI_ARGVS_NULL, MPI_ARGV_NULL -!DEC$ ATTRIBUTES DLLIMPORT :: /MPIPRIVC/ +! /* -*- Mode: Fortran; -*- */ +! +! Copyright (c) Microsoft Corporation. All rights reserved. +! Licensed under the MIT License. +! +! (C) 2001 by Argonne National Laboratory. +! (C) 2015 by Microsoft Corporation +! +! MPICH COPYRIGHT +! +! The following is a notice of limited availability of the code, and disclaimer +! which must be included in the prologue of the code and in all source listings +! of the code. +! +! Copyright Notice +! + 2002 University of Chicago +! +! Permission is hereby granted to use, reproduce, prepare derivative works, and +! to redistribute to others. This software was authored by: +! +! Mathematics and Computer Science Division +! Argonne National Laboratory, Argonne IL 60439 +! +! (and) +! +! Department of Computer Science +! University of Illinois at Urbana-Champaign +! +! +! GOVERNMENT LICENSE +! +! Portions of this material resulted from work developed under a U.S. +! Government Contract and are subject to the following license: the Government +! is granted for itself and others acting on its behalf a paid-up, nonexclusive, +! irrevocable worldwide license in this computer software to reproduce, prepare +! derivative works, and perform publicly and display publicly. +! +! DISCLAIMER +! +! This computer code material was prepared, in part, as an account of work +! sponsored by an agency of the United States Government. Neither the United +! States, nor the University of Chicago, nor any of their employees, makes any +! warranty express or implied, or assumes any legal liability or responsibility +! for the accuracy, completeness, or usefulness of any information, apparatus, +! product, or process disclosed, or represents that its use would not infringe +! privately owned rights. +! +! + INTEGER MPI_SOURCE, MPI_TAG, MPI_ERROR + PARAMETER (MPI_SOURCE=3,MPI_TAG=4,MPI_ERROR=5) + INTEGER MPI_STATUS_SIZE + PARAMETER (MPI_STATUS_SIZE=5) + INTEGER MPI_STATUS_IGNORE(MPI_STATUS_SIZE) + INTEGER MPI_STATUSES_IGNORE(MPI_STATUS_SIZE,1) + INTEGER MPI_ERRCODES_IGNORE(1) + CHARACTER*1 MPI_ARGVS_NULL(1,1) + CHARACTER*1 MPI_ARGV_NULL(1) + INTEGER MPI_SUCCESS + PARAMETER (MPI_SUCCESS=0) + INTEGER MPI_ERR_OTHER + PARAMETER (MPI_ERR_OTHER=15) + INTEGER MPI_ERR_WIN + PARAMETER (MPI_ERR_WIN=45) + INTEGER MPI_ERR_FILE + PARAMETER (MPI_ERR_FILE=27) + INTEGER MPI_ERR_COUNT + PARAMETER (MPI_ERR_COUNT=2) + INTEGER MPI_ERR_SPAWN + PARAMETER (MPI_ERR_SPAWN=42) + INTEGER MPI_ERR_BASE + PARAMETER (MPI_ERR_BASE=46) + INTEGER MPI_ERR_RMA_CONFLICT + PARAMETER (MPI_ERR_RMA_CONFLICT=49) + INTEGER MPI_ERR_IN_STATUS + PARAMETER (MPI_ERR_IN_STATUS=17) + INTEGER MPI_ERR_INFO_KEY + PARAMETER (MPI_ERR_INFO_KEY=29) + INTEGER MPI_ERR_LOCKTYPE + PARAMETER (MPI_ERR_LOCKTYPE=47) + INTEGER MPI_ERR_OP + PARAMETER (MPI_ERR_OP=9) + INTEGER MPI_ERR_ARG + PARAMETER (MPI_ERR_ARG=12) + INTEGER MPI_ERR_READ_ONLY + PARAMETER (MPI_ERR_READ_ONLY=40) + INTEGER MPI_ERR_SIZE + PARAMETER (MPI_ERR_SIZE=51) + INTEGER MPI_ERR_BUFFER + PARAMETER (MPI_ERR_BUFFER=1) + INTEGER MPI_ERR_DUP_DATAREP + PARAMETER (MPI_ERR_DUP_DATAREP=24) + INTEGER MPI_ERR_UNSUPPORTED_DATAREP + PARAMETER (MPI_ERR_UNSUPPORTED_DATAREP=43) + INTEGER MPI_ERR_LASTCODE + PARAMETER (MPI_ERR_LASTCODE=1073741823) + INTEGER MPI_ERR_TRUNCATE + PARAMETER (MPI_ERR_TRUNCATE=14) + INTEGER MPI_ERR_DISP + PARAMETER (MPI_ERR_DISP=52) + INTEGER MPI_ERR_PORT + PARAMETER (MPI_ERR_PORT=38) + INTEGER MPI_ERR_INFO_NOKEY + PARAMETER (MPI_ERR_INFO_NOKEY=31) + INTEGER MPI_ERR_ASSERT + PARAMETER (MPI_ERR_ASSERT=53) + INTEGER MPI_ERR_FILE_EXISTS + PARAMETER (MPI_ERR_FILE_EXISTS=25) + INTEGER MPI_ERR_PENDING + PARAMETER (MPI_ERR_PENDING=18) + INTEGER MPI_ERR_COMM + PARAMETER (MPI_ERR_COMM=5) + INTEGER MPI_ERR_KEYVAL + PARAMETER (MPI_ERR_KEYVAL=48) + INTEGER MPI_ERR_NAME + PARAMETER (MPI_ERR_NAME=33) + INTEGER MPI_ERR_REQUEST + PARAMETER (MPI_ERR_REQUEST=19) + INTEGER MPI_ERR_GROUP + PARAMETER (MPI_ERR_GROUP=8) + INTEGER MPI_ERR_TOPOLOGY + PARAMETER (MPI_ERR_TOPOLOGY=10) + INTEGER MPI_ERR_TYPE + PARAMETER (MPI_ERR_TYPE=3) + INTEGER MPI_ERR_TAG + PARAMETER (MPI_ERR_TAG=4) + INTEGER MPI_ERR_INFO_VALUE + PARAMETER (MPI_ERR_INFO_VALUE=30) + INTEGER MPI_ERR_NOT_SAME + PARAMETER (MPI_ERR_NOT_SAME=35) + INTEGER MPI_ERR_RMA_SYNC + PARAMETER (MPI_ERR_RMA_SYNC=50) + INTEGER MPI_ERR_INFO + PARAMETER (MPI_ERR_INFO=28) + INTEGER MPI_ERR_NO_MEM + PARAMETER (MPI_ERR_NO_MEM=34) + INTEGER MPI_ERR_BAD_FILE + PARAMETER (MPI_ERR_BAD_FILE=22) + INTEGER MPI_ERR_FILE_IN_USE + PARAMETER (MPI_ERR_FILE_IN_USE=26) + INTEGER MPI_ERR_UNKNOWN + PARAMETER (MPI_ERR_UNKNOWN=13) + INTEGER MPI_ERR_UNSUPPORTED_OPERATION + PARAMETER (MPI_ERR_UNSUPPORTED_OPERATION=44) + INTEGER MPI_ERR_QUOTA + PARAMETER (MPI_ERR_QUOTA=39) + INTEGER MPI_ERR_AMODE + PARAMETER (MPI_ERR_AMODE=21) + INTEGER MPI_ERR_ROOT + PARAMETER (MPI_ERR_ROOT=7) + INTEGER MPI_ERR_RANK + PARAMETER (MPI_ERR_RANK=6) + INTEGER MPI_ERR_DIMS + PARAMETER (MPI_ERR_DIMS=11) + INTEGER MPI_ERR_NO_SUCH_FILE + PARAMETER (MPI_ERR_NO_SUCH_FILE=37) + INTEGER MPI_ERR_SERVICE + PARAMETER (MPI_ERR_SERVICE=41) + INTEGER MPI_ERR_INTERN + PARAMETER (MPI_ERR_INTERN=16) + INTEGER MPI_ERR_IO + PARAMETER (MPI_ERR_IO=32) + INTEGER MPI_ERR_ACCESS + PARAMETER (MPI_ERR_ACCESS=20) + INTEGER MPI_ERR_NO_SPACE + PARAMETER (MPI_ERR_NO_SPACE=36) + INTEGER MPI_ERR_CONVERSION + PARAMETER (MPI_ERR_CONVERSION=23) + INTEGER MPI_ERRORS_ARE_FATAL + PARAMETER (MPI_ERRORS_ARE_FATAL=1409286144) + INTEGER MPI_ERRORS_RETURN + PARAMETER (MPI_ERRORS_RETURN=1409286145) + INTEGER MPI_IDENT + PARAMETER (MPI_IDENT=0) + INTEGER MPI_CONGRUENT + PARAMETER (MPI_CONGRUENT=1) + INTEGER MPI_SIMILAR + PARAMETER (MPI_SIMILAR=2) + INTEGER MPI_UNEQUAL + PARAMETER (MPI_UNEQUAL=3) + INTEGER MPI_MAX + PARAMETER (MPI_MAX=1476395009) + INTEGER MPI_MIN + PARAMETER (MPI_MIN=1476395010) + INTEGER MPI_SUM + PARAMETER (MPI_SUM=1476395011) + INTEGER MPI_PROD + PARAMETER (MPI_PROD=1476395012) + INTEGER MPI_LAND + PARAMETER (MPI_LAND=1476395013) + INTEGER MPI_BAND + PARAMETER (MPI_BAND=1476395014) + INTEGER MPI_LOR + PARAMETER (MPI_LOR=1476395015) + INTEGER MPI_BOR + PARAMETER (MPI_BOR=1476395016) + INTEGER MPI_LXOR + PARAMETER (MPI_LXOR=1476395017) + INTEGER MPI_BXOR + PARAMETER (MPI_BXOR=1476395018) + INTEGER MPI_MINLOC + PARAMETER (MPI_MINLOC=1476395019) + INTEGER MPI_MAXLOC + PARAMETER (MPI_MAXLOC=1476395020) + INTEGER MPI_REPLACE + PARAMETER (MPI_REPLACE=1476395021) + INTEGER MPI_NO_OP + PARAMETER (MPI_NO_OP=1476395022) + INTEGER MPI_COMM_WORLD + PARAMETER (MPI_COMM_WORLD=1140850688) + INTEGER MPI_COMM_SELF + PARAMETER (MPI_COMM_SELF=1140850689) + INTEGER MPI_COMM_TYPE_SHARED + PARAMETER (MPI_COMM_TYPE_SHARED=1) + INTEGER MPI_GROUP_EMPTY + PARAMETER (MPI_GROUP_EMPTY=1207959552) + INTEGER MPI_COMM_NULL + PARAMETER (MPI_COMM_NULL=67108864) + INTEGER MPI_WIN_NULL + PARAMETER (MPI_WIN_NULL=536870912) + INTEGER MPI_FILE_NULL + PARAMETER (MPI_FILE_NULL=0) + INTEGER MPI_GROUP_NULL + PARAMETER (MPI_GROUP_NULL=134217728) + INTEGER MPI_OP_NULL + PARAMETER (MPI_OP_NULL=402653184) + INTEGER MPI_DATATYPE_NULL + PARAMETER (MPI_DATATYPE_NULL=z'0c000000') + INTEGER MPI_REQUEST_NULL + PARAMETER (MPI_REQUEST_NULL=738197504) + INTEGER MPI_ERRHANDLER_NULL + PARAMETER (MPI_ERRHANDLER_NULL=335544320) + INTEGER MPI_INFO_NULL + PARAMETER (MPI_INFO_NULL=469762048) + INTEGER MPI_MESSAGE_NULL + PARAMETER (MPI_MESSAGE_NULL=805306368) + INTEGER MPI_MESSAGE_NO_PROC + PARAMETER (MPI_MESSAGE_NO_PROC=1879048192) + INTEGER MPI_TAG_UB + PARAMETER (MPI_TAG_UB=1681915906) + INTEGER MPI_HOST + PARAMETER (MPI_HOST=1681915908) + INTEGER MPI_IO + PARAMETER (MPI_IO=1681915910) + INTEGER MPI_WTIME_IS_GLOBAL + PARAMETER (MPI_WTIME_IS_GLOBAL=1681915912) + INTEGER MPI_UNIVERSE_SIZE + PARAMETER (MPI_UNIVERSE_SIZE=1681915914) + INTEGER MPI_LASTUSEDCODE + PARAMETER (MPI_LASTUSEDCODE=1681915916) + INTEGER MPI_APPNUM + PARAMETER (MPI_APPNUM=1681915918) + INTEGER MPI_WIN_BASE + PARAMETER (MPI_WIN_BASE=1711276034) + INTEGER MPI_WIN_SIZE + PARAMETER (MPI_WIN_SIZE=1711276036) + INTEGER MPI_WIN_DISP_UNIT + PARAMETER (MPI_WIN_DISP_UNIT=1711276038) + INTEGER MPI_MAX_ERROR_STRING + PARAMETER (MPI_MAX_ERROR_STRING=511) + INTEGER MPI_MAX_PORT_NAME + PARAMETER (MPI_MAX_PORT_NAME=255) + INTEGER MPI_MAX_OBJECT_NAME + PARAMETER (MPI_MAX_OBJECT_NAME=127) + INTEGER MPI_MAX_INFO_KEY + PARAMETER (MPI_MAX_INFO_KEY=254) + INTEGER MPI_MAX_INFO_VAL + PARAMETER (MPI_MAX_INFO_VAL=1023) + INTEGER MPI_MAX_PROCESSOR_NAME + PARAMETER (MPI_MAX_PROCESSOR_NAME=128-1) + INTEGER MPI_MAX_DATAREP_STRING + PARAMETER (MPI_MAX_DATAREP_STRING=127) + INTEGER MPI_MAX_LIBRARY_VERSION_STRING + PARAMETER (MPI_MAX_LIBRARY_VERSION_STRING=64-1) + INTEGER MPI_UNDEFINED + PARAMETER (MPI_UNDEFINED=(-32766)) + INTEGER MPI_KEYVAL_INVALID + PARAMETER (MPI_KEYVAL_INVALID=603979776) + INTEGER MPI_BSEND_OVERHEAD + PARAMETER (MPI_BSEND_OVERHEAD=(95)) + INTEGER MPI_PROC_NULL + PARAMETER (MPI_PROC_NULL=-1) + INTEGER MPI_ANY_SOURCE + PARAMETER (MPI_ANY_SOURCE=-2) + INTEGER MPI_ANY_TAG + PARAMETER (MPI_ANY_TAG=-1) + INTEGER MPI_ROOT + PARAMETER (MPI_ROOT=-3) + INTEGER MPI_GRAPH + PARAMETER (MPI_GRAPH=1) + INTEGER MPI_CART + PARAMETER (MPI_CART=2) + INTEGER MPI_DIST_GRAPH + PARAMETER (MPI_DIST_GRAPH=3) + INTEGER MPI_VERSION + PARAMETER (MPI_VERSION=2) + INTEGER MPI_SUBVERSION + PARAMETER (MPI_SUBVERSION=0) + INTEGER MPI_LOCK_EXCLUSIVE + PARAMETER (MPI_LOCK_EXCLUSIVE=234) + INTEGER MPI_LOCK_SHARED + PARAMETER (MPI_LOCK_SHARED=235) + INTEGER MPI_CHAR + PARAMETER (MPI_CHAR=z'4c000101') + INTEGER MPI_UNSIGNED_CHAR + PARAMETER (MPI_UNSIGNED_CHAR=z'4c000102') + INTEGER MPI_SHORT + PARAMETER (MPI_SHORT=z'4c000203') + INTEGER MPI_UNSIGNED_SHORT + PARAMETER (MPI_UNSIGNED_SHORT=z'4c000204') + INTEGER MPI_INT + PARAMETER (MPI_INT=z'4c000405') + INTEGER MPI_UNSIGNED + PARAMETER (MPI_UNSIGNED=z'4c000406') + INTEGER MPI_LONG + PARAMETER (MPI_LONG=z'4c000407') + INTEGER MPI_UNSIGNED_LONG + PARAMETER (MPI_UNSIGNED_LONG=z'4c000408') + INTEGER MPI_LONG_LONG + PARAMETER (MPI_LONG_LONG=z'4c000809') + INTEGER MPI_LONG_LONG_INT + PARAMETER (MPI_LONG_LONG_INT=z'4c000809') + INTEGER MPI_FLOAT + PARAMETER (MPI_FLOAT=z'4c00040a') + INTEGER MPI_DOUBLE + PARAMETER (MPI_DOUBLE=z'4c00080b') + INTEGER MPI_LONG_DOUBLE + PARAMETER (MPI_LONG_DOUBLE=z'4c00080c') + INTEGER MPI_BYTE + PARAMETER (MPI_BYTE=z'4c00010d') + INTEGER MPI_WCHAR + PARAMETER (MPI_WCHAR=z'4c00020e') + INTEGER MPI_PACKED + PARAMETER (MPI_PACKED=z'4c00010f') + INTEGER MPI_LB + PARAMETER (MPI_LB=z'4c000010') + INTEGER MPI_UB + PARAMETER (MPI_UB=z'4c000011') + INTEGER MPI_2INT + PARAMETER (MPI_2INT=z'4c000816') + INTEGER MPI_SIGNED_CHAR + PARAMETER (MPI_SIGNED_CHAR=z'4c000118') + INTEGER MPI_UNSIGNED_LONG_LONG + PARAMETER (MPI_UNSIGNED_LONG_LONG=z'4c000819') + INTEGER MPI_CHARACTER + PARAMETER (MPI_CHARACTER=z'4c00011a') + INTEGER MPI_INTEGER + PARAMETER (MPI_INTEGER=z'4c00041b') + INTEGER MPI_REAL + PARAMETER (MPI_REAL=z'4c00041c') + INTEGER MPI_LOGICAL + PARAMETER (MPI_LOGICAL=z'4c00041d') + INTEGER MPI_COMPLEX + PARAMETER (MPI_COMPLEX=z'4c00081e') + INTEGER MPI_DOUBLE_PRECISION + PARAMETER (MPI_DOUBLE_PRECISION=z'4c00081f') + INTEGER MPI_2INTEGER + PARAMETER (MPI_2INTEGER=z'4c000820') + INTEGER MPI_2REAL + PARAMETER (MPI_2REAL=z'4c000821') + INTEGER MPI_DOUBLE_COMPLEX + PARAMETER (MPI_DOUBLE_COMPLEX=z'4c001022') + INTEGER MPI_2DOUBLE_PRECISION + PARAMETER (MPI_2DOUBLE_PRECISION=z'4c001023') + INTEGER MPI_2COMPLEX + PARAMETER (MPI_2COMPLEX=z'4c001024') + INTEGER MPI_2DOUBLE_COMPLEX + PARAMETER (MPI_2DOUBLE_COMPLEX=z'4c002025') + INTEGER MPI_REAL2 + PARAMETER (MPI_REAL2=z'0c000000') + INTEGER MPI_REAL4 + PARAMETER (MPI_REAL4=z'4c000427') + INTEGER MPI_COMPLEX8 + PARAMETER (MPI_COMPLEX8=z'4c000828') + INTEGER MPI_REAL8 + PARAMETER (MPI_REAL8=z'4c000829') + INTEGER MPI_COMPLEX16 + PARAMETER (MPI_COMPLEX16=z'4c00102a') + INTEGER MPI_REAL16 + PARAMETER (MPI_REAL16=z'0c000000') + INTEGER MPI_COMPLEX32 + PARAMETER (MPI_COMPLEX32=z'0c000000') + INTEGER MPI_INTEGER1 + PARAMETER (MPI_INTEGER1=z'4c00012d') + INTEGER MPI_COMPLEX4 + PARAMETER (MPI_COMPLEX4=z'0c000000') + INTEGER MPI_INTEGER2 + PARAMETER (MPI_INTEGER2=z'4c00022f') + INTEGER MPI_INTEGER4 + PARAMETER (MPI_INTEGER4=z'4c000430') + INTEGER MPI_INTEGER8 + PARAMETER (MPI_INTEGER8=z'4c000831') + INTEGER MPI_INTEGER16 + PARAMETER (MPI_INTEGER16=z'0c000000') + + INCLUDE 'mpifptr.h' + + INTEGER MPI_OFFSET + PARAMETER (MPI_OFFSET=z'4c00083c') + INTEGER MPI_COUNT + PARAMETER (MPI_COUNT=z'4c00083d') + INTEGER MPI_FLOAT_INT + PARAMETER (MPI_FLOAT_INT=-1946157056) + INTEGER MPI_DOUBLE_INT + PARAMETER (MPI_DOUBLE_INT=-1946157055) + INTEGER MPI_LONG_INT + PARAMETER (MPI_LONG_INT=-1946157054) + INTEGER MPI_SHORT_INT + PARAMETER (MPI_SHORT_INT=-1946157053) + INTEGER MPI_LONG_DOUBLE_INT + PARAMETER (MPI_LONG_DOUBLE_INT=-1946157052) + INTEGER MPI_INTEGER_KIND + PARAMETER (MPI_INTEGER_KIND=4) + INTEGER MPI_OFFSET_KIND + PARAMETER (MPI_OFFSET_KIND=8) + INTEGER MPI_COUNT_KIND + PARAMETER (MPI_COUNT_KIND=8) + INTEGER MPI_COMBINER_NAMED + PARAMETER (MPI_COMBINER_NAMED=1) + INTEGER MPI_COMBINER_DUP + PARAMETER (MPI_COMBINER_DUP=2) + INTEGER MPI_COMBINER_CONTIGUOUS + PARAMETER (MPI_COMBINER_CONTIGUOUS=3) + INTEGER MPI_COMBINER_VECTOR + PARAMETER (MPI_COMBINER_VECTOR=4) + INTEGER MPI_COMBINER_HVECTOR_INTEGER + PARAMETER (MPI_COMBINER_HVECTOR_INTEGER=5) + INTEGER MPI_COMBINER_HVECTOR + PARAMETER (MPI_COMBINER_HVECTOR=6) + INTEGER MPI_COMBINER_INDEXED + PARAMETER (MPI_COMBINER_INDEXED=7) + INTEGER MPI_COMBINER_HINDEXED_INTEGER + PARAMETER (MPI_COMBINER_HINDEXED_INTEGER=8) + INTEGER MPI_COMBINER_HINDEXED + PARAMETER (MPI_COMBINER_HINDEXED=9) + INTEGER MPI_COMBINER_INDEXED_BLOCK + PARAMETER (MPI_COMBINER_INDEXED_BLOCK=10) + INTEGER MPI_COMBINER_STRUCT_INTEGER + PARAMETER (MPI_COMBINER_STRUCT_INTEGER=11) + INTEGER MPI_COMBINER_STRUCT + PARAMETER (MPI_COMBINER_STRUCT=12) + INTEGER MPI_COMBINER_SUBARRAY + PARAMETER (MPI_COMBINER_SUBARRAY=13) + INTEGER MPI_COMBINER_DARRAY + PARAMETER (MPI_COMBINER_DARRAY=14) + INTEGER MPI_COMBINER_F90_REAL + PARAMETER (MPI_COMBINER_F90_REAL=15) + INTEGER MPI_COMBINER_F90_COMPLEX + PARAMETER (MPI_COMBINER_F90_COMPLEX=16) + INTEGER MPI_COMBINER_F90_INTEGER + PARAMETER (MPI_COMBINER_F90_INTEGER=17) + INTEGER MPI_COMBINER_RESIZED + PARAMETER (MPI_COMBINER_RESIZED=18) + INTEGER MPI_COMBINER_HINDEXED_BLOCK + PARAMETER (MPI_COMBINER_HINDEXED_BLOCK=19) + INTEGER MPI_MODE_NOCHECK + PARAMETER (MPI_MODE_NOCHECK=1024) + INTEGER MPI_MODE_NOSTORE + PARAMETER (MPI_MODE_NOSTORE=2048) + INTEGER MPI_MODE_NOPUT + PARAMETER (MPI_MODE_NOPUT=4096) + INTEGER MPI_MODE_NOPRECEDE + PARAMETER (MPI_MODE_NOPRECEDE=8192) + INTEGER MPI_MODE_NOSUCCEED + PARAMETER (MPI_MODE_NOSUCCEED=16384) + INTEGER MPI_THREAD_SINGLE + PARAMETER (MPI_THREAD_SINGLE=0) + INTEGER MPI_THREAD_FUNNELED + PARAMETER (MPI_THREAD_FUNNELED=1) + INTEGER MPI_THREAD_SERIALIZED + PARAMETER (MPI_THREAD_SERIALIZED=2) + INTEGER MPI_THREAD_MULTIPLE + PARAMETER (MPI_THREAD_MULTIPLE=3) + INTEGER MPI_MODE_RDONLY + PARAMETER (MPI_MODE_RDONLY=2) + INTEGER MPI_MODE_RDWR + PARAMETER (MPI_MODE_RDWR=8) + INTEGER MPI_MODE_WRONLY + PARAMETER (MPI_MODE_WRONLY=4) + INTEGER MPI_MODE_DELETE_ON_CLOSE + PARAMETER (MPI_MODE_DELETE_ON_CLOSE=16) + INTEGER MPI_MODE_UNIQUE_OPEN + PARAMETER (MPI_MODE_UNIQUE_OPEN=32) + INTEGER MPI_MODE_CREATE + PARAMETER (MPI_MODE_CREATE=1) + INTEGER MPI_MODE_EXCL + PARAMETER (MPI_MODE_EXCL=64) + INTEGER MPI_MODE_APPEND + PARAMETER (MPI_MODE_APPEND=128) + INTEGER MPI_MODE_SEQUENTIAL + PARAMETER (MPI_MODE_SEQUENTIAL=256) + INTEGER MPI_SEEK_SET + PARAMETER (MPI_SEEK_SET=600) + INTEGER MPI_SEEK_CUR + PARAMETER (MPI_SEEK_CUR=602) + INTEGER MPI_SEEK_END + PARAMETER (MPI_SEEK_END=604) + INTEGER MPI_ORDER_C + PARAMETER (MPI_ORDER_C=56) + INTEGER MPI_ORDER_FORTRAN + PARAMETER (MPI_ORDER_FORTRAN=57) + INTEGER MPI_DISTRIBUTE_BLOCK + PARAMETER (MPI_DISTRIBUTE_BLOCK=121) + INTEGER MPI_DISTRIBUTE_CYCLIC + PARAMETER (MPI_DISTRIBUTE_CYCLIC=122) + INTEGER MPI_DISTRIBUTE_NONE + PARAMETER (MPI_DISTRIBUTE_NONE=123) + INTEGER MPI_DISTRIBUTE_DFLT_DARG + PARAMETER (MPI_DISTRIBUTE_DFLT_DARG=-49767) + INTEGER (KIND=8) MPI_DISPLACEMENT_CURRENT + PARAMETER (MPI_DISPLACEMENT_CURRENT=-54278278) + INTEGER MPI_BOTTOM, MPI_IN_PLACE + INTEGER MPI_UNWEIGHTED, MPI_WEIGHTS_EMPTY + EXTERNAL MPI_DUP_FN, MPI_NULL_DELETE_FN, MPI_NULL_COPY_FN + EXTERNAL MPI_WTIME, MPI_WTICK + EXTERNAL PMPI_WTIME, PMPI_WTICK + EXTERNAL MPI_COMM_DUP_FN, MPI_COMM_NULL_DELETE_FN + EXTERNAL MPI_COMM_NULL_COPY_FN + EXTERNAL MPI_WIN_DUP_FN, MPI_WIN_NULL_DELETE_FN + EXTERNAL MPI_WIN_NULL_COPY_FN + EXTERNAL MPI_TYPE_DUP_FN, MPI_TYPE_NULL_DELETE_FN + EXTERNAL MPI_TYPE_NULL_COPY_FN + EXTERNAL MPI_CONVERSION_FN_NULL + DOUBLE PRECISION MPI_WTIME, MPI_WTICK + DOUBLE PRECISION PMPI_WTIME, PMPI_WTICK + + COMMON /MPIPRIV1/ MPI_BOTTOM, MPI_IN_PLACE, MPI_STATUS_IGNORE + + COMMON /MPIPRIV2/ MPI_STATUSES_IGNORE, MPI_ERRCODES_IGNORE +!DEC$ ATTRIBUTES DLLIMPORT :: /MPIPRIV1/, /MPIPRIV2/ + + COMMON /MPIFCMB5/ MPI_UNWEIGHTED + COMMON /MPIFCMB9/ MPI_WEIGHTS_EMPTY +!DEC$ ATTRIBUTES DLLIMPORT :: /MPIFCMB5/, /MPIFCMB9/ + + COMMON /MPIPRIVC/ MPI_ARGVS_NULL, MPI_ARGV_NULL +!DEC$ ATTRIBUTES DLLIMPORT :: /MPIPRIVC/ diff --git a/deps/msmpi-10.1.2/sdk/mpifptr.h.i686 b/deps/msmpi-10.1.3/sdk/mpifptr.h.i686 similarity index 96% rename from deps/msmpi-10.1.2/sdk/mpifptr.h.i686 rename to deps/msmpi-10.1.3/sdk/mpifptr.h.i686 index 1028a1d3920ee7a97e20bf33da1ed8cde6ab1eb3..761c1e9008b136a7347fdb8c305671b091f72d33 100644 --- a/deps/msmpi-10.1.2/sdk/mpifptr.h.i686 +++ b/deps/msmpi-10.1.3/sdk/mpifptr.h.i686 @@ -1,9 +1,9 @@ -! -*- Mode: F77; F90; -*- -! -! Copyright(c) Microsoft Corporation.All rights reserved. -! Licensed under the MIT License. -! - INTEGER MPI_AINT - PARAMETER (MPI_AINT=z'4c00043b') - INTEGER MPI_ADDRESS_KIND - PARAMETER(MPI_ADDRESS_KIND = 4) +! -*- Mode: F77; F90; -*- +! +! Copyright(c) Microsoft Corporation.All rights reserved. +! Licensed under the MIT License. +! + INTEGER MPI_AINT + PARAMETER (MPI_AINT=z'4c00043b') + INTEGER MPI_ADDRESS_KIND + PARAMETER(MPI_ADDRESS_KIND = 4) diff --git a/deps/msmpi-10.1.2/sdk/mpifptr.h.x86_64 b/deps/msmpi-10.1.3/sdk/mpifptr.h.x86_64 similarity index 96% rename from deps/msmpi-10.1.2/sdk/mpifptr.h.x86_64 rename to deps/msmpi-10.1.3/sdk/mpifptr.h.x86_64 index 1d4a2888e1c049e6f486bc68fc60830d73bedf02..41fa995afa97eb73088d4030845ac74d758306c0 100644 --- a/deps/msmpi-10.1.2/sdk/mpifptr.h.x86_64 +++ b/deps/msmpi-10.1.3/sdk/mpifptr.h.x86_64 @@ -1,9 +1,9 @@ -! -*- Mode: F77; F90; -*- -! -! Copyright(c) Microsoft Corporation.All rights reserved. -! Licensed under the MIT License. -! - INTEGER MPI_AINT - PARAMETER (MPI_AINT=z'4c00083b') - INTEGER MPI_ADDRESS_KIND - PARAMETER(MPI_ADDRESS_KIND = 8) +! -*- Mode: F77; F90; -*- +! +! Copyright(c) Microsoft Corporation.All rights reserved. +! Licensed under the MIT License. +! + INTEGER MPI_AINT + PARAMETER (MPI_AINT=z'4c00083b') + INTEGER MPI_ADDRESS_KIND + PARAMETER(MPI_ADDRESS_KIND = 8) diff --git a/deps/msmpi-10.1.2/sdk/msmpi.def.i686 b/deps/msmpi-10.1.3/sdk/msmpi.def.i686 similarity index 95% rename from deps/msmpi-10.1.2/sdk/msmpi.def.i686 rename to deps/msmpi-10.1.3/sdk/msmpi.def.i686 index eb1acb5220ac1f0b901fc695151a080de4b05c06..efb0fba86a1b0259423e04a2cb7a6215183f0c02 100644 --- a/deps/msmpi-10.1.2/sdk/msmpi.def.i686 +++ b/deps/msmpi-10.1.3/sdk/msmpi.def.i686 @@ -1,3657 +1,3657 @@ -; -; Definition file of msmpi.dll -; Automatic generated by gendef -; written by Kai Tietz 2008 -; -LIBRARY "msmpi.dll" -EXPORTS -MPIR_Sendq_head DATA -MSMPI_Get_pm_interface@8 -MSMPI_pm_query_interface@8 -mqs_image_has_queues@8 -mqs_process_has_queues@8 -MPIFCMB5 DATA -MPIFCMB9 DATA -MPIPRIV1 DATA -MPIPRIV2 DATA -MPIPRIVC DATA -MPIR_All_communicators DATA -MPIR_Comm_errhandler_set_proxy@8 -MPIR_Dup_fn@24 -MPIR_Error@8 -MPIR_File_errhandler_set_proxy@8 -MPIR_Free@4 -MPIR_Grequest_set_proxy@16 -MPIR_Keyval_set_proxy@12 -MPIR_Malloc@4 -MPIR_Op_set_proxy@8 -MPIR_Win_errhandler_set_proxy@8 -MPIR_debug_gate DATA -MPIR_dll_name DATA -MPI_ABORT -MPI_ACCUMULATE -MPI_ADDRESS -MPI_ADD_ERROR_CLASS -MPI_ADD_ERROR_CODE -MPI_ADD_ERROR_STRING -MPI_AINT_ADD -MPI_AINT_DIFF -MPI_ALLGATHER -MPI_ALLGATHERV -MPI_ALLOC_MEM -MPI_ALLREDUCE -MPI_ALLTOALL -MPI_ALLTOALLV -MPI_ALLTOALLW -MPI_ATTR_DELETE -MPI_ATTR_GET -MPI_ATTR_PUT -MPI_Abort@8 -MPI_Accumulate@36 -MPI_Add_error_class@4 -MPI_Add_error_code@8 -MPI_Add_error_string@8 -MPI_Address@8 -MPI_Aint_add@8 -MPI_Aint_diff@8 -MPI_Allgather@28 -MPI_Allgatherv@32 -MPI_Alloc_mem@12 -MPI_Allreduce@24 -MPI_Alltoall@28 -MPI_Alltoallv@36 -MPI_Alltoallw@36 -MPI_Attr_delete@8 -MPI_Attr_get@16 -MPI_Attr_put@12 -MPI_BARRIER -MPI_BCAST -MPI_BSEND -MPI_BSEND_INIT -MPI_BUFFER_ATTACH -MPI_BUFFER_DETACH -MPI_Barrier@4 -MPI_Bcast@20 -MPI_Bsend@24 -MPI_Bsend_init@28 -MPI_Buffer_attach@8 -MPI_Buffer_detach@8 -MPI_CANCEL -MPI_CARTDIM_GET -MPI_CART_COORDS -MPI_CART_CREATE -MPI_CART_GET -MPI_CART_MAP -MPI_CART_RANK -MPI_CART_SHIFT -MPI_CART_SUB -MPI_CLOSE_PORT -MPI_COMM_ACCEPT -MPI_COMM_CALL_ERRHANDLER -MPI_COMM_COMPARE -MPI_COMM_CONNECT -MPI_COMM_CREATE -MPI_COMM_CREATE_ERRHANDLER -MPI_COMM_CREATE_KEYVAL -MPI_COMM_DELETE_ATTR -MPI_COMM_DISCONNECT -MPI_COMM_DUP -MPI_COMM_DUP_FN -MPI_COMM_FREE -MPI_COMM_FREE_KEYVAL -MPI_COMM_GET_ATTR -MPI_COMM_GET_ERRHANDLER -MPI_COMM_GET_NAME -MPI_COMM_GET_PARENT -MPI_COMM_GROUP -MPI_COMM_JOIN -MPI_COMM_NULL_COPY_FN -MPI_COMM_NULL_DELETE_FN -MPI_COMM_RANK -MPI_COMM_REMOTE_GROUP -MPI_COMM_REMOTE_SIZE -MPI_COMM_SET_ATTR -MPI_COMM_SET_ERRHANDLER -MPI_COMM_SET_NAME -MPI_COMM_SIZE -MPI_COMM_SPAWN -MPI_COMM_SPAWN_MULTIPLE -MPI_COMM_SPLIT -MPI_COMM_SPLIT_TYPE -MPI_COMM_TEST_INTER -MPI_COMPARE_AND_SWAP -MPI_CONVERSION_FN_NULL -MPI_Cancel@4 -MPI_Cart_coords@16 -MPI_Cart_create@24 -MPI_Cart_get@20 -MPI_Cart_map@20 -MPI_Cart_rank@12 -MPI_Cart_shift@20 -MPI_Cart_sub@12 -MPI_Cartdim_get@8 -MPI_Close_port@4 -MPI_Comm_accept@20 -MPI_Comm_call_errhandler@8 -MPI_Comm_compare@12 -MPI_Comm_connect@20 -MPI_Comm_create@12 -MPI_Comm_create_errhandler@8 -MPI_Comm_create_keyval@16 -MPI_Comm_delete_attr@8 -MPI_Comm_disconnect@4 -MPI_Comm_dup@8 -MPI_Comm_free@4 -MPI_Comm_free_keyval@4 -MPI_Comm_get_attr@16 -MPI_Comm_get_errhandler@8 -MPI_Comm_get_name@12 -MPI_Comm_get_parent@4 -MPI_Comm_group@8 -MPI_Comm_join@8 -MPI_Comm_rank@8 -MPI_Comm_remote_group@8 -MPI_Comm_remote_size@8 -MPI_Comm_set_attr@12 -MPI_Comm_set_errhandler@8 -MPI_Comm_set_name@8 -MPI_Comm_size@8 -MPI_Comm_spawn@32 -MPI_Comm_spawn_multiple@36 -MPI_Comm_split@16 -MPI_Comm_split_type@20 -MPI_Comm_test_inter@8 -MPI_Compare_and_swap@28 -MPI_DIMS_CREATE -MPI_DIST_GRAPH_CREATE -MPI_DIST_GRAPH_CREATE_ADJACENT -MPI_DIST_GRAPH_NEIGHBORS -MPI_DIST_GRAPH_NEIGHBORS_COUNT -MPI_DUP_FN -MPI_Dims_create@12 -MPI_Dist_graph_create@36 -MPI_Dist_graph_create_adjacent@40 -MPI_Dist_graph_neighbors@28 -MPI_Dist_graph_neighbors_count@16 -MPI_ERRHANDLER_CREATE -MPI_ERRHANDLER_FREE -MPI_ERRHANDLER_GET -MPI_ERRHANDLER_SET -MPI_ERROR_CLASS -MPI_ERROR_STRING -MPI_EXSCAN -MPI_Errhandler_create@8 -MPI_Errhandler_free@4 -MPI_Errhandler_get@8 -MPI_Errhandler_set@8 -MPI_Error_class@8 -MPI_Error_string@12 -MPI_Exscan@24 -MPI_FETCH_AND_OP -MPI_FILE_CALL_ERRHANDLER -MPI_FILE_CLOSE -MPI_FILE_CREATE_ERRHANDLER -MPI_FILE_DELETE -MPI_FILE_GET_AMODE -MPI_FILE_GET_ATOMICITY -MPI_FILE_GET_BYTE_OFFSET -MPI_FILE_GET_ERRHANDLER -MPI_FILE_GET_GROUP -MPI_FILE_GET_INFO -MPI_FILE_GET_POSITION -MPI_FILE_GET_POSITION_SHARED -MPI_FILE_GET_SIZE -MPI_FILE_GET_TYPE_EXTENT -MPI_FILE_GET_VIEW -MPI_FILE_IREAD -MPI_FILE_IREAD_AT -MPI_FILE_IREAD_SHARED -MPI_FILE_IWRITE -MPI_FILE_IWRITE_AT -MPI_FILE_IWRITE_SHARED -MPI_FILE_OPEN -MPI_FILE_PREALLOCATE -MPI_FILE_READ -MPI_FILE_READ_ALL -MPI_FILE_READ_ALL_BEGIN -MPI_FILE_READ_ALL_END -MPI_FILE_READ_AT -MPI_FILE_READ_AT_ALL -MPI_FILE_READ_AT_ALL_BEGIN -MPI_FILE_READ_AT_ALL_END -MPI_FILE_READ_ORDERED -MPI_FILE_READ_ORDERED_BEGIN -MPI_FILE_READ_ORDERED_END -MPI_FILE_READ_SHARED -MPI_FILE_SEEK -MPI_FILE_SEEK_SHARED -MPI_FILE_SET_ATOMICITY -MPI_FILE_SET_ERRHANDLER -MPI_FILE_SET_INFO -MPI_FILE_SET_SIZE -MPI_FILE_SET_VIEW -MPI_FILE_SYNC -MPI_FILE_WRITE -MPI_FILE_WRITE_ALL -MPI_FILE_WRITE_ALL_BEGIN -MPI_FILE_WRITE_ALL_END -MPI_FILE_WRITE_AT -MPI_FILE_WRITE_AT_ALL -MPI_FILE_WRITE_AT_ALL_BEGIN -MPI_FILE_WRITE_AT_ALL_END -MPI_FILE_WRITE_ORDERED -MPI_FILE_WRITE_ORDERED_BEGIN -MPI_FILE_WRITE_ORDERED_END -MPI_FILE_WRITE_SHARED -MPI_FINALIZE -MPI_FINALIZED -MPI_FREE_MEM -MPI_F_STATUSES_IGNORE DATA -MPI_F_STATUS_IGNORE DATA -MPI_Fetch_and_op@28 -MPI_File_c2f@4 -MPI_File_call_errhandler@8 -MPI_File_close@4 -MPI_File_create_errhandler@8 -MPI_File_delete@8 -MPI_File_f2c@4 -MPI_File_get_amode@8 -MPI_File_get_atomicity@8 -MPI_File_get_byte_offset@16 -MPI_File_get_errhandler@8 -MPI_File_get_group@8 -MPI_File_get_info@8 -MPI_File_get_position@8 -MPI_File_get_position_shared@8 -MPI_File_get_size@8 -MPI_File_get_type_extent@12 -MPI_File_get_view@20 -MPI_File_iread@20 -MPI_File_iread_at@28 -MPI_File_iread_shared@20 -MPI_File_iwrite@20 -MPI_File_iwrite_at@28 -MPI_File_iwrite_shared@20 -MPI_File_open@20 -MPI_File_preallocate@12 -MPI_File_read@20 -MPI_File_read_all@20 -MPI_File_read_all_begin@16 -MPI_File_read_all_end@12 -MPI_File_read_at@28 -MPI_File_read_at_all@28 -MPI_File_read_at_all_begin@24 -MPI_File_read_at_all_end@12 -MPI_File_read_ordered@20 -MPI_File_read_ordered_begin@16 -MPI_File_read_ordered_end@12 -MPI_File_read_shared@20 -MPI_File_seek@16 -MPI_File_seek_shared@16 -MPI_File_set_atomicity@8 -MPI_File_set_errhandler@8 -MPI_File_set_info@8 -MPI_File_set_size@12 -MPI_File_set_view@28 -MPI_File_sync@4 -MPI_File_write@20 -MPI_File_write_all@20 -MPI_File_write_all_begin@16 -MPI_File_write_all_end@12 -MPI_File_write_at@28 -MPI_File_write_at_all@28 -MPI_File_write_at_all_begin@24 -MPI_File_write_at_all_end@12 -MPI_File_write_ordered@20 -MPI_File_write_ordered_begin@16 -MPI_File_write_ordered_end@12 -MPI_File_write_shared@20 -MPI_Finalize -MPI_Finalized@4 -MPI_Free_mem@4 -MPI_GATHER -MPI_GATHERV -MPI_GET -MPI_GET_ACCUMULATE -MPI_GET_ADDRESS -MPI_GET_COUNT -MPI_GET_ELEMENTS -MPI_GET_ELEMENTS_X -MPI_GET_LIBRARY_VERSION -MPI_GET_PROCESSOR_NAME -MPI_GET_VERSION -MPI_GRAPHDIMS_GET -MPI_GRAPH_CREATE -MPI_GRAPH_GET -MPI_GRAPH_MAP -MPI_GRAPH_NEIGHBORS -MPI_GRAPH_NEIGHBORS_COUNT -MPI_GREQUEST_COMPLETE -MPI_GREQUEST_START -MPI_GROUP_COMPARE -MPI_GROUP_DIFFERENCE -MPI_GROUP_EXCL -MPI_GROUP_FREE -MPI_GROUP_INCL -MPI_GROUP_INTERSECTION -MPI_GROUP_RANGE_EXCL -MPI_GROUP_RANGE_INCL -MPI_GROUP_RANK -MPI_GROUP_SIZE -MPI_GROUP_TRANSLATE_RANKS -MPI_GROUP_UNION -MPI_Gather@32 -MPI_Gatherv@36 -MPI_Get@32 -MPI_Get_accumulate@48 -MPI_Get_address@8 -MPI_Get_count@12 -MPI_Get_elements@12 -MPI_Get_elements_x@12 -MPI_Get_library_version@8 -MPI_Get_processor_name@8 -MPI_Get_version@8 -MPI_Graph_create@24 -MPI_Graph_get@20 -MPI_Graph_map@20 -MPI_Graph_neighbors@16 -MPI_Graph_neighbors_count@12 -MPI_Graphdims_get@12 -MPI_Grequest_complete@4 -MPI_Grequest_start@20 -MPI_Group_compare@12 -MPI_Group_difference@12 -MPI_Group_excl@16 -MPI_Group_free@4 -MPI_Group_incl@16 -MPI_Group_intersection@12 -MPI_Group_range_excl@16 -MPI_Group_range_incl@16 -MPI_Group_rank@8 -MPI_Group_size@8 -MPI_Group_translate_ranks@20 -MPI_Group_union@12 -MPI_IALLGATHER -MPI_IALLGATHERV -MPI_IALLREDUCE -MPI_IALLTOALL -MPI_IALLTOALLV -MPI_IALLTOALLW -MPI_IBARRIER -MPI_IBCAST -MPI_IBSEND -MPI_IEXSCAN -MPI_IGATHER -MPI_IGATHERV -MPI_IMPROBE -MPI_IMRECV -MPI_INFO_CREATE -MPI_INFO_DELETE -MPI_INFO_DUP -MPI_INFO_FREE -MPI_INFO_GET -MPI_INFO_GET_NKEYS -MPI_INFO_GET_NTHKEY -MPI_INFO_GET_VALUELEN -MPI_INFO_SET -MPI_INIT -MPI_INITIALIZED -MPI_INIT_THREAD -MPI_INTERCOMM_CREATE -MPI_INTERCOMM_MERGE -MPI_IPROBE -MPI_IRECV -MPI_IREDUCE -MPI_IREDUCE_SCATTER -MPI_IREDUCE_SCATTER_BLOCK -MPI_IRSEND -MPI_ISCAN -MPI_ISCATTER -MPI_ISCATTERV -MPI_ISEND -MPI_ISSEND -MPI_IS_THREAD_MAIN -MPI_Iallgather@32 -MPI_Iallgatherv@36 -MPI_Iallreduce@28 -MPI_Ialltoall@32 -MPI_Ialltoallv@40 -MPI_Ialltoallw@40 -MPI_Ibarrier@8 -MPI_Ibcast@24 -MPI_Ibsend@28 -MPI_Iexscan@28 -MPI_Igather@36 -MPI_Igatherv@40 -MPI_Improbe@24 -MPI_Imrecv@20 -MPI_Info_create@4 -MPI_Info_delete@8 -MPI_Info_dup@8 -MPI_Info_free@4 -MPI_Info_get@20 -MPI_Info_get_nkeys@8 -MPI_Info_get_nthkey@12 -MPI_Info_get_valuelen@16 -MPI_Info_set@12 -MPI_Init@8 -MPI_Init_thread@16 -MPI_Initialized@4 -MPI_Intercomm_create@24 -MPI_Intercomm_merge@12 -MPI_Iprobe@20 -MPI_Irecv@28 -MPI_Ireduce@32 -MPI_Ireduce_scatter@28 -MPI_Ireduce_scatter_block@28 -MPI_Irsend@28 -MPI_Is_thread_main@4 -MPI_Iscan@28 -MPI_Iscatter@36 -MPI_Iscatterv@40 -MPI_Isend@28 -MPI_Issend@28 -MPI_KEYVAL_CREATE -MPI_KEYVAL_FREE -MPI_Keyval_create@16 -MPI_Keyval_free@4 -MPI_LOOKUP_NAME -MPI_Lookup_name@12 -MPI_MPROBE -MPI_MRECV -MPI_Mprobe@20 -MPI_Mrecv@20 -MPI_NULL_COPY_FN -MPI_NULL_DELETE_FN -MPI_OPEN_PORT -MPI_OP_COMMUTATIVE -MPI_OP_CREATE -MPI_OP_FREE -MPI_Op_commutative@8 -MPI_Op_create@12 -MPI_Op_free@4 -MPI_Open_port@8 -MPI_PACK -MPI_PACK_EXTERNAL -MPI_PACK_EXTERNAL_SIZE -MPI_PACK_SIZE -MPI_PCONTROL -MPI_PROBE -MPI_PUBLISH_NAME -MPI_PUT -MPI_Pack@28 -MPI_Pack_external@28 -MPI_Pack_external_size@16 -MPI_Pack_size@16 -MPI_Pcontrol -MPI_Probe@16 -MPI_Publish_name@12 -MPI_Put@32 -MPI_QUERY_THREAD -MPI_Query_thread@4 -MPI_RACCUMULATE -MPI_RECV -MPI_RECV_INIT -MPI_REDUCE -MPI_REDUCE_LOCAL -MPI_REDUCE_SCATTER -MPI_REDUCE_SCATTER_block -MPI_REGISTER_DATAREP -MPI_REQUEST_FREE -MPI_REQUEST_GET_STATUS -MPI_RGET -MPI_RGET_ACCUMULATE -MPI_RPUT -MPI_RSEND -MPI_RSEND_INIT -MPI_Raccumulate@40 -MPI_Recv@28 -MPI_Recv_init@28 -MPI_Reduce@28 -MPI_Reduce_local@20 -MPI_Reduce_scatter@24 -MPI_Reduce_scatter_block@24 -MPI_Register_datarep@20 -MPI_Request_free@4 -MPI_Request_get_status@12 -MPI_Rget@36 -MPI_Rget_accumulate@52 -MPI_Rput@36 -MPI_Rsend@24 -MPI_Rsend_init@28 -MPI_SCAN -MPI_SCATTER -MPI_SCATTERV -MPI_SEND -MPI_SENDRECV -MPI_SENDRECV_REPLACE -MPI_SEND_INIT -MPI_SSEND -MPI_SSEND_INIT -MPI_START -MPI_STARTALL -MPI_STATUS_C2F -MPI_STATUS_F2C -MPI_STATUS_SET_CANCELLED -MPI_STATUS_SET_ELEMENTS -MPI_STATUS_SET_ELEMENTS_X -MPI_Scan@24 -MPI_Scatter@32 -MPI_Scatterv@36 -MPI_Send@24 -MPI_Send_init@28 -MPI_Sendrecv@48 -MPI_Sendrecv_replace@36 -MPI_Ssend@24 -MPI_Ssend_init@28 -MPI_Start@4 -MPI_Startall@8 -MPI_Status_c2f@8 -MPI_Status_f2c@8 -MPI_Status_set_cancelled@8 -MPI_Status_set_elements@12 -MPI_Status_set_elements_x@16 -MPI_TEST -MPI_TESTALL -MPI_TESTANY -MPI_TESTSOME -MPI_TEST_CANCELLED -MPI_TOPO_TEST -MPI_TYPE_COMMIT -MPI_TYPE_CONTIGUOUS -MPI_TYPE_CREATE_DARRAY -MPI_TYPE_CREATE_F90_COMPLEX -MPI_TYPE_CREATE_F90_INTEGER -MPI_TYPE_CREATE_F90_REAL -MPI_TYPE_CREATE_HINDEXED -MPI_TYPE_CREATE_HINDEXED_BLOCK -MPI_TYPE_CREATE_HVECTOR -MPI_TYPE_CREATE_INDEXED_BLOCK -MPI_TYPE_CREATE_KEYVAL -MPI_TYPE_CREATE_RESIZED -MPI_TYPE_CREATE_STRUCT -MPI_TYPE_CREATE_SUBARRAY -MPI_TYPE_DELETE_ATTR -MPI_TYPE_DUP -MPI_TYPE_DUP_FN -MPI_TYPE_EXTENT -MPI_TYPE_FREE -MPI_TYPE_FREE_KEYVAL -MPI_TYPE_GET_ATTR -MPI_TYPE_GET_CONTENTS -MPI_TYPE_GET_ENVELOPE -MPI_TYPE_GET_EXTENT -MPI_TYPE_GET_EXTENT_X -MPI_TYPE_GET_NAME -MPI_TYPE_GET_TRUE_EXTENT -MPI_TYPE_GET_TRUE_EXTENT_X -MPI_TYPE_HINDEXED -MPI_TYPE_HVECTOR -MPI_TYPE_INDEXED -MPI_TYPE_LB -MPI_TYPE_MATCH_SIZE -MPI_TYPE_NULL_COPY_FN -MPI_TYPE_NULL_DELETE_FN -MPI_TYPE_SET_ATTR -MPI_TYPE_SET_NAME -MPI_TYPE_SIZE -MPI_TYPE_SIZE_X -MPI_TYPE_STRUCT -MPI_TYPE_UB -MPI_TYPE_VECTOR -MPI_Test@12 -MPI_Test_cancelled@8 -MPI_Testall@16 -MPI_Testany@20 -MPI_Testsome@20 -MPI_Topo_test@8 -MPI_Type_commit@4 -MPI_Type_contiguous@12 -MPI_Type_create_darray@40 -MPI_Type_create_f90_complex@12 -MPI_Type_create_f90_integer@8 -MPI_Type_create_f90_real@12 -MPI_Type_create_hindexed@20 -MPI_Type_create_hindexed_block@20 -MPI_Type_create_hvector@20 -MPI_Type_create_indexed_block@20 -MPI_Type_create_keyval@16 -MPI_Type_create_resized@16 -MPI_Type_create_struct@20 -MPI_Type_create_subarray@28 -MPI_Type_delete_attr@8 -MPI_Type_dup@8 -MPI_Type_extent@8 -MPI_Type_free@4 -MPI_Type_free_keyval@4 -MPI_Type_get_attr@16 -MPI_Type_get_contents@28 -MPI_Type_get_envelope@20 -MPI_Type_get_extent@12 -MPI_Type_get_extent_x@12 -MPI_Type_get_name@12 -MPI_Type_get_true_extent@12 -MPI_Type_get_true_extent_x@12 -MPI_Type_hindexed@20 -MPI_Type_hvector@20 -MPI_Type_indexed@20 -MPI_Type_lb@8 -MPI_Type_match_size@12 -MPI_Type_set_attr@12 -MPI_Type_set_name@8 -MPI_Type_size@8 -MPI_Type_size_x@8 -MPI_Type_struct@20 -MPI_Type_ub@8 -MPI_Type_vector@20 -MPI_UNPACK -MPI_UNPACK_EXTERNAL -MPI_UNPUBLISH_NAME -MPI_Unpack@28 -MPI_Unpack_external@28 -MPI_Unpublish_name@12 -MPI_WAIT -MPI_WAITALL -MPI_WAITANY -MPI_WAITSOME -MPI_WIN_ALLOCATE -MPI_WIN_ALLOCATE_SHARED -MPI_WIN_ATTACH -MPI_WIN_CALL_ERRHANDLER -MPI_WIN_COMPLETE -MPI_WIN_CREATE -MPI_WIN_CREATE_DYNAMIC -MPI_WIN_CREATE_ERRHANDLER -MPI_WIN_CREATE_KEYVAL -MPI_WIN_DELETE_ATTR -MPI_WIN_DETACH -MPI_WIN_DUP_FN -MPI_WIN_FENCE -MPI_WIN_FLUSH -MPI_WIN_FLUSH_ALL -MPI_WIN_FLUSH_LOCAL -MPI_WIN_FLUSH_LOCAL_ALL -MPI_WIN_FREE -MPI_WIN_FREE_KEYVAL -MPI_WIN_GET_ATTR -MPI_WIN_GET_ERRHANDLER -MPI_WIN_GET_GROUP -MPI_WIN_GET_NAME -MPI_WIN_LOCK -MPI_WIN_LOCK_ALL -MPI_WIN_NULL_COPY_FN -MPI_WIN_NULL_DELETE_FN -MPI_WIN_POST -MPI_WIN_SET_ATTR -MPI_WIN_SET_ERRHANDLER -MPI_WIN_SET_NAME -MPI_WIN_SHARED_QUERY -MPI_WIN_START -MPI_WIN_SYNC -MPI_WIN_TEST -MPI_WIN_UNLOCK -MPI_WIN_UNLOCK_ALL -MPI_WIN_WAIT -MPI_WTICK -MPI_WTIME -MPI_Wait@8 -MPI_Waitall@12 -MPI_Waitany@16 -MPI_Waitsome@20 -MPI_Win_allocate@24 -MPI_Win_allocate_shared@24 -MPI_Win_attach@12 -MPI_Win_call_errhandler@8 -MPI_Win_complete@4 -MPI_Win_create@24 -MPI_Win_create_dynamic@12 -MPI_Win_create_errhandler@8 -MPI_Win_create_keyval@16 -MPI_Win_delete_attr@8 -MPI_Win_detach@8 -MPI_Win_fence@8 -MPI_Win_flush@8 -MPI_Win_flush_all@4 -MPI_Win_flush_local@8 -MPI_Win_flush_local_all@4 -MPI_Win_free@4 -MPI_Win_free_keyval@4 -MPI_Win_get_attr@16 -MPI_Win_get_errhandler@8 -MPI_Win_get_group@8 -MPI_Win_get_name@12 -MPI_Win_lock@16 -MPI_Win_lock_all@8 -MPI_Win_post@12 -MPI_Win_set_attr@12 -MPI_Win_set_errhandler@8 -MPI_Win_set_name@8 -MPI_Win_shared_query@20 -MPI_Win_start@12 -MPI_Win_sync@4 -MPI_Win_test@8 -MPI_Win_unlock@8 -MPI_Win_unlock_all@4 -MPI_Win_wait@4 -MPI_Wtick -MPI_Wtime -MSMPI_GET_BSEND_OVERHEAD -MSMPI_GET_VERSION -MSMPI_Get_bsend_overhead -MSMPI_Get_version -MSMPI_Queuelock_acquire@4 -MSMPI_Queuelock_release@4 -MSMPI_Request_set_apc@12 -MSMPI_Waitsome_interruptible@20 -PMPI_ABORT -PMPI_ACCUMULATE -PMPI_ADDRESS -PMPI_ADD_ERROR_CLASS -PMPI_ADD_ERROR_CODE -PMPI_ADD_ERROR_STRING -PMPI_AINT_ADD -PMPI_AINT_DIFF -PMPI_ALLGATHER -PMPI_ALLGATHERV -PMPI_ALLOC_MEM -PMPI_ALLREDUCE -PMPI_ALLTOALL -PMPI_ALLTOALLV -PMPI_ALLTOALLW -PMPI_ATTR_DELETE -PMPI_ATTR_GET -PMPI_ATTR_PUT -PMPI_Abort@8 -PMPI_Accumulate@36 -PMPI_Add_error_class@4 -PMPI_Add_error_code@8 -PMPI_Add_error_string@8 -PMPI_Address@8 -PMPI_Aint_add@8 -PMPI_Aint_diff@8 -PMPI_Allgather@28 -PMPI_Allgatherv@32 -PMPI_Alloc_mem@12 -PMPI_Allreduce@24 -PMPI_Alltoall@28 -PMPI_Alltoallv@36 -PMPI_Alltoallw@36 -PMPI_Attr_delete@8 -PMPI_Attr_get@16 -PMPI_Attr_put@12 -PMPI_BARRIER -PMPI_BCAST -PMPI_BSEND -PMPI_BSEND_INIT -PMPI_BUFFER_ATTACH -PMPI_BUFFER_DETACH -PMPI_Barrier@4 -PMPI_Bcast@20 -PMPI_Bsend@24 -PMPI_Bsend_init@28 -PMPI_Buffer_attach@8 -PMPI_Buffer_detach@8 -PMPI_CANCEL -PMPI_CARTDIM_GET -PMPI_CART_COORDS -PMPI_CART_CREATE -PMPI_CART_GET -PMPI_CART_MAP -PMPI_CART_RANK -PMPI_CART_SHIFT -PMPI_CART_SUB -PMPI_CLOSE_PORT -PMPI_COMM_ACCEPT -PMPI_COMM_CALL_ERRHANDLER -PMPI_COMM_COMPARE -PMPI_COMM_CONNECT -PMPI_COMM_CREATE -PMPI_COMM_CREATE_ERRHANDLER -PMPI_COMM_CREATE_KEYVAL -PMPI_COMM_DELETE_ATTR -PMPI_COMM_DISCONNECT -PMPI_COMM_DUP -PMPI_COMM_DUP_FN -PMPI_COMM_FREE -PMPI_COMM_FREE_KEYVAL -PMPI_COMM_GET_ATTR -PMPI_COMM_GET_ERRHANDLER -PMPI_COMM_GET_NAME -PMPI_COMM_GET_PARENT -PMPI_COMM_GROUP -PMPI_COMM_JOIN -PMPI_COMM_NULL_COPY_FN -PMPI_COMM_NULL_DELETE_FN -PMPI_COMM_RANK -PMPI_COMM_REMOTE_GROUP -PMPI_COMM_REMOTE_SIZE -PMPI_COMM_SET_ATTR -PMPI_COMM_SET_ERRHANDLER -PMPI_COMM_SET_NAME -PMPI_COMM_SIZE -PMPI_COMM_SPAWN -PMPI_COMM_SPAWN_MULTIPLE -PMPI_COMM_SPLIT -PMPI_COMM_SPLIT_TYPE -PMPI_COMM_TEST_INTER -PMPI_COMPARE_AND_SWAP -PMPI_CONVERSION_FN_NULL -PMPI_Cancel@4 -PMPI_Cart_coords@16 -PMPI_Cart_create@24 -PMPI_Cart_get@20 -PMPI_Cart_map@20 -PMPI_Cart_rank@12 -PMPI_Cart_shift@20 -PMPI_Cart_sub@12 -PMPI_Cartdim_get@8 -PMPI_Close_port@4 -PMPI_Comm_accept@20 -PMPI_Comm_call_errhandler@8 -PMPI_Comm_compare@12 -PMPI_Comm_connect@20 -PMPI_Comm_create@12 -PMPI_Comm_create_errhandler@8 -PMPI_Comm_create_keyval@16 -PMPI_Comm_delete_attr@8 -PMPI_Comm_disconnect@4 -PMPI_Comm_dup@8 -PMPI_Comm_free@4 -PMPI_Comm_free_keyval@4 -PMPI_Comm_get_attr@16 -PMPI_Comm_get_errhandler@8 -PMPI_Comm_get_name@12 -PMPI_Comm_get_parent@4 -PMPI_Comm_group@8 -PMPI_Comm_join@8 -PMPI_Comm_rank@8 -PMPI_Comm_remote_group@8 -PMPI_Comm_remote_size@8 -PMPI_Comm_set_attr@12 -PMPI_Comm_set_errhandler@8 -PMPI_Comm_set_name@8 -PMPI_Comm_size@8 -PMPI_Comm_spawn@32 -PMPI_Comm_spawn_multiple@36 -PMPI_Comm_split@16 -PMPI_Comm_split_type@20 -PMPI_Comm_test_inter@8 -PMPI_Compare_and_swap@28 -PMPI_DIMS_CREATE -PMPI_DIST_GRAPH_CREATE -PMPI_DIST_GRAPH_CREATE_ADJACENT -PMPI_DIST_GRAPH_NEIGHBORS -PMPI_DIST_GRAPH_NEIGHBORS_COUNT -PMPI_DUP_FN -PMPI_Dims_create@12 -PMPI_Dist_graph_create@36 -PMPI_Dist_graph_create_adjacent@40 -PMPI_Dist_graph_neighbors@28 -PMPI_Dist_graph_neighbors_count@16 -PMPI_ERRHANDLER_CREATE -PMPI_ERRHANDLER_FREE -PMPI_ERRHANDLER_GET -PMPI_ERRHANDLER_SET -PMPI_ERROR_CLASS -PMPI_ERROR_STRING -PMPI_EXSCAN -PMPI_Errhandler_create@8 -PMPI_Errhandler_free@4 -PMPI_Errhandler_get@8 -PMPI_Errhandler_set@8 -PMPI_Error_class@8 -PMPI_Error_string@12 -PMPI_Exscan@24 -PMPI_FETCH_AND_OP -PMPI_FILE_CALL_ERRHANDLER -PMPI_FILE_CLOSE -PMPI_FILE_CREATE_ERRHANDLER -PMPI_FILE_DELETE -PMPI_FILE_GET_AMODE -PMPI_FILE_GET_ATOMICITY -PMPI_FILE_GET_BYTE_OFFSET -PMPI_FILE_GET_ERRHANDLER -PMPI_FILE_GET_GROUP -PMPI_FILE_GET_INFO -PMPI_FILE_GET_POSITION -PMPI_FILE_GET_POSITION_SHARED -PMPI_FILE_GET_SIZE -PMPI_FILE_GET_TYPE_EXTENT -PMPI_FILE_GET_VIEW -PMPI_FILE_IREAD -PMPI_FILE_IREAD_AT -PMPI_FILE_IREAD_SHARED -PMPI_FILE_IWRITE -PMPI_FILE_IWRITE_AT -PMPI_FILE_IWRITE_SHARED -PMPI_FILE_OPEN -PMPI_FILE_PREALLOCATE -PMPI_FILE_READ -PMPI_FILE_READ_ALL -PMPI_FILE_READ_ALL_BEGIN -PMPI_FILE_READ_ALL_END -PMPI_FILE_READ_AT -PMPI_FILE_READ_AT_ALL -PMPI_FILE_READ_AT_ALL_BEGIN -PMPI_FILE_READ_AT_ALL_END -PMPI_FILE_READ_ORDERED -PMPI_FILE_READ_ORDERED_BEGIN -PMPI_FILE_READ_ORDERED_END -PMPI_FILE_READ_SHARED -PMPI_FILE_SEEK -PMPI_FILE_SEEK_SHARED -PMPI_FILE_SET_ATOMICITY -PMPI_FILE_SET_ERRHANDLER -PMPI_FILE_SET_INFO -PMPI_FILE_SET_SIZE -PMPI_FILE_SET_VIEW -PMPI_FILE_SYNC -PMPI_FILE_WRITE -PMPI_FILE_WRITE_ALL -PMPI_FILE_WRITE_ALL_BEGIN -PMPI_FILE_WRITE_ALL_END -PMPI_FILE_WRITE_AT -PMPI_FILE_WRITE_AT_ALL -PMPI_FILE_WRITE_AT_ALL_BEGIN -PMPI_FILE_WRITE_AT_ALL_END -PMPI_FILE_WRITE_ORDERED -PMPI_FILE_WRITE_ORDERED_BEGIN -PMPI_FILE_WRITE_ORDERED_END -PMPI_FILE_WRITE_SHARED -PMPI_FINALIZE -PMPI_FINALIZED -PMPI_FREE_MEM -PMPI_Fetch_and_op@28 -PMPI_File_c2f@4 -PMPI_File_call_errhandler@8 -PMPI_File_close@4 -PMPI_File_create_errhandler@8 -PMPI_File_delete@8 -PMPI_File_f2c@4 -PMPI_File_get_amode@8 -PMPI_File_get_atomicity@8 -PMPI_File_get_byte_offset@16 -PMPI_File_get_errhandler@8 -PMPI_File_get_group@8 -PMPI_File_get_info@8 -PMPI_File_get_position@8 -PMPI_File_get_position_shared@8 -PMPI_File_get_size@8 -PMPI_File_get_type_extent@12 -PMPI_File_get_view@20 -PMPI_File_iread@20 -PMPI_File_iread_at@28 -PMPI_File_iread_shared@20 -PMPI_File_iwrite@20 -PMPI_File_iwrite_at@28 -PMPI_File_iwrite_shared@20 -PMPI_File_open@20 -PMPI_File_preallocate@12 -PMPI_File_read@20 -PMPI_File_read_all@20 -PMPI_File_read_all_begin@16 -PMPI_File_read_all_end@12 -PMPI_File_read_at@28 -PMPI_File_read_at_all@28 -PMPI_File_read_at_all_begin@24 -PMPI_File_read_at_all_end@12 -PMPI_File_read_ordered@20 -PMPI_File_read_ordered_begin@16 -PMPI_File_read_ordered_end@12 -PMPI_File_read_shared@20 -PMPI_File_seek@16 -PMPI_File_seek_shared@16 -PMPI_File_set_atomicity@8 -PMPI_File_set_errhandler@8 -PMPI_File_set_info@8 -PMPI_File_set_size@12 -PMPI_File_set_view@28 -PMPI_File_sync@4 -PMPI_File_write@20 -PMPI_File_write_all@20 -PMPI_File_write_all_begin@16 -PMPI_File_write_all_end@12 -PMPI_File_write_at@28 -PMPI_File_write_at_all@28 -PMPI_File_write_at_all_begin@24 -PMPI_File_write_at_all_end@12 -PMPI_File_write_ordered@20 -PMPI_File_write_ordered_begin@16 -PMPI_File_write_ordered_end@12 -PMPI_File_write_shared@20 -PMPI_Finalize -PMPI_Finalized@4 -PMPI_Free_mem@4 -PMPI_GATHER -PMPI_GATHERV -PMPI_GET -PMPI_GET_ACCUMULATE -PMPI_GET_ADDRESS -PMPI_GET_COUNT -PMPI_GET_ELEMENTS -PMPI_GET_ELEMENTS_X -PMPI_GET_LIBRARY_VERSION -PMPI_GET_PROCESSOR_NAME -PMPI_GET_VERSION -PMPI_GRAPHDIMS_GET -PMPI_GRAPH_CREATE -PMPI_GRAPH_GET -PMPI_GRAPH_MAP -PMPI_GRAPH_NEIGHBORS -PMPI_GRAPH_NEIGHBORS_COUNT -PMPI_GREQUEST_COMPLETE -PMPI_GREQUEST_START -PMPI_GROUP_COMPARE -PMPI_GROUP_DIFFERENCE -PMPI_GROUP_EXCL -PMPI_GROUP_FREE -PMPI_GROUP_INCL -PMPI_GROUP_INTERSECTION -PMPI_GROUP_RANGE_EXCL -PMPI_GROUP_RANGE_INCL -PMPI_GROUP_RANK -PMPI_GROUP_SIZE -PMPI_GROUP_TRANSLATE_RANKS -PMPI_GROUP_UNION -PMPI_Gather@32 -PMPI_Gatherv@36 -PMPI_Get@32 -PMPI_Get_accumulate@48 -PMPI_Get_address@8 -PMPI_Get_count@12 -PMPI_Get_elements@12 -PMPI_Get_elements_x@12 -PMPI_Get_library_version@8 -PMPI_Get_processor_name@8 -PMPI_Get_version@8 -PMPI_Graph_create@24 -PMPI_Graph_get@20 -PMPI_Graph_map@20 -PMPI_Graph_neighbors@16 -PMPI_Graph_neighbors_count@12 -PMPI_Graphdims_get@12 -PMPI_Grequest_complete@4 -PMPI_Grequest_start@20 -PMPI_Group_compare@12 -PMPI_Group_difference@12 -PMPI_Group_excl@16 -PMPI_Group_free@4 -PMPI_Group_incl@16 -PMPI_Group_intersection@12 -PMPI_Group_range_excl@16 -PMPI_Group_range_incl@16 -PMPI_Group_rank@8 -PMPI_Group_size@8 -PMPI_Group_translate_ranks@20 -PMPI_Group_union@12 -PMPI_IALLGATHER -PMPI_IALLGATHERV -PMPI_IALLREDUCE -PMPI_IALLTOALL -PMPI_IALLTOALLV -PMPI_IALLTOALLW -PMPI_IBARRIER -PMPI_IBCAST -PMPI_IBSEND -PMPI_IEXSCAN -PMPI_IGATHER -PMPI_IGATHERV -PMPI_IMPROBE -PMPI_IMRECV -PMPI_INFO_CREATE -PMPI_INFO_DELETE -PMPI_INFO_DUP -PMPI_INFO_FREE -PMPI_INFO_GET -PMPI_INFO_GET_NKEYS -PMPI_INFO_GET_NTHKEY -PMPI_INFO_GET_VALUELEN -PMPI_INFO_SET -PMPI_INIT -PMPI_INITIALIZED -PMPI_INIT_THREAD -PMPI_INTERCOMM_CREATE -PMPI_INTERCOMM_MERGE -PMPI_IPROBE -PMPI_IRECV -PMPI_IREDUCE -PMPI_IREDUCE_SCATTER -PMPI_IREDUCE_SCATTER_BLOCK -PMPI_IRSEND -PMPI_ISCAN -PMPI_ISCATTER -PMPI_ISCATTERV -PMPI_ISEND -PMPI_ISSEND -PMPI_IS_THREAD_MAIN -PMPI_Iallgather@32 -PMPI_Iallgatherv@36 -PMPI_Iallreduce@28 -PMPI_Ialltoall@32 -PMPI_Ialltoallv@40 -PMPI_Ialltoallw@40 -PMPI_Ibarrier@8 -PMPI_Ibcast@24 -PMPI_Ibsend@28 -PMPI_Iexscan@28 -PMPI_Igather@36 -PMPI_Igatherv@40 -PMPI_Improbe@24 -PMPI_Imrecv@20 -PMPI_Info_create@4 -PMPI_Info_delete@8 -PMPI_Info_dup@8 -PMPI_Info_free@4 -PMPI_Info_get@20 -PMPI_Info_get_nkeys@8 -PMPI_Info_get_nthkey@12 -PMPI_Info_get_valuelen@16 -PMPI_Info_set@12 -PMPI_Init@8 -PMPI_Init_thread@16 -PMPI_Initialized@4 -PMPI_Intercomm_create@24 -PMPI_Intercomm_merge@12 -PMPI_Iprobe@20 -PMPI_Irecv@28 -PMPI_Ireduce@32 -PMPI_Ireduce_scatter@28 -PMPI_Ireduce_scatter_block@28 -PMPI_Irsend@28 -PMPI_Is_thread_main@4 -PMPI_Iscan@28 -PMPI_Iscatter@36 -PMPI_Iscatterv@40 -PMPI_Isend@28 -PMPI_Issend@28 -PMPI_KEYVAL_CREATE -PMPI_KEYVAL_FREE -PMPI_Keyval_create@16 -PMPI_Keyval_free@4 -PMPI_LOOKUP_NAME -PMPI_Lookup_name@12 -PMPI_MPROBE -PMPI_MRECV -PMPI_Mprobe@20 -PMPI_Mrecv@20 -PMPI_NULL_COPY_FN -PMPI_NULL_DELETE_FN -PMPI_OPEN_PORT -PMPI_OP_COMMUTATIVE -PMPI_OP_CREATE -PMPI_OP_FREE -PMPI_Op_commutative@8 -PMPI_Op_create@12 -PMPI_Op_free@4 -PMPI_Open_port@8 -PMPI_PACK -PMPI_PACK_EXTERNAL -PMPI_PACK_EXTERNAL_SIZE -PMPI_PACK_SIZE -PMPI_PCONTROL -PMPI_PROBE -PMPI_PUBLISH_NAME -PMPI_PUT -PMPI_Pack@28 -PMPI_Pack_external@28 -PMPI_Pack_external_size@16 -PMPI_Pack_size@16 -PMPI_Pcontrol -PMPI_Probe@16 -PMPI_Publish_name@12 -PMPI_Put@32 -PMPI_QUERY_THREAD -PMPI_Query_thread@4 -PMPI_RACCUMULATE -PMPI_RECV -PMPI_RECV_INIT -PMPI_REDUCE -PMPI_REDUCE_LOCAL -PMPI_REDUCE_SCATTER -PMPI_REDUCE_SCATTER_block -PMPI_REGISTER_DATAREP -PMPI_REQUEST_FREE -PMPI_REQUEST_GET_STATUS -PMPI_RGET -PMPI_RGET_ACCUMULATE -PMPI_RPUT -PMPI_RSEND -PMPI_RSEND_INIT -PMPI_Raccumulate@40 -PMPI_Recv@28 -PMPI_Recv_init@28 -PMPI_Reduce@28 -PMPI_Reduce_local@20 -PMPI_Reduce_scatter@24 -PMPI_Reduce_scatter_block@24 -PMPI_Register_datarep@20 -PMPI_Request_free@4 -PMPI_Request_get_status@12 -PMPI_Rget@36 -PMPI_Rget_accumulate@52 -PMPI_Rput@36 -PMPI_Rsend@24 -PMPI_Rsend_init@28 -PMPI_SCAN -PMPI_SCATTER -PMPI_SCATTERV -PMPI_SEND -PMPI_SENDRECV -PMPI_SENDRECV_REPLACE -PMPI_SEND_INIT -PMPI_SSEND -PMPI_SSEND_INIT -PMPI_START -PMPI_STARTALL -PMPI_STATUS_C2F -PMPI_STATUS_F2C -PMPI_STATUS_SET_CANCELLED -PMPI_STATUS_SET_ELEMENTS -PMPI_STATUS_SET_ELEMENTS_X -PMPI_Scan@24 -PMPI_Scatter@32 -PMPI_Scatterv@36 -PMPI_Send@24 -PMPI_Send_init@28 -PMPI_Sendrecv@48 -PMPI_Sendrecv_replace@36 -PMPI_Ssend@24 -PMPI_Ssend_init@28 -PMPI_Start@4 -PMPI_Startall@8 -PMPI_Status_c2f@8 -PMPI_Status_f2c@8 -PMPI_Status_set_cancelled@8 -PMPI_Status_set_elements@12 -PMPI_Status_set_elements_x@16 -PMPI_TEST -PMPI_TESTALL -PMPI_TESTANY -PMPI_TESTSOME -PMPI_TEST_CANCELLED -PMPI_TOPO_TEST -PMPI_TYPE_COMMIT -PMPI_TYPE_CONTIGUOUS -PMPI_TYPE_CREATE_DARRAY -PMPI_TYPE_CREATE_F90_COMPLEX -PMPI_TYPE_CREATE_F90_INTEGER -PMPI_TYPE_CREATE_F90_REAL -PMPI_TYPE_CREATE_HINDEXED -PMPI_TYPE_CREATE_HINDEXED_BLOCK -PMPI_TYPE_CREATE_HVECTOR -PMPI_TYPE_CREATE_INDEXED_BLOCK -PMPI_TYPE_CREATE_KEYVAL -PMPI_TYPE_CREATE_RESIZED -PMPI_TYPE_CREATE_STRUCT -PMPI_TYPE_CREATE_SUBARRAY -PMPI_TYPE_DELETE_ATTR -PMPI_TYPE_DUP -PMPI_TYPE_DUP_FN -PMPI_TYPE_EXTENT -PMPI_TYPE_FREE -PMPI_TYPE_FREE_KEYVAL -PMPI_TYPE_GET_ATTR -PMPI_TYPE_GET_CONTENTS -PMPI_TYPE_GET_ENVELOPE -PMPI_TYPE_GET_EXTENT -PMPI_TYPE_GET_EXTENT_X -PMPI_TYPE_GET_NAME -PMPI_TYPE_GET_TRUE_EXTENT -PMPI_TYPE_GET_TRUE_EXTENT_X -PMPI_TYPE_HINDEXED -PMPI_TYPE_HVECTOR -PMPI_TYPE_INDEXED -PMPI_TYPE_LB -PMPI_TYPE_MATCH_SIZE -PMPI_TYPE_NULL_COPY_FN -PMPI_TYPE_NULL_DELETE_FN -PMPI_TYPE_SET_ATTR -PMPI_TYPE_SET_NAME -PMPI_TYPE_SIZE -PMPI_TYPE_SIZE_X -PMPI_TYPE_STRUCT -PMPI_TYPE_UB -PMPI_TYPE_VECTOR -PMPI_Test@12 -PMPI_Test_cancelled@8 -PMPI_Testall@16 -PMPI_Testany@20 -PMPI_Testsome@20 -PMPI_Topo_test@8 -PMPI_Type_commit@4 -PMPI_Type_contiguous@12 -PMPI_Type_create_darray@40 -PMPI_Type_create_f90_complex@12 -PMPI_Type_create_f90_integer@8 -PMPI_Type_create_f90_real@12 -PMPI_Type_create_hindexed@20 -PMPI_Type_create_hindexed_block@20 -PMPI_Type_create_hvector@20 -PMPI_Type_create_indexed_block@20 -PMPI_Type_create_keyval@16 -PMPI_Type_create_resized@16 -PMPI_Type_create_struct@20 -PMPI_Type_create_subarray@28 -PMPI_Type_delete_attr@8 -PMPI_Type_dup@8 -PMPI_Type_extent@8 -PMPI_Type_free@4 -PMPI_Type_free_keyval@4 -PMPI_Type_get_attr@16 -PMPI_Type_get_contents@28 -PMPI_Type_get_envelope@20 -PMPI_Type_get_extent@12 -PMPI_Type_get_extent_x@12 -PMPI_Type_get_name@12 -PMPI_Type_get_true_extent@12 -PMPI_Type_get_true_extent_x@12 -PMPI_Type_hindexed@20 -PMPI_Type_hvector@20 -PMPI_Type_indexed@20 -PMPI_Type_lb@8 -PMPI_Type_match_size@12 -PMPI_Type_set_attr@12 -PMPI_Type_set_name@8 -PMPI_Type_size@8 -PMPI_Type_size_x@8 -PMPI_Type_struct@20 -PMPI_Type_ub@8 -PMPI_Type_vector@20 -PMPI_UNPACK -PMPI_UNPACK_EXTERNAL -PMPI_UNPUBLISH_NAME -PMPI_Unpack@28 -PMPI_Unpack_external@28 -PMPI_Unpublish_name@12 -PMPI_WAIT -PMPI_WAITALL -PMPI_WAITANY -PMPI_WAITSOME -PMPI_WIN_ALLOCATE -PMPI_WIN_ALLOCATE_SHARED -PMPI_WIN_ATTACH -PMPI_WIN_CALL_ERRHANDLER -PMPI_WIN_COMPLETE -PMPI_WIN_CREATE -PMPI_WIN_CREATE_DYNAMIC -PMPI_WIN_CREATE_ERRHANDLER -PMPI_WIN_CREATE_KEYVAL -PMPI_WIN_DELETE_ATTR -PMPI_WIN_DETACH -PMPI_WIN_DUP_FN -PMPI_WIN_FENCE -PMPI_WIN_FLUSH -PMPI_WIN_FLUSH_ALL -PMPI_WIN_FLUSH_LOCAL -PMPI_WIN_FLUSH_LOCAL_ALL -PMPI_WIN_FREE -PMPI_WIN_FREE_KEYVAL -PMPI_WIN_GET_ATTR -PMPI_WIN_GET_ERRHANDLER -PMPI_WIN_GET_GROUP -PMPI_WIN_GET_NAME -PMPI_WIN_LOCK -PMPI_WIN_LOCK_ALL -PMPI_WIN_NULL_COPY_FN -PMPI_WIN_NULL_DELETE_FN -PMPI_WIN_POST -PMPI_WIN_SET_ATTR -PMPI_WIN_SET_ERRHANDLER -PMPI_WIN_SET_NAME -PMPI_WIN_SHARED_QUERY -PMPI_WIN_START -PMPI_WIN_SYNC -PMPI_WIN_TEST -PMPI_WIN_UNLOCK -PMPI_WIN_UNLOCK_ALL -PMPI_WIN_WAIT -PMPI_WTICK -PMPI_WTIME -PMPI_Wait@8 -PMPI_Waitall@12 -PMPI_Waitany@16 -PMPI_Waitsome@20 -PMPI_Win_allocate@24 -PMPI_Win_allocate_shared@24 -PMPI_Win_attach@12 -PMPI_Win_call_errhandler@8 -PMPI_Win_complete@4 -PMPI_Win_create@24 -PMPI_Win_create_dynamic@12 -PMPI_Win_create_errhandler@8 -PMPI_Win_create_keyval@16 -PMPI_Win_delete_attr@8 -PMPI_Win_detach@8 -PMPI_Win_fence@8 -PMPI_Win_flush@8 -PMPI_Win_flush_all@4 -PMPI_Win_flush_local@8 -PMPI_Win_flush_local_all@4 -PMPI_Win_free@4 -PMPI_Win_free_keyval@4 -PMPI_Win_get_attr@16 -PMPI_Win_get_errhandler@8 -PMPI_Win_get_group@8 -PMPI_Win_get_name@12 -PMPI_Win_lock@16 -PMPI_Win_lock_all@8 -PMPI_Win_post@12 -PMPI_Win_set_attr@12 -PMPI_Win_set_errhandler@8 -PMPI_Win_set_name@8 -PMPI_Win_shared_query@20 -PMPI_Win_start@12 -PMPI_Win_sync@4 -PMPI_Win_test@8 -PMPI_Win_unlock@8 -PMPI_Win_unlock_all@4 -PMPI_Win_wait@4 -PMPI_Wtick -PMPI_Wtime -PMSMPI_GET_BSEND_OVERHEAD -PMSMPI_GET_VERSION -PMSMPI_Get_bsend_overhead -PMSMPI_Get_version -_mpifcmb5 DATA -_mpifcmb5_ DATA -_mpifcmb9 DATA -_mpifcmb9_ DATA -_mpipriv1 DATA -_mpipriv1_ DATA -_mpipriv2 DATA -_mpipriv2_ DATA -_mpiprivc DATA -_mpiprivc_ DATA -mpi_abort -mpi_abort_ -mpi_abort__ -mpi_accumulate -mpi_accumulate_ -mpi_accumulate__ -mpi_add_error_class -mpi_add_error_class_ -mpi_add_error_class__ -mpi_add_error_code -mpi_add_error_code_ -mpi_add_error_code__ -mpi_add_error_string -mpi_add_error_string_ -mpi_add_error_string__ -mpi_address -mpi_address_ -mpi_address__ -mpi_aint_add -mpi_aint_add_ -mpi_aint_add__ -mpi_aint_diff -mpi_aint_diff_ -mpi_aint_diff__ -mpi_allgather -mpi_allgather_ -mpi_allgather__ -mpi_allgatherv -mpi_allgatherv_ -mpi_allgatherv__ -mpi_alloc_mem -mpi_alloc_mem_ -mpi_alloc_mem__ -mpi_allreduce -mpi_allreduce_ -mpi_allreduce__ -mpi_alltoall -mpi_alltoall_ -mpi_alltoall__ -mpi_alltoallv -mpi_alltoallv_ -mpi_alltoallv__ -mpi_alltoallw -mpi_alltoallw_ -mpi_alltoallw__ -mpi_attr_delete -mpi_attr_delete_ -mpi_attr_delete__ -mpi_attr_get -mpi_attr_get_ -mpi_attr_get__ -mpi_attr_put -mpi_attr_put_ -mpi_attr_put__ -mpi_barrier -mpi_barrier_ -mpi_barrier__ -mpi_bcast -mpi_bcast_ -mpi_bcast__ -mpi_bsend -mpi_bsend_ -mpi_bsend__ -mpi_bsend_init -mpi_bsend_init_ -mpi_bsend_init__ -mpi_buffer_attach -mpi_buffer_attach_ -mpi_buffer_attach__ -mpi_buffer_detach -mpi_buffer_detach_ -mpi_buffer_detach__ -mpi_cancel -mpi_cancel_ -mpi_cancel__ -mpi_cart_coords -mpi_cart_coords_ -mpi_cart_coords__ -mpi_cart_create -mpi_cart_create_ -mpi_cart_create__ -mpi_cart_get -mpi_cart_get_ -mpi_cart_get__ -mpi_cart_map -mpi_cart_map_ -mpi_cart_map__ -mpi_cart_rank -mpi_cart_rank_ -mpi_cart_rank__ -mpi_cart_shift -mpi_cart_shift_ -mpi_cart_shift__ -mpi_cart_sub -mpi_cart_sub_ -mpi_cart_sub__ -mpi_cartdim_get -mpi_cartdim_get_ -mpi_cartdim_get__ -mpi_close_port -mpi_close_port_ -mpi_close_port__ -mpi_comm_accept -mpi_comm_accept_ -mpi_comm_accept__ -mpi_comm_call_errhandler -mpi_comm_call_errhandler_ -mpi_comm_call_errhandler__ -mpi_comm_compare -mpi_comm_compare_ -mpi_comm_compare__ -mpi_comm_connect -mpi_comm_connect_ -mpi_comm_connect__ -mpi_comm_create -mpi_comm_create_ -mpi_comm_create__ -mpi_comm_create_errhandler -mpi_comm_create_errhandler_ -mpi_comm_create_errhandler__ -mpi_comm_create_keyval -mpi_comm_create_keyval_ -mpi_comm_create_keyval__ -mpi_comm_delete_attr -mpi_comm_delete_attr_ -mpi_comm_delete_attr__ -mpi_comm_disconnect -mpi_comm_disconnect_ -mpi_comm_disconnect__ -mpi_comm_dup -mpi_comm_dup_ -mpi_comm_dup__ -mpi_comm_dup_fn -mpi_comm_dup_fn_ -mpi_comm_dup_fn__ -mpi_comm_free -mpi_comm_free_ -mpi_comm_free__ -mpi_comm_free_keyval -mpi_comm_free_keyval_ -mpi_comm_free_keyval__ -mpi_comm_get_attr -mpi_comm_get_attr_ -mpi_comm_get_attr__ -mpi_comm_get_errhandler -mpi_comm_get_errhandler_ -mpi_comm_get_errhandler__ -mpi_comm_get_name -mpi_comm_get_name_ -mpi_comm_get_name__ -mpi_comm_get_parent -mpi_comm_get_parent_ -mpi_comm_get_parent__ -mpi_comm_group -mpi_comm_group_ -mpi_comm_group__ -mpi_comm_join -mpi_comm_join_ -mpi_comm_join__ -mpi_comm_null_copy_fn -mpi_comm_null_copy_fn_ -mpi_comm_null_copy_fn__ -mpi_comm_null_delete_fn -mpi_comm_null_delete_fn_ -mpi_comm_null_delete_fn__ -mpi_comm_rank -mpi_comm_rank_ -mpi_comm_rank__ -mpi_comm_remote_group -mpi_comm_remote_group_ -mpi_comm_remote_group__ -mpi_comm_remote_size -mpi_comm_remote_size_ -mpi_comm_remote_size__ -mpi_comm_set_attr -mpi_comm_set_attr_ -mpi_comm_set_attr__ -mpi_comm_set_errhandler -mpi_comm_set_errhandler_ -mpi_comm_set_errhandler__ -mpi_comm_set_name -mpi_comm_set_name_ -mpi_comm_set_name__ -mpi_comm_size -mpi_comm_size_ -mpi_comm_size__ -mpi_comm_spawn -mpi_comm_spawn_ -mpi_comm_spawn__ -mpi_comm_spawn_multiple -mpi_comm_spawn_multiple_ -mpi_comm_spawn_multiple__ -mpi_comm_split -mpi_comm_split_ -mpi_comm_split__ -mpi_comm_split_type -mpi_comm_split_type_ -mpi_comm_split_type__ -mpi_comm_test_inter -mpi_comm_test_inter_ -mpi_comm_test_inter__ -mpi_compare_and_swap -mpi_compare_and_swap_ -mpi_compare_and_swap__ -mpi_conversion_fn_null -mpi_conversion_fn_null_ -mpi_conversion_fn_null__ -mpi_dims_create -mpi_dims_create_ -mpi_dims_create__ -mpi_dist_graph_create -mpi_dist_graph_create_ -mpi_dist_graph_create__ -mpi_dist_graph_create_adjacent -mpi_dist_graph_create_adjacent_ -mpi_dist_graph_create_adjacent__ -mpi_dist_graph_neighbors -mpi_dist_graph_neighbors_ -mpi_dist_graph_neighbors__ -mpi_dist_graph_neighbors_count -mpi_dist_graph_neighbors_count_ -mpi_dist_graph_neighbors_count__ -mpi_dup_fn -mpi_dup_fn_ -mpi_dup_fn__ -mpi_errhandler_create -mpi_errhandler_create_ -mpi_errhandler_create__ -mpi_errhandler_free -mpi_errhandler_free_ -mpi_errhandler_free__ -mpi_errhandler_get -mpi_errhandler_get_ -mpi_errhandler_get__ -mpi_errhandler_set -mpi_errhandler_set_ -mpi_errhandler_set__ -mpi_error_class -mpi_error_class_ -mpi_error_class__ -mpi_error_string -mpi_error_string_ -mpi_error_string__ -mpi_exscan -mpi_exscan_ -mpi_exscan__ -mpi_fetch_and_op -mpi_fetch_and_op_ -mpi_fetch_and_op__ -mpi_file_call_errhandler -mpi_file_call_errhandler_ -mpi_file_call_errhandler__ -mpi_file_close -mpi_file_close_ -mpi_file_close__ -mpi_file_create_errhandler -mpi_file_create_errhandler_ -mpi_file_create_errhandler__ -mpi_file_delete -mpi_file_delete_ -mpi_file_delete__ -mpi_file_get_amode -mpi_file_get_amode_ -mpi_file_get_amode__ -mpi_file_get_atomicity -mpi_file_get_atomicity_ -mpi_file_get_atomicity__ -mpi_file_get_byte_offset -mpi_file_get_byte_offset_ -mpi_file_get_byte_offset__ -mpi_file_get_errhandler -mpi_file_get_errhandler_ -mpi_file_get_errhandler__ -mpi_file_get_group -mpi_file_get_group_ -mpi_file_get_group__ -mpi_file_get_info -mpi_file_get_info_ -mpi_file_get_info__ -mpi_file_get_position -mpi_file_get_position_ -mpi_file_get_position__ -mpi_file_get_position_shared -mpi_file_get_position_shared_ -mpi_file_get_position_shared__ -mpi_file_get_size -mpi_file_get_size_ -mpi_file_get_size__ -mpi_file_get_type_extent -mpi_file_get_type_extent_ -mpi_file_get_type_extent__ -mpi_file_get_view -mpi_file_get_view_ -mpi_file_get_view__ -mpi_file_iread -mpi_file_iread_ -mpi_file_iread__ -mpi_file_iread_at -mpi_file_iread_at_ -mpi_file_iread_at__ -mpi_file_iread_shared -mpi_file_iread_shared_ -mpi_file_iread_shared__ -mpi_file_iwrite -mpi_file_iwrite_ -mpi_file_iwrite__ -mpi_file_iwrite_at -mpi_file_iwrite_at_ -mpi_file_iwrite_at__ -mpi_file_iwrite_shared -mpi_file_iwrite_shared_ -mpi_file_iwrite_shared__ -mpi_file_open -mpi_file_open_ -mpi_file_open__ -mpi_file_preallocate -mpi_file_preallocate_ -mpi_file_preallocate__ -mpi_file_read -mpi_file_read_ -mpi_file_read__ -mpi_file_read_all -mpi_file_read_all_ -mpi_file_read_all__ -mpi_file_read_all_begin -mpi_file_read_all_begin_ -mpi_file_read_all_begin__ -mpi_file_read_all_end -mpi_file_read_all_end_ -mpi_file_read_all_end__ -mpi_file_read_at -mpi_file_read_at_ -mpi_file_read_at__ -mpi_file_read_at_all -mpi_file_read_at_all_ -mpi_file_read_at_all__ -mpi_file_read_at_all_begin -mpi_file_read_at_all_begin_ -mpi_file_read_at_all_begin__ -mpi_file_read_at_all_end -mpi_file_read_at_all_end_ -mpi_file_read_at_all_end__ -mpi_file_read_ordered -mpi_file_read_ordered_ -mpi_file_read_ordered__ -mpi_file_read_ordered_begin -mpi_file_read_ordered_begin_ -mpi_file_read_ordered_begin__ -mpi_file_read_ordered_end -mpi_file_read_ordered_end_ -mpi_file_read_ordered_end__ -mpi_file_read_shared -mpi_file_read_shared_ -mpi_file_read_shared__ -mpi_file_seek -mpi_file_seek_ -mpi_file_seek__ -mpi_file_seek_shared -mpi_file_seek_shared_ -mpi_file_seek_shared__ -mpi_file_set_atomicity -mpi_file_set_atomicity_ -mpi_file_set_atomicity__ -mpi_file_set_errhandler -mpi_file_set_errhandler_ -mpi_file_set_errhandler__ -mpi_file_set_info -mpi_file_set_info_ -mpi_file_set_info__ -mpi_file_set_size -mpi_file_set_size_ -mpi_file_set_size__ -mpi_file_set_view -mpi_file_set_view_ -mpi_file_set_view__ -mpi_file_sync -mpi_file_sync_ -mpi_file_sync__ -mpi_file_write -mpi_file_write_ -mpi_file_write__ -mpi_file_write_all -mpi_file_write_all_ -mpi_file_write_all__ -mpi_file_write_all_begin -mpi_file_write_all_begin_ -mpi_file_write_all_begin__ -mpi_file_write_all_end -mpi_file_write_all_end_ -mpi_file_write_all_end__ -mpi_file_write_at -mpi_file_write_at_ -mpi_file_write_at__ -mpi_file_write_at_all -mpi_file_write_at_all_ -mpi_file_write_at_all__ -mpi_file_write_at_all_begin -mpi_file_write_at_all_begin_ -mpi_file_write_at_all_begin__ -mpi_file_write_at_all_end -mpi_file_write_at_all_end_ -mpi_file_write_at_all_end__ -mpi_file_write_ordered -mpi_file_write_ordered_ -mpi_file_write_ordered__ -mpi_file_write_ordered_begin -mpi_file_write_ordered_begin_ -mpi_file_write_ordered_begin__ -mpi_file_write_ordered_end -mpi_file_write_ordered_end_ -mpi_file_write_ordered_end__ -mpi_file_write_shared -mpi_file_write_shared_ -mpi_file_write_shared__ -mpi_finalize -mpi_finalize_ -mpi_finalize__ -mpi_finalized -mpi_finalized_ -mpi_finalized__ -mpi_free_mem -mpi_free_mem_ -mpi_free_mem__ -mpi_gather -mpi_gather_ -mpi_gather__ -mpi_gatherv -mpi_gatherv_ -mpi_gatherv__ -mpi_get -mpi_get_ -mpi_get__ -mpi_get_accumulate -mpi_get_accumulate_ -mpi_get_accumulate__ -mpi_get_address -mpi_get_address_ -mpi_get_address__ -mpi_get_count -mpi_get_count_ -mpi_get_count__ -mpi_get_elements -mpi_get_elements_ -mpi_get_elements__ -mpi_get_elements_x -mpi_get_elements_x_ -mpi_get_elements_x__ -mpi_get_library_version -mpi_get_library_version_ -mpi_get_library_version__ -mpi_get_processor_name -mpi_get_processor_name_ -mpi_get_processor_name__ -mpi_get_version -mpi_get_version_ -mpi_get_version__ -mpi_graph_create -mpi_graph_create_ -mpi_graph_create__ -mpi_graph_get -mpi_graph_get_ -mpi_graph_get__ -mpi_graph_map -mpi_graph_map_ -mpi_graph_map__ -mpi_graph_neighbors -mpi_graph_neighbors_ -mpi_graph_neighbors__ -mpi_graph_neighbors_count -mpi_graph_neighbors_count_ -mpi_graph_neighbors_count__ -mpi_graphdims_get -mpi_graphdims_get_ -mpi_graphdims_get__ -mpi_grequest_complete -mpi_grequest_complete_ -mpi_grequest_complete__ -mpi_grequest_start -mpi_grequest_start_ -mpi_grequest_start__ -mpi_group_compare -mpi_group_compare_ -mpi_group_compare__ -mpi_group_difference -mpi_group_difference_ -mpi_group_difference__ -mpi_group_excl -mpi_group_excl_ -mpi_group_excl__ -mpi_group_free -mpi_group_free_ -mpi_group_free__ -mpi_group_incl -mpi_group_incl_ -mpi_group_incl__ -mpi_group_intersection -mpi_group_intersection_ -mpi_group_intersection__ -mpi_group_range_excl -mpi_group_range_excl_ -mpi_group_range_excl__ -mpi_group_range_incl -mpi_group_range_incl_ -mpi_group_range_incl__ -mpi_group_rank -mpi_group_rank_ -mpi_group_rank__ -mpi_group_size -mpi_group_size_ -mpi_group_size__ -mpi_group_translate_ranks -mpi_group_translate_ranks_ -mpi_group_translate_ranks__ -mpi_group_union -mpi_group_union_ -mpi_group_union__ -mpi_iallgather -mpi_iallgather_ -mpi_iallgather__ -mpi_iallgatherv -mpi_iallgatherv_ -mpi_iallgatherv__ -mpi_iallreduce -mpi_iallreduce_ -mpi_iallreduce__ -mpi_ialltoall -mpi_ialltoall_ -mpi_ialltoall__ -mpi_ialltoallv -mpi_ialltoallv_ -mpi_ialltoallv__ -mpi_ialltoallw -mpi_ialltoallw_ -mpi_ialltoallw__ -mpi_ibarrier -mpi_ibarrier_ -mpi_ibarrier__ -mpi_ibcast -mpi_ibcast_ -mpi_ibcast__ -mpi_ibsend -mpi_ibsend_ -mpi_ibsend__ -mpi_iexscan -mpi_iexscan_ -mpi_iexscan__ -mpi_igather -mpi_igather_ -mpi_igather__ -mpi_igatherv -mpi_igatherv_ -mpi_igatherv__ -mpi_improbe -mpi_improbe_ -mpi_improbe__ -mpi_imrecv -mpi_imrecv_ -mpi_imrecv__ -mpi_info_create -mpi_info_create_ -mpi_info_create__ -mpi_info_delete -mpi_info_delete_ -mpi_info_delete__ -mpi_info_dup -mpi_info_dup_ -mpi_info_dup__ -mpi_info_free -mpi_info_free_ -mpi_info_free__ -mpi_info_get -mpi_info_get_ -mpi_info_get__ -mpi_info_get_nkeys -mpi_info_get_nkeys_ -mpi_info_get_nkeys__ -mpi_info_get_nthkey -mpi_info_get_nthkey_ -mpi_info_get_nthkey__ -mpi_info_get_valuelen -mpi_info_get_valuelen_ -mpi_info_get_valuelen__ -mpi_info_set -mpi_info_set_ -mpi_info_set__ -mpi_init -mpi_init_ -mpi_init__ -mpi_init_thread -mpi_init_thread_ -mpi_init_thread__ -mpi_initialized -mpi_initialized_ -mpi_initialized__ -mpi_intercomm_create -mpi_intercomm_create_ -mpi_intercomm_create__ -mpi_intercomm_merge -mpi_intercomm_merge_ -mpi_intercomm_merge__ -mpi_iprobe -mpi_iprobe_ -mpi_iprobe__ -mpi_irecv -mpi_irecv_ -mpi_irecv__ -mpi_ireduce -mpi_ireduce_ -mpi_ireduce__ -mpi_ireduce_scatter -mpi_ireduce_scatter_ -mpi_ireduce_scatter__ -mpi_ireduce_scatter_block -mpi_ireduce_scatter_block_ -mpi_ireduce_scatter_block__ -mpi_irsend -mpi_irsend_ -mpi_irsend__ -mpi_is_thread_main -mpi_is_thread_main_ -mpi_is_thread_main__ -mpi_iscan -mpi_iscan_ -mpi_iscan__ -mpi_iscatter -mpi_iscatter_ -mpi_iscatter__ -mpi_iscatterv -mpi_iscatterv_ -mpi_iscatterv__ -mpi_isend -mpi_isend_ -mpi_isend__ -mpi_issend -mpi_issend_ -mpi_issend__ -mpi_keyval_create -mpi_keyval_create_ -mpi_keyval_create__ -mpi_keyval_free -mpi_keyval_free_ -mpi_keyval_free__ -mpi_lookup_name -mpi_lookup_name_ -mpi_lookup_name__ -mpi_mprobe -mpi_mprobe_ -mpi_mprobe__ -mpi_mrecv -mpi_mrecv_ -mpi_mrecv__ -mpi_null_copy_fn -mpi_null_copy_fn_ -mpi_null_copy_fn__ -mpi_null_delete_fn -mpi_null_delete_fn_ -mpi_null_delete_fn__ -mpi_op_commutative -mpi_op_commutative_ -mpi_op_commutative__ -mpi_op_create -mpi_op_create_ -mpi_op_create__ -mpi_op_free -mpi_op_free_ -mpi_op_free__ -mpi_open_port -mpi_open_port_ -mpi_open_port__ -mpi_pack -mpi_pack_ -mpi_pack__ -mpi_pack_external -mpi_pack_external_ -mpi_pack_external__ -mpi_pack_external_size -mpi_pack_external_size_ -mpi_pack_external_size__ -mpi_pack_size -mpi_pack_size_ -mpi_pack_size__ -mpi_pcontrol -mpi_pcontrol_ -mpi_pcontrol__ -mpi_probe -mpi_probe_ -mpi_probe__ -mpi_publish_name -mpi_publish_name_ -mpi_publish_name__ -mpi_put -mpi_put_ -mpi_put__ -mpi_query_thread -mpi_query_thread_ -mpi_query_thread__ -mpi_raccumulate -mpi_raccumulate_ -mpi_raccumulate__ -mpi_recv -mpi_recv_ -mpi_recv__ -mpi_recv_init -mpi_recv_init_ -mpi_recv_init__ -mpi_reduce -mpi_reduce_ -mpi_reduce__ -mpi_reduce_local -mpi_reduce_local_ -mpi_reduce_local__ -mpi_reduce_scatter -mpi_reduce_scatter_ -mpi_reduce_scatter__ -mpi_reduce_scatter_block -mpi_reduce_scatter_block_ -mpi_reduce_scatter_block__ -mpi_register_datarep -mpi_register_datarep_ -mpi_register_datarep__ -mpi_request_free -mpi_request_free_ -mpi_request_free__ -mpi_request_get_status -mpi_request_get_status_ -mpi_request_get_status__ -mpi_rget -mpi_rget_ -mpi_rget__ -mpi_rget_accumulate -mpi_rget_accumulate_ -mpi_rget_accumulate__ -mpi_rput -mpi_rput_ -mpi_rput__ -mpi_rsend -mpi_rsend_ -mpi_rsend__ -mpi_rsend_init -mpi_rsend_init_ -mpi_rsend_init__ -mpi_scan -mpi_scan_ -mpi_scan__ -mpi_scatter -mpi_scatter_ -mpi_scatter__ -mpi_scatterv -mpi_scatterv_ -mpi_scatterv__ -mpi_send -mpi_send_ -mpi_send__ -mpi_send_init -mpi_send_init_ -mpi_send_init__ -mpi_sendrecv -mpi_sendrecv_ -mpi_sendrecv__ -mpi_sendrecv_replace -mpi_sendrecv_replace_ -mpi_sendrecv_replace__ -mpi_ssend -mpi_ssend_ -mpi_ssend__ -mpi_ssend_init -mpi_ssend_init_ -mpi_ssend_init__ -mpi_start -mpi_start_ -mpi_start__ -mpi_startall -mpi_startall_ -mpi_startall__ -mpi_status_c2f -mpi_status_c2f_ -mpi_status_c2f__ -mpi_status_f2c -mpi_status_f2c_ -mpi_status_f2c__ -mpi_status_set_cancelled -mpi_status_set_cancelled_ -mpi_status_set_cancelled__ -mpi_status_set_elements -mpi_status_set_elements_ -mpi_status_set_elements__ -mpi_status_set_elements_x -mpi_status_set_elements_x_ -mpi_status_set_elements_x__ -mpi_test -mpi_test_ -mpi_test__ -mpi_test_cancelled -mpi_test_cancelled_ -mpi_test_cancelled__ -mpi_testall -mpi_testall_ -mpi_testall__ -mpi_testany -mpi_testany_ -mpi_testany__ -mpi_testsome -mpi_testsome_ -mpi_testsome__ -mpi_topo_test -mpi_topo_test_ -mpi_topo_test__ -mpi_type_commit -mpi_type_commit_ -mpi_type_commit__ -mpi_type_contiguous -mpi_type_contiguous_ -mpi_type_contiguous__ -mpi_type_create_darray -mpi_type_create_darray_ -mpi_type_create_darray__ -mpi_type_create_f90_complex -mpi_type_create_f90_complex_ -mpi_type_create_f90_complex__ -mpi_type_create_f90_integer -mpi_type_create_f90_integer_ -mpi_type_create_f90_integer__ -mpi_type_create_f90_real -mpi_type_create_f90_real_ -mpi_type_create_f90_real__ -mpi_type_create_hindexed -mpi_type_create_hindexed_ -mpi_type_create_hindexed__ -mpi_type_create_hindexed_block -mpi_type_create_hindexed_block_ -mpi_type_create_hindexed_block__ -mpi_type_create_hvector -mpi_type_create_hvector_ -mpi_type_create_hvector__ -mpi_type_create_indexed_block -mpi_type_create_indexed_block_ -mpi_type_create_indexed_block__ -mpi_type_create_keyval -mpi_type_create_keyval_ -mpi_type_create_keyval__ -mpi_type_create_resized -mpi_type_create_resized_ -mpi_type_create_resized__ -mpi_type_create_struct -mpi_type_create_struct_ -mpi_type_create_struct__ -mpi_type_create_subarray -mpi_type_create_subarray_ -mpi_type_create_subarray__ -mpi_type_delete_attr -mpi_type_delete_attr_ -mpi_type_delete_attr__ -mpi_type_dup -mpi_type_dup_ -mpi_type_dup__ -mpi_type_dup_fn -mpi_type_dup_fn_ -mpi_type_dup_fn__ -mpi_type_extent -mpi_type_extent_ -mpi_type_extent__ -mpi_type_free -mpi_type_free_ -mpi_type_free__ -mpi_type_free_keyval -mpi_type_free_keyval_ -mpi_type_free_keyval__ -mpi_type_get_attr -mpi_type_get_attr_ -mpi_type_get_attr__ -mpi_type_get_contents -mpi_type_get_contents_ -mpi_type_get_contents__ -mpi_type_get_envelope -mpi_type_get_envelope_ -mpi_type_get_envelope__ -mpi_type_get_extent -mpi_type_get_extent_ -mpi_type_get_extent__ -mpi_type_get_extent_x -mpi_type_get_extent_x_ -mpi_type_get_extent_x__ -mpi_type_get_name -mpi_type_get_name_ -mpi_type_get_name__ -mpi_type_get_true_extent -mpi_type_get_true_extent_ -mpi_type_get_true_extent__ -mpi_type_get_true_extent_x -mpi_type_get_true_extent_x_ -mpi_type_get_true_extent_x__ -mpi_type_hindexed -mpi_type_hindexed_ -mpi_type_hindexed__ -mpi_type_hvector -mpi_type_hvector_ -mpi_type_hvector__ -mpi_type_indexed -mpi_type_indexed_ -mpi_type_indexed__ -mpi_type_lb -mpi_type_lb_ -mpi_type_lb__ -mpi_type_match_size -mpi_type_match_size_ -mpi_type_match_size__ -mpi_type_null_copy_fn -mpi_type_null_copy_fn_ -mpi_type_null_copy_fn__ -mpi_type_null_delete_fn -mpi_type_null_delete_fn_ -mpi_type_null_delete_fn__ -mpi_type_set_attr -mpi_type_set_attr_ -mpi_type_set_attr__ -mpi_type_set_name -mpi_type_set_name_ -mpi_type_set_name__ -mpi_type_size -mpi_type_size_ -mpi_type_size__ -mpi_type_size_x -mpi_type_size_x_ -mpi_type_size_x__ -mpi_type_struct -mpi_type_struct_ -mpi_type_struct__ -mpi_type_ub -mpi_type_ub_ -mpi_type_ub__ -mpi_type_vector -mpi_type_vector_ -mpi_type_vector__ -mpi_unpack -mpi_unpack_ -mpi_unpack__ -mpi_unpack_external -mpi_unpack_external_ -mpi_unpack_external__ -mpi_unpublish_name -mpi_unpublish_name_ -mpi_unpublish_name__ -mpi_wait -mpi_wait_ -mpi_wait__ -mpi_waitall -mpi_waitall_ -mpi_waitall__ -mpi_waitany -mpi_waitany_ -mpi_waitany__ -mpi_waitsome -mpi_waitsome_ -mpi_waitsome__ -mpi_win_allocate -mpi_win_allocate_ -mpi_win_allocate__ -mpi_win_allocate_shared -mpi_win_allocate_shared_ -mpi_win_allocate_shared__ -mpi_win_attach -mpi_win_attach_ -mpi_win_attach__ -mpi_win_call_errhandler -mpi_win_call_errhandler_ -mpi_win_call_errhandler__ -mpi_win_complete -mpi_win_complete_ -mpi_win_complete__ -mpi_win_create -mpi_win_create_ -mpi_win_create__ -mpi_win_create_dynamic -mpi_win_create_dynamic_ -mpi_win_create_dynamic__ -mpi_win_create_errhandler -mpi_win_create_errhandler_ -mpi_win_create_errhandler__ -mpi_win_create_keyval -mpi_win_create_keyval_ -mpi_win_create_keyval__ -mpi_win_delete_attr -mpi_win_delete_attr_ -mpi_win_delete_attr__ -mpi_win_detach -mpi_win_detach_ -mpi_win_detach__ -mpi_win_dup_fn -mpi_win_dup_fn_ -mpi_win_dup_fn__ -mpi_win_fence -mpi_win_fence_ -mpi_win_fence__ -mpi_win_flush -mpi_win_flush_ -mpi_win_flush__ -mpi_win_flush_all -mpi_win_flush_all_ -mpi_win_flush_all__ -mpi_win_flush_local -mpi_win_flush_local_ -mpi_win_flush_local__ -mpi_win_flush_local_all -mpi_win_flush_local_all_ -mpi_win_flush_local_all__ -mpi_win_free -mpi_win_free_ -mpi_win_free__ -mpi_win_free_keyval -mpi_win_free_keyval_ -mpi_win_free_keyval__ -mpi_win_get_attr -mpi_win_get_attr_ -mpi_win_get_attr__ -mpi_win_get_errhandler -mpi_win_get_errhandler_ -mpi_win_get_errhandler__ -mpi_win_get_group -mpi_win_get_group_ -mpi_win_get_group__ -mpi_win_get_name -mpi_win_get_name_ -mpi_win_get_name__ -mpi_win_lock -mpi_win_lock_ -mpi_win_lock__ -mpi_win_lock_all -mpi_win_lock_all_ -mpi_win_lock_all__ -mpi_win_null_copy_fn -mpi_win_null_copy_fn_ -mpi_win_null_copy_fn__ -mpi_win_null_delete_fn -mpi_win_null_delete_fn_ -mpi_win_null_delete_fn__ -mpi_win_post -mpi_win_post_ -mpi_win_post__ -mpi_win_set_attr -mpi_win_set_attr_ -mpi_win_set_attr__ -mpi_win_set_errhandler -mpi_win_set_errhandler_ -mpi_win_set_errhandler__ -mpi_win_set_name -mpi_win_set_name_ -mpi_win_set_name__ -mpi_win_shared_query -mpi_win_shared_query_ -mpi_win_shared_query__ -mpi_win_start -mpi_win_start_ -mpi_win_start__ -mpi_win_sync -mpi_win_sync_ -mpi_win_sync__ -mpi_win_test -mpi_win_test_ -mpi_win_test__ -mpi_win_unlock -mpi_win_unlock_ -mpi_win_unlock__ -mpi_win_unlock_all -mpi_win_unlock_all_ -mpi_win_unlock_all__ -mpi_win_wait -mpi_win_wait_ -mpi_win_wait__ -mpi_wtick -mpi_wtick_ -mpi_wtick__ -mpi_wtime -mpi_wtime_ -mpi_wtime__ -mpifcmb5 DATA -mpifcmb5_ DATA -mpifcmb9 DATA -mpifcmb9_ DATA -mpipriv1 DATA -mpipriv1_ DATA -mpipriv2 DATA -mpipriv2_ DATA -mpiprivc DATA -mpiprivc_ DATA -mqs_get_communicator@8 -mqs_next_communicator@4 -mqs_next_operation@8 -mqs_setup_basic_callbacks@4 -mqs_setup_communicator_iterator@4 -mqs_setup_image@8 -mqs_setup_operation_iterator@8 -mqs_setup_process@8 -mqs_update_communicator_list@4 -mqs_version_compatibility -msmpi_get_bsend_overhead -msmpi_get_bsend_overhead_ -msmpi_get_bsend_overhead__ -msmpi_get_version -msmpi_get_version_ -msmpi_get_version__ -pmpi_abort -pmpi_abort_ -pmpi_abort__ -pmpi_accumulate -pmpi_accumulate_ -pmpi_accumulate__ -pmpi_add_error_class -pmpi_add_error_class_ -pmpi_add_error_class__ -pmpi_add_error_code -pmpi_add_error_code_ -pmpi_add_error_code__ -pmpi_add_error_string -pmpi_add_error_string_ -pmpi_add_error_string__ -pmpi_address -pmpi_address_ -pmpi_address__ -pmpi_aint_add -pmpi_aint_add_ -pmpi_aint_add__ -pmpi_aint_diff -pmpi_aint_diff_ -pmpi_aint_diff__ -pmpi_allgather -pmpi_allgather_ -pmpi_allgather__ -pmpi_allgatherv -pmpi_allgatherv_ -pmpi_allgatherv__ -pmpi_alloc_mem -pmpi_alloc_mem_ -pmpi_alloc_mem__ -pmpi_allreduce -pmpi_allreduce_ -pmpi_allreduce__ -pmpi_alltoall -pmpi_alltoall_ -pmpi_alltoall__ -pmpi_alltoallv -pmpi_alltoallv_ -pmpi_alltoallv__ -pmpi_alltoallw -pmpi_alltoallw_ -pmpi_alltoallw__ -pmpi_attr_delete -pmpi_attr_delete_ -pmpi_attr_delete__ -pmpi_attr_get -pmpi_attr_get_ -pmpi_attr_get__ -pmpi_attr_put -pmpi_attr_put_ -pmpi_attr_put__ -pmpi_barrier -pmpi_barrier_ -pmpi_barrier__ -pmpi_bcast -pmpi_bcast_ -pmpi_bcast__ -pmpi_bsend -pmpi_bsend_ -pmpi_bsend__ -pmpi_bsend_init -pmpi_bsend_init_ -pmpi_bsend_init__ -pmpi_buffer_attach -pmpi_buffer_attach_ -pmpi_buffer_attach__ -pmpi_buffer_detach -pmpi_buffer_detach_ -pmpi_buffer_detach__ -pmpi_cancel -pmpi_cancel_ -pmpi_cancel__ -pmpi_cart_coords -pmpi_cart_coords_ -pmpi_cart_coords__ -pmpi_cart_create -pmpi_cart_create_ -pmpi_cart_create__ -pmpi_cart_get -pmpi_cart_get_ -pmpi_cart_get__ -pmpi_cart_map -pmpi_cart_map_ -pmpi_cart_map__ -pmpi_cart_rank -pmpi_cart_rank_ -pmpi_cart_rank__ -pmpi_cart_shift -pmpi_cart_shift_ -pmpi_cart_shift__ -pmpi_cart_sub -pmpi_cart_sub_ -pmpi_cart_sub__ -pmpi_cartdim_get -pmpi_cartdim_get_ -pmpi_cartdim_get__ -pmpi_close_port -pmpi_close_port_ -pmpi_close_port__ -pmpi_comm_accept -pmpi_comm_accept_ -pmpi_comm_accept__ -pmpi_comm_call_errhandler -pmpi_comm_call_errhandler_ -pmpi_comm_call_errhandler__ -pmpi_comm_compare -pmpi_comm_compare_ -pmpi_comm_compare__ -pmpi_comm_connect -pmpi_comm_connect_ -pmpi_comm_connect__ -pmpi_comm_create -pmpi_comm_create_ -pmpi_comm_create__ -pmpi_comm_create_errhandler -pmpi_comm_create_errhandler_ -pmpi_comm_create_errhandler__ -pmpi_comm_create_keyval -pmpi_comm_create_keyval_ -pmpi_comm_create_keyval__ -pmpi_comm_delete_attr -pmpi_comm_delete_attr_ -pmpi_comm_delete_attr__ -pmpi_comm_disconnect -pmpi_comm_disconnect_ -pmpi_comm_disconnect__ -pmpi_comm_dup -pmpi_comm_dup_ -pmpi_comm_dup__ -pmpi_comm_dup_fn -pmpi_comm_dup_fn_ -pmpi_comm_dup_fn__ -pmpi_comm_free -pmpi_comm_free_ -pmpi_comm_free__ -pmpi_comm_free_keyval -pmpi_comm_free_keyval_ -pmpi_comm_free_keyval__ -pmpi_comm_get_attr -pmpi_comm_get_attr_ -pmpi_comm_get_attr__ -pmpi_comm_get_errhandler -pmpi_comm_get_errhandler_ -pmpi_comm_get_errhandler__ -pmpi_comm_get_name -pmpi_comm_get_name_ -pmpi_comm_get_name__ -pmpi_comm_get_parent -pmpi_comm_get_parent_ -pmpi_comm_get_parent__ -pmpi_comm_group -pmpi_comm_group_ -pmpi_comm_group__ -pmpi_comm_join -pmpi_comm_join_ -pmpi_comm_join__ -pmpi_comm_null_copy_fn -pmpi_comm_null_copy_fn_ -pmpi_comm_null_copy_fn__ -pmpi_comm_null_delete_fn -pmpi_comm_null_delete_fn_ -pmpi_comm_null_delete_fn__ -pmpi_comm_rank -pmpi_comm_rank_ -pmpi_comm_rank__ -pmpi_comm_remote_group -pmpi_comm_remote_group_ -pmpi_comm_remote_group__ -pmpi_comm_remote_size -pmpi_comm_remote_size_ -pmpi_comm_remote_size__ -pmpi_comm_set_attr -pmpi_comm_set_attr_ -pmpi_comm_set_attr__ -pmpi_comm_set_errhandler -pmpi_comm_set_errhandler_ -pmpi_comm_set_errhandler__ -pmpi_comm_set_name -pmpi_comm_set_name_ -pmpi_comm_set_name__ -pmpi_comm_size -pmpi_comm_size_ -pmpi_comm_size__ -pmpi_comm_spawn -pmpi_comm_spawn_ -pmpi_comm_spawn__ -pmpi_comm_spawn_multiple -pmpi_comm_spawn_multiple_ -pmpi_comm_spawn_multiple__ -pmpi_comm_split -pmpi_comm_split_ -pmpi_comm_split__ -pmpi_comm_split_type -pmpi_comm_split_type_ -pmpi_comm_split_type__ -pmpi_comm_test_inter -pmpi_comm_test_inter_ -pmpi_comm_test_inter__ -pmpi_compare_and_swap -pmpi_compare_and_swap_ -pmpi_compare_and_swap__ -pmpi_conversion_fn_null -pmpi_conversion_fn_null_ -pmpi_conversion_fn_null__ -pmpi_dims_create -pmpi_dims_create_ -pmpi_dims_create__ -pmpi_dist_graph_create -pmpi_dist_graph_create_ -pmpi_dist_graph_create__ -pmpi_dist_graph_create_adjacent -pmpi_dist_graph_create_adjacent_ -pmpi_dist_graph_create_adjacent__ -pmpi_dist_graph_neighbors -pmpi_dist_graph_neighbors_ -pmpi_dist_graph_neighbors__ -pmpi_dist_graph_neighbors_count -pmpi_dist_graph_neighbors_count_ -pmpi_dist_graph_neighbors_count__ -pmpi_dup_fn -pmpi_dup_fn_ -pmpi_dup_fn__ -pmpi_errhandler_create -pmpi_errhandler_create_ -pmpi_errhandler_create__ -pmpi_errhandler_free -pmpi_errhandler_free_ -pmpi_errhandler_free__ -pmpi_errhandler_get -pmpi_errhandler_get_ -pmpi_errhandler_get__ -pmpi_errhandler_set -pmpi_errhandler_set_ -pmpi_errhandler_set__ -pmpi_error_class -pmpi_error_class_ -pmpi_error_class__ -pmpi_error_string -pmpi_error_string_ -pmpi_error_string__ -pmpi_exscan -pmpi_exscan_ -pmpi_exscan__ -pmpi_fetch_and_op -pmpi_fetch_and_op_ -pmpi_fetch_and_op__ -pmpi_file_call_errhandler -pmpi_file_call_errhandler_ -pmpi_file_call_errhandler__ -pmpi_file_close -pmpi_file_close_ -pmpi_file_close__ -pmpi_file_create_errhandler -pmpi_file_create_errhandler_ -pmpi_file_create_errhandler__ -pmpi_file_delete -pmpi_file_delete_ -pmpi_file_delete__ -pmpi_file_get_amode -pmpi_file_get_amode_ -pmpi_file_get_amode__ -pmpi_file_get_atomicity -pmpi_file_get_atomicity_ -pmpi_file_get_atomicity__ -pmpi_file_get_byte_offset -pmpi_file_get_byte_offset_ -pmpi_file_get_byte_offset__ -pmpi_file_get_errhandler -pmpi_file_get_errhandler_ -pmpi_file_get_errhandler__ -pmpi_file_get_group -pmpi_file_get_group_ -pmpi_file_get_group__ -pmpi_file_get_info -pmpi_file_get_info_ -pmpi_file_get_info__ -pmpi_file_get_position -pmpi_file_get_position_ -pmpi_file_get_position__ -pmpi_file_get_position_shared -pmpi_file_get_position_shared_ -pmpi_file_get_position_shared__ -pmpi_file_get_size -pmpi_file_get_size_ -pmpi_file_get_size__ -pmpi_file_get_type_extent -pmpi_file_get_type_extent_ -pmpi_file_get_type_extent__ -pmpi_file_get_view -pmpi_file_get_view_ -pmpi_file_get_view__ -pmpi_file_iread -pmpi_file_iread_ -pmpi_file_iread__ -pmpi_file_iread_at -pmpi_file_iread_at_ -pmpi_file_iread_at__ -pmpi_file_iread_shared -pmpi_file_iread_shared_ -pmpi_file_iread_shared__ -pmpi_file_iwrite -pmpi_file_iwrite_ -pmpi_file_iwrite__ -pmpi_file_iwrite_at -pmpi_file_iwrite_at_ -pmpi_file_iwrite_at__ -pmpi_file_iwrite_shared -pmpi_file_iwrite_shared_ -pmpi_file_iwrite_shared__ -pmpi_file_open -pmpi_file_open_ -pmpi_file_open__ -pmpi_file_preallocate -pmpi_file_preallocate_ -pmpi_file_preallocate__ -pmpi_file_read -pmpi_file_read_ -pmpi_file_read__ -pmpi_file_read_all -pmpi_file_read_all_ -pmpi_file_read_all__ -pmpi_file_read_all_begin -pmpi_file_read_all_begin_ -pmpi_file_read_all_begin__ -pmpi_file_read_all_end -pmpi_file_read_all_end_ -pmpi_file_read_all_end__ -pmpi_file_read_at -pmpi_file_read_at_ -pmpi_file_read_at__ -pmpi_file_read_at_all -pmpi_file_read_at_all_ -pmpi_file_read_at_all__ -pmpi_file_read_at_all_begin -pmpi_file_read_at_all_begin_ -pmpi_file_read_at_all_begin__ -pmpi_file_read_at_all_end -pmpi_file_read_at_all_end_ -pmpi_file_read_at_all_end__ -pmpi_file_read_ordered -pmpi_file_read_ordered_ -pmpi_file_read_ordered__ -pmpi_file_read_ordered_begin -pmpi_file_read_ordered_begin_ -pmpi_file_read_ordered_begin__ -pmpi_file_read_ordered_end -pmpi_file_read_ordered_end_ -pmpi_file_read_ordered_end__ -pmpi_file_read_shared -pmpi_file_read_shared_ -pmpi_file_read_shared__ -pmpi_file_seek -pmpi_file_seek_ -pmpi_file_seek__ -pmpi_file_seek_shared -pmpi_file_seek_shared_ -pmpi_file_seek_shared__ -pmpi_file_set_atomicity -pmpi_file_set_atomicity_ -pmpi_file_set_atomicity__ -pmpi_file_set_errhandler -pmpi_file_set_errhandler_ -pmpi_file_set_errhandler__ -pmpi_file_set_info -pmpi_file_set_info_ -pmpi_file_set_info__ -pmpi_file_set_size -pmpi_file_set_size_ -pmpi_file_set_size__ -pmpi_file_set_view -pmpi_file_set_view_ -pmpi_file_set_view__ -pmpi_file_sync -pmpi_file_sync_ -pmpi_file_sync__ -pmpi_file_write -pmpi_file_write_ -pmpi_file_write__ -pmpi_file_write_all -pmpi_file_write_all_ -pmpi_file_write_all__ -pmpi_file_write_all_begin -pmpi_file_write_all_begin_ -pmpi_file_write_all_begin__ -pmpi_file_write_all_end -pmpi_file_write_all_end_ -pmpi_file_write_all_end__ -pmpi_file_write_at -pmpi_file_write_at_ -pmpi_file_write_at__ -pmpi_file_write_at_all -pmpi_file_write_at_all_ -pmpi_file_write_at_all__ -pmpi_file_write_at_all_begin -pmpi_file_write_at_all_begin_ -pmpi_file_write_at_all_begin__ -pmpi_file_write_at_all_end -pmpi_file_write_at_all_end_ -pmpi_file_write_at_all_end__ -pmpi_file_write_ordered -pmpi_file_write_ordered_ -pmpi_file_write_ordered__ -pmpi_file_write_ordered_begin -pmpi_file_write_ordered_begin_ -pmpi_file_write_ordered_begin__ -pmpi_file_write_ordered_end -pmpi_file_write_ordered_end_ -pmpi_file_write_ordered_end__ -pmpi_file_write_shared -pmpi_file_write_shared_ -pmpi_file_write_shared__ -pmpi_finalize -pmpi_finalize_ -pmpi_finalize__ -pmpi_finalized -pmpi_finalized_ -pmpi_finalized__ -pmpi_free_mem -pmpi_free_mem_ -pmpi_free_mem__ -pmpi_gather -pmpi_gather_ -pmpi_gather__ -pmpi_gatherv -pmpi_gatherv_ -pmpi_gatherv__ -pmpi_get -pmpi_get_ -pmpi_get__ -pmpi_get_accumulate -pmpi_get_accumulate_ -pmpi_get_accumulate__ -pmpi_get_address -pmpi_get_address_ -pmpi_get_address__ -pmpi_get_count -pmpi_get_count_ -pmpi_get_count__ -pmpi_get_elements -pmpi_get_elements_ -pmpi_get_elements__ -pmpi_get_elements_x -pmpi_get_elements_x_ -pmpi_get_elements_x__ -pmpi_get_library_version -pmpi_get_library_version_ -pmpi_get_library_version__ -pmpi_get_processor_name -pmpi_get_processor_name_ -pmpi_get_processor_name__ -pmpi_get_version -pmpi_get_version_ -pmpi_get_version__ -pmpi_graph_create -pmpi_graph_create_ -pmpi_graph_create__ -pmpi_graph_get -pmpi_graph_get_ -pmpi_graph_get__ -pmpi_graph_map -pmpi_graph_map_ -pmpi_graph_map__ -pmpi_graph_neighbors -pmpi_graph_neighbors_ -pmpi_graph_neighbors__ -pmpi_graph_neighbors_count -pmpi_graph_neighbors_count_ -pmpi_graph_neighbors_count__ -pmpi_graphdims_get -pmpi_graphdims_get_ -pmpi_graphdims_get__ -pmpi_grequest_complete -pmpi_grequest_complete_ -pmpi_grequest_complete__ -pmpi_grequest_start -pmpi_grequest_start_ -pmpi_grequest_start__ -pmpi_group_compare -pmpi_group_compare_ -pmpi_group_compare__ -pmpi_group_difference -pmpi_group_difference_ -pmpi_group_difference__ -pmpi_group_excl -pmpi_group_excl_ -pmpi_group_excl__ -pmpi_group_free -pmpi_group_free_ -pmpi_group_free__ -pmpi_group_incl -pmpi_group_incl_ -pmpi_group_incl__ -pmpi_group_intersection -pmpi_group_intersection_ -pmpi_group_intersection__ -pmpi_group_range_excl -pmpi_group_range_excl_ -pmpi_group_range_excl__ -pmpi_group_range_incl -pmpi_group_range_incl_ -pmpi_group_range_incl__ -pmpi_group_rank -pmpi_group_rank_ -pmpi_group_rank__ -pmpi_group_size -pmpi_group_size_ -pmpi_group_size__ -pmpi_group_translate_ranks -pmpi_group_translate_ranks_ -pmpi_group_translate_ranks__ -pmpi_group_union -pmpi_group_union_ -pmpi_group_union__ -pmpi_iallgather -pmpi_iallgather_ -pmpi_iallgather__ -pmpi_iallgatherv -pmpi_iallgatherv_ -pmpi_iallgatherv__ -pmpi_iallreduce -pmpi_iallreduce_ -pmpi_iallreduce__ -pmpi_ialltoall -pmpi_ialltoall_ -pmpi_ialltoall__ -pmpi_ialltoallv -pmpi_ialltoallv_ -pmpi_ialltoallv__ -pmpi_ialltoallw -pmpi_ialltoallw_ -pmpi_ialltoallw__ -pmpi_ibarrier -pmpi_ibarrier_ -pmpi_ibarrier__ -pmpi_ibcast -pmpi_ibcast_ -pmpi_ibcast__ -pmpi_ibsend -pmpi_ibsend_ -pmpi_ibsend__ -pmpi_iexscan -pmpi_iexscan_ -pmpi_iexscan__ -pmpi_igather -pmpi_igather_ -pmpi_igather__ -pmpi_igatherv -pmpi_igatherv_ -pmpi_igatherv__ -pmpi_improbe -pmpi_improbe_ -pmpi_improbe__ -pmpi_imrecv -pmpi_imrecv_ -pmpi_imrecv__ -pmpi_info_create -pmpi_info_create_ -pmpi_info_create__ -pmpi_info_delete -pmpi_info_delete_ -pmpi_info_delete__ -pmpi_info_dup -pmpi_info_dup_ -pmpi_info_dup__ -pmpi_info_free -pmpi_info_free_ -pmpi_info_free__ -pmpi_info_get -pmpi_info_get_ -pmpi_info_get__ -pmpi_info_get_nkeys -pmpi_info_get_nkeys_ -pmpi_info_get_nkeys__ -pmpi_info_get_nthkey -pmpi_info_get_nthkey_ -pmpi_info_get_nthkey__ -pmpi_info_get_valuelen -pmpi_info_get_valuelen_ -pmpi_info_get_valuelen__ -pmpi_info_set -pmpi_info_set_ -pmpi_info_set__ -pmpi_init -pmpi_init_ -pmpi_init__ -pmpi_init_thread -pmpi_init_thread_ -pmpi_init_thread__ -pmpi_initialized -pmpi_initialized_ -pmpi_initialized__ -pmpi_intercomm_create -pmpi_intercomm_create_ -pmpi_intercomm_create__ -pmpi_intercomm_merge -pmpi_intercomm_merge_ -pmpi_intercomm_merge__ -pmpi_iprobe -pmpi_iprobe_ -pmpi_iprobe__ -pmpi_irecv -pmpi_irecv_ -pmpi_irecv__ -pmpi_ireduce -pmpi_ireduce_ -pmpi_ireduce__ -pmpi_ireduce_scatter -pmpi_ireduce_scatter_ -pmpi_ireduce_scatter__ -pmpi_ireduce_scatter_block -pmpi_ireduce_scatter_block_ -pmpi_ireduce_scatter_block__ -pmpi_irsend -pmpi_irsend_ -pmpi_irsend__ -pmpi_is_thread_main -pmpi_is_thread_main_ -pmpi_is_thread_main__ -pmpi_iscan -pmpi_iscan_ -pmpi_iscan__ -pmpi_iscatter -pmpi_iscatter_ -pmpi_iscatter__ -pmpi_iscatterv -pmpi_iscatterv_ -pmpi_iscatterv__ -pmpi_isend -pmpi_isend_ -pmpi_isend__ -pmpi_issend -pmpi_issend_ -pmpi_issend__ -pmpi_keyval_create -pmpi_keyval_create_ -pmpi_keyval_create__ -pmpi_keyval_free -pmpi_keyval_free_ -pmpi_keyval_free__ -pmpi_lookup_name -pmpi_lookup_name_ -pmpi_lookup_name__ -pmpi_mprobe -pmpi_mprobe_ -pmpi_mprobe__ -pmpi_mrecv -pmpi_mrecv_ -pmpi_mrecv__ -pmpi_null_copy_fn -pmpi_null_copy_fn_ -pmpi_null_copy_fn__ -pmpi_null_delete_fn -pmpi_null_delete_fn_ -pmpi_null_delete_fn__ -pmpi_op_commutative -pmpi_op_commutative_ -pmpi_op_commutative__ -pmpi_op_create -pmpi_op_create_ -pmpi_op_create__ -pmpi_op_free -pmpi_op_free_ -pmpi_op_free__ -pmpi_open_port -pmpi_open_port_ -pmpi_open_port__ -pmpi_pack -pmpi_pack_ -pmpi_pack__ -pmpi_pack_external -pmpi_pack_external_ -pmpi_pack_external__ -pmpi_pack_external_size -pmpi_pack_external_size_ -pmpi_pack_external_size__ -pmpi_pack_size -pmpi_pack_size_ -pmpi_pack_size__ -pmpi_pcontrol -pmpi_pcontrol_ -pmpi_pcontrol__ -pmpi_probe -pmpi_probe_ -pmpi_probe__ -pmpi_publish_name -pmpi_publish_name_ -pmpi_publish_name__ -pmpi_put -pmpi_put_ -pmpi_put__ -pmpi_query_thread -pmpi_query_thread_ -pmpi_query_thread__ -pmpi_raccumulate -pmpi_raccumulate_ -pmpi_raccumulate__ -pmpi_recv -pmpi_recv_ -pmpi_recv__ -pmpi_recv_init -pmpi_recv_init_ -pmpi_recv_init__ -pmpi_reduce -pmpi_reduce_ -pmpi_reduce__ -pmpi_reduce_local -pmpi_reduce_local_ -pmpi_reduce_local__ -pmpi_reduce_scatter -pmpi_reduce_scatter_ -pmpi_reduce_scatter__ -pmpi_reduce_scatter_block -pmpi_reduce_scatter_block_ -pmpi_reduce_scatter_block__ -pmpi_register_datarep -pmpi_register_datarep_ -pmpi_register_datarep__ -pmpi_request_free -pmpi_request_free_ -pmpi_request_free__ -pmpi_request_get_status -pmpi_request_get_status_ -pmpi_request_get_status__ -pmpi_rget -pmpi_rget_ -pmpi_rget__ -pmpi_rget_accumulate -pmpi_rget_accumulate_ -pmpi_rget_accumulate__ -pmpi_rput -pmpi_rput_ -pmpi_rput__ -pmpi_rsend -pmpi_rsend_ -pmpi_rsend__ -pmpi_rsend_init -pmpi_rsend_init_ -pmpi_rsend_init__ -pmpi_scan -pmpi_scan_ -pmpi_scan__ -pmpi_scatter -pmpi_scatter_ -pmpi_scatter__ -pmpi_scatterv -pmpi_scatterv_ -pmpi_scatterv__ -pmpi_send -pmpi_send_ -pmpi_send__ -pmpi_send_init -pmpi_send_init_ -pmpi_send_init__ -pmpi_sendrecv -pmpi_sendrecv_ -pmpi_sendrecv__ -pmpi_sendrecv_replace -pmpi_sendrecv_replace_ -pmpi_sendrecv_replace__ -pmpi_ssend -pmpi_ssend_ -pmpi_ssend__ -pmpi_ssend_init -pmpi_ssend_init_ -pmpi_ssend_init__ -pmpi_start -pmpi_start_ -pmpi_start__ -pmpi_startall -pmpi_startall_ -pmpi_startall__ -pmpi_status_c2f -pmpi_status_c2f_ -pmpi_status_c2f__ -pmpi_status_f2c -pmpi_status_f2c_ -pmpi_status_f2c__ -pmpi_status_set_cancelled -pmpi_status_set_cancelled_ -pmpi_status_set_cancelled__ -pmpi_status_set_elements -pmpi_status_set_elements_ -pmpi_status_set_elements__ -pmpi_status_set_elements_x -pmpi_status_set_elements_x_ -pmpi_status_set_elements_x__ -pmpi_test -pmpi_test_ -pmpi_test__ -pmpi_test_cancelled -pmpi_test_cancelled_ -pmpi_test_cancelled__ -pmpi_testall -pmpi_testall_ -pmpi_testall__ -pmpi_testany -pmpi_testany_ -pmpi_testany__ -pmpi_testsome -pmpi_testsome_ -pmpi_testsome__ -pmpi_topo_test -pmpi_topo_test_ -pmpi_topo_test__ -pmpi_type_commit -pmpi_type_commit_ -pmpi_type_commit__ -pmpi_type_contiguous -pmpi_type_contiguous_ -pmpi_type_contiguous__ -pmpi_type_create_darray -pmpi_type_create_darray_ -pmpi_type_create_darray__ -pmpi_type_create_f90_complex_ -pmpi_type_create_f90_complex__ -pmpi_type_create_f90_integer_ -pmpi_type_create_f90_integer__ -pmpi_type_create_f90_real_ -pmpi_type_create_f90_real__ -pmpi_type_create_hindexed -pmpi_type_create_hindexed_ -pmpi_type_create_hindexed__ -pmpi_type_create_hindexed_block -pmpi_type_create_hindexed_block_ -pmpi_type_create_hindexed_block__ -pmpi_type_create_hvector -pmpi_type_create_hvector_ -pmpi_type_create_hvector__ -pmpi_type_create_indexed_block -pmpi_type_create_indexed_block_ -pmpi_type_create_indexed_block__ -pmpi_type_create_keyval -pmpi_type_create_keyval_ -pmpi_type_create_keyval__ -pmpi_type_create_resized -pmpi_type_create_resized_ -pmpi_type_create_resized__ -pmpi_type_create_struct -pmpi_type_create_struct_ -pmpi_type_create_struct__ -pmpi_type_create_subarray -pmpi_type_create_subarray_ -pmpi_type_create_subarray__ -pmpi_type_delete_attr -pmpi_type_delete_attr_ -pmpi_type_delete_attr__ -pmpi_type_dup -pmpi_type_dup_ -pmpi_type_dup__ -pmpi_type_dup_fn -pmpi_type_dup_fn_ -pmpi_type_dup_fn__ -pmpi_type_extent -pmpi_type_extent_ -pmpi_type_extent__ -pmpi_type_free -pmpi_type_free_ -pmpi_type_free__ -pmpi_type_free_keyval -pmpi_type_free_keyval_ -pmpi_type_free_keyval__ -pmpi_type_get_attr -pmpi_type_get_attr_ -pmpi_type_get_attr__ -pmpi_type_get_contents -pmpi_type_get_contents_ -pmpi_type_get_contents__ -pmpi_type_get_envelope -pmpi_type_get_envelope_ -pmpi_type_get_envelope__ -pmpi_type_get_extent -pmpi_type_get_extent_ -pmpi_type_get_extent__ -pmpi_type_get_extent_x -pmpi_type_get_extent_x_ -pmpi_type_get_extent_x__ -pmpi_type_get_name -pmpi_type_get_name_ -pmpi_type_get_name__ -pmpi_type_get_true_extent -pmpi_type_get_true_extent_ -pmpi_type_get_true_extent__ -pmpi_type_get_true_extent_x -pmpi_type_get_true_extent_x_ -pmpi_type_get_true_extent_x__ -pmpi_type_hindexed -pmpi_type_hindexed_ -pmpi_type_hindexed__ -pmpi_type_hvector -pmpi_type_hvector_ -pmpi_type_hvector__ -pmpi_type_indexed -pmpi_type_indexed_ -pmpi_type_indexed__ -pmpi_type_lb -pmpi_type_lb_ -pmpi_type_lb__ -pmpi_type_match_size -pmpi_type_match_size_ -pmpi_type_match_size__ -pmpi_type_null_copy_fn -pmpi_type_null_copy_fn_ -pmpi_type_null_copy_fn__ -pmpi_type_null_delete_fn -pmpi_type_null_delete_fn_ -pmpi_type_null_delete_fn__ -pmpi_type_set_attr -pmpi_type_set_attr_ -pmpi_type_set_attr__ -pmpi_type_set_name -pmpi_type_set_name_ -pmpi_type_set_name__ -pmpi_type_size -pmpi_type_size_ -pmpi_type_size__ -pmpi_type_size_x -pmpi_type_size_x_ -pmpi_type_size_x__ -pmpi_type_struct -pmpi_type_struct_ -pmpi_type_struct__ -pmpi_type_ub -pmpi_type_ub_ -pmpi_type_ub__ -pmpi_type_vector -pmpi_type_vector_ -pmpi_type_vector__ -pmpi_unpack -pmpi_unpack_ -pmpi_unpack__ -pmpi_unpack_external -pmpi_unpack_external_ -pmpi_unpack_external__ -pmpi_unpublish_name -pmpi_unpublish_name_ -pmpi_unpublish_name__ -pmpi_wait -pmpi_wait_ -pmpi_wait__ -pmpi_waitall -pmpi_waitall_ -pmpi_waitall__ -pmpi_waitany -pmpi_waitany_ -pmpi_waitany__ -pmpi_waitsome -pmpi_waitsome_ -pmpi_waitsome__ -pmpi_win_allocate -pmpi_win_allocate_ -pmpi_win_allocate__ -pmpi_win_allocate_shared -pmpi_win_allocate_shared_ -pmpi_win_allocate_shared__ -pmpi_win_attach -pmpi_win_attach_ -pmpi_win_attach__ -pmpi_win_call_errhandler -pmpi_win_call_errhandler_ -pmpi_win_call_errhandler__ -pmpi_win_complete -pmpi_win_complete_ -pmpi_win_complete__ -pmpi_win_create -pmpi_win_create_ -pmpi_win_create__ -pmpi_win_create_dynamic -pmpi_win_create_dynamic_ -pmpi_win_create_dynamic__ -pmpi_win_create_errhandler -pmpi_win_create_errhandler_ -pmpi_win_create_errhandler__ -pmpi_win_create_keyval -pmpi_win_create_keyval_ -pmpi_win_create_keyval__ -pmpi_win_delete_attr -pmpi_win_delete_attr_ -pmpi_win_delete_attr__ -pmpi_win_detach -pmpi_win_detach_ -pmpi_win_detach__ -pmpi_win_dup_fn -pmpi_win_dup_fn_ -pmpi_win_dup_fn__ -pmpi_win_fence -pmpi_win_fence_ -pmpi_win_fence__ -pmpi_win_flush -pmpi_win_flush_ -pmpi_win_flush__ -pmpi_win_flush_all -pmpi_win_flush_all_ -pmpi_win_flush_all__ -pmpi_win_flush_local -pmpi_win_flush_local_ -pmpi_win_flush_local__ -pmpi_win_flush_local_all -pmpi_win_flush_local_all_ -pmpi_win_flush_local_all__ -pmpi_win_free -pmpi_win_free_ -pmpi_win_free__ -pmpi_win_free_keyval -pmpi_win_free_keyval_ -pmpi_win_free_keyval__ -pmpi_win_get_attr -pmpi_win_get_attr_ -pmpi_win_get_attr__ -pmpi_win_get_errhandler -pmpi_win_get_errhandler_ -pmpi_win_get_errhandler__ -pmpi_win_get_group -pmpi_win_get_group_ -pmpi_win_get_group__ -pmpi_win_get_name -pmpi_win_get_name_ -pmpi_win_get_name__ -pmpi_win_lock -pmpi_win_lock_ -pmpi_win_lock__ -pmpi_win_lock_all -pmpi_win_lock_all_ -pmpi_win_lock_all__ -pmpi_win_null_copy_fn -pmpi_win_null_copy_fn_ -pmpi_win_null_copy_fn__ -pmpi_win_null_delete_fn -pmpi_win_null_delete_fn_ -pmpi_win_null_delete_fn__ -pmpi_win_post -pmpi_win_post_ -pmpi_win_post__ -pmpi_win_set_attr -pmpi_win_set_attr_ -pmpi_win_set_attr__ -pmpi_win_set_errhandler -pmpi_win_set_errhandler_ -pmpi_win_set_errhandler__ -pmpi_win_set_name -pmpi_win_set_name_ -pmpi_win_set_name__ -pmpi_win_shared_query -pmpi_win_shared_query_ -pmpi_win_shared_query__ -pmpi_win_start -pmpi_win_start_ -pmpi_win_start__ -pmpi_win_sync -pmpi_win_sync_ -pmpi_win_sync__ -pmpi_win_test -pmpi_win_test_ -pmpi_win_test__ -pmpi_win_unlock -pmpi_win_unlock_ -pmpi_win_unlock__ -pmpi_win_unlock_all -pmpi_win_unlock_all_ -pmpi_win_unlock_all__ -pmpi_win_wait -pmpi_win_wait_ -pmpi_win_wait__ -pmpi_wtick -pmpi_wtick_ -pmpi_wtick__ -pmpi_wtime -pmpi_wtime_ -pmpi_wtime__ -pmsmpi_get_bsend_overhead -pmsmpi_get_bsend_overhead_ -pmsmpi_get_bsend_overhead__ -pmsmpi_get_version -pmsmpi_get_version_ -pmsmpi_get_version__ -recvq_posted DATA -recvq_unexpected DATA -MPI_Finalize@0=MPI_Finalize -MPI_Pcontrol@0=MPI_Pcontrol -MPI_REDUCE_SCATTER_block@0=MPI_REDUCE_SCATTER_block -MPI_Wtick@0=MPI_Wtick -MPI_Wtime@0=MPI_Wtime -MSMPI_Get_bsend_overhead@0=MSMPI_Get_bsend_overhead -MSMPI_Get_version@0=MSMPI_Get_version -PMPI_Finalize@0=PMPI_Finalize -PMPI_Pcontrol@0=PMPI_Pcontrol -PMPI_REDUCE_SCATTER_block@0=PMPI_REDUCE_SCATTER_block -PMPI_Wtick@0=PMPI_Wtick -PMPI_Wtime@0=PMPI_Wtime -PMSMPI_Get_bsend_overhead@0=PMSMPI_Get_bsend_overhead -PMSMPI_Get_version@0=PMSMPI_Get_version +; +; Definition file of msmpi.dll +; Automatic generated by gendef +; written by Kai Tietz 2008 +; +LIBRARY "msmpi.dll" +EXPORTS +MPIR_Sendq_head DATA +MSMPI_Get_pm_interface@8 +MSMPI_pm_query_interface@8 +mqs_image_has_queues@8 +mqs_process_has_queues@8 +MPIFCMB5 DATA +MPIFCMB9 DATA +MPIPRIV1 DATA +MPIPRIV2 DATA +MPIPRIVC DATA +MPIR_All_communicators DATA +MPIR_Comm_errhandler_set_proxy@8 +MPIR_Dup_fn@24 +MPIR_Error@8 +MPIR_File_errhandler_set_proxy@8 +MPIR_Free@4 +MPIR_Grequest_set_proxy@16 +MPIR_Keyval_set_proxy@12 +MPIR_Malloc@4 +MPIR_Op_set_proxy@8 +MPIR_Win_errhandler_set_proxy@8 +MPIR_debug_gate DATA +MPIR_dll_name DATA +MPI_ABORT +MPI_ACCUMULATE +MPI_ADDRESS +MPI_ADD_ERROR_CLASS +MPI_ADD_ERROR_CODE +MPI_ADD_ERROR_STRING +MPI_AINT_ADD +MPI_AINT_DIFF +MPI_ALLGATHER +MPI_ALLGATHERV +MPI_ALLOC_MEM +MPI_ALLREDUCE +MPI_ALLTOALL +MPI_ALLTOALLV +MPI_ALLTOALLW +MPI_ATTR_DELETE +MPI_ATTR_GET +MPI_ATTR_PUT +MPI_Abort@8 +MPI_Accumulate@36 +MPI_Add_error_class@4 +MPI_Add_error_code@8 +MPI_Add_error_string@8 +MPI_Address@8 +MPI_Aint_add@8 +MPI_Aint_diff@8 +MPI_Allgather@28 +MPI_Allgatherv@32 +MPI_Alloc_mem@12 +MPI_Allreduce@24 +MPI_Alltoall@28 +MPI_Alltoallv@36 +MPI_Alltoallw@36 +MPI_Attr_delete@8 +MPI_Attr_get@16 +MPI_Attr_put@12 +MPI_BARRIER +MPI_BCAST +MPI_BSEND +MPI_BSEND_INIT +MPI_BUFFER_ATTACH +MPI_BUFFER_DETACH +MPI_Barrier@4 +MPI_Bcast@20 +MPI_Bsend@24 +MPI_Bsend_init@28 +MPI_Buffer_attach@8 +MPI_Buffer_detach@8 +MPI_CANCEL +MPI_CARTDIM_GET +MPI_CART_COORDS +MPI_CART_CREATE +MPI_CART_GET +MPI_CART_MAP +MPI_CART_RANK +MPI_CART_SHIFT +MPI_CART_SUB +MPI_CLOSE_PORT +MPI_COMM_ACCEPT +MPI_COMM_CALL_ERRHANDLER +MPI_COMM_COMPARE +MPI_COMM_CONNECT +MPI_COMM_CREATE +MPI_COMM_CREATE_ERRHANDLER +MPI_COMM_CREATE_KEYVAL +MPI_COMM_DELETE_ATTR +MPI_COMM_DISCONNECT +MPI_COMM_DUP +MPI_COMM_DUP_FN +MPI_COMM_FREE +MPI_COMM_FREE_KEYVAL +MPI_COMM_GET_ATTR +MPI_COMM_GET_ERRHANDLER +MPI_COMM_GET_NAME +MPI_COMM_GET_PARENT +MPI_COMM_GROUP +MPI_COMM_JOIN +MPI_COMM_NULL_COPY_FN +MPI_COMM_NULL_DELETE_FN +MPI_COMM_RANK +MPI_COMM_REMOTE_GROUP +MPI_COMM_REMOTE_SIZE +MPI_COMM_SET_ATTR +MPI_COMM_SET_ERRHANDLER +MPI_COMM_SET_NAME +MPI_COMM_SIZE +MPI_COMM_SPAWN +MPI_COMM_SPAWN_MULTIPLE +MPI_COMM_SPLIT +MPI_COMM_SPLIT_TYPE +MPI_COMM_TEST_INTER +MPI_COMPARE_AND_SWAP +MPI_CONVERSION_FN_NULL +MPI_Cancel@4 +MPI_Cart_coords@16 +MPI_Cart_create@24 +MPI_Cart_get@20 +MPI_Cart_map@20 +MPI_Cart_rank@12 +MPI_Cart_shift@20 +MPI_Cart_sub@12 +MPI_Cartdim_get@8 +MPI_Close_port@4 +MPI_Comm_accept@20 +MPI_Comm_call_errhandler@8 +MPI_Comm_compare@12 +MPI_Comm_connect@20 +MPI_Comm_create@12 +MPI_Comm_create_errhandler@8 +MPI_Comm_create_keyval@16 +MPI_Comm_delete_attr@8 +MPI_Comm_disconnect@4 +MPI_Comm_dup@8 +MPI_Comm_free@4 +MPI_Comm_free_keyval@4 +MPI_Comm_get_attr@16 +MPI_Comm_get_errhandler@8 +MPI_Comm_get_name@12 +MPI_Comm_get_parent@4 +MPI_Comm_group@8 +MPI_Comm_join@8 +MPI_Comm_rank@8 +MPI_Comm_remote_group@8 +MPI_Comm_remote_size@8 +MPI_Comm_set_attr@12 +MPI_Comm_set_errhandler@8 +MPI_Comm_set_name@8 +MPI_Comm_size@8 +MPI_Comm_spawn@32 +MPI_Comm_spawn_multiple@36 +MPI_Comm_split@16 +MPI_Comm_split_type@20 +MPI_Comm_test_inter@8 +MPI_Compare_and_swap@28 +MPI_DIMS_CREATE +MPI_DIST_GRAPH_CREATE +MPI_DIST_GRAPH_CREATE_ADJACENT +MPI_DIST_GRAPH_NEIGHBORS +MPI_DIST_GRAPH_NEIGHBORS_COUNT +MPI_DUP_FN +MPI_Dims_create@12 +MPI_Dist_graph_create@36 +MPI_Dist_graph_create_adjacent@40 +MPI_Dist_graph_neighbors@28 +MPI_Dist_graph_neighbors_count@16 +MPI_ERRHANDLER_CREATE +MPI_ERRHANDLER_FREE +MPI_ERRHANDLER_GET +MPI_ERRHANDLER_SET +MPI_ERROR_CLASS +MPI_ERROR_STRING +MPI_EXSCAN +MPI_Errhandler_create@8 +MPI_Errhandler_free@4 +MPI_Errhandler_get@8 +MPI_Errhandler_set@8 +MPI_Error_class@8 +MPI_Error_string@12 +MPI_Exscan@24 +MPI_FETCH_AND_OP +MPI_FILE_CALL_ERRHANDLER +MPI_FILE_CLOSE +MPI_FILE_CREATE_ERRHANDLER +MPI_FILE_DELETE +MPI_FILE_GET_AMODE +MPI_FILE_GET_ATOMICITY +MPI_FILE_GET_BYTE_OFFSET +MPI_FILE_GET_ERRHANDLER +MPI_FILE_GET_GROUP +MPI_FILE_GET_INFO +MPI_FILE_GET_POSITION +MPI_FILE_GET_POSITION_SHARED +MPI_FILE_GET_SIZE +MPI_FILE_GET_TYPE_EXTENT +MPI_FILE_GET_VIEW +MPI_FILE_IREAD +MPI_FILE_IREAD_AT +MPI_FILE_IREAD_SHARED +MPI_FILE_IWRITE +MPI_FILE_IWRITE_AT +MPI_FILE_IWRITE_SHARED +MPI_FILE_OPEN +MPI_FILE_PREALLOCATE +MPI_FILE_READ +MPI_FILE_READ_ALL +MPI_FILE_READ_ALL_BEGIN +MPI_FILE_READ_ALL_END +MPI_FILE_READ_AT +MPI_FILE_READ_AT_ALL +MPI_FILE_READ_AT_ALL_BEGIN +MPI_FILE_READ_AT_ALL_END +MPI_FILE_READ_ORDERED +MPI_FILE_READ_ORDERED_BEGIN +MPI_FILE_READ_ORDERED_END +MPI_FILE_READ_SHARED +MPI_FILE_SEEK +MPI_FILE_SEEK_SHARED +MPI_FILE_SET_ATOMICITY +MPI_FILE_SET_ERRHANDLER +MPI_FILE_SET_INFO +MPI_FILE_SET_SIZE +MPI_FILE_SET_VIEW +MPI_FILE_SYNC +MPI_FILE_WRITE +MPI_FILE_WRITE_ALL +MPI_FILE_WRITE_ALL_BEGIN +MPI_FILE_WRITE_ALL_END +MPI_FILE_WRITE_AT +MPI_FILE_WRITE_AT_ALL +MPI_FILE_WRITE_AT_ALL_BEGIN +MPI_FILE_WRITE_AT_ALL_END +MPI_FILE_WRITE_ORDERED +MPI_FILE_WRITE_ORDERED_BEGIN +MPI_FILE_WRITE_ORDERED_END +MPI_FILE_WRITE_SHARED +MPI_FINALIZE +MPI_FINALIZED +MPI_FREE_MEM +MPI_F_STATUSES_IGNORE DATA +MPI_F_STATUS_IGNORE DATA +MPI_Fetch_and_op@28 +MPI_File_c2f@4 +MPI_File_call_errhandler@8 +MPI_File_close@4 +MPI_File_create_errhandler@8 +MPI_File_delete@8 +MPI_File_f2c@4 +MPI_File_get_amode@8 +MPI_File_get_atomicity@8 +MPI_File_get_byte_offset@16 +MPI_File_get_errhandler@8 +MPI_File_get_group@8 +MPI_File_get_info@8 +MPI_File_get_position@8 +MPI_File_get_position_shared@8 +MPI_File_get_size@8 +MPI_File_get_type_extent@12 +MPI_File_get_view@20 +MPI_File_iread@20 +MPI_File_iread_at@28 +MPI_File_iread_shared@20 +MPI_File_iwrite@20 +MPI_File_iwrite_at@28 +MPI_File_iwrite_shared@20 +MPI_File_open@20 +MPI_File_preallocate@12 +MPI_File_read@20 +MPI_File_read_all@20 +MPI_File_read_all_begin@16 +MPI_File_read_all_end@12 +MPI_File_read_at@28 +MPI_File_read_at_all@28 +MPI_File_read_at_all_begin@24 +MPI_File_read_at_all_end@12 +MPI_File_read_ordered@20 +MPI_File_read_ordered_begin@16 +MPI_File_read_ordered_end@12 +MPI_File_read_shared@20 +MPI_File_seek@16 +MPI_File_seek_shared@16 +MPI_File_set_atomicity@8 +MPI_File_set_errhandler@8 +MPI_File_set_info@8 +MPI_File_set_size@12 +MPI_File_set_view@28 +MPI_File_sync@4 +MPI_File_write@20 +MPI_File_write_all@20 +MPI_File_write_all_begin@16 +MPI_File_write_all_end@12 +MPI_File_write_at@28 +MPI_File_write_at_all@28 +MPI_File_write_at_all_begin@24 +MPI_File_write_at_all_end@12 +MPI_File_write_ordered@20 +MPI_File_write_ordered_begin@16 +MPI_File_write_ordered_end@12 +MPI_File_write_shared@20 +MPI_Finalize +MPI_Finalized@4 +MPI_Free_mem@4 +MPI_GATHER +MPI_GATHERV +MPI_GET +MPI_GET_ACCUMULATE +MPI_GET_ADDRESS +MPI_GET_COUNT +MPI_GET_ELEMENTS +MPI_GET_ELEMENTS_X +MPI_GET_LIBRARY_VERSION +MPI_GET_PROCESSOR_NAME +MPI_GET_VERSION +MPI_GRAPHDIMS_GET +MPI_GRAPH_CREATE +MPI_GRAPH_GET +MPI_GRAPH_MAP +MPI_GRAPH_NEIGHBORS +MPI_GRAPH_NEIGHBORS_COUNT +MPI_GREQUEST_COMPLETE +MPI_GREQUEST_START +MPI_GROUP_COMPARE +MPI_GROUP_DIFFERENCE +MPI_GROUP_EXCL +MPI_GROUP_FREE +MPI_GROUP_INCL +MPI_GROUP_INTERSECTION +MPI_GROUP_RANGE_EXCL +MPI_GROUP_RANGE_INCL +MPI_GROUP_RANK +MPI_GROUP_SIZE +MPI_GROUP_TRANSLATE_RANKS +MPI_GROUP_UNION +MPI_Gather@32 +MPI_Gatherv@36 +MPI_Get@32 +MPI_Get_accumulate@48 +MPI_Get_address@8 +MPI_Get_count@12 +MPI_Get_elements@12 +MPI_Get_elements_x@12 +MPI_Get_library_version@8 +MPI_Get_processor_name@8 +MPI_Get_version@8 +MPI_Graph_create@24 +MPI_Graph_get@20 +MPI_Graph_map@20 +MPI_Graph_neighbors@16 +MPI_Graph_neighbors_count@12 +MPI_Graphdims_get@12 +MPI_Grequest_complete@4 +MPI_Grequest_start@20 +MPI_Group_compare@12 +MPI_Group_difference@12 +MPI_Group_excl@16 +MPI_Group_free@4 +MPI_Group_incl@16 +MPI_Group_intersection@12 +MPI_Group_range_excl@16 +MPI_Group_range_incl@16 +MPI_Group_rank@8 +MPI_Group_size@8 +MPI_Group_translate_ranks@20 +MPI_Group_union@12 +MPI_IALLGATHER +MPI_IALLGATHERV +MPI_IALLREDUCE +MPI_IALLTOALL +MPI_IALLTOALLV +MPI_IALLTOALLW +MPI_IBARRIER +MPI_IBCAST +MPI_IBSEND +MPI_IEXSCAN +MPI_IGATHER +MPI_IGATHERV +MPI_IMPROBE +MPI_IMRECV +MPI_INFO_CREATE +MPI_INFO_DELETE +MPI_INFO_DUP +MPI_INFO_FREE +MPI_INFO_GET +MPI_INFO_GET_NKEYS +MPI_INFO_GET_NTHKEY +MPI_INFO_GET_VALUELEN +MPI_INFO_SET +MPI_INIT +MPI_INITIALIZED +MPI_INIT_THREAD +MPI_INTERCOMM_CREATE +MPI_INTERCOMM_MERGE +MPI_IPROBE +MPI_IRECV +MPI_IREDUCE +MPI_IREDUCE_SCATTER +MPI_IREDUCE_SCATTER_BLOCK +MPI_IRSEND +MPI_ISCAN +MPI_ISCATTER +MPI_ISCATTERV +MPI_ISEND +MPI_ISSEND +MPI_IS_THREAD_MAIN +MPI_Iallgather@32 +MPI_Iallgatherv@36 +MPI_Iallreduce@28 +MPI_Ialltoall@32 +MPI_Ialltoallv@40 +MPI_Ialltoallw@40 +MPI_Ibarrier@8 +MPI_Ibcast@24 +MPI_Ibsend@28 +MPI_Iexscan@28 +MPI_Igather@36 +MPI_Igatherv@40 +MPI_Improbe@24 +MPI_Imrecv@20 +MPI_Info_create@4 +MPI_Info_delete@8 +MPI_Info_dup@8 +MPI_Info_free@4 +MPI_Info_get@20 +MPI_Info_get_nkeys@8 +MPI_Info_get_nthkey@12 +MPI_Info_get_valuelen@16 +MPI_Info_set@12 +MPI_Init@8 +MPI_Init_thread@16 +MPI_Initialized@4 +MPI_Intercomm_create@24 +MPI_Intercomm_merge@12 +MPI_Iprobe@20 +MPI_Irecv@28 +MPI_Ireduce@32 +MPI_Ireduce_scatter@28 +MPI_Ireduce_scatter_block@28 +MPI_Irsend@28 +MPI_Is_thread_main@4 +MPI_Iscan@28 +MPI_Iscatter@36 +MPI_Iscatterv@40 +MPI_Isend@28 +MPI_Issend@28 +MPI_KEYVAL_CREATE +MPI_KEYVAL_FREE +MPI_Keyval_create@16 +MPI_Keyval_free@4 +MPI_LOOKUP_NAME +MPI_Lookup_name@12 +MPI_MPROBE +MPI_MRECV +MPI_Mprobe@20 +MPI_Mrecv@20 +MPI_NULL_COPY_FN +MPI_NULL_DELETE_FN +MPI_OPEN_PORT +MPI_OP_COMMUTATIVE +MPI_OP_CREATE +MPI_OP_FREE +MPI_Op_commutative@8 +MPI_Op_create@12 +MPI_Op_free@4 +MPI_Open_port@8 +MPI_PACK +MPI_PACK_EXTERNAL +MPI_PACK_EXTERNAL_SIZE +MPI_PACK_SIZE +MPI_PCONTROL +MPI_PROBE +MPI_PUBLISH_NAME +MPI_PUT +MPI_Pack@28 +MPI_Pack_external@28 +MPI_Pack_external_size@16 +MPI_Pack_size@16 +MPI_Pcontrol +MPI_Probe@16 +MPI_Publish_name@12 +MPI_Put@32 +MPI_QUERY_THREAD +MPI_Query_thread@4 +MPI_RACCUMULATE +MPI_RECV +MPI_RECV_INIT +MPI_REDUCE +MPI_REDUCE_LOCAL +MPI_REDUCE_SCATTER +MPI_REDUCE_SCATTER_block +MPI_REGISTER_DATAREP +MPI_REQUEST_FREE +MPI_REQUEST_GET_STATUS +MPI_RGET +MPI_RGET_ACCUMULATE +MPI_RPUT +MPI_RSEND +MPI_RSEND_INIT +MPI_Raccumulate@40 +MPI_Recv@28 +MPI_Recv_init@28 +MPI_Reduce@28 +MPI_Reduce_local@20 +MPI_Reduce_scatter@24 +MPI_Reduce_scatter_block@24 +MPI_Register_datarep@20 +MPI_Request_free@4 +MPI_Request_get_status@12 +MPI_Rget@36 +MPI_Rget_accumulate@52 +MPI_Rput@36 +MPI_Rsend@24 +MPI_Rsend_init@28 +MPI_SCAN +MPI_SCATTER +MPI_SCATTERV +MPI_SEND +MPI_SENDRECV +MPI_SENDRECV_REPLACE +MPI_SEND_INIT +MPI_SSEND +MPI_SSEND_INIT +MPI_START +MPI_STARTALL +MPI_STATUS_C2F +MPI_STATUS_F2C +MPI_STATUS_SET_CANCELLED +MPI_STATUS_SET_ELEMENTS +MPI_STATUS_SET_ELEMENTS_X +MPI_Scan@24 +MPI_Scatter@32 +MPI_Scatterv@36 +MPI_Send@24 +MPI_Send_init@28 +MPI_Sendrecv@48 +MPI_Sendrecv_replace@36 +MPI_Ssend@24 +MPI_Ssend_init@28 +MPI_Start@4 +MPI_Startall@8 +MPI_Status_c2f@8 +MPI_Status_f2c@8 +MPI_Status_set_cancelled@8 +MPI_Status_set_elements@12 +MPI_Status_set_elements_x@16 +MPI_TEST +MPI_TESTALL +MPI_TESTANY +MPI_TESTSOME +MPI_TEST_CANCELLED +MPI_TOPO_TEST +MPI_TYPE_COMMIT +MPI_TYPE_CONTIGUOUS +MPI_TYPE_CREATE_DARRAY +MPI_TYPE_CREATE_F90_COMPLEX +MPI_TYPE_CREATE_F90_INTEGER +MPI_TYPE_CREATE_F90_REAL +MPI_TYPE_CREATE_HINDEXED +MPI_TYPE_CREATE_HINDEXED_BLOCK +MPI_TYPE_CREATE_HVECTOR +MPI_TYPE_CREATE_INDEXED_BLOCK +MPI_TYPE_CREATE_KEYVAL +MPI_TYPE_CREATE_RESIZED +MPI_TYPE_CREATE_STRUCT +MPI_TYPE_CREATE_SUBARRAY +MPI_TYPE_DELETE_ATTR +MPI_TYPE_DUP +MPI_TYPE_DUP_FN +MPI_TYPE_EXTENT +MPI_TYPE_FREE +MPI_TYPE_FREE_KEYVAL +MPI_TYPE_GET_ATTR +MPI_TYPE_GET_CONTENTS +MPI_TYPE_GET_ENVELOPE +MPI_TYPE_GET_EXTENT +MPI_TYPE_GET_EXTENT_X +MPI_TYPE_GET_NAME +MPI_TYPE_GET_TRUE_EXTENT +MPI_TYPE_GET_TRUE_EXTENT_X +MPI_TYPE_HINDEXED +MPI_TYPE_HVECTOR +MPI_TYPE_INDEXED +MPI_TYPE_LB +MPI_TYPE_MATCH_SIZE +MPI_TYPE_NULL_COPY_FN +MPI_TYPE_NULL_DELETE_FN +MPI_TYPE_SET_ATTR +MPI_TYPE_SET_NAME +MPI_TYPE_SIZE +MPI_TYPE_SIZE_X +MPI_TYPE_STRUCT +MPI_TYPE_UB +MPI_TYPE_VECTOR +MPI_Test@12 +MPI_Test_cancelled@8 +MPI_Testall@16 +MPI_Testany@20 +MPI_Testsome@20 +MPI_Topo_test@8 +MPI_Type_commit@4 +MPI_Type_contiguous@12 +MPI_Type_create_darray@40 +MPI_Type_create_f90_complex@12 +MPI_Type_create_f90_integer@8 +MPI_Type_create_f90_real@12 +MPI_Type_create_hindexed@20 +MPI_Type_create_hindexed_block@20 +MPI_Type_create_hvector@20 +MPI_Type_create_indexed_block@20 +MPI_Type_create_keyval@16 +MPI_Type_create_resized@16 +MPI_Type_create_struct@20 +MPI_Type_create_subarray@28 +MPI_Type_delete_attr@8 +MPI_Type_dup@8 +MPI_Type_extent@8 +MPI_Type_free@4 +MPI_Type_free_keyval@4 +MPI_Type_get_attr@16 +MPI_Type_get_contents@28 +MPI_Type_get_envelope@20 +MPI_Type_get_extent@12 +MPI_Type_get_extent_x@12 +MPI_Type_get_name@12 +MPI_Type_get_true_extent@12 +MPI_Type_get_true_extent_x@12 +MPI_Type_hindexed@20 +MPI_Type_hvector@20 +MPI_Type_indexed@20 +MPI_Type_lb@8 +MPI_Type_match_size@12 +MPI_Type_set_attr@12 +MPI_Type_set_name@8 +MPI_Type_size@8 +MPI_Type_size_x@8 +MPI_Type_struct@20 +MPI_Type_ub@8 +MPI_Type_vector@20 +MPI_UNPACK +MPI_UNPACK_EXTERNAL +MPI_UNPUBLISH_NAME +MPI_Unpack@28 +MPI_Unpack_external@28 +MPI_Unpublish_name@12 +MPI_WAIT +MPI_WAITALL +MPI_WAITANY +MPI_WAITSOME +MPI_WIN_ALLOCATE +MPI_WIN_ALLOCATE_SHARED +MPI_WIN_ATTACH +MPI_WIN_CALL_ERRHANDLER +MPI_WIN_COMPLETE +MPI_WIN_CREATE +MPI_WIN_CREATE_DYNAMIC +MPI_WIN_CREATE_ERRHANDLER +MPI_WIN_CREATE_KEYVAL +MPI_WIN_DELETE_ATTR +MPI_WIN_DETACH +MPI_WIN_DUP_FN +MPI_WIN_FENCE +MPI_WIN_FLUSH +MPI_WIN_FLUSH_ALL +MPI_WIN_FLUSH_LOCAL +MPI_WIN_FLUSH_LOCAL_ALL +MPI_WIN_FREE +MPI_WIN_FREE_KEYVAL +MPI_WIN_GET_ATTR +MPI_WIN_GET_ERRHANDLER +MPI_WIN_GET_GROUP +MPI_WIN_GET_NAME +MPI_WIN_LOCK +MPI_WIN_LOCK_ALL +MPI_WIN_NULL_COPY_FN +MPI_WIN_NULL_DELETE_FN +MPI_WIN_POST +MPI_WIN_SET_ATTR +MPI_WIN_SET_ERRHANDLER +MPI_WIN_SET_NAME +MPI_WIN_SHARED_QUERY +MPI_WIN_START +MPI_WIN_SYNC +MPI_WIN_TEST +MPI_WIN_UNLOCK +MPI_WIN_UNLOCK_ALL +MPI_WIN_WAIT +MPI_WTICK +MPI_WTIME +MPI_Wait@8 +MPI_Waitall@12 +MPI_Waitany@16 +MPI_Waitsome@20 +MPI_Win_allocate@24 +MPI_Win_allocate_shared@24 +MPI_Win_attach@12 +MPI_Win_call_errhandler@8 +MPI_Win_complete@4 +MPI_Win_create@24 +MPI_Win_create_dynamic@12 +MPI_Win_create_errhandler@8 +MPI_Win_create_keyval@16 +MPI_Win_delete_attr@8 +MPI_Win_detach@8 +MPI_Win_fence@8 +MPI_Win_flush@8 +MPI_Win_flush_all@4 +MPI_Win_flush_local@8 +MPI_Win_flush_local_all@4 +MPI_Win_free@4 +MPI_Win_free_keyval@4 +MPI_Win_get_attr@16 +MPI_Win_get_errhandler@8 +MPI_Win_get_group@8 +MPI_Win_get_name@12 +MPI_Win_lock@16 +MPI_Win_lock_all@8 +MPI_Win_post@12 +MPI_Win_set_attr@12 +MPI_Win_set_errhandler@8 +MPI_Win_set_name@8 +MPI_Win_shared_query@20 +MPI_Win_start@12 +MPI_Win_sync@4 +MPI_Win_test@8 +MPI_Win_unlock@8 +MPI_Win_unlock_all@4 +MPI_Win_wait@4 +MPI_Wtick +MPI_Wtime +MSMPI_GET_BSEND_OVERHEAD +MSMPI_GET_VERSION +MSMPI_Get_bsend_overhead +MSMPI_Get_version +MSMPI_Queuelock_acquire@4 +MSMPI_Queuelock_release@4 +MSMPI_Request_set_apc@12 +MSMPI_Waitsome_interruptible@20 +PMPI_ABORT +PMPI_ACCUMULATE +PMPI_ADDRESS +PMPI_ADD_ERROR_CLASS +PMPI_ADD_ERROR_CODE +PMPI_ADD_ERROR_STRING +PMPI_AINT_ADD +PMPI_AINT_DIFF +PMPI_ALLGATHER +PMPI_ALLGATHERV +PMPI_ALLOC_MEM +PMPI_ALLREDUCE +PMPI_ALLTOALL +PMPI_ALLTOALLV +PMPI_ALLTOALLW +PMPI_ATTR_DELETE +PMPI_ATTR_GET +PMPI_ATTR_PUT +PMPI_Abort@8 +PMPI_Accumulate@36 +PMPI_Add_error_class@4 +PMPI_Add_error_code@8 +PMPI_Add_error_string@8 +PMPI_Address@8 +PMPI_Aint_add@8 +PMPI_Aint_diff@8 +PMPI_Allgather@28 +PMPI_Allgatherv@32 +PMPI_Alloc_mem@12 +PMPI_Allreduce@24 +PMPI_Alltoall@28 +PMPI_Alltoallv@36 +PMPI_Alltoallw@36 +PMPI_Attr_delete@8 +PMPI_Attr_get@16 +PMPI_Attr_put@12 +PMPI_BARRIER +PMPI_BCAST +PMPI_BSEND +PMPI_BSEND_INIT +PMPI_BUFFER_ATTACH +PMPI_BUFFER_DETACH +PMPI_Barrier@4 +PMPI_Bcast@20 +PMPI_Bsend@24 +PMPI_Bsend_init@28 +PMPI_Buffer_attach@8 +PMPI_Buffer_detach@8 +PMPI_CANCEL +PMPI_CARTDIM_GET +PMPI_CART_COORDS +PMPI_CART_CREATE +PMPI_CART_GET +PMPI_CART_MAP +PMPI_CART_RANK +PMPI_CART_SHIFT +PMPI_CART_SUB +PMPI_CLOSE_PORT +PMPI_COMM_ACCEPT +PMPI_COMM_CALL_ERRHANDLER +PMPI_COMM_COMPARE +PMPI_COMM_CONNECT +PMPI_COMM_CREATE +PMPI_COMM_CREATE_ERRHANDLER +PMPI_COMM_CREATE_KEYVAL +PMPI_COMM_DELETE_ATTR +PMPI_COMM_DISCONNECT +PMPI_COMM_DUP +PMPI_COMM_DUP_FN +PMPI_COMM_FREE +PMPI_COMM_FREE_KEYVAL +PMPI_COMM_GET_ATTR +PMPI_COMM_GET_ERRHANDLER +PMPI_COMM_GET_NAME +PMPI_COMM_GET_PARENT +PMPI_COMM_GROUP +PMPI_COMM_JOIN +PMPI_COMM_NULL_COPY_FN +PMPI_COMM_NULL_DELETE_FN +PMPI_COMM_RANK +PMPI_COMM_REMOTE_GROUP +PMPI_COMM_REMOTE_SIZE +PMPI_COMM_SET_ATTR +PMPI_COMM_SET_ERRHANDLER +PMPI_COMM_SET_NAME +PMPI_COMM_SIZE +PMPI_COMM_SPAWN +PMPI_COMM_SPAWN_MULTIPLE +PMPI_COMM_SPLIT +PMPI_COMM_SPLIT_TYPE +PMPI_COMM_TEST_INTER +PMPI_COMPARE_AND_SWAP +PMPI_CONVERSION_FN_NULL +PMPI_Cancel@4 +PMPI_Cart_coords@16 +PMPI_Cart_create@24 +PMPI_Cart_get@20 +PMPI_Cart_map@20 +PMPI_Cart_rank@12 +PMPI_Cart_shift@20 +PMPI_Cart_sub@12 +PMPI_Cartdim_get@8 +PMPI_Close_port@4 +PMPI_Comm_accept@20 +PMPI_Comm_call_errhandler@8 +PMPI_Comm_compare@12 +PMPI_Comm_connect@20 +PMPI_Comm_create@12 +PMPI_Comm_create_errhandler@8 +PMPI_Comm_create_keyval@16 +PMPI_Comm_delete_attr@8 +PMPI_Comm_disconnect@4 +PMPI_Comm_dup@8 +PMPI_Comm_free@4 +PMPI_Comm_free_keyval@4 +PMPI_Comm_get_attr@16 +PMPI_Comm_get_errhandler@8 +PMPI_Comm_get_name@12 +PMPI_Comm_get_parent@4 +PMPI_Comm_group@8 +PMPI_Comm_join@8 +PMPI_Comm_rank@8 +PMPI_Comm_remote_group@8 +PMPI_Comm_remote_size@8 +PMPI_Comm_set_attr@12 +PMPI_Comm_set_errhandler@8 +PMPI_Comm_set_name@8 +PMPI_Comm_size@8 +PMPI_Comm_spawn@32 +PMPI_Comm_spawn_multiple@36 +PMPI_Comm_split@16 +PMPI_Comm_split_type@20 +PMPI_Comm_test_inter@8 +PMPI_Compare_and_swap@28 +PMPI_DIMS_CREATE +PMPI_DIST_GRAPH_CREATE +PMPI_DIST_GRAPH_CREATE_ADJACENT +PMPI_DIST_GRAPH_NEIGHBORS +PMPI_DIST_GRAPH_NEIGHBORS_COUNT +PMPI_DUP_FN +PMPI_Dims_create@12 +PMPI_Dist_graph_create@36 +PMPI_Dist_graph_create_adjacent@40 +PMPI_Dist_graph_neighbors@28 +PMPI_Dist_graph_neighbors_count@16 +PMPI_ERRHANDLER_CREATE +PMPI_ERRHANDLER_FREE +PMPI_ERRHANDLER_GET +PMPI_ERRHANDLER_SET +PMPI_ERROR_CLASS +PMPI_ERROR_STRING +PMPI_EXSCAN +PMPI_Errhandler_create@8 +PMPI_Errhandler_free@4 +PMPI_Errhandler_get@8 +PMPI_Errhandler_set@8 +PMPI_Error_class@8 +PMPI_Error_string@12 +PMPI_Exscan@24 +PMPI_FETCH_AND_OP +PMPI_FILE_CALL_ERRHANDLER +PMPI_FILE_CLOSE +PMPI_FILE_CREATE_ERRHANDLER +PMPI_FILE_DELETE +PMPI_FILE_GET_AMODE +PMPI_FILE_GET_ATOMICITY +PMPI_FILE_GET_BYTE_OFFSET +PMPI_FILE_GET_ERRHANDLER +PMPI_FILE_GET_GROUP +PMPI_FILE_GET_INFO +PMPI_FILE_GET_POSITION +PMPI_FILE_GET_POSITION_SHARED +PMPI_FILE_GET_SIZE +PMPI_FILE_GET_TYPE_EXTENT +PMPI_FILE_GET_VIEW +PMPI_FILE_IREAD +PMPI_FILE_IREAD_AT +PMPI_FILE_IREAD_SHARED +PMPI_FILE_IWRITE +PMPI_FILE_IWRITE_AT +PMPI_FILE_IWRITE_SHARED +PMPI_FILE_OPEN +PMPI_FILE_PREALLOCATE +PMPI_FILE_READ +PMPI_FILE_READ_ALL +PMPI_FILE_READ_ALL_BEGIN +PMPI_FILE_READ_ALL_END +PMPI_FILE_READ_AT +PMPI_FILE_READ_AT_ALL +PMPI_FILE_READ_AT_ALL_BEGIN +PMPI_FILE_READ_AT_ALL_END +PMPI_FILE_READ_ORDERED +PMPI_FILE_READ_ORDERED_BEGIN +PMPI_FILE_READ_ORDERED_END +PMPI_FILE_READ_SHARED +PMPI_FILE_SEEK +PMPI_FILE_SEEK_SHARED +PMPI_FILE_SET_ATOMICITY +PMPI_FILE_SET_ERRHANDLER +PMPI_FILE_SET_INFO +PMPI_FILE_SET_SIZE +PMPI_FILE_SET_VIEW +PMPI_FILE_SYNC +PMPI_FILE_WRITE +PMPI_FILE_WRITE_ALL +PMPI_FILE_WRITE_ALL_BEGIN +PMPI_FILE_WRITE_ALL_END +PMPI_FILE_WRITE_AT +PMPI_FILE_WRITE_AT_ALL +PMPI_FILE_WRITE_AT_ALL_BEGIN +PMPI_FILE_WRITE_AT_ALL_END +PMPI_FILE_WRITE_ORDERED +PMPI_FILE_WRITE_ORDERED_BEGIN +PMPI_FILE_WRITE_ORDERED_END +PMPI_FILE_WRITE_SHARED +PMPI_FINALIZE +PMPI_FINALIZED +PMPI_FREE_MEM +PMPI_Fetch_and_op@28 +PMPI_File_c2f@4 +PMPI_File_call_errhandler@8 +PMPI_File_close@4 +PMPI_File_create_errhandler@8 +PMPI_File_delete@8 +PMPI_File_f2c@4 +PMPI_File_get_amode@8 +PMPI_File_get_atomicity@8 +PMPI_File_get_byte_offset@16 +PMPI_File_get_errhandler@8 +PMPI_File_get_group@8 +PMPI_File_get_info@8 +PMPI_File_get_position@8 +PMPI_File_get_position_shared@8 +PMPI_File_get_size@8 +PMPI_File_get_type_extent@12 +PMPI_File_get_view@20 +PMPI_File_iread@20 +PMPI_File_iread_at@28 +PMPI_File_iread_shared@20 +PMPI_File_iwrite@20 +PMPI_File_iwrite_at@28 +PMPI_File_iwrite_shared@20 +PMPI_File_open@20 +PMPI_File_preallocate@12 +PMPI_File_read@20 +PMPI_File_read_all@20 +PMPI_File_read_all_begin@16 +PMPI_File_read_all_end@12 +PMPI_File_read_at@28 +PMPI_File_read_at_all@28 +PMPI_File_read_at_all_begin@24 +PMPI_File_read_at_all_end@12 +PMPI_File_read_ordered@20 +PMPI_File_read_ordered_begin@16 +PMPI_File_read_ordered_end@12 +PMPI_File_read_shared@20 +PMPI_File_seek@16 +PMPI_File_seek_shared@16 +PMPI_File_set_atomicity@8 +PMPI_File_set_errhandler@8 +PMPI_File_set_info@8 +PMPI_File_set_size@12 +PMPI_File_set_view@28 +PMPI_File_sync@4 +PMPI_File_write@20 +PMPI_File_write_all@20 +PMPI_File_write_all_begin@16 +PMPI_File_write_all_end@12 +PMPI_File_write_at@28 +PMPI_File_write_at_all@28 +PMPI_File_write_at_all_begin@24 +PMPI_File_write_at_all_end@12 +PMPI_File_write_ordered@20 +PMPI_File_write_ordered_begin@16 +PMPI_File_write_ordered_end@12 +PMPI_File_write_shared@20 +PMPI_Finalize +PMPI_Finalized@4 +PMPI_Free_mem@4 +PMPI_GATHER +PMPI_GATHERV +PMPI_GET +PMPI_GET_ACCUMULATE +PMPI_GET_ADDRESS +PMPI_GET_COUNT +PMPI_GET_ELEMENTS +PMPI_GET_ELEMENTS_X +PMPI_GET_LIBRARY_VERSION +PMPI_GET_PROCESSOR_NAME +PMPI_GET_VERSION +PMPI_GRAPHDIMS_GET +PMPI_GRAPH_CREATE +PMPI_GRAPH_GET +PMPI_GRAPH_MAP +PMPI_GRAPH_NEIGHBORS +PMPI_GRAPH_NEIGHBORS_COUNT +PMPI_GREQUEST_COMPLETE +PMPI_GREQUEST_START +PMPI_GROUP_COMPARE +PMPI_GROUP_DIFFERENCE +PMPI_GROUP_EXCL +PMPI_GROUP_FREE +PMPI_GROUP_INCL +PMPI_GROUP_INTERSECTION +PMPI_GROUP_RANGE_EXCL +PMPI_GROUP_RANGE_INCL +PMPI_GROUP_RANK +PMPI_GROUP_SIZE +PMPI_GROUP_TRANSLATE_RANKS +PMPI_GROUP_UNION +PMPI_Gather@32 +PMPI_Gatherv@36 +PMPI_Get@32 +PMPI_Get_accumulate@48 +PMPI_Get_address@8 +PMPI_Get_count@12 +PMPI_Get_elements@12 +PMPI_Get_elements_x@12 +PMPI_Get_library_version@8 +PMPI_Get_processor_name@8 +PMPI_Get_version@8 +PMPI_Graph_create@24 +PMPI_Graph_get@20 +PMPI_Graph_map@20 +PMPI_Graph_neighbors@16 +PMPI_Graph_neighbors_count@12 +PMPI_Graphdims_get@12 +PMPI_Grequest_complete@4 +PMPI_Grequest_start@20 +PMPI_Group_compare@12 +PMPI_Group_difference@12 +PMPI_Group_excl@16 +PMPI_Group_free@4 +PMPI_Group_incl@16 +PMPI_Group_intersection@12 +PMPI_Group_range_excl@16 +PMPI_Group_range_incl@16 +PMPI_Group_rank@8 +PMPI_Group_size@8 +PMPI_Group_translate_ranks@20 +PMPI_Group_union@12 +PMPI_IALLGATHER +PMPI_IALLGATHERV +PMPI_IALLREDUCE +PMPI_IALLTOALL +PMPI_IALLTOALLV +PMPI_IALLTOALLW +PMPI_IBARRIER +PMPI_IBCAST +PMPI_IBSEND +PMPI_IEXSCAN +PMPI_IGATHER +PMPI_IGATHERV +PMPI_IMPROBE +PMPI_IMRECV +PMPI_INFO_CREATE +PMPI_INFO_DELETE +PMPI_INFO_DUP +PMPI_INFO_FREE +PMPI_INFO_GET +PMPI_INFO_GET_NKEYS +PMPI_INFO_GET_NTHKEY +PMPI_INFO_GET_VALUELEN +PMPI_INFO_SET +PMPI_INIT +PMPI_INITIALIZED +PMPI_INIT_THREAD +PMPI_INTERCOMM_CREATE +PMPI_INTERCOMM_MERGE +PMPI_IPROBE +PMPI_IRECV +PMPI_IREDUCE +PMPI_IREDUCE_SCATTER +PMPI_IREDUCE_SCATTER_BLOCK +PMPI_IRSEND +PMPI_ISCAN +PMPI_ISCATTER +PMPI_ISCATTERV +PMPI_ISEND +PMPI_ISSEND +PMPI_IS_THREAD_MAIN +PMPI_Iallgather@32 +PMPI_Iallgatherv@36 +PMPI_Iallreduce@28 +PMPI_Ialltoall@32 +PMPI_Ialltoallv@40 +PMPI_Ialltoallw@40 +PMPI_Ibarrier@8 +PMPI_Ibcast@24 +PMPI_Ibsend@28 +PMPI_Iexscan@28 +PMPI_Igather@36 +PMPI_Igatherv@40 +PMPI_Improbe@24 +PMPI_Imrecv@20 +PMPI_Info_create@4 +PMPI_Info_delete@8 +PMPI_Info_dup@8 +PMPI_Info_free@4 +PMPI_Info_get@20 +PMPI_Info_get_nkeys@8 +PMPI_Info_get_nthkey@12 +PMPI_Info_get_valuelen@16 +PMPI_Info_set@12 +PMPI_Init@8 +PMPI_Init_thread@16 +PMPI_Initialized@4 +PMPI_Intercomm_create@24 +PMPI_Intercomm_merge@12 +PMPI_Iprobe@20 +PMPI_Irecv@28 +PMPI_Ireduce@32 +PMPI_Ireduce_scatter@28 +PMPI_Ireduce_scatter_block@28 +PMPI_Irsend@28 +PMPI_Is_thread_main@4 +PMPI_Iscan@28 +PMPI_Iscatter@36 +PMPI_Iscatterv@40 +PMPI_Isend@28 +PMPI_Issend@28 +PMPI_KEYVAL_CREATE +PMPI_KEYVAL_FREE +PMPI_Keyval_create@16 +PMPI_Keyval_free@4 +PMPI_LOOKUP_NAME +PMPI_Lookup_name@12 +PMPI_MPROBE +PMPI_MRECV +PMPI_Mprobe@20 +PMPI_Mrecv@20 +PMPI_NULL_COPY_FN +PMPI_NULL_DELETE_FN +PMPI_OPEN_PORT +PMPI_OP_COMMUTATIVE +PMPI_OP_CREATE +PMPI_OP_FREE +PMPI_Op_commutative@8 +PMPI_Op_create@12 +PMPI_Op_free@4 +PMPI_Open_port@8 +PMPI_PACK +PMPI_PACK_EXTERNAL +PMPI_PACK_EXTERNAL_SIZE +PMPI_PACK_SIZE +PMPI_PCONTROL +PMPI_PROBE +PMPI_PUBLISH_NAME +PMPI_PUT +PMPI_Pack@28 +PMPI_Pack_external@28 +PMPI_Pack_external_size@16 +PMPI_Pack_size@16 +PMPI_Pcontrol +PMPI_Probe@16 +PMPI_Publish_name@12 +PMPI_Put@32 +PMPI_QUERY_THREAD +PMPI_Query_thread@4 +PMPI_RACCUMULATE +PMPI_RECV +PMPI_RECV_INIT +PMPI_REDUCE +PMPI_REDUCE_LOCAL +PMPI_REDUCE_SCATTER +PMPI_REDUCE_SCATTER_block +PMPI_REGISTER_DATAREP +PMPI_REQUEST_FREE +PMPI_REQUEST_GET_STATUS +PMPI_RGET +PMPI_RGET_ACCUMULATE +PMPI_RPUT +PMPI_RSEND +PMPI_RSEND_INIT +PMPI_Raccumulate@40 +PMPI_Recv@28 +PMPI_Recv_init@28 +PMPI_Reduce@28 +PMPI_Reduce_local@20 +PMPI_Reduce_scatter@24 +PMPI_Reduce_scatter_block@24 +PMPI_Register_datarep@20 +PMPI_Request_free@4 +PMPI_Request_get_status@12 +PMPI_Rget@36 +PMPI_Rget_accumulate@52 +PMPI_Rput@36 +PMPI_Rsend@24 +PMPI_Rsend_init@28 +PMPI_SCAN +PMPI_SCATTER +PMPI_SCATTERV +PMPI_SEND +PMPI_SENDRECV +PMPI_SENDRECV_REPLACE +PMPI_SEND_INIT +PMPI_SSEND +PMPI_SSEND_INIT +PMPI_START +PMPI_STARTALL +PMPI_STATUS_C2F +PMPI_STATUS_F2C +PMPI_STATUS_SET_CANCELLED +PMPI_STATUS_SET_ELEMENTS +PMPI_STATUS_SET_ELEMENTS_X +PMPI_Scan@24 +PMPI_Scatter@32 +PMPI_Scatterv@36 +PMPI_Send@24 +PMPI_Send_init@28 +PMPI_Sendrecv@48 +PMPI_Sendrecv_replace@36 +PMPI_Ssend@24 +PMPI_Ssend_init@28 +PMPI_Start@4 +PMPI_Startall@8 +PMPI_Status_c2f@8 +PMPI_Status_f2c@8 +PMPI_Status_set_cancelled@8 +PMPI_Status_set_elements@12 +PMPI_Status_set_elements_x@16 +PMPI_TEST +PMPI_TESTALL +PMPI_TESTANY +PMPI_TESTSOME +PMPI_TEST_CANCELLED +PMPI_TOPO_TEST +PMPI_TYPE_COMMIT +PMPI_TYPE_CONTIGUOUS +PMPI_TYPE_CREATE_DARRAY +PMPI_TYPE_CREATE_F90_COMPLEX +PMPI_TYPE_CREATE_F90_INTEGER +PMPI_TYPE_CREATE_F90_REAL +PMPI_TYPE_CREATE_HINDEXED +PMPI_TYPE_CREATE_HINDEXED_BLOCK +PMPI_TYPE_CREATE_HVECTOR +PMPI_TYPE_CREATE_INDEXED_BLOCK +PMPI_TYPE_CREATE_KEYVAL +PMPI_TYPE_CREATE_RESIZED +PMPI_TYPE_CREATE_STRUCT +PMPI_TYPE_CREATE_SUBARRAY +PMPI_TYPE_DELETE_ATTR +PMPI_TYPE_DUP +PMPI_TYPE_DUP_FN +PMPI_TYPE_EXTENT +PMPI_TYPE_FREE +PMPI_TYPE_FREE_KEYVAL +PMPI_TYPE_GET_ATTR +PMPI_TYPE_GET_CONTENTS +PMPI_TYPE_GET_ENVELOPE +PMPI_TYPE_GET_EXTENT +PMPI_TYPE_GET_EXTENT_X +PMPI_TYPE_GET_NAME +PMPI_TYPE_GET_TRUE_EXTENT +PMPI_TYPE_GET_TRUE_EXTENT_X +PMPI_TYPE_HINDEXED +PMPI_TYPE_HVECTOR +PMPI_TYPE_INDEXED +PMPI_TYPE_LB +PMPI_TYPE_MATCH_SIZE +PMPI_TYPE_NULL_COPY_FN +PMPI_TYPE_NULL_DELETE_FN +PMPI_TYPE_SET_ATTR +PMPI_TYPE_SET_NAME +PMPI_TYPE_SIZE +PMPI_TYPE_SIZE_X +PMPI_TYPE_STRUCT +PMPI_TYPE_UB +PMPI_TYPE_VECTOR +PMPI_Test@12 +PMPI_Test_cancelled@8 +PMPI_Testall@16 +PMPI_Testany@20 +PMPI_Testsome@20 +PMPI_Topo_test@8 +PMPI_Type_commit@4 +PMPI_Type_contiguous@12 +PMPI_Type_create_darray@40 +PMPI_Type_create_f90_complex@12 +PMPI_Type_create_f90_integer@8 +PMPI_Type_create_f90_real@12 +PMPI_Type_create_hindexed@20 +PMPI_Type_create_hindexed_block@20 +PMPI_Type_create_hvector@20 +PMPI_Type_create_indexed_block@20 +PMPI_Type_create_keyval@16 +PMPI_Type_create_resized@16 +PMPI_Type_create_struct@20 +PMPI_Type_create_subarray@28 +PMPI_Type_delete_attr@8 +PMPI_Type_dup@8 +PMPI_Type_extent@8 +PMPI_Type_free@4 +PMPI_Type_free_keyval@4 +PMPI_Type_get_attr@16 +PMPI_Type_get_contents@28 +PMPI_Type_get_envelope@20 +PMPI_Type_get_extent@12 +PMPI_Type_get_extent_x@12 +PMPI_Type_get_name@12 +PMPI_Type_get_true_extent@12 +PMPI_Type_get_true_extent_x@12 +PMPI_Type_hindexed@20 +PMPI_Type_hvector@20 +PMPI_Type_indexed@20 +PMPI_Type_lb@8 +PMPI_Type_match_size@12 +PMPI_Type_set_attr@12 +PMPI_Type_set_name@8 +PMPI_Type_size@8 +PMPI_Type_size_x@8 +PMPI_Type_struct@20 +PMPI_Type_ub@8 +PMPI_Type_vector@20 +PMPI_UNPACK +PMPI_UNPACK_EXTERNAL +PMPI_UNPUBLISH_NAME +PMPI_Unpack@28 +PMPI_Unpack_external@28 +PMPI_Unpublish_name@12 +PMPI_WAIT +PMPI_WAITALL +PMPI_WAITANY +PMPI_WAITSOME +PMPI_WIN_ALLOCATE +PMPI_WIN_ALLOCATE_SHARED +PMPI_WIN_ATTACH +PMPI_WIN_CALL_ERRHANDLER +PMPI_WIN_COMPLETE +PMPI_WIN_CREATE +PMPI_WIN_CREATE_DYNAMIC +PMPI_WIN_CREATE_ERRHANDLER +PMPI_WIN_CREATE_KEYVAL +PMPI_WIN_DELETE_ATTR +PMPI_WIN_DETACH +PMPI_WIN_DUP_FN +PMPI_WIN_FENCE +PMPI_WIN_FLUSH +PMPI_WIN_FLUSH_ALL +PMPI_WIN_FLUSH_LOCAL +PMPI_WIN_FLUSH_LOCAL_ALL +PMPI_WIN_FREE +PMPI_WIN_FREE_KEYVAL +PMPI_WIN_GET_ATTR +PMPI_WIN_GET_ERRHANDLER +PMPI_WIN_GET_GROUP +PMPI_WIN_GET_NAME +PMPI_WIN_LOCK +PMPI_WIN_LOCK_ALL +PMPI_WIN_NULL_COPY_FN +PMPI_WIN_NULL_DELETE_FN +PMPI_WIN_POST +PMPI_WIN_SET_ATTR +PMPI_WIN_SET_ERRHANDLER +PMPI_WIN_SET_NAME +PMPI_WIN_SHARED_QUERY +PMPI_WIN_START +PMPI_WIN_SYNC +PMPI_WIN_TEST +PMPI_WIN_UNLOCK +PMPI_WIN_UNLOCK_ALL +PMPI_WIN_WAIT +PMPI_WTICK +PMPI_WTIME +PMPI_Wait@8 +PMPI_Waitall@12 +PMPI_Waitany@16 +PMPI_Waitsome@20 +PMPI_Win_allocate@24 +PMPI_Win_allocate_shared@24 +PMPI_Win_attach@12 +PMPI_Win_call_errhandler@8 +PMPI_Win_complete@4 +PMPI_Win_create@24 +PMPI_Win_create_dynamic@12 +PMPI_Win_create_errhandler@8 +PMPI_Win_create_keyval@16 +PMPI_Win_delete_attr@8 +PMPI_Win_detach@8 +PMPI_Win_fence@8 +PMPI_Win_flush@8 +PMPI_Win_flush_all@4 +PMPI_Win_flush_local@8 +PMPI_Win_flush_local_all@4 +PMPI_Win_free@4 +PMPI_Win_free_keyval@4 +PMPI_Win_get_attr@16 +PMPI_Win_get_errhandler@8 +PMPI_Win_get_group@8 +PMPI_Win_get_name@12 +PMPI_Win_lock@16 +PMPI_Win_lock_all@8 +PMPI_Win_post@12 +PMPI_Win_set_attr@12 +PMPI_Win_set_errhandler@8 +PMPI_Win_set_name@8 +PMPI_Win_shared_query@20 +PMPI_Win_start@12 +PMPI_Win_sync@4 +PMPI_Win_test@8 +PMPI_Win_unlock@8 +PMPI_Win_unlock_all@4 +PMPI_Win_wait@4 +PMPI_Wtick +PMPI_Wtime +PMSMPI_GET_BSEND_OVERHEAD +PMSMPI_GET_VERSION +PMSMPI_Get_bsend_overhead +PMSMPI_Get_version +_mpifcmb5 DATA +_mpifcmb5_ DATA +_mpifcmb9 DATA +_mpifcmb9_ DATA +_mpipriv1 DATA +_mpipriv1_ DATA +_mpipriv2 DATA +_mpipriv2_ DATA +_mpiprivc DATA +_mpiprivc_ DATA +mpi_abort +mpi_abort_ +mpi_abort__ +mpi_accumulate +mpi_accumulate_ +mpi_accumulate__ +mpi_add_error_class +mpi_add_error_class_ +mpi_add_error_class__ +mpi_add_error_code +mpi_add_error_code_ +mpi_add_error_code__ +mpi_add_error_string +mpi_add_error_string_ +mpi_add_error_string__ +mpi_address +mpi_address_ +mpi_address__ +mpi_aint_add +mpi_aint_add_ +mpi_aint_add__ +mpi_aint_diff +mpi_aint_diff_ +mpi_aint_diff__ +mpi_allgather +mpi_allgather_ +mpi_allgather__ +mpi_allgatherv +mpi_allgatherv_ +mpi_allgatherv__ +mpi_alloc_mem +mpi_alloc_mem_ +mpi_alloc_mem__ +mpi_allreduce +mpi_allreduce_ +mpi_allreduce__ +mpi_alltoall +mpi_alltoall_ +mpi_alltoall__ +mpi_alltoallv +mpi_alltoallv_ +mpi_alltoallv__ +mpi_alltoallw +mpi_alltoallw_ +mpi_alltoallw__ +mpi_attr_delete +mpi_attr_delete_ +mpi_attr_delete__ +mpi_attr_get +mpi_attr_get_ +mpi_attr_get__ +mpi_attr_put +mpi_attr_put_ +mpi_attr_put__ +mpi_barrier +mpi_barrier_ +mpi_barrier__ +mpi_bcast +mpi_bcast_ +mpi_bcast__ +mpi_bsend +mpi_bsend_ +mpi_bsend__ +mpi_bsend_init +mpi_bsend_init_ +mpi_bsend_init__ +mpi_buffer_attach +mpi_buffer_attach_ +mpi_buffer_attach__ +mpi_buffer_detach +mpi_buffer_detach_ +mpi_buffer_detach__ +mpi_cancel +mpi_cancel_ +mpi_cancel__ +mpi_cart_coords +mpi_cart_coords_ +mpi_cart_coords__ +mpi_cart_create +mpi_cart_create_ +mpi_cart_create__ +mpi_cart_get +mpi_cart_get_ +mpi_cart_get__ +mpi_cart_map +mpi_cart_map_ +mpi_cart_map__ +mpi_cart_rank +mpi_cart_rank_ +mpi_cart_rank__ +mpi_cart_shift +mpi_cart_shift_ +mpi_cart_shift__ +mpi_cart_sub +mpi_cart_sub_ +mpi_cart_sub__ +mpi_cartdim_get +mpi_cartdim_get_ +mpi_cartdim_get__ +mpi_close_port +mpi_close_port_ +mpi_close_port__ +mpi_comm_accept +mpi_comm_accept_ +mpi_comm_accept__ +mpi_comm_call_errhandler +mpi_comm_call_errhandler_ +mpi_comm_call_errhandler__ +mpi_comm_compare +mpi_comm_compare_ +mpi_comm_compare__ +mpi_comm_connect +mpi_comm_connect_ +mpi_comm_connect__ +mpi_comm_create +mpi_comm_create_ +mpi_comm_create__ +mpi_comm_create_errhandler +mpi_comm_create_errhandler_ +mpi_comm_create_errhandler__ +mpi_comm_create_keyval +mpi_comm_create_keyval_ +mpi_comm_create_keyval__ +mpi_comm_delete_attr +mpi_comm_delete_attr_ +mpi_comm_delete_attr__ +mpi_comm_disconnect +mpi_comm_disconnect_ +mpi_comm_disconnect__ +mpi_comm_dup +mpi_comm_dup_ +mpi_comm_dup__ +mpi_comm_dup_fn +mpi_comm_dup_fn_ +mpi_comm_dup_fn__ +mpi_comm_free +mpi_comm_free_ +mpi_comm_free__ +mpi_comm_free_keyval +mpi_comm_free_keyval_ +mpi_comm_free_keyval__ +mpi_comm_get_attr +mpi_comm_get_attr_ +mpi_comm_get_attr__ +mpi_comm_get_errhandler +mpi_comm_get_errhandler_ +mpi_comm_get_errhandler__ +mpi_comm_get_name +mpi_comm_get_name_ +mpi_comm_get_name__ +mpi_comm_get_parent +mpi_comm_get_parent_ +mpi_comm_get_parent__ +mpi_comm_group +mpi_comm_group_ +mpi_comm_group__ +mpi_comm_join +mpi_comm_join_ +mpi_comm_join__ +mpi_comm_null_copy_fn +mpi_comm_null_copy_fn_ +mpi_comm_null_copy_fn__ +mpi_comm_null_delete_fn +mpi_comm_null_delete_fn_ +mpi_comm_null_delete_fn__ +mpi_comm_rank +mpi_comm_rank_ +mpi_comm_rank__ +mpi_comm_remote_group +mpi_comm_remote_group_ +mpi_comm_remote_group__ +mpi_comm_remote_size +mpi_comm_remote_size_ +mpi_comm_remote_size__ +mpi_comm_set_attr +mpi_comm_set_attr_ +mpi_comm_set_attr__ +mpi_comm_set_errhandler +mpi_comm_set_errhandler_ +mpi_comm_set_errhandler__ +mpi_comm_set_name +mpi_comm_set_name_ +mpi_comm_set_name__ +mpi_comm_size +mpi_comm_size_ +mpi_comm_size__ +mpi_comm_spawn +mpi_comm_spawn_ +mpi_comm_spawn__ +mpi_comm_spawn_multiple +mpi_comm_spawn_multiple_ +mpi_comm_spawn_multiple__ +mpi_comm_split +mpi_comm_split_ +mpi_comm_split__ +mpi_comm_split_type +mpi_comm_split_type_ +mpi_comm_split_type__ +mpi_comm_test_inter +mpi_comm_test_inter_ +mpi_comm_test_inter__ +mpi_compare_and_swap +mpi_compare_and_swap_ +mpi_compare_and_swap__ +mpi_conversion_fn_null +mpi_conversion_fn_null_ +mpi_conversion_fn_null__ +mpi_dims_create +mpi_dims_create_ +mpi_dims_create__ +mpi_dist_graph_create +mpi_dist_graph_create_ +mpi_dist_graph_create__ +mpi_dist_graph_create_adjacent +mpi_dist_graph_create_adjacent_ +mpi_dist_graph_create_adjacent__ +mpi_dist_graph_neighbors +mpi_dist_graph_neighbors_ +mpi_dist_graph_neighbors__ +mpi_dist_graph_neighbors_count +mpi_dist_graph_neighbors_count_ +mpi_dist_graph_neighbors_count__ +mpi_dup_fn +mpi_dup_fn_ +mpi_dup_fn__ +mpi_errhandler_create +mpi_errhandler_create_ +mpi_errhandler_create__ +mpi_errhandler_free +mpi_errhandler_free_ +mpi_errhandler_free__ +mpi_errhandler_get +mpi_errhandler_get_ +mpi_errhandler_get__ +mpi_errhandler_set +mpi_errhandler_set_ +mpi_errhandler_set__ +mpi_error_class +mpi_error_class_ +mpi_error_class__ +mpi_error_string +mpi_error_string_ +mpi_error_string__ +mpi_exscan +mpi_exscan_ +mpi_exscan__ +mpi_fetch_and_op +mpi_fetch_and_op_ +mpi_fetch_and_op__ +mpi_file_call_errhandler +mpi_file_call_errhandler_ +mpi_file_call_errhandler__ +mpi_file_close +mpi_file_close_ +mpi_file_close__ +mpi_file_create_errhandler +mpi_file_create_errhandler_ +mpi_file_create_errhandler__ +mpi_file_delete +mpi_file_delete_ +mpi_file_delete__ +mpi_file_get_amode +mpi_file_get_amode_ +mpi_file_get_amode__ +mpi_file_get_atomicity +mpi_file_get_atomicity_ +mpi_file_get_atomicity__ +mpi_file_get_byte_offset +mpi_file_get_byte_offset_ +mpi_file_get_byte_offset__ +mpi_file_get_errhandler +mpi_file_get_errhandler_ +mpi_file_get_errhandler__ +mpi_file_get_group +mpi_file_get_group_ +mpi_file_get_group__ +mpi_file_get_info +mpi_file_get_info_ +mpi_file_get_info__ +mpi_file_get_position +mpi_file_get_position_ +mpi_file_get_position__ +mpi_file_get_position_shared +mpi_file_get_position_shared_ +mpi_file_get_position_shared__ +mpi_file_get_size +mpi_file_get_size_ +mpi_file_get_size__ +mpi_file_get_type_extent +mpi_file_get_type_extent_ +mpi_file_get_type_extent__ +mpi_file_get_view +mpi_file_get_view_ +mpi_file_get_view__ +mpi_file_iread +mpi_file_iread_ +mpi_file_iread__ +mpi_file_iread_at +mpi_file_iread_at_ +mpi_file_iread_at__ +mpi_file_iread_shared +mpi_file_iread_shared_ +mpi_file_iread_shared__ +mpi_file_iwrite +mpi_file_iwrite_ +mpi_file_iwrite__ +mpi_file_iwrite_at +mpi_file_iwrite_at_ +mpi_file_iwrite_at__ +mpi_file_iwrite_shared +mpi_file_iwrite_shared_ +mpi_file_iwrite_shared__ +mpi_file_open +mpi_file_open_ +mpi_file_open__ +mpi_file_preallocate +mpi_file_preallocate_ +mpi_file_preallocate__ +mpi_file_read +mpi_file_read_ +mpi_file_read__ +mpi_file_read_all +mpi_file_read_all_ +mpi_file_read_all__ +mpi_file_read_all_begin +mpi_file_read_all_begin_ +mpi_file_read_all_begin__ +mpi_file_read_all_end +mpi_file_read_all_end_ +mpi_file_read_all_end__ +mpi_file_read_at +mpi_file_read_at_ +mpi_file_read_at__ +mpi_file_read_at_all +mpi_file_read_at_all_ +mpi_file_read_at_all__ +mpi_file_read_at_all_begin +mpi_file_read_at_all_begin_ +mpi_file_read_at_all_begin__ +mpi_file_read_at_all_end +mpi_file_read_at_all_end_ +mpi_file_read_at_all_end__ +mpi_file_read_ordered +mpi_file_read_ordered_ +mpi_file_read_ordered__ +mpi_file_read_ordered_begin +mpi_file_read_ordered_begin_ +mpi_file_read_ordered_begin__ +mpi_file_read_ordered_end +mpi_file_read_ordered_end_ +mpi_file_read_ordered_end__ +mpi_file_read_shared +mpi_file_read_shared_ +mpi_file_read_shared__ +mpi_file_seek +mpi_file_seek_ +mpi_file_seek__ +mpi_file_seek_shared +mpi_file_seek_shared_ +mpi_file_seek_shared__ +mpi_file_set_atomicity +mpi_file_set_atomicity_ +mpi_file_set_atomicity__ +mpi_file_set_errhandler +mpi_file_set_errhandler_ +mpi_file_set_errhandler__ +mpi_file_set_info +mpi_file_set_info_ +mpi_file_set_info__ +mpi_file_set_size +mpi_file_set_size_ +mpi_file_set_size__ +mpi_file_set_view +mpi_file_set_view_ +mpi_file_set_view__ +mpi_file_sync +mpi_file_sync_ +mpi_file_sync__ +mpi_file_write +mpi_file_write_ +mpi_file_write__ +mpi_file_write_all +mpi_file_write_all_ +mpi_file_write_all__ +mpi_file_write_all_begin +mpi_file_write_all_begin_ +mpi_file_write_all_begin__ +mpi_file_write_all_end +mpi_file_write_all_end_ +mpi_file_write_all_end__ +mpi_file_write_at +mpi_file_write_at_ +mpi_file_write_at__ +mpi_file_write_at_all +mpi_file_write_at_all_ +mpi_file_write_at_all__ +mpi_file_write_at_all_begin +mpi_file_write_at_all_begin_ +mpi_file_write_at_all_begin__ +mpi_file_write_at_all_end +mpi_file_write_at_all_end_ +mpi_file_write_at_all_end__ +mpi_file_write_ordered +mpi_file_write_ordered_ +mpi_file_write_ordered__ +mpi_file_write_ordered_begin +mpi_file_write_ordered_begin_ +mpi_file_write_ordered_begin__ +mpi_file_write_ordered_end +mpi_file_write_ordered_end_ +mpi_file_write_ordered_end__ +mpi_file_write_shared +mpi_file_write_shared_ +mpi_file_write_shared__ +mpi_finalize +mpi_finalize_ +mpi_finalize__ +mpi_finalized +mpi_finalized_ +mpi_finalized__ +mpi_free_mem +mpi_free_mem_ +mpi_free_mem__ +mpi_gather +mpi_gather_ +mpi_gather__ +mpi_gatherv +mpi_gatherv_ +mpi_gatherv__ +mpi_get +mpi_get_ +mpi_get__ +mpi_get_accumulate +mpi_get_accumulate_ +mpi_get_accumulate__ +mpi_get_address +mpi_get_address_ +mpi_get_address__ +mpi_get_count +mpi_get_count_ +mpi_get_count__ +mpi_get_elements +mpi_get_elements_ +mpi_get_elements__ +mpi_get_elements_x +mpi_get_elements_x_ +mpi_get_elements_x__ +mpi_get_library_version +mpi_get_library_version_ +mpi_get_library_version__ +mpi_get_processor_name +mpi_get_processor_name_ +mpi_get_processor_name__ +mpi_get_version +mpi_get_version_ +mpi_get_version__ +mpi_graph_create +mpi_graph_create_ +mpi_graph_create__ +mpi_graph_get +mpi_graph_get_ +mpi_graph_get__ +mpi_graph_map +mpi_graph_map_ +mpi_graph_map__ +mpi_graph_neighbors +mpi_graph_neighbors_ +mpi_graph_neighbors__ +mpi_graph_neighbors_count +mpi_graph_neighbors_count_ +mpi_graph_neighbors_count__ +mpi_graphdims_get +mpi_graphdims_get_ +mpi_graphdims_get__ +mpi_grequest_complete +mpi_grequest_complete_ +mpi_grequest_complete__ +mpi_grequest_start +mpi_grequest_start_ +mpi_grequest_start__ +mpi_group_compare +mpi_group_compare_ +mpi_group_compare__ +mpi_group_difference +mpi_group_difference_ +mpi_group_difference__ +mpi_group_excl +mpi_group_excl_ +mpi_group_excl__ +mpi_group_free +mpi_group_free_ +mpi_group_free__ +mpi_group_incl +mpi_group_incl_ +mpi_group_incl__ +mpi_group_intersection +mpi_group_intersection_ +mpi_group_intersection__ +mpi_group_range_excl +mpi_group_range_excl_ +mpi_group_range_excl__ +mpi_group_range_incl +mpi_group_range_incl_ +mpi_group_range_incl__ +mpi_group_rank +mpi_group_rank_ +mpi_group_rank__ +mpi_group_size +mpi_group_size_ +mpi_group_size__ +mpi_group_translate_ranks +mpi_group_translate_ranks_ +mpi_group_translate_ranks__ +mpi_group_union +mpi_group_union_ +mpi_group_union__ +mpi_iallgather +mpi_iallgather_ +mpi_iallgather__ +mpi_iallgatherv +mpi_iallgatherv_ +mpi_iallgatherv__ +mpi_iallreduce +mpi_iallreduce_ +mpi_iallreduce__ +mpi_ialltoall +mpi_ialltoall_ +mpi_ialltoall__ +mpi_ialltoallv +mpi_ialltoallv_ +mpi_ialltoallv__ +mpi_ialltoallw +mpi_ialltoallw_ +mpi_ialltoallw__ +mpi_ibarrier +mpi_ibarrier_ +mpi_ibarrier__ +mpi_ibcast +mpi_ibcast_ +mpi_ibcast__ +mpi_ibsend +mpi_ibsend_ +mpi_ibsend__ +mpi_iexscan +mpi_iexscan_ +mpi_iexscan__ +mpi_igather +mpi_igather_ +mpi_igather__ +mpi_igatherv +mpi_igatherv_ +mpi_igatherv__ +mpi_improbe +mpi_improbe_ +mpi_improbe__ +mpi_imrecv +mpi_imrecv_ +mpi_imrecv__ +mpi_info_create +mpi_info_create_ +mpi_info_create__ +mpi_info_delete +mpi_info_delete_ +mpi_info_delete__ +mpi_info_dup +mpi_info_dup_ +mpi_info_dup__ +mpi_info_free +mpi_info_free_ +mpi_info_free__ +mpi_info_get +mpi_info_get_ +mpi_info_get__ +mpi_info_get_nkeys +mpi_info_get_nkeys_ +mpi_info_get_nkeys__ +mpi_info_get_nthkey +mpi_info_get_nthkey_ +mpi_info_get_nthkey__ +mpi_info_get_valuelen +mpi_info_get_valuelen_ +mpi_info_get_valuelen__ +mpi_info_set +mpi_info_set_ +mpi_info_set__ +mpi_init +mpi_init_ +mpi_init__ +mpi_init_thread +mpi_init_thread_ +mpi_init_thread__ +mpi_initialized +mpi_initialized_ +mpi_initialized__ +mpi_intercomm_create +mpi_intercomm_create_ +mpi_intercomm_create__ +mpi_intercomm_merge +mpi_intercomm_merge_ +mpi_intercomm_merge__ +mpi_iprobe +mpi_iprobe_ +mpi_iprobe__ +mpi_irecv +mpi_irecv_ +mpi_irecv__ +mpi_ireduce +mpi_ireduce_ +mpi_ireduce__ +mpi_ireduce_scatter +mpi_ireduce_scatter_ +mpi_ireduce_scatter__ +mpi_ireduce_scatter_block +mpi_ireduce_scatter_block_ +mpi_ireduce_scatter_block__ +mpi_irsend +mpi_irsend_ +mpi_irsend__ +mpi_is_thread_main +mpi_is_thread_main_ +mpi_is_thread_main__ +mpi_iscan +mpi_iscan_ +mpi_iscan__ +mpi_iscatter +mpi_iscatter_ +mpi_iscatter__ +mpi_iscatterv +mpi_iscatterv_ +mpi_iscatterv__ +mpi_isend +mpi_isend_ +mpi_isend__ +mpi_issend +mpi_issend_ +mpi_issend__ +mpi_keyval_create +mpi_keyval_create_ +mpi_keyval_create__ +mpi_keyval_free +mpi_keyval_free_ +mpi_keyval_free__ +mpi_lookup_name +mpi_lookup_name_ +mpi_lookup_name__ +mpi_mprobe +mpi_mprobe_ +mpi_mprobe__ +mpi_mrecv +mpi_mrecv_ +mpi_mrecv__ +mpi_null_copy_fn +mpi_null_copy_fn_ +mpi_null_copy_fn__ +mpi_null_delete_fn +mpi_null_delete_fn_ +mpi_null_delete_fn__ +mpi_op_commutative +mpi_op_commutative_ +mpi_op_commutative__ +mpi_op_create +mpi_op_create_ +mpi_op_create__ +mpi_op_free +mpi_op_free_ +mpi_op_free__ +mpi_open_port +mpi_open_port_ +mpi_open_port__ +mpi_pack +mpi_pack_ +mpi_pack__ +mpi_pack_external +mpi_pack_external_ +mpi_pack_external__ +mpi_pack_external_size +mpi_pack_external_size_ +mpi_pack_external_size__ +mpi_pack_size +mpi_pack_size_ +mpi_pack_size__ +mpi_pcontrol +mpi_pcontrol_ +mpi_pcontrol__ +mpi_probe +mpi_probe_ +mpi_probe__ +mpi_publish_name +mpi_publish_name_ +mpi_publish_name__ +mpi_put +mpi_put_ +mpi_put__ +mpi_query_thread +mpi_query_thread_ +mpi_query_thread__ +mpi_raccumulate +mpi_raccumulate_ +mpi_raccumulate__ +mpi_recv +mpi_recv_ +mpi_recv__ +mpi_recv_init +mpi_recv_init_ +mpi_recv_init__ +mpi_reduce +mpi_reduce_ +mpi_reduce__ +mpi_reduce_local +mpi_reduce_local_ +mpi_reduce_local__ +mpi_reduce_scatter +mpi_reduce_scatter_ +mpi_reduce_scatter__ +mpi_reduce_scatter_block +mpi_reduce_scatter_block_ +mpi_reduce_scatter_block__ +mpi_register_datarep +mpi_register_datarep_ +mpi_register_datarep__ +mpi_request_free +mpi_request_free_ +mpi_request_free__ +mpi_request_get_status +mpi_request_get_status_ +mpi_request_get_status__ +mpi_rget +mpi_rget_ +mpi_rget__ +mpi_rget_accumulate +mpi_rget_accumulate_ +mpi_rget_accumulate__ +mpi_rput +mpi_rput_ +mpi_rput__ +mpi_rsend +mpi_rsend_ +mpi_rsend__ +mpi_rsend_init +mpi_rsend_init_ +mpi_rsend_init__ +mpi_scan +mpi_scan_ +mpi_scan__ +mpi_scatter +mpi_scatter_ +mpi_scatter__ +mpi_scatterv +mpi_scatterv_ +mpi_scatterv__ +mpi_send +mpi_send_ +mpi_send__ +mpi_send_init +mpi_send_init_ +mpi_send_init__ +mpi_sendrecv +mpi_sendrecv_ +mpi_sendrecv__ +mpi_sendrecv_replace +mpi_sendrecv_replace_ +mpi_sendrecv_replace__ +mpi_ssend +mpi_ssend_ +mpi_ssend__ +mpi_ssend_init +mpi_ssend_init_ +mpi_ssend_init__ +mpi_start +mpi_start_ +mpi_start__ +mpi_startall +mpi_startall_ +mpi_startall__ +mpi_status_c2f +mpi_status_c2f_ +mpi_status_c2f__ +mpi_status_f2c +mpi_status_f2c_ +mpi_status_f2c__ +mpi_status_set_cancelled +mpi_status_set_cancelled_ +mpi_status_set_cancelled__ +mpi_status_set_elements +mpi_status_set_elements_ +mpi_status_set_elements__ +mpi_status_set_elements_x +mpi_status_set_elements_x_ +mpi_status_set_elements_x__ +mpi_test +mpi_test_ +mpi_test__ +mpi_test_cancelled +mpi_test_cancelled_ +mpi_test_cancelled__ +mpi_testall +mpi_testall_ +mpi_testall__ +mpi_testany +mpi_testany_ +mpi_testany__ +mpi_testsome +mpi_testsome_ +mpi_testsome__ +mpi_topo_test +mpi_topo_test_ +mpi_topo_test__ +mpi_type_commit +mpi_type_commit_ +mpi_type_commit__ +mpi_type_contiguous +mpi_type_contiguous_ +mpi_type_contiguous__ +mpi_type_create_darray +mpi_type_create_darray_ +mpi_type_create_darray__ +mpi_type_create_f90_complex +mpi_type_create_f90_complex_ +mpi_type_create_f90_complex__ +mpi_type_create_f90_integer +mpi_type_create_f90_integer_ +mpi_type_create_f90_integer__ +mpi_type_create_f90_real +mpi_type_create_f90_real_ +mpi_type_create_f90_real__ +mpi_type_create_hindexed +mpi_type_create_hindexed_ +mpi_type_create_hindexed__ +mpi_type_create_hindexed_block +mpi_type_create_hindexed_block_ +mpi_type_create_hindexed_block__ +mpi_type_create_hvector +mpi_type_create_hvector_ +mpi_type_create_hvector__ +mpi_type_create_indexed_block +mpi_type_create_indexed_block_ +mpi_type_create_indexed_block__ +mpi_type_create_keyval +mpi_type_create_keyval_ +mpi_type_create_keyval__ +mpi_type_create_resized +mpi_type_create_resized_ +mpi_type_create_resized__ +mpi_type_create_struct +mpi_type_create_struct_ +mpi_type_create_struct__ +mpi_type_create_subarray +mpi_type_create_subarray_ +mpi_type_create_subarray__ +mpi_type_delete_attr +mpi_type_delete_attr_ +mpi_type_delete_attr__ +mpi_type_dup +mpi_type_dup_ +mpi_type_dup__ +mpi_type_dup_fn +mpi_type_dup_fn_ +mpi_type_dup_fn__ +mpi_type_extent +mpi_type_extent_ +mpi_type_extent__ +mpi_type_free +mpi_type_free_ +mpi_type_free__ +mpi_type_free_keyval +mpi_type_free_keyval_ +mpi_type_free_keyval__ +mpi_type_get_attr +mpi_type_get_attr_ +mpi_type_get_attr__ +mpi_type_get_contents +mpi_type_get_contents_ +mpi_type_get_contents__ +mpi_type_get_envelope +mpi_type_get_envelope_ +mpi_type_get_envelope__ +mpi_type_get_extent +mpi_type_get_extent_ +mpi_type_get_extent__ +mpi_type_get_extent_x +mpi_type_get_extent_x_ +mpi_type_get_extent_x__ +mpi_type_get_name +mpi_type_get_name_ +mpi_type_get_name__ +mpi_type_get_true_extent +mpi_type_get_true_extent_ +mpi_type_get_true_extent__ +mpi_type_get_true_extent_x +mpi_type_get_true_extent_x_ +mpi_type_get_true_extent_x__ +mpi_type_hindexed +mpi_type_hindexed_ +mpi_type_hindexed__ +mpi_type_hvector +mpi_type_hvector_ +mpi_type_hvector__ +mpi_type_indexed +mpi_type_indexed_ +mpi_type_indexed__ +mpi_type_lb +mpi_type_lb_ +mpi_type_lb__ +mpi_type_match_size +mpi_type_match_size_ +mpi_type_match_size__ +mpi_type_null_copy_fn +mpi_type_null_copy_fn_ +mpi_type_null_copy_fn__ +mpi_type_null_delete_fn +mpi_type_null_delete_fn_ +mpi_type_null_delete_fn__ +mpi_type_set_attr +mpi_type_set_attr_ +mpi_type_set_attr__ +mpi_type_set_name +mpi_type_set_name_ +mpi_type_set_name__ +mpi_type_size +mpi_type_size_ +mpi_type_size__ +mpi_type_size_x +mpi_type_size_x_ +mpi_type_size_x__ +mpi_type_struct +mpi_type_struct_ +mpi_type_struct__ +mpi_type_ub +mpi_type_ub_ +mpi_type_ub__ +mpi_type_vector +mpi_type_vector_ +mpi_type_vector__ +mpi_unpack +mpi_unpack_ +mpi_unpack__ +mpi_unpack_external +mpi_unpack_external_ +mpi_unpack_external__ +mpi_unpublish_name +mpi_unpublish_name_ +mpi_unpublish_name__ +mpi_wait +mpi_wait_ +mpi_wait__ +mpi_waitall +mpi_waitall_ +mpi_waitall__ +mpi_waitany +mpi_waitany_ +mpi_waitany__ +mpi_waitsome +mpi_waitsome_ +mpi_waitsome__ +mpi_win_allocate +mpi_win_allocate_ +mpi_win_allocate__ +mpi_win_allocate_shared +mpi_win_allocate_shared_ +mpi_win_allocate_shared__ +mpi_win_attach +mpi_win_attach_ +mpi_win_attach__ +mpi_win_call_errhandler +mpi_win_call_errhandler_ +mpi_win_call_errhandler__ +mpi_win_complete +mpi_win_complete_ +mpi_win_complete__ +mpi_win_create +mpi_win_create_ +mpi_win_create__ +mpi_win_create_dynamic +mpi_win_create_dynamic_ +mpi_win_create_dynamic__ +mpi_win_create_errhandler +mpi_win_create_errhandler_ +mpi_win_create_errhandler__ +mpi_win_create_keyval +mpi_win_create_keyval_ +mpi_win_create_keyval__ +mpi_win_delete_attr +mpi_win_delete_attr_ +mpi_win_delete_attr__ +mpi_win_detach +mpi_win_detach_ +mpi_win_detach__ +mpi_win_dup_fn +mpi_win_dup_fn_ +mpi_win_dup_fn__ +mpi_win_fence +mpi_win_fence_ +mpi_win_fence__ +mpi_win_flush +mpi_win_flush_ +mpi_win_flush__ +mpi_win_flush_all +mpi_win_flush_all_ +mpi_win_flush_all__ +mpi_win_flush_local +mpi_win_flush_local_ +mpi_win_flush_local__ +mpi_win_flush_local_all +mpi_win_flush_local_all_ +mpi_win_flush_local_all__ +mpi_win_free +mpi_win_free_ +mpi_win_free__ +mpi_win_free_keyval +mpi_win_free_keyval_ +mpi_win_free_keyval__ +mpi_win_get_attr +mpi_win_get_attr_ +mpi_win_get_attr__ +mpi_win_get_errhandler +mpi_win_get_errhandler_ +mpi_win_get_errhandler__ +mpi_win_get_group +mpi_win_get_group_ +mpi_win_get_group__ +mpi_win_get_name +mpi_win_get_name_ +mpi_win_get_name__ +mpi_win_lock +mpi_win_lock_ +mpi_win_lock__ +mpi_win_lock_all +mpi_win_lock_all_ +mpi_win_lock_all__ +mpi_win_null_copy_fn +mpi_win_null_copy_fn_ +mpi_win_null_copy_fn__ +mpi_win_null_delete_fn +mpi_win_null_delete_fn_ +mpi_win_null_delete_fn__ +mpi_win_post +mpi_win_post_ +mpi_win_post__ +mpi_win_set_attr +mpi_win_set_attr_ +mpi_win_set_attr__ +mpi_win_set_errhandler +mpi_win_set_errhandler_ +mpi_win_set_errhandler__ +mpi_win_set_name +mpi_win_set_name_ +mpi_win_set_name__ +mpi_win_shared_query +mpi_win_shared_query_ +mpi_win_shared_query__ +mpi_win_start +mpi_win_start_ +mpi_win_start__ +mpi_win_sync +mpi_win_sync_ +mpi_win_sync__ +mpi_win_test +mpi_win_test_ +mpi_win_test__ +mpi_win_unlock +mpi_win_unlock_ +mpi_win_unlock__ +mpi_win_unlock_all +mpi_win_unlock_all_ +mpi_win_unlock_all__ +mpi_win_wait +mpi_win_wait_ +mpi_win_wait__ +mpi_wtick +mpi_wtick_ +mpi_wtick__ +mpi_wtime +mpi_wtime_ +mpi_wtime__ +mpifcmb5 DATA +mpifcmb5_ DATA +mpifcmb9 DATA +mpifcmb9_ DATA +mpipriv1 DATA +mpipriv1_ DATA +mpipriv2 DATA +mpipriv2_ DATA +mpiprivc DATA +mpiprivc_ DATA +mqs_get_communicator@8 +mqs_next_communicator@4 +mqs_next_operation@8 +mqs_setup_basic_callbacks@4 +mqs_setup_communicator_iterator@4 +mqs_setup_image@8 +mqs_setup_operation_iterator@8 +mqs_setup_process@8 +mqs_update_communicator_list@4 +mqs_version_compatibility +msmpi_get_bsend_overhead +msmpi_get_bsend_overhead_ +msmpi_get_bsend_overhead__ +msmpi_get_version +msmpi_get_version_ +msmpi_get_version__ +pmpi_abort +pmpi_abort_ +pmpi_abort__ +pmpi_accumulate +pmpi_accumulate_ +pmpi_accumulate__ +pmpi_add_error_class +pmpi_add_error_class_ +pmpi_add_error_class__ +pmpi_add_error_code +pmpi_add_error_code_ +pmpi_add_error_code__ +pmpi_add_error_string +pmpi_add_error_string_ +pmpi_add_error_string__ +pmpi_address +pmpi_address_ +pmpi_address__ +pmpi_aint_add +pmpi_aint_add_ +pmpi_aint_add__ +pmpi_aint_diff +pmpi_aint_diff_ +pmpi_aint_diff__ +pmpi_allgather +pmpi_allgather_ +pmpi_allgather__ +pmpi_allgatherv +pmpi_allgatherv_ +pmpi_allgatherv__ +pmpi_alloc_mem +pmpi_alloc_mem_ +pmpi_alloc_mem__ +pmpi_allreduce +pmpi_allreduce_ +pmpi_allreduce__ +pmpi_alltoall +pmpi_alltoall_ +pmpi_alltoall__ +pmpi_alltoallv +pmpi_alltoallv_ +pmpi_alltoallv__ +pmpi_alltoallw +pmpi_alltoallw_ +pmpi_alltoallw__ +pmpi_attr_delete +pmpi_attr_delete_ +pmpi_attr_delete__ +pmpi_attr_get +pmpi_attr_get_ +pmpi_attr_get__ +pmpi_attr_put +pmpi_attr_put_ +pmpi_attr_put__ +pmpi_barrier +pmpi_barrier_ +pmpi_barrier__ +pmpi_bcast +pmpi_bcast_ +pmpi_bcast__ +pmpi_bsend +pmpi_bsend_ +pmpi_bsend__ +pmpi_bsend_init +pmpi_bsend_init_ +pmpi_bsend_init__ +pmpi_buffer_attach +pmpi_buffer_attach_ +pmpi_buffer_attach__ +pmpi_buffer_detach +pmpi_buffer_detach_ +pmpi_buffer_detach__ +pmpi_cancel +pmpi_cancel_ +pmpi_cancel__ +pmpi_cart_coords +pmpi_cart_coords_ +pmpi_cart_coords__ +pmpi_cart_create +pmpi_cart_create_ +pmpi_cart_create__ +pmpi_cart_get +pmpi_cart_get_ +pmpi_cart_get__ +pmpi_cart_map +pmpi_cart_map_ +pmpi_cart_map__ +pmpi_cart_rank +pmpi_cart_rank_ +pmpi_cart_rank__ +pmpi_cart_shift +pmpi_cart_shift_ +pmpi_cart_shift__ +pmpi_cart_sub +pmpi_cart_sub_ +pmpi_cart_sub__ +pmpi_cartdim_get +pmpi_cartdim_get_ +pmpi_cartdim_get__ +pmpi_close_port +pmpi_close_port_ +pmpi_close_port__ +pmpi_comm_accept +pmpi_comm_accept_ +pmpi_comm_accept__ +pmpi_comm_call_errhandler +pmpi_comm_call_errhandler_ +pmpi_comm_call_errhandler__ +pmpi_comm_compare +pmpi_comm_compare_ +pmpi_comm_compare__ +pmpi_comm_connect +pmpi_comm_connect_ +pmpi_comm_connect__ +pmpi_comm_create +pmpi_comm_create_ +pmpi_comm_create__ +pmpi_comm_create_errhandler +pmpi_comm_create_errhandler_ +pmpi_comm_create_errhandler__ +pmpi_comm_create_keyval +pmpi_comm_create_keyval_ +pmpi_comm_create_keyval__ +pmpi_comm_delete_attr +pmpi_comm_delete_attr_ +pmpi_comm_delete_attr__ +pmpi_comm_disconnect +pmpi_comm_disconnect_ +pmpi_comm_disconnect__ +pmpi_comm_dup +pmpi_comm_dup_ +pmpi_comm_dup__ +pmpi_comm_dup_fn +pmpi_comm_dup_fn_ +pmpi_comm_dup_fn__ +pmpi_comm_free +pmpi_comm_free_ +pmpi_comm_free__ +pmpi_comm_free_keyval +pmpi_comm_free_keyval_ +pmpi_comm_free_keyval__ +pmpi_comm_get_attr +pmpi_comm_get_attr_ +pmpi_comm_get_attr__ +pmpi_comm_get_errhandler +pmpi_comm_get_errhandler_ +pmpi_comm_get_errhandler__ +pmpi_comm_get_name +pmpi_comm_get_name_ +pmpi_comm_get_name__ +pmpi_comm_get_parent +pmpi_comm_get_parent_ +pmpi_comm_get_parent__ +pmpi_comm_group +pmpi_comm_group_ +pmpi_comm_group__ +pmpi_comm_join +pmpi_comm_join_ +pmpi_comm_join__ +pmpi_comm_null_copy_fn +pmpi_comm_null_copy_fn_ +pmpi_comm_null_copy_fn__ +pmpi_comm_null_delete_fn +pmpi_comm_null_delete_fn_ +pmpi_comm_null_delete_fn__ +pmpi_comm_rank +pmpi_comm_rank_ +pmpi_comm_rank__ +pmpi_comm_remote_group +pmpi_comm_remote_group_ +pmpi_comm_remote_group__ +pmpi_comm_remote_size +pmpi_comm_remote_size_ +pmpi_comm_remote_size__ +pmpi_comm_set_attr +pmpi_comm_set_attr_ +pmpi_comm_set_attr__ +pmpi_comm_set_errhandler +pmpi_comm_set_errhandler_ +pmpi_comm_set_errhandler__ +pmpi_comm_set_name +pmpi_comm_set_name_ +pmpi_comm_set_name__ +pmpi_comm_size +pmpi_comm_size_ +pmpi_comm_size__ +pmpi_comm_spawn +pmpi_comm_spawn_ +pmpi_comm_spawn__ +pmpi_comm_spawn_multiple +pmpi_comm_spawn_multiple_ +pmpi_comm_spawn_multiple__ +pmpi_comm_split +pmpi_comm_split_ +pmpi_comm_split__ +pmpi_comm_split_type +pmpi_comm_split_type_ +pmpi_comm_split_type__ +pmpi_comm_test_inter +pmpi_comm_test_inter_ +pmpi_comm_test_inter__ +pmpi_compare_and_swap +pmpi_compare_and_swap_ +pmpi_compare_and_swap__ +pmpi_conversion_fn_null +pmpi_conversion_fn_null_ +pmpi_conversion_fn_null__ +pmpi_dims_create +pmpi_dims_create_ +pmpi_dims_create__ +pmpi_dist_graph_create +pmpi_dist_graph_create_ +pmpi_dist_graph_create__ +pmpi_dist_graph_create_adjacent +pmpi_dist_graph_create_adjacent_ +pmpi_dist_graph_create_adjacent__ +pmpi_dist_graph_neighbors +pmpi_dist_graph_neighbors_ +pmpi_dist_graph_neighbors__ +pmpi_dist_graph_neighbors_count +pmpi_dist_graph_neighbors_count_ +pmpi_dist_graph_neighbors_count__ +pmpi_dup_fn +pmpi_dup_fn_ +pmpi_dup_fn__ +pmpi_errhandler_create +pmpi_errhandler_create_ +pmpi_errhandler_create__ +pmpi_errhandler_free +pmpi_errhandler_free_ +pmpi_errhandler_free__ +pmpi_errhandler_get +pmpi_errhandler_get_ +pmpi_errhandler_get__ +pmpi_errhandler_set +pmpi_errhandler_set_ +pmpi_errhandler_set__ +pmpi_error_class +pmpi_error_class_ +pmpi_error_class__ +pmpi_error_string +pmpi_error_string_ +pmpi_error_string__ +pmpi_exscan +pmpi_exscan_ +pmpi_exscan__ +pmpi_fetch_and_op +pmpi_fetch_and_op_ +pmpi_fetch_and_op__ +pmpi_file_call_errhandler +pmpi_file_call_errhandler_ +pmpi_file_call_errhandler__ +pmpi_file_close +pmpi_file_close_ +pmpi_file_close__ +pmpi_file_create_errhandler +pmpi_file_create_errhandler_ +pmpi_file_create_errhandler__ +pmpi_file_delete +pmpi_file_delete_ +pmpi_file_delete__ +pmpi_file_get_amode +pmpi_file_get_amode_ +pmpi_file_get_amode__ +pmpi_file_get_atomicity +pmpi_file_get_atomicity_ +pmpi_file_get_atomicity__ +pmpi_file_get_byte_offset +pmpi_file_get_byte_offset_ +pmpi_file_get_byte_offset__ +pmpi_file_get_errhandler +pmpi_file_get_errhandler_ +pmpi_file_get_errhandler__ +pmpi_file_get_group +pmpi_file_get_group_ +pmpi_file_get_group__ +pmpi_file_get_info +pmpi_file_get_info_ +pmpi_file_get_info__ +pmpi_file_get_position +pmpi_file_get_position_ +pmpi_file_get_position__ +pmpi_file_get_position_shared +pmpi_file_get_position_shared_ +pmpi_file_get_position_shared__ +pmpi_file_get_size +pmpi_file_get_size_ +pmpi_file_get_size__ +pmpi_file_get_type_extent +pmpi_file_get_type_extent_ +pmpi_file_get_type_extent__ +pmpi_file_get_view +pmpi_file_get_view_ +pmpi_file_get_view__ +pmpi_file_iread +pmpi_file_iread_ +pmpi_file_iread__ +pmpi_file_iread_at +pmpi_file_iread_at_ +pmpi_file_iread_at__ +pmpi_file_iread_shared +pmpi_file_iread_shared_ +pmpi_file_iread_shared__ +pmpi_file_iwrite +pmpi_file_iwrite_ +pmpi_file_iwrite__ +pmpi_file_iwrite_at +pmpi_file_iwrite_at_ +pmpi_file_iwrite_at__ +pmpi_file_iwrite_shared +pmpi_file_iwrite_shared_ +pmpi_file_iwrite_shared__ +pmpi_file_open +pmpi_file_open_ +pmpi_file_open__ +pmpi_file_preallocate +pmpi_file_preallocate_ +pmpi_file_preallocate__ +pmpi_file_read +pmpi_file_read_ +pmpi_file_read__ +pmpi_file_read_all +pmpi_file_read_all_ +pmpi_file_read_all__ +pmpi_file_read_all_begin +pmpi_file_read_all_begin_ +pmpi_file_read_all_begin__ +pmpi_file_read_all_end +pmpi_file_read_all_end_ +pmpi_file_read_all_end__ +pmpi_file_read_at +pmpi_file_read_at_ +pmpi_file_read_at__ +pmpi_file_read_at_all +pmpi_file_read_at_all_ +pmpi_file_read_at_all__ +pmpi_file_read_at_all_begin +pmpi_file_read_at_all_begin_ +pmpi_file_read_at_all_begin__ +pmpi_file_read_at_all_end +pmpi_file_read_at_all_end_ +pmpi_file_read_at_all_end__ +pmpi_file_read_ordered +pmpi_file_read_ordered_ +pmpi_file_read_ordered__ +pmpi_file_read_ordered_begin +pmpi_file_read_ordered_begin_ +pmpi_file_read_ordered_begin__ +pmpi_file_read_ordered_end +pmpi_file_read_ordered_end_ +pmpi_file_read_ordered_end__ +pmpi_file_read_shared +pmpi_file_read_shared_ +pmpi_file_read_shared__ +pmpi_file_seek +pmpi_file_seek_ +pmpi_file_seek__ +pmpi_file_seek_shared +pmpi_file_seek_shared_ +pmpi_file_seek_shared__ +pmpi_file_set_atomicity +pmpi_file_set_atomicity_ +pmpi_file_set_atomicity__ +pmpi_file_set_errhandler +pmpi_file_set_errhandler_ +pmpi_file_set_errhandler__ +pmpi_file_set_info +pmpi_file_set_info_ +pmpi_file_set_info__ +pmpi_file_set_size +pmpi_file_set_size_ +pmpi_file_set_size__ +pmpi_file_set_view +pmpi_file_set_view_ +pmpi_file_set_view__ +pmpi_file_sync +pmpi_file_sync_ +pmpi_file_sync__ +pmpi_file_write +pmpi_file_write_ +pmpi_file_write__ +pmpi_file_write_all +pmpi_file_write_all_ +pmpi_file_write_all__ +pmpi_file_write_all_begin +pmpi_file_write_all_begin_ +pmpi_file_write_all_begin__ +pmpi_file_write_all_end +pmpi_file_write_all_end_ +pmpi_file_write_all_end__ +pmpi_file_write_at +pmpi_file_write_at_ +pmpi_file_write_at__ +pmpi_file_write_at_all +pmpi_file_write_at_all_ +pmpi_file_write_at_all__ +pmpi_file_write_at_all_begin +pmpi_file_write_at_all_begin_ +pmpi_file_write_at_all_begin__ +pmpi_file_write_at_all_end +pmpi_file_write_at_all_end_ +pmpi_file_write_at_all_end__ +pmpi_file_write_ordered +pmpi_file_write_ordered_ +pmpi_file_write_ordered__ +pmpi_file_write_ordered_begin +pmpi_file_write_ordered_begin_ +pmpi_file_write_ordered_begin__ +pmpi_file_write_ordered_end +pmpi_file_write_ordered_end_ +pmpi_file_write_ordered_end__ +pmpi_file_write_shared +pmpi_file_write_shared_ +pmpi_file_write_shared__ +pmpi_finalize +pmpi_finalize_ +pmpi_finalize__ +pmpi_finalized +pmpi_finalized_ +pmpi_finalized__ +pmpi_free_mem +pmpi_free_mem_ +pmpi_free_mem__ +pmpi_gather +pmpi_gather_ +pmpi_gather__ +pmpi_gatherv +pmpi_gatherv_ +pmpi_gatherv__ +pmpi_get +pmpi_get_ +pmpi_get__ +pmpi_get_accumulate +pmpi_get_accumulate_ +pmpi_get_accumulate__ +pmpi_get_address +pmpi_get_address_ +pmpi_get_address__ +pmpi_get_count +pmpi_get_count_ +pmpi_get_count__ +pmpi_get_elements +pmpi_get_elements_ +pmpi_get_elements__ +pmpi_get_elements_x +pmpi_get_elements_x_ +pmpi_get_elements_x__ +pmpi_get_library_version +pmpi_get_library_version_ +pmpi_get_library_version__ +pmpi_get_processor_name +pmpi_get_processor_name_ +pmpi_get_processor_name__ +pmpi_get_version +pmpi_get_version_ +pmpi_get_version__ +pmpi_graph_create +pmpi_graph_create_ +pmpi_graph_create__ +pmpi_graph_get +pmpi_graph_get_ +pmpi_graph_get__ +pmpi_graph_map +pmpi_graph_map_ +pmpi_graph_map__ +pmpi_graph_neighbors +pmpi_graph_neighbors_ +pmpi_graph_neighbors__ +pmpi_graph_neighbors_count +pmpi_graph_neighbors_count_ +pmpi_graph_neighbors_count__ +pmpi_graphdims_get +pmpi_graphdims_get_ +pmpi_graphdims_get__ +pmpi_grequest_complete +pmpi_grequest_complete_ +pmpi_grequest_complete__ +pmpi_grequest_start +pmpi_grequest_start_ +pmpi_grequest_start__ +pmpi_group_compare +pmpi_group_compare_ +pmpi_group_compare__ +pmpi_group_difference +pmpi_group_difference_ +pmpi_group_difference__ +pmpi_group_excl +pmpi_group_excl_ +pmpi_group_excl__ +pmpi_group_free +pmpi_group_free_ +pmpi_group_free__ +pmpi_group_incl +pmpi_group_incl_ +pmpi_group_incl__ +pmpi_group_intersection +pmpi_group_intersection_ +pmpi_group_intersection__ +pmpi_group_range_excl +pmpi_group_range_excl_ +pmpi_group_range_excl__ +pmpi_group_range_incl +pmpi_group_range_incl_ +pmpi_group_range_incl__ +pmpi_group_rank +pmpi_group_rank_ +pmpi_group_rank__ +pmpi_group_size +pmpi_group_size_ +pmpi_group_size__ +pmpi_group_translate_ranks +pmpi_group_translate_ranks_ +pmpi_group_translate_ranks__ +pmpi_group_union +pmpi_group_union_ +pmpi_group_union__ +pmpi_iallgather +pmpi_iallgather_ +pmpi_iallgather__ +pmpi_iallgatherv +pmpi_iallgatherv_ +pmpi_iallgatherv__ +pmpi_iallreduce +pmpi_iallreduce_ +pmpi_iallreduce__ +pmpi_ialltoall +pmpi_ialltoall_ +pmpi_ialltoall__ +pmpi_ialltoallv +pmpi_ialltoallv_ +pmpi_ialltoallv__ +pmpi_ialltoallw +pmpi_ialltoallw_ +pmpi_ialltoallw__ +pmpi_ibarrier +pmpi_ibarrier_ +pmpi_ibarrier__ +pmpi_ibcast +pmpi_ibcast_ +pmpi_ibcast__ +pmpi_ibsend +pmpi_ibsend_ +pmpi_ibsend__ +pmpi_iexscan +pmpi_iexscan_ +pmpi_iexscan__ +pmpi_igather +pmpi_igather_ +pmpi_igather__ +pmpi_igatherv +pmpi_igatherv_ +pmpi_igatherv__ +pmpi_improbe +pmpi_improbe_ +pmpi_improbe__ +pmpi_imrecv +pmpi_imrecv_ +pmpi_imrecv__ +pmpi_info_create +pmpi_info_create_ +pmpi_info_create__ +pmpi_info_delete +pmpi_info_delete_ +pmpi_info_delete__ +pmpi_info_dup +pmpi_info_dup_ +pmpi_info_dup__ +pmpi_info_free +pmpi_info_free_ +pmpi_info_free__ +pmpi_info_get +pmpi_info_get_ +pmpi_info_get__ +pmpi_info_get_nkeys +pmpi_info_get_nkeys_ +pmpi_info_get_nkeys__ +pmpi_info_get_nthkey +pmpi_info_get_nthkey_ +pmpi_info_get_nthkey__ +pmpi_info_get_valuelen +pmpi_info_get_valuelen_ +pmpi_info_get_valuelen__ +pmpi_info_set +pmpi_info_set_ +pmpi_info_set__ +pmpi_init +pmpi_init_ +pmpi_init__ +pmpi_init_thread +pmpi_init_thread_ +pmpi_init_thread__ +pmpi_initialized +pmpi_initialized_ +pmpi_initialized__ +pmpi_intercomm_create +pmpi_intercomm_create_ +pmpi_intercomm_create__ +pmpi_intercomm_merge +pmpi_intercomm_merge_ +pmpi_intercomm_merge__ +pmpi_iprobe +pmpi_iprobe_ +pmpi_iprobe__ +pmpi_irecv +pmpi_irecv_ +pmpi_irecv__ +pmpi_ireduce +pmpi_ireduce_ +pmpi_ireduce__ +pmpi_ireduce_scatter +pmpi_ireduce_scatter_ +pmpi_ireduce_scatter__ +pmpi_ireduce_scatter_block +pmpi_ireduce_scatter_block_ +pmpi_ireduce_scatter_block__ +pmpi_irsend +pmpi_irsend_ +pmpi_irsend__ +pmpi_is_thread_main +pmpi_is_thread_main_ +pmpi_is_thread_main__ +pmpi_iscan +pmpi_iscan_ +pmpi_iscan__ +pmpi_iscatter +pmpi_iscatter_ +pmpi_iscatter__ +pmpi_iscatterv +pmpi_iscatterv_ +pmpi_iscatterv__ +pmpi_isend +pmpi_isend_ +pmpi_isend__ +pmpi_issend +pmpi_issend_ +pmpi_issend__ +pmpi_keyval_create +pmpi_keyval_create_ +pmpi_keyval_create__ +pmpi_keyval_free +pmpi_keyval_free_ +pmpi_keyval_free__ +pmpi_lookup_name +pmpi_lookup_name_ +pmpi_lookup_name__ +pmpi_mprobe +pmpi_mprobe_ +pmpi_mprobe__ +pmpi_mrecv +pmpi_mrecv_ +pmpi_mrecv__ +pmpi_null_copy_fn +pmpi_null_copy_fn_ +pmpi_null_copy_fn__ +pmpi_null_delete_fn +pmpi_null_delete_fn_ +pmpi_null_delete_fn__ +pmpi_op_commutative +pmpi_op_commutative_ +pmpi_op_commutative__ +pmpi_op_create +pmpi_op_create_ +pmpi_op_create__ +pmpi_op_free +pmpi_op_free_ +pmpi_op_free__ +pmpi_open_port +pmpi_open_port_ +pmpi_open_port__ +pmpi_pack +pmpi_pack_ +pmpi_pack__ +pmpi_pack_external +pmpi_pack_external_ +pmpi_pack_external__ +pmpi_pack_external_size +pmpi_pack_external_size_ +pmpi_pack_external_size__ +pmpi_pack_size +pmpi_pack_size_ +pmpi_pack_size__ +pmpi_pcontrol +pmpi_pcontrol_ +pmpi_pcontrol__ +pmpi_probe +pmpi_probe_ +pmpi_probe__ +pmpi_publish_name +pmpi_publish_name_ +pmpi_publish_name__ +pmpi_put +pmpi_put_ +pmpi_put__ +pmpi_query_thread +pmpi_query_thread_ +pmpi_query_thread__ +pmpi_raccumulate +pmpi_raccumulate_ +pmpi_raccumulate__ +pmpi_recv +pmpi_recv_ +pmpi_recv__ +pmpi_recv_init +pmpi_recv_init_ +pmpi_recv_init__ +pmpi_reduce +pmpi_reduce_ +pmpi_reduce__ +pmpi_reduce_local +pmpi_reduce_local_ +pmpi_reduce_local__ +pmpi_reduce_scatter +pmpi_reduce_scatter_ +pmpi_reduce_scatter__ +pmpi_reduce_scatter_block +pmpi_reduce_scatter_block_ +pmpi_reduce_scatter_block__ +pmpi_register_datarep +pmpi_register_datarep_ +pmpi_register_datarep__ +pmpi_request_free +pmpi_request_free_ +pmpi_request_free__ +pmpi_request_get_status +pmpi_request_get_status_ +pmpi_request_get_status__ +pmpi_rget +pmpi_rget_ +pmpi_rget__ +pmpi_rget_accumulate +pmpi_rget_accumulate_ +pmpi_rget_accumulate__ +pmpi_rput +pmpi_rput_ +pmpi_rput__ +pmpi_rsend +pmpi_rsend_ +pmpi_rsend__ +pmpi_rsend_init +pmpi_rsend_init_ +pmpi_rsend_init__ +pmpi_scan +pmpi_scan_ +pmpi_scan__ +pmpi_scatter +pmpi_scatter_ +pmpi_scatter__ +pmpi_scatterv +pmpi_scatterv_ +pmpi_scatterv__ +pmpi_send +pmpi_send_ +pmpi_send__ +pmpi_send_init +pmpi_send_init_ +pmpi_send_init__ +pmpi_sendrecv +pmpi_sendrecv_ +pmpi_sendrecv__ +pmpi_sendrecv_replace +pmpi_sendrecv_replace_ +pmpi_sendrecv_replace__ +pmpi_ssend +pmpi_ssend_ +pmpi_ssend__ +pmpi_ssend_init +pmpi_ssend_init_ +pmpi_ssend_init__ +pmpi_start +pmpi_start_ +pmpi_start__ +pmpi_startall +pmpi_startall_ +pmpi_startall__ +pmpi_status_c2f +pmpi_status_c2f_ +pmpi_status_c2f__ +pmpi_status_f2c +pmpi_status_f2c_ +pmpi_status_f2c__ +pmpi_status_set_cancelled +pmpi_status_set_cancelled_ +pmpi_status_set_cancelled__ +pmpi_status_set_elements +pmpi_status_set_elements_ +pmpi_status_set_elements__ +pmpi_status_set_elements_x +pmpi_status_set_elements_x_ +pmpi_status_set_elements_x__ +pmpi_test +pmpi_test_ +pmpi_test__ +pmpi_test_cancelled +pmpi_test_cancelled_ +pmpi_test_cancelled__ +pmpi_testall +pmpi_testall_ +pmpi_testall__ +pmpi_testany +pmpi_testany_ +pmpi_testany__ +pmpi_testsome +pmpi_testsome_ +pmpi_testsome__ +pmpi_topo_test +pmpi_topo_test_ +pmpi_topo_test__ +pmpi_type_commit +pmpi_type_commit_ +pmpi_type_commit__ +pmpi_type_contiguous +pmpi_type_contiguous_ +pmpi_type_contiguous__ +pmpi_type_create_darray +pmpi_type_create_darray_ +pmpi_type_create_darray__ +pmpi_type_create_f90_complex_ +pmpi_type_create_f90_complex__ +pmpi_type_create_f90_integer_ +pmpi_type_create_f90_integer__ +pmpi_type_create_f90_real_ +pmpi_type_create_f90_real__ +pmpi_type_create_hindexed +pmpi_type_create_hindexed_ +pmpi_type_create_hindexed__ +pmpi_type_create_hindexed_block +pmpi_type_create_hindexed_block_ +pmpi_type_create_hindexed_block__ +pmpi_type_create_hvector +pmpi_type_create_hvector_ +pmpi_type_create_hvector__ +pmpi_type_create_indexed_block +pmpi_type_create_indexed_block_ +pmpi_type_create_indexed_block__ +pmpi_type_create_keyval +pmpi_type_create_keyval_ +pmpi_type_create_keyval__ +pmpi_type_create_resized +pmpi_type_create_resized_ +pmpi_type_create_resized__ +pmpi_type_create_struct +pmpi_type_create_struct_ +pmpi_type_create_struct__ +pmpi_type_create_subarray +pmpi_type_create_subarray_ +pmpi_type_create_subarray__ +pmpi_type_delete_attr +pmpi_type_delete_attr_ +pmpi_type_delete_attr__ +pmpi_type_dup +pmpi_type_dup_ +pmpi_type_dup__ +pmpi_type_dup_fn +pmpi_type_dup_fn_ +pmpi_type_dup_fn__ +pmpi_type_extent +pmpi_type_extent_ +pmpi_type_extent__ +pmpi_type_free +pmpi_type_free_ +pmpi_type_free__ +pmpi_type_free_keyval +pmpi_type_free_keyval_ +pmpi_type_free_keyval__ +pmpi_type_get_attr +pmpi_type_get_attr_ +pmpi_type_get_attr__ +pmpi_type_get_contents +pmpi_type_get_contents_ +pmpi_type_get_contents__ +pmpi_type_get_envelope +pmpi_type_get_envelope_ +pmpi_type_get_envelope__ +pmpi_type_get_extent +pmpi_type_get_extent_ +pmpi_type_get_extent__ +pmpi_type_get_extent_x +pmpi_type_get_extent_x_ +pmpi_type_get_extent_x__ +pmpi_type_get_name +pmpi_type_get_name_ +pmpi_type_get_name__ +pmpi_type_get_true_extent +pmpi_type_get_true_extent_ +pmpi_type_get_true_extent__ +pmpi_type_get_true_extent_x +pmpi_type_get_true_extent_x_ +pmpi_type_get_true_extent_x__ +pmpi_type_hindexed +pmpi_type_hindexed_ +pmpi_type_hindexed__ +pmpi_type_hvector +pmpi_type_hvector_ +pmpi_type_hvector__ +pmpi_type_indexed +pmpi_type_indexed_ +pmpi_type_indexed__ +pmpi_type_lb +pmpi_type_lb_ +pmpi_type_lb__ +pmpi_type_match_size +pmpi_type_match_size_ +pmpi_type_match_size__ +pmpi_type_null_copy_fn +pmpi_type_null_copy_fn_ +pmpi_type_null_copy_fn__ +pmpi_type_null_delete_fn +pmpi_type_null_delete_fn_ +pmpi_type_null_delete_fn__ +pmpi_type_set_attr +pmpi_type_set_attr_ +pmpi_type_set_attr__ +pmpi_type_set_name +pmpi_type_set_name_ +pmpi_type_set_name__ +pmpi_type_size +pmpi_type_size_ +pmpi_type_size__ +pmpi_type_size_x +pmpi_type_size_x_ +pmpi_type_size_x__ +pmpi_type_struct +pmpi_type_struct_ +pmpi_type_struct__ +pmpi_type_ub +pmpi_type_ub_ +pmpi_type_ub__ +pmpi_type_vector +pmpi_type_vector_ +pmpi_type_vector__ +pmpi_unpack +pmpi_unpack_ +pmpi_unpack__ +pmpi_unpack_external +pmpi_unpack_external_ +pmpi_unpack_external__ +pmpi_unpublish_name +pmpi_unpublish_name_ +pmpi_unpublish_name__ +pmpi_wait +pmpi_wait_ +pmpi_wait__ +pmpi_waitall +pmpi_waitall_ +pmpi_waitall__ +pmpi_waitany +pmpi_waitany_ +pmpi_waitany__ +pmpi_waitsome +pmpi_waitsome_ +pmpi_waitsome__ +pmpi_win_allocate +pmpi_win_allocate_ +pmpi_win_allocate__ +pmpi_win_allocate_shared +pmpi_win_allocate_shared_ +pmpi_win_allocate_shared__ +pmpi_win_attach +pmpi_win_attach_ +pmpi_win_attach__ +pmpi_win_call_errhandler +pmpi_win_call_errhandler_ +pmpi_win_call_errhandler__ +pmpi_win_complete +pmpi_win_complete_ +pmpi_win_complete__ +pmpi_win_create +pmpi_win_create_ +pmpi_win_create__ +pmpi_win_create_dynamic +pmpi_win_create_dynamic_ +pmpi_win_create_dynamic__ +pmpi_win_create_errhandler +pmpi_win_create_errhandler_ +pmpi_win_create_errhandler__ +pmpi_win_create_keyval +pmpi_win_create_keyval_ +pmpi_win_create_keyval__ +pmpi_win_delete_attr +pmpi_win_delete_attr_ +pmpi_win_delete_attr__ +pmpi_win_detach +pmpi_win_detach_ +pmpi_win_detach__ +pmpi_win_dup_fn +pmpi_win_dup_fn_ +pmpi_win_dup_fn__ +pmpi_win_fence +pmpi_win_fence_ +pmpi_win_fence__ +pmpi_win_flush +pmpi_win_flush_ +pmpi_win_flush__ +pmpi_win_flush_all +pmpi_win_flush_all_ +pmpi_win_flush_all__ +pmpi_win_flush_local +pmpi_win_flush_local_ +pmpi_win_flush_local__ +pmpi_win_flush_local_all +pmpi_win_flush_local_all_ +pmpi_win_flush_local_all__ +pmpi_win_free +pmpi_win_free_ +pmpi_win_free__ +pmpi_win_free_keyval +pmpi_win_free_keyval_ +pmpi_win_free_keyval__ +pmpi_win_get_attr +pmpi_win_get_attr_ +pmpi_win_get_attr__ +pmpi_win_get_errhandler +pmpi_win_get_errhandler_ +pmpi_win_get_errhandler__ +pmpi_win_get_group +pmpi_win_get_group_ +pmpi_win_get_group__ +pmpi_win_get_name +pmpi_win_get_name_ +pmpi_win_get_name__ +pmpi_win_lock +pmpi_win_lock_ +pmpi_win_lock__ +pmpi_win_lock_all +pmpi_win_lock_all_ +pmpi_win_lock_all__ +pmpi_win_null_copy_fn +pmpi_win_null_copy_fn_ +pmpi_win_null_copy_fn__ +pmpi_win_null_delete_fn +pmpi_win_null_delete_fn_ +pmpi_win_null_delete_fn__ +pmpi_win_post +pmpi_win_post_ +pmpi_win_post__ +pmpi_win_set_attr +pmpi_win_set_attr_ +pmpi_win_set_attr__ +pmpi_win_set_errhandler +pmpi_win_set_errhandler_ +pmpi_win_set_errhandler__ +pmpi_win_set_name +pmpi_win_set_name_ +pmpi_win_set_name__ +pmpi_win_shared_query +pmpi_win_shared_query_ +pmpi_win_shared_query__ +pmpi_win_start +pmpi_win_start_ +pmpi_win_start__ +pmpi_win_sync +pmpi_win_sync_ +pmpi_win_sync__ +pmpi_win_test +pmpi_win_test_ +pmpi_win_test__ +pmpi_win_unlock +pmpi_win_unlock_ +pmpi_win_unlock__ +pmpi_win_unlock_all +pmpi_win_unlock_all_ +pmpi_win_unlock_all__ +pmpi_win_wait +pmpi_win_wait_ +pmpi_win_wait__ +pmpi_wtick +pmpi_wtick_ +pmpi_wtick__ +pmpi_wtime +pmpi_wtime_ +pmpi_wtime__ +pmsmpi_get_bsend_overhead +pmsmpi_get_bsend_overhead_ +pmsmpi_get_bsend_overhead__ +pmsmpi_get_version +pmsmpi_get_version_ +pmsmpi_get_version__ +recvq_posted DATA +recvq_unexpected DATA +MPI_Finalize@0=MPI_Finalize +MPI_Pcontrol@0=MPI_Pcontrol +MPI_REDUCE_SCATTER_block@0=MPI_REDUCE_SCATTER_block +MPI_Wtick@0=MPI_Wtick +MPI_Wtime@0=MPI_Wtime +MSMPI_Get_bsend_overhead@0=MSMPI_Get_bsend_overhead +MSMPI_Get_version@0=MSMPI_Get_version +PMPI_Finalize@0=PMPI_Finalize +PMPI_Pcontrol@0=PMPI_Pcontrol +PMPI_REDUCE_SCATTER_block@0=PMPI_REDUCE_SCATTER_block +PMPI_Wtick@0=PMPI_Wtick +PMPI_Wtime@0=PMPI_Wtime +PMSMPI_Get_bsend_overhead@0=PMSMPI_Get_bsend_overhead +PMSMPI_Get_version@0=PMSMPI_Get_version diff --git a/deps/msmpi-10.1.2/sdk/msmpi.def.x86_64 b/deps/msmpi-10.1.3/sdk/msmpi.def.x86_64 similarity index 94% rename from deps/msmpi-10.1.2/sdk/msmpi.def.x86_64 rename to deps/msmpi-10.1.3/sdk/msmpi.def.x86_64 index b53a38bcfc79dbf8cec2512fe41a6386b1872229..099f5ccc78222155afeca47fcb6e0078920fe9c6 100644 --- a/deps/msmpi-10.1.2/sdk/msmpi.def.x86_64 +++ b/deps/msmpi-10.1.3/sdk/msmpi.def.x86_64 @@ -1,3648 +1,3648 @@ -; -; Definition file of msmpi.dll -; Automatic generated by gendef -; written by Kai Tietz 2008 -; -LIBRARY "msmpi.dll" -EXPORTS -MPIR_Sendq_head DATA -MSMPI_Get_pm_interface -MSMPI_pm_query_interface -mqs_image_has_queues -mqs_process_has_queues -MPIFCMB5 DATA -MPIFCMB9 DATA -MPIPRIV1 DATA -MPIPRIV2 DATA -MPIPRIVC DATA -MPIR_All_communicators DATA -MPIR_Comm_errhandler_set_proxy -MPIR_Dup_fn -MPIR_Error -MPIR_File_errhandler_set_proxy -MPIR_Free -MPIR_Grequest_set_proxy -MPIR_Keyval_set_proxy -MPIR_Malloc -MPIR_Op_set_proxy -MPIR_Win_errhandler_set_proxy -MPIR_debug_gate DATA -MPIR_dll_name DATA -MPI_ABORT -MPI_ACCUMULATE -MPI_ADDRESS -MPI_ADD_ERROR_CLASS -MPI_ADD_ERROR_CODE -MPI_ADD_ERROR_STRING -MPI_AINT_ADD -MPI_AINT_DIFF -MPI_ALLGATHER -MPI_ALLGATHERV -MPI_ALLOC_MEM -MPI_ALLREDUCE -MPI_ALLTOALL -MPI_ALLTOALLV -MPI_ALLTOALLW -MPI_ATTR_DELETE -MPI_ATTR_GET -MPI_ATTR_PUT -MPI_Abort -MPI_Accumulate -MPI_Add_error_class -MPI_Add_error_code -MPI_Add_error_string -MPI_Address -MPI_Aint_add -MPI_Aint_diff -MPI_Allgather -MPI_Allgatherv -MPI_Alloc_mem -MPI_Allreduce -MPI_Alltoall -MPI_Alltoallv -MPI_Alltoallw -MPI_Attr_delete -MPI_Attr_get -MPI_Attr_put -MPI_BARRIER -MPI_BCAST -MPI_BSEND -MPI_BSEND_INIT -MPI_BUFFER_ATTACH -MPI_BUFFER_DETACH -MPI_Barrier -MPI_Bcast -MPI_Bsend -MPI_Bsend_init -MPI_Buffer_attach -MPI_Buffer_detach -MPI_CANCEL -MPI_CARTDIM_GET -MPI_CART_COORDS -MPI_CART_CREATE -MPI_CART_GET -MPI_CART_MAP -MPI_CART_RANK -MPI_CART_SHIFT -MPI_CART_SUB -MPI_CLOSE_PORT -MPI_COMM_ACCEPT -MPI_COMM_CALL_ERRHANDLER -MPI_COMM_COMPARE -MPI_COMM_CONNECT -MPI_COMM_CREATE -MPI_COMM_CREATE_ERRHANDLER -MPI_COMM_CREATE_KEYVAL -MPI_COMM_DELETE_ATTR -MPI_COMM_DISCONNECT -MPI_COMM_DUP -MPI_COMM_DUP_FN -MPI_COMM_FREE -MPI_COMM_FREE_KEYVAL -MPI_COMM_GET_ATTR -MPI_COMM_GET_ERRHANDLER -MPI_COMM_GET_NAME -MPI_COMM_GET_PARENT -MPI_COMM_GROUP -MPI_COMM_JOIN -MPI_COMM_NULL_COPY_FN -MPI_COMM_NULL_DELETE_FN -MPI_COMM_RANK -MPI_COMM_REMOTE_GROUP -MPI_COMM_REMOTE_SIZE -MPI_COMM_SET_ATTR -MPI_COMM_SET_ERRHANDLER -MPI_COMM_SET_NAME -MPI_COMM_SIZE -MPI_COMM_SPAWN -MPI_COMM_SPAWN_MULTIPLE -MPI_COMM_SPLIT -MPI_COMM_SPLIT_TYPE -MPI_COMM_TEST_INTER -MPI_COMPARE_AND_SWAP -MPI_CONVERSION_FN_NULL -MPI_Cancel -MPI_Cart_coords -MPI_Cart_create -MPI_Cart_get -MPI_Cart_map -MPI_Cart_rank -MPI_Cart_shift -MPI_Cart_sub -MPI_Cartdim_get -MPI_Close_port -MPI_Comm_accept -MPI_Comm_call_errhandler -MPI_Comm_compare -MPI_Comm_connect -MPI_Comm_create -MPI_Comm_create_errhandler -MPI_Comm_create_keyval -MPI_Comm_delete_attr -MPI_Comm_disconnect -MPI_Comm_dup -MPI_Comm_free -MPI_Comm_free_keyval -MPI_Comm_get_attr -MPI_Comm_get_errhandler -MPI_Comm_get_name -MPI_Comm_get_parent -MPI_Comm_group -MPI_Comm_join -MPI_Comm_rank -MPI_Comm_remote_group -MPI_Comm_remote_size -MPI_Comm_set_attr -MPI_Comm_set_errhandler -MPI_Comm_set_name -MPI_Comm_size -MPI_Comm_spawn -MPI_Comm_spawn_multiple -MPI_Comm_split -MPI_Comm_split_type -MPI_Comm_test_inter -MPI_Compare_and_swap -MPI_DIMS_CREATE -MPI_DIST_GRAPH_CREATE -MPI_DIST_GRAPH_CREATE_ADJACENT -MPI_DIST_GRAPH_NEIGHBORS -MPI_DIST_GRAPH_NEIGHBORS_COUNT -MPI_DUP_FN -MPI_Dims_create -MPI_Dist_graph_create -MPI_Dist_graph_create_adjacent -MPI_Dist_graph_neighbors -MPI_Dist_graph_neighbors_count -MPI_ERRHANDLER_CREATE -MPI_ERRHANDLER_FREE -MPI_ERRHANDLER_GET -MPI_ERRHANDLER_SET -MPI_ERROR_CLASS -MPI_ERROR_STRING -MPI_EXSCAN -MPI_Errhandler_create -MPI_Errhandler_free -MPI_Errhandler_get -MPI_Errhandler_set -MPI_Error_class -MPI_Error_string -MPI_Exscan -MPI_FETCH_AND_OP -MPI_FILE_CALL_ERRHANDLER -MPI_FILE_CLOSE -MPI_FILE_CREATE_ERRHANDLER -MPI_FILE_DELETE -MPI_FILE_GET_AMODE -MPI_FILE_GET_ATOMICITY -MPI_FILE_GET_BYTE_OFFSET -MPI_FILE_GET_ERRHANDLER -MPI_FILE_GET_GROUP -MPI_FILE_GET_INFO -MPI_FILE_GET_POSITION -MPI_FILE_GET_POSITION_SHARED -MPI_FILE_GET_SIZE -MPI_FILE_GET_TYPE_EXTENT -MPI_FILE_GET_VIEW -MPI_FILE_IREAD -MPI_FILE_IREAD_AT -MPI_FILE_IREAD_SHARED -MPI_FILE_IWRITE -MPI_FILE_IWRITE_AT -MPI_FILE_IWRITE_SHARED -MPI_FILE_OPEN -MPI_FILE_PREALLOCATE -MPI_FILE_READ -MPI_FILE_READ_ALL -MPI_FILE_READ_ALL_BEGIN -MPI_FILE_READ_ALL_END -MPI_FILE_READ_AT -MPI_FILE_READ_AT_ALL -MPI_FILE_READ_AT_ALL_BEGIN -MPI_FILE_READ_AT_ALL_END -MPI_FILE_READ_ORDERED -MPI_FILE_READ_ORDERED_BEGIN -MPI_FILE_READ_ORDERED_END -MPI_FILE_READ_SHARED -MPI_FILE_SEEK -MPI_FILE_SEEK_SHARED -MPI_FILE_SET_ATOMICITY -MPI_FILE_SET_ERRHANDLER -MPI_FILE_SET_INFO -MPI_FILE_SET_SIZE -MPI_FILE_SET_VIEW -MPI_FILE_SYNC -MPI_FILE_WRITE -MPI_FILE_WRITE_ALL -MPI_FILE_WRITE_ALL_BEGIN -MPI_FILE_WRITE_ALL_END -MPI_FILE_WRITE_AT -MPI_FILE_WRITE_AT_ALL -MPI_FILE_WRITE_AT_ALL_BEGIN -MPI_FILE_WRITE_AT_ALL_END -MPI_FILE_WRITE_ORDERED -MPI_FILE_WRITE_ORDERED_BEGIN -MPI_FILE_WRITE_ORDERED_END -MPI_FILE_WRITE_SHARED -MPI_FINALIZE -MPI_FINALIZED -MPI_FREE_MEM -MPI_F_STATUSES_IGNORE DATA -MPI_F_STATUS_IGNORE DATA -MPI_Fetch_and_op -MPI_File_c2f -MPI_File_call_errhandler -MPI_File_close -MPI_File_create_errhandler -MPI_File_delete -MPI_File_f2c -MPI_File_get_amode -MPI_File_get_atomicity -MPI_File_get_byte_offset -MPI_File_get_errhandler -MPI_File_get_group -MPI_File_get_info -MPI_File_get_position -MPI_File_get_position_shared -MPI_File_get_size -MPI_File_get_type_extent -MPI_File_get_view -MPI_File_iread -MPI_File_iread_at -MPI_File_iread_shared -MPI_File_iwrite -MPI_File_iwrite_at -MPI_File_iwrite_shared -MPI_File_open -MPI_File_preallocate -MPI_File_read -MPI_File_read_all -MPI_File_read_all_begin -MPI_File_read_all_end -MPI_File_read_at -MPI_File_read_at_all -MPI_File_read_at_all_begin -MPI_File_read_at_all_end -MPI_File_read_ordered -MPI_File_read_ordered_begin -MPI_File_read_ordered_end -MPI_File_read_shared -MPI_File_seek -MPI_File_seek_shared -MPI_File_set_atomicity -MPI_File_set_errhandler -MPI_File_set_info -MPI_File_set_size -MPI_File_set_view -MPI_File_sync -MPI_File_write -MPI_File_write_all -MPI_File_write_all_begin -MPI_File_write_all_end -MPI_File_write_at -MPI_File_write_at_all -MPI_File_write_at_all_begin -MPI_File_write_at_all_end -MPI_File_write_ordered -MPI_File_write_ordered_begin -MPI_File_write_ordered_end -MPI_File_write_shared -MPI_Finalize -MPI_Finalized -MPI_Free_mem -MPI_GATHER -MPI_GATHERV -MPI_GET -MPI_GET_ACCUMULATE -MPI_GET_ADDRESS -MPI_GET_COUNT -MPI_GET_ELEMENTS -MPI_GET_ELEMENTS_X -MPI_GET_LIBRARY_VERSION -MPI_GET_PROCESSOR_NAME -MPI_GET_VERSION -MPI_GRAPHDIMS_GET -MPI_GRAPH_CREATE -MPI_GRAPH_GET -MPI_GRAPH_MAP -MPI_GRAPH_NEIGHBORS -MPI_GRAPH_NEIGHBORS_COUNT -MPI_GREQUEST_COMPLETE -MPI_GREQUEST_START -MPI_GROUP_COMPARE -MPI_GROUP_DIFFERENCE -MPI_GROUP_EXCL -MPI_GROUP_FREE -MPI_GROUP_INCL -MPI_GROUP_INTERSECTION -MPI_GROUP_RANGE_EXCL -MPI_GROUP_RANGE_INCL -MPI_GROUP_RANK -MPI_GROUP_SIZE -MPI_GROUP_TRANSLATE_RANKS -MPI_GROUP_UNION -MPI_Gather -MPI_Gatherv -MPI_Get -MPI_Get_accumulate -MPI_Get_address -MPI_Get_count -MPI_Get_elements -MPI_Get_elements_x -MPI_Get_library_version -MPI_Get_processor_name -MPI_Get_version -MPI_Graph_create -MPI_Graph_get -MPI_Graph_map -MPI_Graph_neighbors -MPI_Graph_neighbors_count -MPI_Graphdims_get -MPI_Grequest_complete -MPI_Grequest_start -MPI_Group_compare -MPI_Group_difference -MPI_Group_excl -MPI_Group_free -MPI_Group_incl -MPI_Group_intersection -MPI_Group_range_excl -MPI_Group_range_incl -MPI_Group_rank -MPI_Group_size -MPI_Group_translate_ranks -MPI_Group_union -MPI_IALLGATHER -MPI_IALLGATHERV -MPI_IALLREDUCE -MPI_IALLTOALL -MPI_IALLTOALLV -MPI_IALLTOALLW -MPI_IBARRIER -MPI_IBCAST -MPI_IBSEND -MPI_IEXSCAN -MPI_IGATHER -MPI_IGATHERV -MPI_IMPROBE -MPI_IMRECV -MPI_INFO_CREATE -MPI_INFO_DELETE -MPI_INFO_DUP -MPI_INFO_FREE -MPI_INFO_GET -MPI_INFO_GET_NKEYS -MPI_INFO_GET_NTHKEY -MPI_INFO_GET_VALUELEN -MPI_INFO_SET -MPI_INIT -MPI_INITIALIZED -MPI_INIT_THREAD -MPI_INTERCOMM_CREATE -MPI_INTERCOMM_MERGE -MPI_IPROBE -MPI_IRECV -MPI_IREDUCE -MPI_IREDUCE_SCATTER -MPI_IREDUCE_SCATTER_BLOCK -MPI_IRSEND -MPI_ISCAN -MPI_ISCATTER -MPI_ISCATTERV -MPI_ISEND -MPI_ISSEND -MPI_IS_THREAD_MAIN -MPI_Iallgather -MPI_Iallgatherv -MPI_Iallreduce -MPI_Ialltoall -MPI_Ialltoallv -MPI_Ialltoallw -MPI_Ibarrier -MPI_Ibcast -MPI_Ibsend -MPI_Iexscan -MPI_Igather -MPI_Igatherv -MPI_Improbe -MPI_Imrecv -MPI_Info_create -MPI_Info_delete -MPI_Info_dup -MPI_Info_free -MPI_Info_get -MPI_Info_get_nkeys -MPI_Info_get_nthkey -MPI_Info_get_valuelen -MPI_Info_set -MPI_Init -MPI_Init_thread -MPI_Initialized -MPI_Intercomm_create -MPI_Intercomm_merge -MPI_Iprobe -MPI_Irecv -MPI_Ireduce -MPI_Ireduce_scatter -MPI_Ireduce_scatter_block -MPI_Irsend -MPI_Is_thread_main -MPI_Iscan -MPI_Iscatter -MPI_Iscatterv -MPI_Isend -MPI_Issend -MPI_KEYVAL_CREATE -MPI_KEYVAL_FREE -MPI_Keyval_create -MPI_Keyval_free -MPI_LOOKUP_NAME -MPI_Lookup_name -MPI_MPROBE -MPI_MRECV -MPI_Mprobe -MPI_Mrecv -MPI_NULL_COPY_FN -MPI_NULL_DELETE_FN -MPI_OPEN_PORT -MPI_OP_COMMUTATIVE -MPI_OP_CREATE -MPI_OP_FREE -MPI_Op_commutative -MPI_Op_create -MPI_Op_free -MPI_Open_port -MPI_PACK -MPI_PACK_EXTERNAL -MPI_PACK_EXTERNAL_SIZE -MPI_PACK_SIZE -MPI_PCONTROL -MPI_PROBE -MPI_PUBLISH_NAME -MPI_PUT -MPI_Pack -MPI_Pack_external -MPI_Pack_external_size -MPI_Pack_size -MPI_Pcontrol -MPI_Probe -MPI_Publish_name -MPI_Put -MPI_QUERY_THREAD -MPI_Query_thread -MPI_RACCUMULATE -MPI_RECV -MPI_RECV_INIT -MPI_REDUCE -MPI_REDUCE_LOCAL -MPI_REDUCE_SCATTER -MPI_REDUCE_SCATTER_block -MPI_REGISTER_DATAREP -MPI_REQUEST_FREE -MPI_REQUEST_GET_STATUS -MPI_RGET -MPI_RGET_ACCUMULATE -MPI_RPUT -MPI_RSEND -MPI_RSEND_INIT -MPI_Raccumulate -MPI_Recv -MPI_Recv_init -MPI_Reduce -MPI_Reduce_local -MPI_Reduce_scatter -MPI_Reduce_scatter_block -MPI_Register_datarep -MPI_Request_free -MPI_Request_get_status -MPI_Rget -MPI_Rget_accumulate -MPI_Rput -MPI_Rsend -MPI_Rsend_init -MPI_SCAN -MPI_SCATTER -MPI_SCATTERV -MPI_SEND -MPI_SENDRECV -MPI_SENDRECV_REPLACE -MPI_SEND_INIT -MPI_SSEND -MPI_SSEND_INIT -MPI_START -MPI_STARTALL -MPI_STATUS_C2F -MPI_STATUS_F2C -MPI_STATUS_SET_CANCELLED -MPI_STATUS_SET_ELEMENTS -MPI_STATUS_SET_ELEMENTS_X -MPI_Scan -MPI_Scatter -MPI_Scatterv -MPI_Send -MPI_Send_init -MPI_Sendrecv -MPI_Sendrecv_replace -MPI_Ssend -MPI_Ssend_init -MPI_Start -MPI_Startall -MPI_Status_c2f -MPI_Status_f2c -MPI_Status_set_cancelled -MPI_Status_set_elements -MPI_Status_set_elements_x -MPI_TEST -MPI_TESTALL -MPI_TESTANY -MPI_TESTSOME -MPI_TEST_CANCELLED -MPI_TOPO_TEST -MPI_TYPE_COMMIT -MPI_TYPE_CONTIGUOUS -MPI_TYPE_CREATE_DARRAY -MPI_TYPE_CREATE_F90_COMPLEX -MPI_TYPE_CREATE_F90_INTEGER -MPI_TYPE_CREATE_F90_REAL -MPI_TYPE_CREATE_HINDEXED -MPI_TYPE_CREATE_HINDEXED_BLOCK -MPI_TYPE_CREATE_HVECTOR -MPI_TYPE_CREATE_INDEXED_BLOCK -MPI_TYPE_CREATE_KEYVAL -MPI_TYPE_CREATE_RESIZED -MPI_TYPE_CREATE_STRUCT -MPI_TYPE_CREATE_SUBARRAY -MPI_TYPE_DELETE_ATTR -MPI_TYPE_DUP -MPI_TYPE_DUP_FN -MPI_TYPE_EXTENT -MPI_TYPE_FREE -MPI_TYPE_FREE_KEYVAL -MPI_TYPE_GET_ATTR -MPI_TYPE_GET_CONTENTS -MPI_TYPE_GET_ENVELOPE -MPI_TYPE_GET_EXTENT -MPI_TYPE_GET_EXTENT_X -MPI_TYPE_GET_NAME -MPI_TYPE_GET_TRUE_EXTENT -MPI_TYPE_GET_TRUE_EXTENT_X -MPI_TYPE_HINDEXED -MPI_TYPE_HVECTOR -MPI_TYPE_INDEXED -MPI_TYPE_LB -MPI_TYPE_MATCH_SIZE -MPI_TYPE_NULL_COPY_FN -MPI_TYPE_NULL_DELETE_FN -MPI_TYPE_SET_ATTR -MPI_TYPE_SET_NAME -MPI_TYPE_SIZE -MPI_TYPE_SIZE_X -MPI_TYPE_STRUCT -MPI_TYPE_UB -MPI_TYPE_VECTOR -MPI_Test -MPI_Test_cancelled -MPI_Testall -MPI_Testany -MPI_Testsome -MPI_Topo_test -MPI_Type_commit -MPI_Type_contiguous -MPI_Type_create_darray -MPI_Type_create_f90_complex -MPI_Type_create_f90_integer -MPI_Type_create_f90_real -MPI_Type_create_hindexed -MPI_Type_create_hindexed_block -MPI_Type_create_hvector -MPI_Type_create_indexed_block -MPI_Type_create_keyval -MPI_Type_create_resized -MPI_Type_create_struct -MPI_Type_create_subarray -MPI_Type_delete_attr -MPI_Type_dup -MPI_Type_extent -MPI_Type_free -MPI_Type_free_keyval -MPI_Type_get_attr -MPI_Type_get_contents -MPI_Type_get_envelope -MPI_Type_get_extent -MPI_Type_get_extent_x -MPI_Type_get_name -MPI_Type_get_true_extent -MPI_Type_get_true_extent_x -MPI_Type_hindexed -MPI_Type_hvector -MPI_Type_indexed -MPI_Type_lb -MPI_Type_match_size -MPI_Type_set_attr -MPI_Type_set_name -MPI_Type_size -MPI_Type_size_x -MPI_Type_struct -MPI_Type_ub -MPI_Type_vector -MPI_UNPACK -MPI_UNPACK_EXTERNAL -MPI_UNPUBLISH_NAME -MPI_Unpack -MPI_Unpack_external -MPI_Unpublish_name -MPI_WAIT -MPI_WAITALL -MPI_WAITANY -MPI_WAITSOME -MPI_WIN_ALLOCATE -MPI_WIN_ALLOCATE_SHARED -MPI_WIN_ATTACH -MPI_WIN_CALL_ERRHANDLER -MPI_WIN_COMPLETE -MPI_WIN_CREATE -MPI_WIN_CREATE_DYNAMIC -MPI_WIN_CREATE_ERRHANDLER -MPI_WIN_CREATE_KEYVAL -MPI_WIN_DELETE_ATTR -MPI_WIN_DETACH -MPI_WIN_DUP_FN -MPI_WIN_FENCE -MPI_WIN_FLUSH -MPI_WIN_FLUSH_ALL -MPI_WIN_FLUSH_LOCAL -MPI_WIN_FLUSH_LOCAL_ALL -MPI_WIN_FREE -MPI_WIN_FREE_KEYVAL -MPI_WIN_GET_ATTR -MPI_WIN_GET_ERRHANDLER -MPI_WIN_GET_GROUP -MPI_WIN_GET_NAME -MPI_WIN_LOCK -MPI_WIN_LOCK_ALL -MPI_WIN_NULL_COPY_FN -MPI_WIN_NULL_DELETE_FN -MPI_WIN_POST -MPI_WIN_SET_ATTR -MPI_WIN_SET_ERRHANDLER -MPI_WIN_SET_NAME -MPI_WIN_SHARED_QUERY -MPI_WIN_START -MPI_WIN_SYNC -MPI_WIN_TEST -MPI_WIN_UNLOCK -MPI_WIN_UNLOCK_ALL -MPI_WIN_WAIT -MPI_WTICK -MPI_WTIME -MPI_Wait -MPI_Waitall -MPI_Waitany -MPI_Waitsome -MPI_Win_allocate -MPI_Win_allocate_shared -MPI_Win_attach -MPI_Win_call_errhandler -MPI_Win_complete -MPI_Win_create -MPI_Win_create_dynamic -MPI_Win_create_errhandler -MPI_Win_create_keyval -MPI_Win_delete_attr -MPI_Win_detach -MPI_Win_fence -MPI_Win_flush -MPI_Win_flush_all -MPI_Win_flush_local -MPI_Win_flush_local_all -MPI_Win_free -MPI_Win_free_keyval -MPI_Win_get_attr -MPI_Win_get_errhandler -MPI_Win_get_group -MPI_Win_get_name -MPI_Win_lock -MPI_Win_lock_all -MPI_Win_post -MPI_Win_set_attr -MPI_Win_set_errhandler -MPI_Win_set_name -MPI_Win_shared_query -MPI_Win_start -MPI_Win_sync -MPI_Win_test -MPI_Win_unlock -MPI_Win_unlock_all -MPI_Win_wait -MPI_Wtick -MPI_Wtime -MSMPI_GET_BSEND_OVERHEAD -MSMPI_GET_VERSION -MSMPI_Get_bsend_overhead -MSMPI_Get_version -MSMPI_Queuelock_acquire -MSMPI_Queuelock_release -MSMPI_Request_set_apc -MSMPI_Waitsome_interruptible -PMPI_ABORT -PMPI_ACCUMULATE -PMPI_ADDRESS -PMPI_ADD_ERROR_CLASS -PMPI_ADD_ERROR_CODE -PMPI_ADD_ERROR_STRING -PMPI_AINT_ADD -PMPI_AINT_DIFF -PMPI_ALLGATHER -PMPI_ALLGATHERV -PMPI_ALLOC_MEM -PMPI_ALLREDUCE -PMPI_ALLTOALL -PMPI_ALLTOALLV -PMPI_ALLTOALLW -PMPI_ATTR_DELETE -PMPI_ATTR_GET -PMPI_ATTR_PUT -PMPI_Abort -PMPI_Accumulate -PMPI_Add_error_class -PMPI_Add_error_code -PMPI_Add_error_string -PMPI_Address -PMPI_Aint_add -PMPI_Aint_diff -PMPI_Allgather -PMPI_Allgatherv -PMPI_Alloc_mem -PMPI_Allreduce -PMPI_Alltoall -PMPI_Alltoallv -PMPI_Alltoallw -PMPI_Attr_delete -PMPI_Attr_get -PMPI_Attr_put -PMPI_BARRIER -PMPI_BCAST -PMPI_BSEND -PMPI_BSEND_INIT -PMPI_BUFFER_ATTACH -PMPI_BUFFER_DETACH -PMPI_Barrier -PMPI_Bcast -PMPI_Bsend -PMPI_Bsend_init -PMPI_Buffer_attach -PMPI_Buffer_detach -PMPI_CANCEL -PMPI_CARTDIM_GET -PMPI_CART_COORDS -PMPI_CART_CREATE -PMPI_CART_GET -PMPI_CART_MAP -PMPI_CART_RANK -PMPI_CART_SHIFT -PMPI_CART_SUB -PMPI_CLOSE_PORT -PMPI_COMM_ACCEPT -PMPI_COMM_CALL_ERRHANDLER -PMPI_COMM_COMPARE -PMPI_COMM_CONNECT -PMPI_COMM_CREATE -PMPI_COMM_CREATE_ERRHANDLER -PMPI_COMM_CREATE_KEYVAL -PMPI_COMM_DELETE_ATTR -PMPI_COMM_DISCONNECT -PMPI_COMM_DUP -PMPI_COMM_DUP_FN -PMPI_COMM_FREE -PMPI_COMM_FREE_KEYVAL -PMPI_COMM_GET_ATTR -PMPI_COMM_GET_ERRHANDLER -PMPI_COMM_GET_NAME -PMPI_COMM_GET_PARENT -PMPI_COMM_GROUP -PMPI_COMM_JOIN -PMPI_COMM_NULL_COPY_FN -PMPI_COMM_NULL_DELETE_FN -PMPI_COMM_RANK -PMPI_COMM_REMOTE_GROUP -PMPI_COMM_REMOTE_SIZE -PMPI_COMM_SET_ATTR -PMPI_COMM_SET_ERRHANDLER -PMPI_COMM_SET_NAME -PMPI_COMM_SIZE -PMPI_COMM_SPAWN -PMPI_COMM_SPAWN_MULTIPLE -PMPI_COMM_SPLIT -PMPI_COMM_SPLIT_TYPE -PMPI_COMM_TEST_INTER -PMPI_COMPARE_AND_SWAP -PMPI_CONVERSION_FN_NULL -PMPI_Cancel -PMPI_Cart_coords -PMPI_Cart_create -PMPI_Cart_get -PMPI_Cart_map -PMPI_Cart_rank -PMPI_Cart_shift -PMPI_Cart_sub -PMPI_Cartdim_get -PMPI_Close_port -PMPI_Comm_accept -PMPI_Comm_call_errhandler -PMPI_Comm_compare -PMPI_Comm_connect -PMPI_Comm_create -PMPI_Comm_create_errhandler -PMPI_Comm_create_keyval -PMPI_Comm_delete_attr -PMPI_Comm_disconnect -PMPI_Comm_dup -PMPI_Comm_free -PMPI_Comm_free_keyval -PMPI_Comm_get_attr -PMPI_Comm_get_errhandler -PMPI_Comm_get_name -PMPI_Comm_get_parent -PMPI_Comm_group -PMPI_Comm_join -PMPI_Comm_rank -PMPI_Comm_remote_group -PMPI_Comm_remote_size -PMPI_Comm_set_attr -PMPI_Comm_set_errhandler -PMPI_Comm_set_name -PMPI_Comm_size -PMPI_Comm_spawn -PMPI_Comm_spawn_multiple -PMPI_Comm_split -PMPI_Comm_split_type -PMPI_Comm_test_inter -PMPI_Compare_and_swap -PMPI_DIMS_CREATE -PMPI_DIST_GRAPH_CREATE -PMPI_DIST_GRAPH_CREATE_ADJACENT -PMPI_DIST_GRAPH_NEIGHBORS -PMPI_DIST_GRAPH_NEIGHBORS_COUNT -PMPI_DUP_FN -PMPI_Dims_create -PMPI_Dist_graph_create -PMPI_Dist_graph_create_adjacent -PMPI_Dist_graph_neighbors -PMPI_Dist_graph_neighbors_count -PMPI_ERRHANDLER_CREATE -PMPI_ERRHANDLER_FREE -PMPI_ERRHANDLER_GET -PMPI_ERRHANDLER_SET -PMPI_ERROR_CLASS -PMPI_ERROR_STRING -PMPI_EXSCAN -PMPI_Errhandler_create -PMPI_Errhandler_free -PMPI_Errhandler_get -PMPI_Errhandler_set -PMPI_Error_class -PMPI_Error_string -PMPI_Exscan -PMPI_FETCH_AND_OP -PMPI_FILE_CALL_ERRHANDLER -PMPI_FILE_CLOSE -PMPI_FILE_CREATE_ERRHANDLER -PMPI_FILE_DELETE -PMPI_FILE_GET_AMODE -PMPI_FILE_GET_ATOMICITY -PMPI_FILE_GET_BYTE_OFFSET -PMPI_FILE_GET_ERRHANDLER -PMPI_FILE_GET_GROUP -PMPI_FILE_GET_INFO -PMPI_FILE_GET_POSITION -PMPI_FILE_GET_POSITION_SHARED -PMPI_FILE_GET_SIZE -PMPI_FILE_GET_TYPE_EXTENT -PMPI_FILE_GET_VIEW -PMPI_FILE_IREAD -PMPI_FILE_IREAD_AT -PMPI_FILE_IREAD_SHARED -PMPI_FILE_IWRITE -PMPI_FILE_IWRITE_AT -PMPI_FILE_IWRITE_SHARED -PMPI_FILE_OPEN -PMPI_FILE_PREALLOCATE -PMPI_FILE_READ -PMPI_FILE_READ_ALL -PMPI_FILE_READ_ALL_BEGIN -PMPI_FILE_READ_ALL_END -PMPI_FILE_READ_AT -PMPI_FILE_READ_AT_ALL -PMPI_FILE_READ_AT_ALL_BEGIN -PMPI_FILE_READ_AT_ALL_END -PMPI_FILE_READ_ORDERED -PMPI_FILE_READ_ORDERED_BEGIN -PMPI_FILE_READ_ORDERED_END -PMPI_FILE_READ_SHARED -PMPI_FILE_SEEK -PMPI_FILE_SEEK_SHARED -PMPI_FILE_SET_ATOMICITY -PMPI_FILE_SET_ERRHANDLER -PMPI_FILE_SET_INFO -PMPI_FILE_SET_SIZE -PMPI_FILE_SET_VIEW -PMPI_FILE_SYNC -PMPI_FILE_WRITE -PMPI_FILE_WRITE_ALL -PMPI_FILE_WRITE_ALL_BEGIN -PMPI_FILE_WRITE_ALL_END -PMPI_FILE_WRITE_AT -PMPI_FILE_WRITE_AT_ALL -PMPI_FILE_WRITE_AT_ALL_BEGIN -PMPI_FILE_WRITE_AT_ALL_END -PMPI_FILE_WRITE_ORDERED -PMPI_FILE_WRITE_ORDERED_BEGIN -PMPI_FILE_WRITE_ORDERED_END -PMPI_FILE_WRITE_SHARED -PMPI_FINALIZE -PMPI_FINALIZED -PMPI_FREE_MEM -PMPI_Fetch_and_op -PMPI_File_c2f -PMPI_File_call_errhandler -PMPI_File_close -PMPI_File_create_errhandler -PMPI_File_delete -PMPI_File_f2c -PMPI_File_get_amode -PMPI_File_get_atomicity -PMPI_File_get_byte_offset -PMPI_File_get_errhandler -PMPI_File_get_group -PMPI_File_get_info -PMPI_File_get_position -PMPI_File_get_position_shared -PMPI_File_get_size -PMPI_File_get_type_extent -PMPI_File_get_view -PMPI_File_iread -PMPI_File_iread_at -PMPI_File_iread_shared -PMPI_File_iwrite -PMPI_File_iwrite_at -PMPI_File_iwrite_shared -PMPI_File_open -PMPI_File_preallocate -PMPI_File_read -PMPI_File_read_all -PMPI_File_read_all_begin -PMPI_File_read_all_end -PMPI_File_read_at -PMPI_File_read_at_all -PMPI_File_read_at_all_begin -PMPI_File_read_at_all_end -PMPI_File_read_ordered -PMPI_File_read_ordered_begin -PMPI_File_read_ordered_end -PMPI_File_read_shared -PMPI_File_seek -PMPI_File_seek_shared -PMPI_File_set_atomicity -PMPI_File_set_errhandler -PMPI_File_set_info -PMPI_File_set_size -PMPI_File_set_view -PMPI_File_sync -PMPI_File_write -PMPI_File_write_all -PMPI_File_write_all_begin -PMPI_File_write_all_end -PMPI_File_write_at -PMPI_File_write_at_all -PMPI_File_write_at_all_begin -PMPI_File_write_at_all_end -PMPI_File_write_ordered -PMPI_File_write_ordered_begin -PMPI_File_write_ordered_end -PMPI_File_write_shared -PMPI_Finalize -PMPI_Finalized -PMPI_Free_mem -PMPI_GATHER -PMPI_GATHERV -PMPI_GET -PMPI_GET_ACCUMULATE -PMPI_GET_ADDRESS -PMPI_GET_COUNT -PMPI_GET_ELEMENTS -PMPI_GET_ELEMENTS_X -PMPI_GET_LIBRARY_VERSION -PMPI_GET_PROCESSOR_NAME -PMPI_GET_VERSION -PMPI_GRAPHDIMS_GET -PMPI_GRAPH_CREATE -PMPI_GRAPH_GET -PMPI_GRAPH_MAP -PMPI_GRAPH_NEIGHBORS -PMPI_GRAPH_NEIGHBORS_COUNT -PMPI_GREQUEST_COMPLETE -PMPI_GREQUEST_START -PMPI_GROUP_COMPARE -PMPI_GROUP_DIFFERENCE -PMPI_GROUP_EXCL -PMPI_GROUP_FREE -PMPI_GROUP_INCL -PMPI_GROUP_INTERSECTION -PMPI_GROUP_RANGE_EXCL -PMPI_GROUP_RANGE_INCL -PMPI_GROUP_RANK -PMPI_GROUP_SIZE -PMPI_GROUP_TRANSLATE_RANKS -PMPI_GROUP_UNION -PMPI_Gather -PMPI_Gatherv -PMPI_Get -PMPI_Get_accumulate -PMPI_Get_address -PMPI_Get_count -PMPI_Get_elements -PMPI_Get_elements_x -PMPI_Get_library_version -PMPI_Get_processor_name -PMPI_Get_version -PMPI_Graph_create -PMPI_Graph_get -PMPI_Graph_map -PMPI_Graph_neighbors -PMPI_Graph_neighbors_count -PMPI_Graphdims_get -PMPI_Grequest_complete -PMPI_Grequest_start -PMPI_Group_compare -PMPI_Group_difference -PMPI_Group_excl -PMPI_Group_free -PMPI_Group_incl -PMPI_Group_intersection -PMPI_Group_range_excl -PMPI_Group_range_incl -PMPI_Group_rank -PMPI_Group_size -PMPI_Group_translate_ranks -PMPI_Group_union -PMPI_IALLGATHER -PMPI_IALLGATHERV -PMPI_IALLREDUCE -PMPI_IALLTOALL -PMPI_IALLTOALLV -PMPI_IALLTOALLW -PMPI_IBARRIER -PMPI_IBCAST -PMPI_IBSEND -PMPI_IEXSCAN -PMPI_IGATHER -PMPI_IGATHERV -PMPI_IMPROBE -PMPI_IMRECV -PMPI_INFO_CREATE -PMPI_INFO_DELETE -PMPI_INFO_DUP -PMPI_INFO_FREE -PMPI_INFO_GET -PMPI_INFO_GET_NKEYS -PMPI_INFO_GET_NTHKEY -PMPI_INFO_GET_VALUELEN -PMPI_INFO_SET -PMPI_INIT -PMPI_INITIALIZED -PMPI_INIT_THREAD -PMPI_INTERCOMM_CREATE -PMPI_INTERCOMM_MERGE -PMPI_IPROBE -PMPI_IRECV -PMPI_IREDUCE -PMPI_IREDUCE_SCATTER -PMPI_IREDUCE_SCATTER_BLOCK -PMPI_IRSEND -PMPI_ISCAN -PMPI_ISCATTER -PMPI_ISCATTERV -PMPI_ISEND -PMPI_ISSEND -PMPI_IS_THREAD_MAIN -PMPI_Iallgather -PMPI_Iallgatherv -PMPI_Iallreduce -PMPI_Ialltoall -PMPI_Ialltoallv -PMPI_Ialltoallw -PMPI_Ibarrier -PMPI_Ibcast -PMPI_Ibsend -PMPI_Iexscan -PMPI_Igather -PMPI_Igatherv -PMPI_Improbe -PMPI_Imrecv -PMPI_Info_create -PMPI_Info_delete -PMPI_Info_dup -PMPI_Info_free -PMPI_Info_get -PMPI_Info_get_nkeys -PMPI_Info_get_nthkey -PMPI_Info_get_valuelen -PMPI_Info_set -PMPI_Init -PMPI_Init_thread -PMPI_Initialized -PMPI_Intercomm_create -PMPI_Intercomm_merge -PMPI_Iprobe -PMPI_Irecv -PMPI_Ireduce -PMPI_Ireduce_scatter -PMPI_Ireduce_scatter_block -PMPI_Irsend -PMPI_Is_thread_main -PMPI_Iscan -PMPI_Iscatter -PMPI_Iscatterv -PMPI_Isend -PMPI_Issend -PMPI_KEYVAL_CREATE -PMPI_KEYVAL_FREE -PMPI_Keyval_create -PMPI_Keyval_free -PMPI_LOOKUP_NAME -PMPI_Lookup_name -PMPI_MPROBE -PMPI_MRECV -PMPI_Mprobe -PMPI_Mrecv -PMPI_NULL_COPY_FN -PMPI_NULL_DELETE_FN -PMPI_OPEN_PORT -PMPI_OP_COMMUTATIVE -PMPI_OP_CREATE -PMPI_OP_FREE -PMPI_Op_commutative -PMPI_Op_create -PMPI_Op_free -PMPI_Open_port -PMPI_PACK -PMPI_PACK_EXTERNAL -PMPI_PACK_EXTERNAL_SIZE -PMPI_PACK_SIZE -PMPI_PCONTROL -PMPI_PROBE -PMPI_PUBLISH_NAME -PMPI_PUT -PMPI_Pack -PMPI_Pack_external -PMPI_Pack_external_size -PMPI_Pack_size -PMPI_Pcontrol -PMPI_Probe -PMPI_Publish_name -PMPI_Put -PMPI_QUERY_THREAD -PMPI_Query_thread -PMPI_RACCUMULATE -PMPI_RECV -PMPI_RECV_INIT -PMPI_REDUCE -PMPI_REDUCE_LOCAL -PMPI_REDUCE_SCATTER -PMPI_REDUCE_SCATTER_block -PMPI_REGISTER_DATAREP -PMPI_REQUEST_FREE -PMPI_REQUEST_GET_STATUS -PMPI_RGET -PMPI_RGET_ACCUMULATE -PMPI_RPUT -PMPI_RSEND -PMPI_RSEND_INIT -PMPI_Raccumulate -PMPI_Recv -PMPI_Recv_init -PMPI_Reduce -PMPI_Reduce_local -PMPI_Reduce_scatter -PMPI_Reduce_scatter_block -PMPI_Register_datarep -PMPI_Request_free -PMPI_Request_get_status -PMPI_Rget -PMPI_Rget_accumulate -PMPI_Rput -PMPI_Rsend -PMPI_Rsend_init -PMPI_SCAN -PMPI_SCATTER -PMPI_SCATTERV -PMPI_SEND -PMPI_SENDRECV -PMPI_SENDRECV_REPLACE -PMPI_SEND_INIT -PMPI_SSEND -PMPI_SSEND_INIT -PMPI_START -PMPI_STARTALL -PMPI_STATUS_C2F -PMPI_STATUS_F2C -PMPI_STATUS_SET_CANCELLED -PMPI_STATUS_SET_ELEMENTS -PMPI_STATUS_SET_ELEMENTS_X -PMPI_Scan -PMPI_Scatter -PMPI_Scatterv -PMPI_Send -PMPI_Send_init -PMPI_Sendrecv -PMPI_Sendrecv_replace -PMPI_Ssend -PMPI_Ssend_init -PMPI_Start -PMPI_Startall -PMPI_Status_c2f -PMPI_Status_f2c -PMPI_Status_set_cancelled -PMPI_Status_set_elements -PMPI_Status_set_elements_x -PMPI_TEST -PMPI_TESTALL -PMPI_TESTANY -PMPI_TESTSOME -PMPI_TEST_CANCELLED -PMPI_TOPO_TEST -PMPI_TYPE_COMMIT -PMPI_TYPE_CONTIGUOUS -PMPI_TYPE_CREATE_DARRAY -PMPI_TYPE_CREATE_F90_COMPLEX -PMPI_TYPE_CREATE_F90_INTEGER -PMPI_TYPE_CREATE_F90_REAL -PMPI_TYPE_CREATE_HINDEXED -PMPI_TYPE_CREATE_HINDEXED_BLOCK -PMPI_TYPE_CREATE_HVECTOR -PMPI_TYPE_CREATE_INDEXED_BLOCK -PMPI_TYPE_CREATE_KEYVAL -PMPI_TYPE_CREATE_RESIZED -PMPI_TYPE_CREATE_STRUCT -PMPI_TYPE_CREATE_SUBARRAY -PMPI_TYPE_DELETE_ATTR -PMPI_TYPE_DUP -PMPI_TYPE_DUP_FN -PMPI_TYPE_EXTENT -PMPI_TYPE_FREE -PMPI_TYPE_FREE_KEYVAL -PMPI_TYPE_GET_ATTR -PMPI_TYPE_GET_CONTENTS -PMPI_TYPE_GET_ENVELOPE -PMPI_TYPE_GET_EXTENT -PMPI_TYPE_GET_EXTENT_X -PMPI_TYPE_GET_NAME -PMPI_TYPE_GET_TRUE_EXTENT -PMPI_TYPE_GET_TRUE_EXTENT_X -PMPI_TYPE_HINDEXED -PMPI_TYPE_HVECTOR -PMPI_TYPE_INDEXED -PMPI_TYPE_LB -PMPI_TYPE_MATCH_SIZE -PMPI_TYPE_NULL_COPY_FN -PMPI_TYPE_NULL_DELETE_FN -PMPI_TYPE_SET_ATTR -PMPI_TYPE_SET_NAME -PMPI_TYPE_SIZE -PMPI_TYPE_SIZE_X -PMPI_TYPE_STRUCT -PMPI_TYPE_UB -PMPI_TYPE_VECTOR -PMPI_Test -PMPI_Test_cancelled -PMPI_Testall -PMPI_Testany -PMPI_Testsome -PMPI_Topo_test -PMPI_Type_commit -PMPI_Type_contiguous -PMPI_Type_create_darray -PMPI_Type_create_f90_complex -PMPI_Type_create_f90_integer -PMPI_Type_create_f90_real -PMPI_Type_create_hindexed -PMPI_Type_create_hindexed_block -PMPI_Type_create_hvector -PMPI_Type_create_indexed_block -PMPI_Type_create_keyval -PMPI_Type_create_resized -PMPI_Type_create_struct -PMPI_Type_create_subarray -PMPI_Type_delete_attr -PMPI_Type_dup -PMPI_Type_extent -PMPI_Type_free -PMPI_Type_free_keyval -PMPI_Type_get_attr -PMPI_Type_get_contents -PMPI_Type_get_envelope -PMPI_Type_get_extent -PMPI_Type_get_extent_x -PMPI_Type_get_name -PMPI_Type_get_true_extent -PMPI_Type_get_true_extent_x -PMPI_Type_hindexed -PMPI_Type_hvector -PMPI_Type_indexed -PMPI_Type_lb -PMPI_Type_match_size -PMPI_Type_set_attr -PMPI_Type_set_name -PMPI_Type_size -PMPI_Type_size_x -PMPI_Type_struct -PMPI_Type_ub -PMPI_Type_vector -PMPI_UNPACK -PMPI_UNPACK_EXTERNAL -PMPI_UNPUBLISH_NAME -PMPI_Unpack -PMPI_Unpack_external -PMPI_Unpublish_name -PMPI_WAIT -PMPI_WAITALL -PMPI_WAITANY -PMPI_WAITSOME -PMPI_WIN_ALLOCATE -PMPI_WIN_ALLOCATE_SHARED -PMPI_WIN_ATTACH -PMPI_WIN_CALL_ERRHANDLER -PMPI_WIN_COMPLETE -PMPI_WIN_CREATE -PMPI_WIN_CREATE_DYNAMIC -PMPI_WIN_CREATE_ERRHANDLER -PMPI_WIN_CREATE_KEYVAL -PMPI_WIN_DELETE_ATTR -PMPI_WIN_DETACH -PMPI_WIN_DUP_FN -PMPI_WIN_FENCE -PMPI_WIN_FLUSH -PMPI_WIN_FLUSH_ALL -PMPI_WIN_FLUSH_LOCAL -PMPI_WIN_FLUSH_LOCAL_ALL -PMPI_WIN_FREE -PMPI_WIN_FREE_KEYVAL -PMPI_WIN_GET_ATTR -PMPI_WIN_GET_ERRHANDLER -PMPI_WIN_GET_GROUP -PMPI_WIN_GET_NAME -PMPI_WIN_LOCK -PMPI_WIN_LOCK_ALL -PMPI_WIN_NULL_COPY_FN -PMPI_WIN_NULL_DELETE_FN -PMPI_WIN_POST -PMPI_WIN_SET_ATTR -PMPI_WIN_SET_ERRHANDLER -PMPI_WIN_SET_NAME -PMPI_WIN_SHARED_QUERY -PMPI_WIN_START -PMPI_WIN_SYNC -PMPI_WIN_TEST -PMPI_WIN_UNLOCK -PMPI_WIN_UNLOCK_ALL -PMPI_WIN_WAIT -PMPI_WTICK -PMPI_WTIME -PMPI_Wait -PMPI_Waitall -PMPI_Waitany -PMPI_Waitsome -PMPI_Win_allocate -PMPI_Win_allocate_shared -PMPI_Win_attach -PMPI_Win_call_errhandler -PMPI_Win_complete -PMPI_Win_create -PMPI_Win_create_dynamic -PMPI_Win_create_errhandler -PMPI_Win_create_keyval -PMPI_Win_delete_attr -PMPI_Win_detach -PMPI_Win_fence -PMPI_Win_flush -PMPI_Win_flush_all -PMPI_Win_flush_local -PMPI_Win_flush_local_all -PMPI_Win_free -PMPI_Win_free_keyval -PMPI_Win_get_attr -PMPI_Win_get_errhandler -PMPI_Win_get_group -PMPI_Win_get_name -PMPI_Win_lock -PMPI_Win_lock_all -PMPI_Win_post -PMPI_Win_set_attr -PMPI_Win_set_errhandler -PMPI_Win_set_name -PMPI_Win_shared_query -PMPI_Win_start -PMPI_Win_sync -PMPI_Win_test -PMPI_Win_unlock -PMPI_Win_unlock_all -PMPI_Win_wait -PMPI_Wtick -PMPI_Wtime -PMSMPI_GET_BSEND_OVERHEAD -PMSMPI_GET_VERSION -PMSMPI_Get_bsend_overhead -PMSMPI_Get_version -_MPIFCMB5 DATA -_MPIFCMB9 DATA -_MPIPRIV1 DATA -_MPIPRIV2 DATA -_MPIPRIVC DATA -_mpifcmb5 DATA -_mpifcmb5_ DATA -_mpifcmb9 DATA -_mpifcmb9_ DATA -_mpipriv1 DATA -_mpipriv1_ DATA -_mpipriv2 DATA -_mpipriv2_ DATA -_mpiprivc DATA -_mpiprivc_ DATA -mpi_abort -mpi_abort_ -mpi_abort__ -mpi_accumulate -mpi_accumulate_ -mpi_accumulate__ -mpi_add_error_class -mpi_add_error_class_ -mpi_add_error_class__ -mpi_add_error_code -mpi_add_error_code_ -mpi_add_error_code__ -mpi_add_error_string -mpi_add_error_string_ -mpi_add_error_string__ -mpi_address -mpi_address_ -mpi_address__ -mpi_aint_add -mpi_aint_add_ -mpi_aint_add__ -mpi_aint_diff -mpi_aint_diff_ -mpi_aint_diff__ -mpi_allgather -mpi_allgather_ -mpi_allgather__ -mpi_allgatherv -mpi_allgatherv_ -mpi_allgatherv__ -mpi_alloc_mem -mpi_alloc_mem_ -mpi_alloc_mem__ -mpi_allreduce -mpi_allreduce_ -mpi_allreduce__ -mpi_alltoall -mpi_alltoall_ -mpi_alltoall__ -mpi_alltoallv -mpi_alltoallv_ -mpi_alltoallv__ -mpi_alltoallw -mpi_alltoallw_ -mpi_alltoallw__ -mpi_attr_delete -mpi_attr_delete_ -mpi_attr_delete__ -mpi_attr_get -mpi_attr_get_ -mpi_attr_get__ -mpi_attr_put -mpi_attr_put_ -mpi_attr_put__ -mpi_barrier -mpi_barrier_ -mpi_barrier__ -mpi_bcast -mpi_bcast_ -mpi_bcast__ -mpi_bsend -mpi_bsend_ -mpi_bsend__ -mpi_bsend_init -mpi_bsend_init_ -mpi_bsend_init__ -mpi_buffer_attach -mpi_buffer_attach_ -mpi_buffer_attach__ -mpi_buffer_detach -mpi_buffer_detach_ -mpi_buffer_detach__ -mpi_cancel -mpi_cancel_ -mpi_cancel__ -mpi_cart_coords -mpi_cart_coords_ -mpi_cart_coords__ -mpi_cart_create -mpi_cart_create_ -mpi_cart_create__ -mpi_cart_get -mpi_cart_get_ -mpi_cart_get__ -mpi_cart_map -mpi_cart_map_ -mpi_cart_map__ -mpi_cart_rank -mpi_cart_rank_ -mpi_cart_rank__ -mpi_cart_shift -mpi_cart_shift_ -mpi_cart_shift__ -mpi_cart_sub -mpi_cart_sub_ -mpi_cart_sub__ -mpi_cartdim_get -mpi_cartdim_get_ -mpi_cartdim_get__ -mpi_close_port -mpi_close_port_ -mpi_close_port__ -mpi_comm_accept -mpi_comm_accept_ -mpi_comm_accept__ -mpi_comm_call_errhandler -mpi_comm_call_errhandler_ -mpi_comm_call_errhandler__ -mpi_comm_compare -mpi_comm_compare_ -mpi_comm_compare__ -mpi_comm_connect -mpi_comm_connect_ -mpi_comm_connect__ -mpi_comm_create -mpi_comm_create_ -mpi_comm_create__ -mpi_comm_create_errhandler -mpi_comm_create_errhandler_ -mpi_comm_create_errhandler__ -mpi_comm_create_keyval -mpi_comm_create_keyval_ -mpi_comm_create_keyval__ -mpi_comm_delete_attr -mpi_comm_delete_attr_ -mpi_comm_delete_attr__ -mpi_comm_disconnect -mpi_comm_disconnect_ -mpi_comm_disconnect__ -mpi_comm_dup -mpi_comm_dup_ -mpi_comm_dup__ -mpi_comm_dup_fn -mpi_comm_dup_fn_ -mpi_comm_dup_fn__ -mpi_comm_free -mpi_comm_free_ -mpi_comm_free__ -mpi_comm_free_keyval -mpi_comm_free_keyval_ -mpi_comm_free_keyval__ -mpi_comm_get_attr -mpi_comm_get_attr_ -mpi_comm_get_attr__ -mpi_comm_get_errhandler -mpi_comm_get_errhandler_ -mpi_comm_get_errhandler__ -mpi_comm_get_name -mpi_comm_get_name_ -mpi_comm_get_name__ -mpi_comm_get_parent -mpi_comm_get_parent_ -mpi_comm_get_parent__ -mpi_comm_group -mpi_comm_group_ -mpi_comm_group__ -mpi_comm_join -mpi_comm_join_ -mpi_comm_join__ -mpi_comm_null_copy_fn -mpi_comm_null_copy_fn_ -mpi_comm_null_copy_fn__ -mpi_comm_null_delete_fn -mpi_comm_null_delete_fn_ -mpi_comm_null_delete_fn__ -mpi_comm_rank -mpi_comm_rank_ -mpi_comm_rank__ -mpi_comm_remote_group -mpi_comm_remote_group_ -mpi_comm_remote_group__ -mpi_comm_remote_size -mpi_comm_remote_size_ -mpi_comm_remote_size__ -mpi_comm_set_attr -mpi_comm_set_attr_ -mpi_comm_set_attr__ -mpi_comm_set_errhandler -mpi_comm_set_errhandler_ -mpi_comm_set_errhandler__ -mpi_comm_set_name -mpi_comm_set_name_ -mpi_comm_set_name__ -mpi_comm_size -mpi_comm_size_ -mpi_comm_size__ -mpi_comm_spawn -mpi_comm_spawn_ -mpi_comm_spawn__ -mpi_comm_spawn_multiple -mpi_comm_spawn_multiple_ -mpi_comm_spawn_multiple__ -mpi_comm_split -mpi_comm_split_ -mpi_comm_split__ -mpi_comm_split_type -mpi_comm_split_type_ -mpi_comm_split_type__ -mpi_comm_test_inter -mpi_comm_test_inter_ -mpi_comm_test_inter__ -mpi_compare_and_swap -mpi_compare_and_swap_ -mpi_compare_and_swap__ -mpi_conversion_fn_null -mpi_conversion_fn_null_ -mpi_conversion_fn_null__ -mpi_dims_create -mpi_dims_create_ -mpi_dims_create__ -mpi_dist_graph_create -mpi_dist_graph_create_ -mpi_dist_graph_create__ -mpi_dist_graph_create_adjacent -mpi_dist_graph_create_adjacent_ -mpi_dist_graph_create_adjacent__ -mpi_dist_graph_neighbors -mpi_dist_graph_neighbors_ -mpi_dist_graph_neighbors__ -mpi_dist_graph_neighbors_count -mpi_dist_graph_neighbors_count_ -mpi_dist_graph_neighbors_count__ -mpi_dup_fn -mpi_dup_fn_ -mpi_dup_fn__ -mpi_errhandler_create -mpi_errhandler_create_ -mpi_errhandler_create__ -mpi_errhandler_free -mpi_errhandler_free_ -mpi_errhandler_free__ -mpi_errhandler_get -mpi_errhandler_get_ -mpi_errhandler_get__ -mpi_errhandler_set -mpi_errhandler_set_ -mpi_errhandler_set__ -mpi_error_class -mpi_error_class_ -mpi_error_class__ -mpi_error_string -mpi_error_string_ -mpi_error_string__ -mpi_exscan -mpi_exscan_ -mpi_exscan__ -mpi_fetch_and_op -mpi_fetch_and_op_ -mpi_fetch_and_op__ -mpi_file_call_errhandler -mpi_file_call_errhandler_ -mpi_file_call_errhandler__ -mpi_file_close -mpi_file_close_ -mpi_file_close__ -mpi_file_create_errhandler -mpi_file_create_errhandler_ -mpi_file_create_errhandler__ -mpi_file_delete -mpi_file_delete_ -mpi_file_delete__ -mpi_file_get_amode -mpi_file_get_amode_ -mpi_file_get_amode__ -mpi_file_get_atomicity -mpi_file_get_atomicity_ -mpi_file_get_atomicity__ -mpi_file_get_byte_offset -mpi_file_get_byte_offset_ -mpi_file_get_byte_offset__ -mpi_file_get_errhandler -mpi_file_get_errhandler_ -mpi_file_get_errhandler__ -mpi_file_get_group -mpi_file_get_group_ -mpi_file_get_group__ -mpi_file_get_info -mpi_file_get_info_ -mpi_file_get_info__ -mpi_file_get_position -mpi_file_get_position_ -mpi_file_get_position__ -mpi_file_get_position_shared -mpi_file_get_position_shared_ -mpi_file_get_position_shared__ -mpi_file_get_size -mpi_file_get_size_ -mpi_file_get_size__ -mpi_file_get_type_extent -mpi_file_get_type_extent_ -mpi_file_get_type_extent__ -mpi_file_get_view -mpi_file_get_view_ -mpi_file_get_view__ -mpi_file_iread -mpi_file_iread_ -mpi_file_iread__ -mpi_file_iread_at -mpi_file_iread_at_ -mpi_file_iread_at__ -mpi_file_iread_shared -mpi_file_iread_shared_ -mpi_file_iread_shared__ -mpi_file_iwrite -mpi_file_iwrite_ -mpi_file_iwrite__ -mpi_file_iwrite_at -mpi_file_iwrite_at_ -mpi_file_iwrite_at__ -mpi_file_iwrite_shared -mpi_file_iwrite_shared_ -mpi_file_iwrite_shared__ -mpi_file_open -mpi_file_open_ -mpi_file_open__ -mpi_file_preallocate -mpi_file_preallocate_ -mpi_file_preallocate__ -mpi_file_read -mpi_file_read_ -mpi_file_read__ -mpi_file_read_all -mpi_file_read_all_ -mpi_file_read_all__ -mpi_file_read_all_begin -mpi_file_read_all_begin_ -mpi_file_read_all_begin__ -mpi_file_read_all_end -mpi_file_read_all_end_ -mpi_file_read_all_end__ -mpi_file_read_at -mpi_file_read_at_ -mpi_file_read_at__ -mpi_file_read_at_all -mpi_file_read_at_all_ -mpi_file_read_at_all__ -mpi_file_read_at_all_begin -mpi_file_read_at_all_begin_ -mpi_file_read_at_all_begin__ -mpi_file_read_at_all_end -mpi_file_read_at_all_end_ -mpi_file_read_at_all_end__ -mpi_file_read_ordered -mpi_file_read_ordered_ -mpi_file_read_ordered__ -mpi_file_read_ordered_begin -mpi_file_read_ordered_begin_ -mpi_file_read_ordered_begin__ -mpi_file_read_ordered_end -mpi_file_read_ordered_end_ -mpi_file_read_ordered_end__ -mpi_file_read_shared -mpi_file_read_shared_ -mpi_file_read_shared__ -mpi_file_seek -mpi_file_seek_ -mpi_file_seek__ -mpi_file_seek_shared -mpi_file_seek_shared_ -mpi_file_seek_shared__ -mpi_file_set_atomicity -mpi_file_set_atomicity_ -mpi_file_set_atomicity__ -mpi_file_set_errhandler -mpi_file_set_errhandler_ -mpi_file_set_errhandler__ -mpi_file_set_info -mpi_file_set_info_ -mpi_file_set_info__ -mpi_file_set_size -mpi_file_set_size_ -mpi_file_set_size__ -mpi_file_set_view -mpi_file_set_view_ -mpi_file_set_view__ -mpi_file_sync -mpi_file_sync_ -mpi_file_sync__ -mpi_file_write -mpi_file_write_ -mpi_file_write__ -mpi_file_write_all -mpi_file_write_all_ -mpi_file_write_all__ -mpi_file_write_all_begin -mpi_file_write_all_begin_ -mpi_file_write_all_begin__ -mpi_file_write_all_end -mpi_file_write_all_end_ -mpi_file_write_all_end__ -mpi_file_write_at -mpi_file_write_at_ -mpi_file_write_at__ -mpi_file_write_at_all -mpi_file_write_at_all_ -mpi_file_write_at_all__ -mpi_file_write_at_all_begin -mpi_file_write_at_all_begin_ -mpi_file_write_at_all_begin__ -mpi_file_write_at_all_end -mpi_file_write_at_all_end_ -mpi_file_write_at_all_end__ -mpi_file_write_ordered -mpi_file_write_ordered_ -mpi_file_write_ordered__ -mpi_file_write_ordered_begin -mpi_file_write_ordered_begin_ -mpi_file_write_ordered_begin__ -mpi_file_write_ordered_end -mpi_file_write_ordered_end_ -mpi_file_write_ordered_end__ -mpi_file_write_shared -mpi_file_write_shared_ -mpi_file_write_shared__ -mpi_finalize -mpi_finalize_ -mpi_finalize__ -mpi_finalized -mpi_finalized_ -mpi_finalized__ -mpi_free_mem -mpi_free_mem_ -mpi_free_mem__ -mpi_gather -mpi_gather_ -mpi_gather__ -mpi_gatherv -mpi_gatherv_ -mpi_gatherv__ -mpi_get -mpi_get_ -mpi_get__ -mpi_get_accumulate -mpi_get_accumulate_ -mpi_get_accumulate__ -mpi_get_address -mpi_get_address_ -mpi_get_address__ -mpi_get_count -mpi_get_count_ -mpi_get_count__ -mpi_get_elements -mpi_get_elements_ -mpi_get_elements__ -mpi_get_elements_x -mpi_get_elements_x_ -mpi_get_elements_x__ -mpi_get_library_version -mpi_get_library_version_ -mpi_get_library_version__ -mpi_get_processor_name -mpi_get_processor_name_ -mpi_get_processor_name__ -mpi_get_version -mpi_get_version_ -mpi_get_version__ -mpi_graph_create -mpi_graph_create_ -mpi_graph_create__ -mpi_graph_get -mpi_graph_get_ -mpi_graph_get__ -mpi_graph_map -mpi_graph_map_ -mpi_graph_map__ -mpi_graph_neighbors -mpi_graph_neighbors_ -mpi_graph_neighbors__ -mpi_graph_neighbors_count -mpi_graph_neighbors_count_ -mpi_graph_neighbors_count__ -mpi_graphdims_get -mpi_graphdims_get_ -mpi_graphdims_get__ -mpi_grequest_complete -mpi_grequest_complete_ -mpi_grequest_complete__ -mpi_grequest_start -mpi_grequest_start_ -mpi_grequest_start__ -mpi_group_compare -mpi_group_compare_ -mpi_group_compare__ -mpi_group_difference -mpi_group_difference_ -mpi_group_difference__ -mpi_group_excl -mpi_group_excl_ -mpi_group_excl__ -mpi_group_free -mpi_group_free_ -mpi_group_free__ -mpi_group_incl -mpi_group_incl_ -mpi_group_incl__ -mpi_group_intersection -mpi_group_intersection_ -mpi_group_intersection__ -mpi_group_range_excl -mpi_group_range_excl_ -mpi_group_range_excl__ -mpi_group_range_incl -mpi_group_range_incl_ -mpi_group_range_incl__ -mpi_group_rank -mpi_group_rank_ -mpi_group_rank__ -mpi_group_size -mpi_group_size_ -mpi_group_size__ -mpi_group_translate_ranks -mpi_group_translate_ranks_ -mpi_group_translate_ranks__ -mpi_group_union -mpi_group_union_ -mpi_group_union__ -mpi_iallgather -mpi_iallgather_ -mpi_iallgather__ -mpi_iallgatherv -mpi_iallgatherv_ -mpi_iallgatherv__ -mpi_iallreduce -mpi_iallreduce_ -mpi_iallreduce__ -mpi_ialltoall -mpi_ialltoall_ -mpi_ialltoall__ -mpi_ialltoallv -mpi_ialltoallv_ -mpi_ialltoallv__ -mpi_ialltoallw -mpi_ialltoallw_ -mpi_ialltoallw__ -mpi_ibarrier -mpi_ibarrier_ -mpi_ibarrier__ -mpi_ibcast -mpi_ibcast_ -mpi_ibcast__ -mpi_ibsend -mpi_ibsend_ -mpi_ibsend__ -mpi_iexscan -mpi_iexscan_ -mpi_iexscan__ -mpi_igather -mpi_igather_ -mpi_igather__ -mpi_igatherv -mpi_igatherv_ -mpi_igatherv__ -mpi_improbe -mpi_improbe_ -mpi_improbe__ -mpi_imrecv -mpi_imrecv_ -mpi_imrecv__ -mpi_info_create -mpi_info_create_ -mpi_info_create__ -mpi_info_delete -mpi_info_delete_ -mpi_info_delete__ -mpi_info_dup -mpi_info_dup_ -mpi_info_dup__ -mpi_info_free -mpi_info_free_ -mpi_info_free__ -mpi_info_get -mpi_info_get_ -mpi_info_get__ -mpi_info_get_nkeys -mpi_info_get_nkeys_ -mpi_info_get_nkeys__ -mpi_info_get_nthkey -mpi_info_get_nthkey_ -mpi_info_get_nthkey__ -mpi_info_get_valuelen -mpi_info_get_valuelen_ -mpi_info_get_valuelen__ -mpi_info_set -mpi_info_set_ -mpi_info_set__ -mpi_init -mpi_init_ -mpi_init__ -mpi_init_thread -mpi_init_thread_ -mpi_init_thread__ -mpi_initialized -mpi_initialized_ -mpi_initialized__ -mpi_intercomm_create -mpi_intercomm_create_ -mpi_intercomm_create__ -mpi_intercomm_merge -mpi_intercomm_merge_ -mpi_intercomm_merge__ -mpi_iprobe -mpi_iprobe_ -mpi_iprobe__ -mpi_irecv -mpi_irecv_ -mpi_irecv__ -mpi_ireduce -mpi_ireduce_ -mpi_ireduce__ -mpi_ireduce_scatter -mpi_ireduce_scatter_ -mpi_ireduce_scatter__ -mpi_ireduce_scatter_block -mpi_ireduce_scatter_block_ -mpi_ireduce_scatter_block__ -mpi_irsend -mpi_irsend_ -mpi_irsend__ -mpi_is_thread_main -mpi_is_thread_main_ -mpi_is_thread_main__ -mpi_iscan -mpi_iscan_ -mpi_iscan__ -mpi_iscatter -mpi_iscatter_ -mpi_iscatter__ -mpi_iscatterv -mpi_iscatterv_ -mpi_iscatterv__ -mpi_isend -mpi_isend_ -mpi_isend__ -mpi_issend -mpi_issend_ -mpi_issend__ -mpi_keyval_create -mpi_keyval_create_ -mpi_keyval_create__ -mpi_keyval_free -mpi_keyval_free_ -mpi_keyval_free__ -mpi_lookup_name -mpi_lookup_name_ -mpi_lookup_name__ -mpi_mprobe -mpi_mprobe_ -mpi_mprobe__ -mpi_mrecv -mpi_mrecv_ -mpi_mrecv__ -mpi_null_copy_fn -mpi_null_copy_fn_ -mpi_null_copy_fn__ -mpi_null_delete_fn -mpi_null_delete_fn_ -mpi_null_delete_fn__ -mpi_op_commutative -mpi_op_commutative_ -mpi_op_commutative__ -mpi_op_create -mpi_op_create_ -mpi_op_create__ -mpi_op_free -mpi_op_free_ -mpi_op_free__ -mpi_open_port -mpi_open_port_ -mpi_open_port__ -mpi_pack -mpi_pack_ -mpi_pack__ -mpi_pack_external -mpi_pack_external_ -mpi_pack_external__ -mpi_pack_external_size -mpi_pack_external_size_ -mpi_pack_external_size__ -mpi_pack_size -mpi_pack_size_ -mpi_pack_size__ -mpi_pcontrol -mpi_pcontrol_ -mpi_pcontrol__ -mpi_probe -mpi_probe_ -mpi_probe__ -mpi_publish_name -mpi_publish_name_ -mpi_publish_name__ -mpi_put -mpi_put_ -mpi_put__ -mpi_query_thread -mpi_query_thread_ -mpi_query_thread__ -mpi_raccumulate -mpi_raccumulate_ -mpi_raccumulate__ -mpi_recv -mpi_recv_ -mpi_recv__ -mpi_recv_init -mpi_recv_init_ -mpi_recv_init__ -mpi_reduce -mpi_reduce_ -mpi_reduce__ -mpi_reduce_local -mpi_reduce_local_ -mpi_reduce_local__ -mpi_reduce_scatter -mpi_reduce_scatter_ -mpi_reduce_scatter__ -mpi_reduce_scatter_block -mpi_reduce_scatter_block_ -mpi_reduce_scatter_block__ -mpi_register_datarep -mpi_register_datarep_ -mpi_register_datarep__ -mpi_request_free -mpi_request_free_ -mpi_request_free__ -mpi_request_get_status -mpi_request_get_status_ -mpi_request_get_status__ -mpi_rget -mpi_rget_ -mpi_rget__ -mpi_rget_accumulate -mpi_rget_accumulate_ -mpi_rget_accumulate__ -mpi_rput -mpi_rput_ -mpi_rput__ -mpi_rsend -mpi_rsend_ -mpi_rsend__ -mpi_rsend_init -mpi_rsend_init_ -mpi_rsend_init__ -mpi_scan -mpi_scan_ -mpi_scan__ -mpi_scatter -mpi_scatter_ -mpi_scatter__ -mpi_scatterv -mpi_scatterv_ -mpi_scatterv__ -mpi_send -mpi_send_ -mpi_send__ -mpi_send_init -mpi_send_init_ -mpi_send_init__ -mpi_sendrecv -mpi_sendrecv_ -mpi_sendrecv__ -mpi_sendrecv_replace -mpi_sendrecv_replace_ -mpi_sendrecv_replace__ -mpi_ssend -mpi_ssend_ -mpi_ssend__ -mpi_ssend_init -mpi_ssend_init_ -mpi_ssend_init__ -mpi_start -mpi_start_ -mpi_start__ -mpi_startall -mpi_startall_ -mpi_startall__ -mpi_status_c2f -mpi_status_c2f_ -mpi_status_c2f__ -mpi_status_f2c -mpi_status_f2c_ -mpi_status_f2c__ -mpi_status_set_cancelled -mpi_status_set_cancelled_ -mpi_status_set_cancelled__ -mpi_status_set_elements -mpi_status_set_elements_ -mpi_status_set_elements__ -mpi_status_set_elements_x -mpi_status_set_elements_x_ -mpi_status_set_elements_x__ -mpi_test -mpi_test_ -mpi_test__ -mpi_test_cancelled -mpi_test_cancelled_ -mpi_test_cancelled__ -mpi_testall -mpi_testall_ -mpi_testall__ -mpi_testany -mpi_testany_ -mpi_testany__ -mpi_testsome -mpi_testsome_ -mpi_testsome__ -mpi_topo_test -mpi_topo_test_ -mpi_topo_test__ -mpi_type_commit -mpi_type_commit_ -mpi_type_commit__ -mpi_type_contiguous -mpi_type_contiguous_ -mpi_type_contiguous__ -mpi_type_create_darray -mpi_type_create_darray_ -mpi_type_create_darray__ -mpi_type_create_f90_complex -mpi_type_create_f90_complex_ -mpi_type_create_f90_complex__ -mpi_type_create_f90_integer -mpi_type_create_f90_integer_ -mpi_type_create_f90_integer__ -mpi_type_create_f90_real -mpi_type_create_f90_real_ -mpi_type_create_f90_real__ -mpi_type_create_hindexed -mpi_type_create_hindexed_ -mpi_type_create_hindexed__ -mpi_type_create_hindexed_block -mpi_type_create_hindexed_block_ -mpi_type_create_hindexed_block__ -mpi_type_create_hvector -mpi_type_create_hvector_ -mpi_type_create_hvector__ -mpi_type_create_indexed_block -mpi_type_create_indexed_block_ -mpi_type_create_indexed_block__ -mpi_type_create_keyval -mpi_type_create_keyval_ -mpi_type_create_keyval__ -mpi_type_create_resized -mpi_type_create_resized_ -mpi_type_create_resized__ -mpi_type_create_struct -mpi_type_create_struct_ -mpi_type_create_struct__ -mpi_type_create_subarray -mpi_type_create_subarray_ -mpi_type_create_subarray__ -mpi_type_delete_attr -mpi_type_delete_attr_ -mpi_type_delete_attr__ -mpi_type_dup -mpi_type_dup_ -mpi_type_dup__ -mpi_type_dup_fn -mpi_type_dup_fn_ -mpi_type_dup_fn__ -mpi_type_extent -mpi_type_extent_ -mpi_type_extent__ -mpi_type_free -mpi_type_free_ -mpi_type_free__ -mpi_type_free_keyval -mpi_type_free_keyval_ -mpi_type_free_keyval__ -mpi_type_get_attr -mpi_type_get_attr_ -mpi_type_get_attr__ -mpi_type_get_contents -mpi_type_get_contents_ -mpi_type_get_contents__ -mpi_type_get_envelope -mpi_type_get_envelope_ -mpi_type_get_envelope__ -mpi_type_get_extent -mpi_type_get_extent_ -mpi_type_get_extent__ -mpi_type_get_extent_x -mpi_type_get_extent_x_ -mpi_type_get_extent_x__ -mpi_type_get_name -mpi_type_get_name_ -mpi_type_get_name__ -mpi_type_get_true_extent -mpi_type_get_true_extent_ -mpi_type_get_true_extent__ -mpi_type_get_true_extent_x -mpi_type_get_true_extent_x_ -mpi_type_get_true_extent_x__ -mpi_type_hindexed -mpi_type_hindexed_ -mpi_type_hindexed__ -mpi_type_hvector -mpi_type_hvector_ -mpi_type_hvector__ -mpi_type_indexed -mpi_type_indexed_ -mpi_type_indexed__ -mpi_type_lb -mpi_type_lb_ -mpi_type_lb__ -mpi_type_match_size -mpi_type_match_size_ -mpi_type_match_size__ -mpi_type_null_copy_fn -mpi_type_null_copy_fn_ -mpi_type_null_copy_fn__ -mpi_type_null_delete_fn -mpi_type_null_delete_fn_ -mpi_type_null_delete_fn__ -mpi_type_set_attr -mpi_type_set_attr_ -mpi_type_set_attr__ -mpi_type_set_name -mpi_type_set_name_ -mpi_type_set_name__ -mpi_type_size -mpi_type_size_ -mpi_type_size__ -mpi_type_size_x -mpi_type_size_x_ -mpi_type_size_x__ -mpi_type_struct -mpi_type_struct_ -mpi_type_struct__ -mpi_type_ub -mpi_type_ub_ -mpi_type_ub__ -mpi_type_vector -mpi_type_vector_ -mpi_type_vector__ -mpi_unpack -mpi_unpack_ -mpi_unpack__ -mpi_unpack_external -mpi_unpack_external_ -mpi_unpack_external__ -mpi_unpublish_name -mpi_unpublish_name_ -mpi_unpublish_name__ -mpi_wait -mpi_wait_ -mpi_wait__ -mpi_waitall -mpi_waitall_ -mpi_waitall__ -mpi_waitany -mpi_waitany_ -mpi_waitany__ -mpi_waitsome -mpi_waitsome_ -mpi_waitsome__ -mpi_win_allocate -mpi_win_allocate_ -mpi_win_allocate__ -mpi_win_allocate_shared -mpi_win_allocate_shared_ -mpi_win_allocate_shared__ -mpi_win_attach -mpi_win_attach_ -mpi_win_attach__ -mpi_win_call_errhandler -mpi_win_call_errhandler_ -mpi_win_call_errhandler__ -mpi_win_complete -mpi_win_complete_ -mpi_win_complete__ -mpi_win_create -mpi_win_create_ -mpi_win_create__ -mpi_win_create_dynamic -mpi_win_create_dynamic_ -mpi_win_create_dynamic__ -mpi_win_create_errhandler -mpi_win_create_errhandler_ -mpi_win_create_errhandler__ -mpi_win_create_keyval -mpi_win_create_keyval_ -mpi_win_create_keyval__ -mpi_win_delete_attr -mpi_win_delete_attr_ -mpi_win_delete_attr__ -mpi_win_detach -mpi_win_detach_ -mpi_win_detach__ -mpi_win_dup_fn -mpi_win_dup_fn_ -mpi_win_dup_fn__ -mpi_win_fence -mpi_win_fence_ -mpi_win_fence__ -mpi_win_flush -mpi_win_flush_ -mpi_win_flush__ -mpi_win_flush_all -mpi_win_flush_all_ -mpi_win_flush_all__ -mpi_win_flush_local -mpi_win_flush_local_ -mpi_win_flush_local__ -mpi_win_flush_local_all -mpi_win_flush_local_all_ -mpi_win_flush_local_all__ -mpi_win_free -mpi_win_free_ -mpi_win_free__ -mpi_win_free_keyval -mpi_win_free_keyval_ -mpi_win_free_keyval__ -mpi_win_get_attr -mpi_win_get_attr_ -mpi_win_get_attr__ -mpi_win_get_errhandler -mpi_win_get_errhandler_ -mpi_win_get_errhandler__ -mpi_win_get_group -mpi_win_get_group_ -mpi_win_get_group__ -mpi_win_get_name -mpi_win_get_name_ -mpi_win_get_name__ -mpi_win_lock -mpi_win_lock_ -mpi_win_lock__ -mpi_win_lock_all -mpi_win_lock_all_ -mpi_win_lock_all__ -mpi_win_null_copy_fn -mpi_win_null_copy_fn_ -mpi_win_null_copy_fn__ -mpi_win_null_delete_fn -mpi_win_null_delete_fn_ -mpi_win_null_delete_fn__ -mpi_win_post -mpi_win_post_ -mpi_win_post__ -mpi_win_set_attr -mpi_win_set_attr_ -mpi_win_set_attr__ -mpi_win_set_errhandler -mpi_win_set_errhandler_ -mpi_win_set_errhandler__ -mpi_win_set_name -mpi_win_set_name_ -mpi_win_set_name__ -mpi_win_shared_query -mpi_win_shared_query_ -mpi_win_shared_query__ -mpi_win_start -mpi_win_start_ -mpi_win_start__ -mpi_win_sync -mpi_win_sync_ -mpi_win_sync__ -mpi_win_test -mpi_win_test_ -mpi_win_test__ -mpi_win_unlock -mpi_win_unlock_ -mpi_win_unlock__ -mpi_win_unlock_all -mpi_win_unlock_all_ -mpi_win_unlock_all__ -mpi_win_wait -mpi_win_wait_ -mpi_win_wait__ -mpi_wtick -mpi_wtick_ -mpi_wtick__ -mpi_wtime -mpi_wtime_ -mpi_wtime__ -mpifcmb5 DATA -mpifcmb5_ DATA -mpifcmb9 DATA -mpifcmb9_ DATA -mpipriv1 DATA -mpipriv1_ DATA -mpipriv2 DATA -mpipriv2_ DATA -mpiprivc DATA -mpiprivc_ DATA -mqs_get_communicator -mqs_next_communicator -mqs_next_operation -mqs_setup_basic_callbacks -mqs_setup_communicator_iterator -mqs_setup_image -mqs_setup_operation_iterator -mqs_setup_process -mqs_update_communicator_list -mqs_version_compatibility -msmpi_get_bsend_overhead -msmpi_get_bsend_overhead_ -msmpi_get_bsend_overhead__ -msmpi_get_version -msmpi_get_version_ -msmpi_get_version__ -pmpi_abort -pmpi_abort_ -pmpi_abort__ -pmpi_accumulate -pmpi_accumulate_ -pmpi_accumulate__ -pmpi_add_error_class -pmpi_add_error_class_ -pmpi_add_error_class__ -pmpi_add_error_code -pmpi_add_error_code_ -pmpi_add_error_code__ -pmpi_add_error_string -pmpi_add_error_string_ -pmpi_add_error_string__ -pmpi_address -pmpi_address_ -pmpi_address__ -pmpi_aint_add -pmpi_aint_add_ -pmpi_aint_add__ -pmpi_aint_diff -pmpi_aint_diff_ -pmpi_aint_diff__ -pmpi_allgather -pmpi_allgather_ -pmpi_allgather__ -pmpi_allgatherv -pmpi_allgatherv_ -pmpi_allgatherv__ -pmpi_alloc_mem -pmpi_alloc_mem_ -pmpi_alloc_mem__ -pmpi_allreduce -pmpi_allreduce_ -pmpi_allreduce__ -pmpi_alltoall -pmpi_alltoall_ -pmpi_alltoall__ -pmpi_alltoallv -pmpi_alltoallv_ -pmpi_alltoallv__ -pmpi_alltoallw -pmpi_alltoallw_ -pmpi_alltoallw__ -pmpi_attr_delete -pmpi_attr_delete_ -pmpi_attr_delete__ -pmpi_attr_get -pmpi_attr_get_ -pmpi_attr_get__ -pmpi_attr_put -pmpi_attr_put_ -pmpi_attr_put__ -pmpi_barrier -pmpi_barrier_ -pmpi_barrier__ -pmpi_bcast -pmpi_bcast_ -pmpi_bcast__ -pmpi_bsend -pmpi_bsend_ -pmpi_bsend__ -pmpi_bsend_init -pmpi_bsend_init_ -pmpi_bsend_init__ -pmpi_buffer_attach -pmpi_buffer_attach_ -pmpi_buffer_attach__ -pmpi_buffer_detach -pmpi_buffer_detach_ -pmpi_buffer_detach__ -pmpi_cancel -pmpi_cancel_ -pmpi_cancel__ -pmpi_cart_coords -pmpi_cart_coords_ -pmpi_cart_coords__ -pmpi_cart_create -pmpi_cart_create_ -pmpi_cart_create__ -pmpi_cart_get -pmpi_cart_get_ -pmpi_cart_get__ -pmpi_cart_map -pmpi_cart_map_ -pmpi_cart_map__ -pmpi_cart_rank -pmpi_cart_rank_ -pmpi_cart_rank__ -pmpi_cart_shift -pmpi_cart_shift_ -pmpi_cart_shift__ -pmpi_cart_sub -pmpi_cart_sub_ -pmpi_cart_sub__ -pmpi_cartdim_get -pmpi_cartdim_get_ -pmpi_cartdim_get__ -pmpi_close_port -pmpi_close_port_ -pmpi_close_port__ -pmpi_comm_accept -pmpi_comm_accept_ -pmpi_comm_accept__ -pmpi_comm_call_errhandler -pmpi_comm_call_errhandler_ -pmpi_comm_call_errhandler__ -pmpi_comm_compare -pmpi_comm_compare_ -pmpi_comm_compare__ -pmpi_comm_connect -pmpi_comm_connect_ -pmpi_comm_connect__ -pmpi_comm_create -pmpi_comm_create_ -pmpi_comm_create__ -pmpi_comm_create_errhandler -pmpi_comm_create_errhandler_ -pmpi_comm_create_errhandler__ -pmpi_comm_create_keyval -pmpi_comm_create_keyval_ -pmpi_comm_create_keyval__ -pmpi_comm_delete_attr -pmpi_comm_delete_attr_ -pmpi_comm_delete_attr__ -pmpi_comm_disconnect -pmpi_comm_disconnect_ -pmpi_comm_disconnect__ -pmpi_comm_dup -pmpi_comm_dup_ -pmpi_comm_dup__ -pmpi_comm_dup_fn -pmpi_comm_dup_fn_ -pmpi_comm_dup_fn__ -pmpi_comm_free -pmpi_comm_free_ -pmpi_comm_free__ -pmpi_comm_free_keyval -pmpi_comm_free_keyval_ -pmpi_comm_free_keyval__ -pmpi_comm_get_attr -pmpi_comm_get_attr_ -pmpi_comm_get_attr__ -pmpi_comm_get_errhandler -pmpi_comm_get_errhandler_ -pmpi_comm_get_errhandler__ -pmpi_comm_get_name -pmpi_comm_get_name_ -pmpi_comm_get_name__ -pmpi_comm_get_parent -pmpi_comm_get_parent_ -pmpi_comm_get_parent__ -pmpi_comm_group -pmpi_comm_group_ -pmpi_comm_group__ -pmpi_comm_join -pmpi_comm_join_ -pmpi_comm_join__ -pmpi_comm_null_copy_fn -pmpi_comm_null_copy_fn_ -pmpi_comm_null_copy_fn__ -pmpi_comm_null_delete_fn -pmpi_comm_null_delete_fn_ -pmpi_comm_null_delete_fn__ -pmpi_comm_rank -pmpi_comm_rank_ -pmpi_comm_rank__ -pmpi_comm_remote_group -pmpi_comm_remote_group_ -pmpi_comm_remote_group__ -pmpi_comm_remote_size -pmpi_comm_remote_size_ -pmpi_comm_remote_size__ -pmpi_comm_set_attr -pmpi_comm_set_attr_ -pmpi_comm_set_attr__ -pmpi_comm_set_errhandler -pmpi_comm_set_errhandler_ -pmpi_comm_set_errhandler__ -pmpi_comm_set_name -pmpi_comm_set_name_ -pmpi_comm_set_name__ -pmpi_comm_size -pmpi_comm_size_ -pmpi_comm_size__ -pmpi_comm_spawn -pmpi_comm_spawn_ -pmpi_comm_spawn__ -pmpi_comm_spawn_multiple -pmpi_comm_spawn_multiple_ -pmpi_comm_spawn_multiple__ -pmpi_comm_split -pmpi_comm_split_ -pmpi_comm_split__ -pmpi_comm_split_type -pmpi_comm_split_type_ -pmpi_comm_split_type__ -pmpi_comm_test_inter -pmpi_comm_test_inter_ -pmpi_comm_test_inter__ -pmpi_compare_and_swap -pmpi_compare_and_swap_ -pmpi_compare_and_swap__ -pmpi_conversion_fn_null -pmpi_conversion_fn_null_ -pmpi_conversion_fn_null__ -pmpi_dims_create -pmpi_dims_create_ -pmpi_dims_create__ -pmpi_dist_graph_create -pmpi_dist_graph_create_ -pmpi_dist_graph_create__ -pmpi_dist_graph_create_adjacent -pmpi_dist_graph_create_adjacent_ -pmpi_dist_graph_create_adjacent__ -pmpi_dist_graph_neighbors -pmpi_dist_graph_neighbors_ -pmpi_dist_graph_neighbors__ -pmpi_dist_graph_neighbors_count -pmpi_dist_graph_neighbors_count_ -pmpi_dist_graph_neighbors_count__ -pmpi_dup_fn -pmpi_dup_fn_ -pmpi_dup_fn__ -pmpi_errhandler_create -pmpi_errhandler_create_ -pmpi_errhandler_create__ -pmpi_errhandler_free -pmpi_errhandler_free_ -pmpi_errhandler_free__ -pmpi_errhandler_get -pmpi_errhandler_get_ -pmpi_errhandler_get__ -pmpi_errhandler_set -pmpi_errhandler_set_ -pmpi_errhandler_set__ -pmpi_error_class -pmpi_error_class_ -pmpi_error_class__ -pmpi_error_string -pmpi_error_string_ -pmpi_error_string__ -pmpi_exscan -pmpi_exscan_ -pmpi_exscan__ -pmpi_fetch_and_op -pmpi_fetch_and_op_ -pmpi_fetch_and_op__ -pmpi_file_call_errhandler -pmpi_file_call_errhandler_ -pmpi_file_call_errhandler__ -pmpi_file_close -pmpi_file_close_ -pmpi_file_close__ -pmpi_file_create_errhandler -pmpi_file_create_errhandler_ -pmpi_file_create_errhandler__ -pmpi_file_delete -pmpi_file_delete_ -pmpi_file_delete__ -pmpi_file_get_amode -pmpi_file_get_amode_ -pmpi_file_get_amode__ -pmpi_file_get_atomicity -pmpi_file_get_atomicity_ -pmpi_file_get_atomicity__ -pmpi_file_get_byte_offset -pmpi_file_get_byte_offset_ -pmpi_file_get_byte_offset__ -pmpi_file_get_errhandler -pmpi_file_get_errhandler_ -pmpi_file_get_errhandler__ -pmpi_file_get_group -pmpi_file_get_group_ -pmpi_file_get_group__ -pmpi_file_get_info -pmpi_file_get_info_ -pmpi_file_get_info__ -pmpi_file_get_position -pmpi_file_get_position_ -pmpi_file_get_position__ -pmpi_file_get_position_shared -pmpi_file_get_position_shared_ -pmpi_file_get_position_shared__ -pmpi_file_get_size -pmpi_file_get_size_ -pmpi_file_get_size__ -pmpi_file_get_type_extent -pmpi_file_get_type_extent_ -pmpi_file_get_type_extent__ -pmpi_file_get_view -pmpi_file_get_view_ -pmpi_file_get_view__ -pmpi_file_iread -pmpi_file_iread_ -pmpi_file_iread__ -pmpi_file_iread_at -pmpi_file_iread_at_ -pmpi_file_iread_at__ -pmpi_file_iread_shared -pmpi_file_iread_shared_ -pmpi_file_iread_shared__ -pmpi_file_iwrite -pmpi_file_iwrite_ -pmpi_file_iwrite__ -pmpi_file_iwrite_at -pmpi_file_iwrite_at_ -pmpi_file_iwrite_at__ -pmpi_file_iwrite_shared -pmpi_file_iwrite_shared_ -pmpi_file_iwrite_shared__ -pmpi_file_open -pmpi_file_open_ -pmpi_file_open__ -pmpi_file_preallocate -pmpi_file_preallocate_ -pmpi_file_preallocate__ -pmpi_file_read -pmpi_file_read_ -pmpi_file_read__ -pmpi_file_read_all -pmpi_file_read_all_ -pmpi_file_read_all__ -pmpi_file_read_all_begin -pmpi_file_read_all_begin_ -pmpi_file_read_all_begin__ -pmpi_file_read_all_end -pmpi_file_read_all_end_ -pmpi_file_read_all_end__ -pmpi_file_read_at -pmpi_file_read_at_ -pmpi_file_read_at__ -pmpi_file_read_at_all -pmpi_file_read_at_all_ -pmpi_file_read_at_all__ -pmpi_file_read_at_all_begin -pmpi_file_read_at_all_begin_ -pmpi_file_read_at_all_begin__ -pmpi_file_read_at_all_end -pmpi_file_read_at_all_end_ -pmpi_file_read_at_all_end__ -pmpi_file_read_ordered -pmpi_file_read_ordered_ -pmpi_file_read_ordered__ -pmpi_file_read_ordered_begin -pmpi_file_read_ordered_begin_ -pmpi_file_read_ordered_begin__ -pmpi_file_read_ordered_end -pmpi_file_read_ordered_end_ -pmpi_file_read_ordered_end__ -pmpi_file_read_shared -pmpi_file_read_shared_ -pmpi_file_read_shared__ -pmpi_file_seek -pmpi_file_seek_ -pmpi_file_seek__ -pmpi_file_seek_shared -pmpi_file_seek_shared_ -pmpi_file_seek_shared__ -pmpi_file_set_atomicity -pmpi_file_set_atomicity_ -pmpi_file_set_atomicity__ -pmpi_file_set_errhandler -pmpi_file_set_errhandler_ -pmpi_file_set_errhandler__ -pmpi_file_set_info -pmpi_file_set_info_ -pmpi_file_set_info__ -pmpi_file_set_size -pmpi_file_set_size_ -pmpi_file_set_size__ -pmpi_file_set_view -pmpi_file_set_view_ -pmpi_file_set_view__ -pmpi_file_sync -pmpi_file_sync_ -pmpi_file_sync__ -pmpi_file_write -pmpi_file_write_ -pmpi_file_write__ -pmpi_file_write_all -pmpi_file_write_all_ -pmpi_file_write_all__ -pmpi_file_write_all_begin -pmpi_file_write_all_begin_ -pmpi_file_write_all_begin__ -pmpi_file_write_all_end -pmpi_file_write_all_end_ -pmpi_file_write_all_end__ -pmpi_file_write_at -pmpi_file_write_at_ -pmpi_file_write_at__ -pmpi_file_write_at_all -pmpi_file_write_at_all_ -pmpi_file_write_at_all__ -pmpi_file_write_at_all_begin -pmpi_file_write_at_all_begin_ -pmpi_file_write_at_all_begin__ -pmpi_file_write_at_all_end -pmpi_file_write_at_all_end_ -pmpi_file_write_at_all_end__ -pmpi_file_write_ordered -pmpi_file_write_ordered_ -pmpi_file_write_ordered__ -pmpi_file_write_ordered_begin -pmpi_file_write_ordered_begin_ -pmpi_file_write_ordered_begin__ -pmpi_file_write_ordered_end -pmpi_file_write_ordered_end_ -pmpi_file_write_ordered_end__ -pmpi_file_write_shared -pmpi_file_write_shared_ -pmpi_file_write_shared__ -pmpi_finalize -pmpi_finalize_ -pmpi_finalize__ -pmpi_finalized -pmpi_finalized_ -pmpi_finalized__ -pmpi_free_mem -pmpi_free_mem_ -pmpi_free_mem__ -pmpi_gather -pmpi_gather_ -pmpi_gather__ -pmpi_gatherv -pmpi_gatherv_ -pmpi_gatherv__ -pmpi_get -pmpi_get_ -pmpi_get__ -pmpi_get_accumulate -pmpi_get_accumulate_ -pmpi_get_accumulate__ -pmpi_get_address -pmpi_get_address_ -pmpi_get_address__ -pmpi_get_count -pmpi_get_count_ -pmpi_get_count__ -pmpi_get_elements -pmpi_get_elements_ -pmpi_get_elements__ -pmpi_get_elements_x -pmpi_get_elements_x_ -pmpi_get_elements_x__ -pmpi_get_library_version -pmpi_get_library_version_ -pmpi_get_library_version__ -pmpi_get_processor_name -pmpi_get_processor_name_ -pmpi_get_processor_name__ -pmpi_get_version -pmpi_get_version_ -pmpi_get_version__ -pmpi_graph_create -pmpi_graph_create_ -pmpi_graph_create__ -pmpi_graph_get -pmpi_graph_get_ -pmpi_graph_get__ -pmpi_graph_map -pmpi_graph_map_ -pmpi_graph_map__ -pmpi_graph_neighbors -pmpi_graph_neighbors_ -pmpi_graph_neighbors__ -pmpi_graph_neighbors_count -pmpi_graph_neighbors_count_ -pmpi_graph_neighbors_count__ -pmpi_graphdims_get -pmpi_graphdims_get_ -pmpi_graphdims_get__ -pmpi_grequest_complete -pmpi_grequest_complete_ -pmpi_grequest_complete__ -pmpi_grequest_start -pmpi_grequest_start_ -pmpi_grequest_start__ -pmpi_group_compare -pmpi_group_compare_ -pmpi_group_compare__ -pmpi_group_difference -pmpi_group_difference_ -pmpi_group_difference__ -pmpi_group_excl -pmpi_group_excl_ -pmpi_group_excl__ -pmpi_group_free -pmpi_group_free_ -pmpi_group_free__ -pmpi_group_incl -pmpi_group_incl_ -pmpi_group_incl__ -pmpi_group_intersection -pmpi_group_intersection_ -pmpi_group_intersection__ -pmpi_group_range_excl -pmpi_group_range_excl_ -pmpi_group_range_excl__ -pmpi_group_range_incl -pmpi_group_range_incl_ -pmpi_group_range_incl__ -pmpi_group_rank -pmpi_group_rank_ -pmpi_group_rank__ -pmpi_group_size -pmpi_group_size_ -pmpi_group_size__ -pmpi_group_translate_ranks -pmpi_group_translate_ranks_ -pmpi_group_translate_ranks__ -pmpi_group_union -pmpi_group_union_ -pmpi_group_union__ -pmpi_iallgather -pmpi_iallgather_ -pmpi_iallgather__ -pmpi_iallgatherv -pmpi_iallgatherv_ -pmpi_iallgatherv__ -pmpi_iallreduce -pmpi_iallreduce_ -pmpi_iallreduce__ -pmpi_ialltoall -pmpi_ialltoall_ -pmpi_ialltoall__ -pmpi_ialltoallv -pmpi_ialltoallv_ -pmpi_ialltoallv__ -pmpi_ialltoallw -pmpi_ialltoallw_ -pmpi_ialltoallw__ -pmpi_ibarrier -pmpi_ibarrier_ -pmpi_ibarrier__ -pmpi_ibcast -pmpi_ibcast_ -pmpi_ibcast__ -pmpi_ibsend -pmpi_ibsend_ -pmpi_ibsend__ -pmpi_iexscan -pmpi_iexscan_ -pmpi_iexscan__ -pmpi_igather -pmpi_igather_ -pmpi_igather__ -pmpi_igatherv -pmpi_igatherv_ -pmpi_igatherv__ -pmpi_improbe -pmpi_improbe_ -pmpi_improbe__ -pmpi_imrecv -pmpi_imrecv_ -pmpi_imrecv__ -pmpi_info_create -pmpi_info_create_ -pmpi_info_create__ -pmpi_info_delete -pmpi_info_delete_ -pmpi_info_delete__ -pmpi_info_dup -pmpi_info_dup_ -pmpi_info_dup__ -pmpi_info_free -pmpi_info_free_ -pmpi_info_free__ -pmpi_info_get -pmpi_info_get_ -pmpi_info_get__ -pmpi_info_get_nkeys -pmpi_info_get_nkeys_ -pmpi_info_get_nkeys__ -pmpi_info_get_nthkey -pmpi_info_get_nthkey_ -pmpi_info_get_nthkey__ -pmpi_info_get_valuelen -pmpi_info_get_valuelen_ -pmpi_info_get_valuelen__ -pmpi_info_set -pmpi_info_set_ -pmpi_info_set__ -pmpi_init -pmpi_init_ -pmpi_init__ -pmpi_init_thread -pmpi_init_thread_ -pmpi_init_thread__ -pmpi_initialized -pmpi_initialized_ -pmpi_initialized__ -pmpi_intercomm_create -pmpi_intercomm_create_ -pmpi_intercomm_create__ -pmpi_intercomm_merge -pmpi_intercomm_merge_ -pmpi_intercomm_merge__ -pmpi_iprobe -pmpi_iprobe_ -pmpi_iprobe__ -pmpi_irecv -pmpi_irecv_ -pmpi_irecv__ -pmpi_ireduce -pmpi_ireduce_ -pmpi_ireduce__ -pmpi_ireduce_scatter -pmpi_ireduce_scatter_ -pmpi_ireduce_scatter__ -pmpi_ireduce_scatter_block -pmpi_ireduce_scatter_block_ -pmpi_ireduce_scatter_block__ -pmpi_irsend -pmpi_irsend_ -pmpi_irsend__ -pmpi_is_thread_main -pmpi_is_thread_main_ -pmpi_is_thread_main__ -pmpi_iscan -pmpi_iscan_ -pmpi_iscan__ -pmpi_iscatter -pmpi_iscatter_ -pmpi_iscatter__ -pmpi_iscatterv -pmpi_iscatterv_ -pmpi_iscatterv__ -pmpi_isend -pmpi_isend_ -pmpi_isend__ -pmpi_issend -pmpi_issend_ -pmpi_issend__ -pmpi_keyval_create -pmpi_keyval_create_ -pmpi_keyval_create__ -pmpi_keyval_free -pmpi_keyval_free_ -pmpi_keyval_free__ -pmpi_lookup_name -pmpi_lookup_name_ -pmpi_lookup_name__ -pmpi_mprobe -pmpi_mprobe_ -pmpi_mprobe__ -pmpi_mrecv -pmpi_mrecv_ -pmpi_mrecv__ -pmpi_null_copy_fn -pmpi_null_copy_fn_ -pmpi_null_copy_fn__ -pmpi_null_delete_fn -pmpi_null_delete_fn_ -pmpi_null_delete_fn__ -pmpi_op_commutative -pmpi_op_commutative_ -pmpi_op_commutative__ -pmpi_op_create -pmpi_op_create_ -pmpi_op_create__ -pmpi_op_free -pmpi_op_free_ -pmpi_op_free__ -pmpi_open_port -pmpi_open_port_ -pmpi_open_port__ -pmpi_pack -pmpi_pack_ -pmpi_pack__ -pmpi_pack_external -pmpi_pack_external_ -pmpi_pack_external__ -pmpi_pack_external_size -pmpi_pack_external_size_ -pmpi_pack_external_size__ -pmpi_pack_size -pmpi_pack_size_ -pmpi_pack_size__ -pmpi_pcontrol -pmpi_pcontrol_ -pmpi_pcontrol__ -pmpi_probe -pmpi_probe_ -pmpi_probe__ -pmpi_publish_name -pmpi_publish_name_ -pmpi_publish_name__ -pmpi_put -pmpi_put_ -pmpi_put__ -pmpi_query_thread -pmpi_query_thread_ -pmpi_query_thread__ -pmpi_raccumulate -pmpi_raccumulate_ -pmpi_raccumulate__ -pmpi_recv -pmpi_recv_ -pmpi_recv__ -pmpi_recv_init -pmpi_recv_init_ -pmpi_recv_init__ -pmpi_reduce -pmpi_reduce_ -pmpi_reduce__ -pmpi_reduce_local -pmpi_reduce_local_ -pmpi_reduce_local__ -pmpi_reduce_scatter -pmpi_reduce_scatter_ -pmpi_reduce_scatter__ -pmpi_reduce_scatter_block -pmpi_reduce_scatter_block_ -pmpi_reduce_scatter_block__ -pmpi_register_datarep -pmpi_register_datarep_ -pmpi_register_datarep__ -pmpi_request_free -pmpi_request_free_ -pmpi_request_free__ -pmpi_request_get_status -pmpi_request_get_status_ -pmpi_request_get_status__ -pmpi_rget -pmpi_rget_ -pmpi_rget__ -pmpi_rget_accumulate -pmpi_rget_accumulate_ -pmpi_rget_accumulate__ -pmpi_rput -pmpi_rput_ -pmpi_rput__ -pmpi_rsend -pmpi_rsend_ -pmpi_rsend__ -pmpi_rsend_init -pmpi_rsend_init_ -pmpi_rsend_init__ -pmpi_scan -pmpi_scan_ -pmpi_scan__ -pmpi_scatter -pmpi_scatter_ -pmpi_scatter__ -pmpi_scatterv -pmpi_scatterv_ -pmpi_scatterv__ -pmpi_send -pmpi_send_ -pmpi_send__ -pmpi_send_init -pmpi_send_init_ -pmpi_send_init__ -pmpi_sendrecv -pmpi_sendrecv_ -pmpi_sendrecv__ -pmpi_sendrecv_replace -pmpi_sendrecv_replace_ -pmpi_sendrecv_replace__ -pmpi_ssend -pmpi_ssend_ -pmpi_ssend__ -pmpi_ssend_init -pmpi_ssend_init_ -pmpi_ssend_init__ -pmpi_start -pmpi_start_ -pmpi_start__ -pmpi_startall -pmpi_startall_ -pmpi_startall__ -pmpi_status_c2f -pmpi_status_c2f_ -pmpi_status_c2f__ -pmpi_status_f2c -pmpi_status_f2c_ -pmpi_status_f2c__ -pmpi_status_set_cancelled -pmpi_status_set_cancelled_ -pmpi_status_set_cancelled__ -pmpi_status_set_elements -pmpi_status_set_elements_ -pmpi_status_set_elements__ -pmpi_status_set_elements_x -pmpi_status_set_elements_x_ -pmpi_status_set_elements_x__ -pmpi_test -pmpi_test_ -pmpi_test__ -pmpi_test_cancelled -pmpi_test_cancelled_ -pmpi_test_cancelled__ -pmpi_testall -pmpi_testall_ -pmpi_testall__ -pmpi_testany -pmpi_testany_ -pmpi_testany__ -pmpi_testsome -pmpi_testsome_ -pmpi_testsome__ -pmpi_topo_test -pmpi_topo_test_ -pmpi_topo_test__ -pmpi_type_commit -pmpi_type_commit_ -pmpi_type_commit__ -pmpi_type_contiguous -pmpi_type_contiguous_ -pmpi_type_contiguous__ -pmpi_type_create_darray -pmpi_type_create_darray_ -pmpi_type_create_darray__ -pmpi_type_create_f90_complex_ -pmpi_type_create_f90_complex__ -pmpi_type_create_f90_integer_ -pmpi_type_create_f90_integer__ -pmpi_type_create_f90_real_ -pmpi_type_create_f90_real__ -pmpi_type_create_hindexed -pmpi_type_create_hindexed_ -pmpi_type_create_hindexed__ -pmpi_type_create_hindexed_block -pmpi_type_create_hindexed_block_ -pmpi_type_create_hindexed_block__ -pmpi_type_create_hvector -pmpi_type_create_hvector_ -pmpi_type_create_hvector__ -pmpi_type_create_indexed_block -pmpi_type_create_indexed_block_ -pmpi_type_create_indexed_block__ -pmpi_type_create_keyval -pmpi_type_create_keyval_ -pmpi_type_create_keyval__ -pmpi_type_create_resized -pmpi_type_create_resized_ -pmpi_type_create_resized__ -pmpi_type_create_struct -pmpi_type_create_struct_ -pmpi_type_create_struct__ -pmpi_type_create_subarray -pmpi_type_create_subarray_ -pmpi_type_create_subarray__ -pmpi_type_delete_attr -pmpi_type_delete_attr_ -pmpi_type_delete_attr__ -pmpi_type_dup -pmpi_type_dup_ -pmpi_type_dup__ -pmpi_type_dup_fn -pmpi_type_dup_fn_ -pmpi_type_dup_fn__ -pmpi_type_extent -pmpi_type_extent_ -pmpi_type_extent__ -pmpi_type_free -pmpi_type_free_ -pmpi_type_free__ -pmpi_type_free_keyval -pmpi_type_free_keyval_ -pmpi_type_free_keyval__ -pmpi_type_get_attr -pmpi_type_get_attr_ -pmpi_type_get_attr__ -pmpi_type_get_contents -pmpi_type_get_contents_ -pmpi_type_get_contents__ -pmpi_type_get_envelope -pmpi_type_get_envelope_ -pmpi_type_get_envelope__ -pmpi_type_get_extent -pmpi_type_get_extent_ -pmpi_type_get_extent__ -pmpi_type_get_extent_x -pmpi_type_get_extent_x_ -pmpi_type_get_extent_x__ -pmpi_type_get_name -pmpi_type_get_name_ -pmpi_type_get_name__ -pmpi_type_get_true_extent -pmpi_type_get_true_extent_ -pmpi_type_get_true_extent__ -pmpi_type_get_true_extent_x -pmpi_type_get_true_extent_x_ -pmpi_type_get_true_extent_x__ -pmpi_type_hindexed -pmpi_type_hindexed_ -pmpi_type_hindexed__ -pmpi_type_hvector -pmpi_type_hvector_ -pmpi_type_hvector__ -pmpi_type_indexed -pmpi_type_indexed_ -pmpi_type_indexed__ -pmpi_type_lb -pmpi_type_lb_ -pmpi_type_lb__ -pmpi_type_match_size -pmpi_type_match_size_ -pmpi_type_match_size__ -pmpi_type_null_copy_fn -pmpi_type_null_copy_fn_ -pmpi_type_null_copy_fn__ -pmpi_type_null_delete_fn -pmpi_type_null_delete_fn_ -pmpi_type_null_delete_fn__ -pmpi_type_set_attr -pmpi_type_set_attr_ -pmpi_type_set_attr__ -pmpi_type_set_name -pmpi_type_set_name_ -pmpi_type_set_name__ -pmpi_type_size -pmpi_type_size_ -pmpi_type_size__ -pmpi_type_size_x -pmpi_type_size_x_ -pmpi_type_size_x__ -pmpi_type_struct -pmpi_type_struct_ -pmpi_type_struct__ -pmpi_type_ub -pmpi_type_ub_ -pmpi_type_ub__ -pmpi_type_vector -pmpi_type_vector_ -pmpi_type_vector__ -pmpi_unpack -pmpi_unpack_ -pmpi_unpack__ -pmpi_unpack_external -pmpi_unpack_external_ -pmpi_unpack_external__ -pmpi_unpublish_name -pmpi_unpublish_name_ -pmpi_unpublish_name__ -pmpi_wait -pmpi_wait_ -pmpi_wait__ -pmpi_waitall -pmpi_waitall_ -pmpi_waitall__ -pmpi_waitany -pmpi_waitany_ -pmpi_waitany__ -pmpi_waitsome -pmpi_waitsome_ -pmpi_waitsome__ -pmpi_win_allocate -pmpi_win_allocate_ -pmpi_win_allocate__ -pmpi_win_allocate_shared -pmpi_win_allocate_shared_ -pmpi_win_allocate_shared__ -pmpi_win_attach -pmpi_win_attach_ -pmpi_win_attach__ -pmpi_win_call_errhandler -pmpi_win_call_errhandler_ -pmpi_win_call_errhandler__ -pmpi_win_complete -pmpi_win_complete_ -pmpi_win_complete__ -pmpi_win_create -pmpi_win_create_ -pmpi_win_create__ -pmpi_win_create_dynamic -pmpi_win_create_dynamic_ -pmpi_win_create_dynamic__ -pmpi_win_create_errhandler -pmpi_win_create_errhandler_ -pmpi_win_create_errhandler__ -pmpi_win_create_keyval -pmpi_win_create_keyval_ -pmpi_win_create_keyval__ -pmpi_win_delete_attr -pmpi_win_delete_attr_ -pmpi_win_delete_attr__ -pmpi_win_detach -pmpi_win_detach_ -pmpi_win_detach__ -pmpi_win_dup_fn -pmpi_win_dup_fn_ -pmpi_win_dup_fn__ -pmpi_win_fence -pmpi_win_fence_ -pmpi_win_fence__ -pmpi_win_flush -pmpi_win_flush_ -pmpi_win_flush__ -pmpi_win_flush_all -pmpi_win_flush_all_ -pmpi_win_flush_all__ -pmpi_win_flush_local -pmpi_win_flush_local_ -pmpi_win_flush_local__ -pmpi_win_flush_local_all -pmpi_win_flush_local_all_ -pmpi_win_flush_local_all__ -pmpi_win_free -pmpi_win_free_ -pmpi_win_free__ -pmpi_win_free_keyval -pmpi_win_free_keyval_ -pmpi_win_free_keyval__ -pmpi_win_get_attr -pmpi_win_get_attr_ -pmpi_win_get_attr__ -pmpi_win_get_errhandler -pmpi_win_get_errhandler_ -pmpi_win_get_errhandler__ -pmpi_win_get_group -pmpi_win_get_group_ -pmpi_win_get_group__ -pmpi_win_get_name -pmpi_win_get_name_ -pmpi_win_get_name__ -pmpi_win_lock -pmpi_win_lock_ -pmpi_win_lock__ -pmpi_win_lock_all -pmpi_win_lock_all_ -pmpi_win_lock_all__ -pmpi_win_null_copy_fn -pmpi_win_null_copy_fn_ -pmpi_win_null_copy_fn__ -pmpi_win_null_delete_fn -pmpi_win_null_delete_fn_ -pmpi_win_null_delete_fn__ -pmpi_win_post -pmpi_win_post_ -pmpi_win_post__ -pmpi_win_set_attr -pmpi_win_set_attr_ -pmpi_win_set_attr__ -pmpi_win_set_errhandler -pmpi_win_set_errhandler_ -pmpi_win_set_errhandler__ -pmpi_win_set_name -pmpi_win_set_name_ -pmpi_win_set_name__ -pmpi_win_shared_query -pmpi_win_shared_query_ -pmpi_win_shared_query__ -pmpi_win_start -pmpi_win_start_ -pmpi_win_start__ -pmpi_win_sync -pmpi_win_sync_ -pmpi_win_sync__ -pmpi_win_test -pmpi_win_test_ -pmpi_win_test__ -pmpi_win_unlock -pmpi_win_unlock_ -pmpi_win_unlock__ -pmpi_win_unlock_all -pmpi_win_unlock_all_ -pmpi_win_unlock_all__ -pmpi_win_wait -pmpi_win_wait_ -pmpi_win_wait__ -pmpi_wtick -pmpi_wtick_ -pmpi_wtick__ -pmpi_wtime -pmpi_wtime_ -pmpi_wtime__ -pmsmpi_get_bsend_overhead -pmsmpi_get_bsend_overhead_ -pmsmpi_get_bsend_overhead__ -pmsmpi_get_version -pmsmpi_get_version_ -pmsmpi_get_version__ -recvq_posted DATA -recvq_unexpected DATA +; +; Definition file of msmpi.dll +; Automatic generated by gendef +; written by Kai Tietz 2008 +; +LIBRARY "msmpi.dll" +EXPORTS +MPIR_Sendq_head DATA +MSMPI_Get_pm_interface +MSMPI_pm_query_interface +mqs_image_has_queues +mqs_process_has_queues +MPIFCMB5 DATA +MPIFCMB9 DATA +MPIPRIV1 DATA +MPIPRIV2 DATA +MPIPRIVC DATA +MPIR_All_communicators DATA +MPIR_Comm_errhandler_set_proxy +MPIR_Dup_fn +MPIR_Error +MPIR_File_errhandler_set_proxy +MPIR_Free +MPIR_Grequest_set_proxy +MPIR_Keyval_set_proxy +MPIR_Malloc +MPIR_Op_set_proxy +MPIR_Win_errhandler_set_proxy +MPIR_debug_gate DATA +MPIR_dll_name DATA +MPI_ABORT +MPI_ACCUMULATE +MPI_ADDRESS +MPI_ADD_ERROR_CLASS +MPI_ADD_ERROR_CODE +MPI_ADD_ERROR_STRING +MPI_AINT_ADD +MPI_AINT_DIFF +MPI_ALLGATHER +MPI_ALLGATHERV +MPI_ALLOC_MEM +MPI_ALLREDUCE +MPI_ALLTOALL +MPI_ALLTOALLV +MPI_ALLTOALLW +MPI_ATTR_DELETE +MPI_ATTR_GET +MPI_ATTR_PUT +MPI_Abort +MPI_Accumulate +MPI_Add_error_class +MPI_Add_error_code +MPI_Add_error_string +MPI_Address +MPI_Aint_add +MPI_Aint_diff +MPI_Allgather +MPI_Allgatherv +MPI_Alloc_mem +MPI_Allreduce +MPI_Alltoall +MPI_Alltoallv +MPI_Alltoallw +MPI_Attr_delete +MPI_Attr_get +MPI_Attr_put +MPI_BARRIER +MPI_BCAST +MPI_BSEND +MPI_BSEND_INIT +MPI_BUFFER_ATTACH +MPI_BUFFER_DETACH +MPI_Barrier +MPI_Bcast +MPI_Bsend +MPI_Bsend_init +MPI_Buffer_attach +MPI_Buffer_detach +MPI_CANCEL +MPI_CARTDIM_GET +MPI_CART_COORDS +MPI_CART_CREATE +MPI_CART_GET +MPI_CART_MAP +MPI_CART_RANK +MPI_CART_SHIFT +MPI_CART_SUB +MPI_CLOSE_PORT +MPI_COMM_ACCEPT +MPI_COMM_CALL_ERRHANDLER +MPI_COMM_COMPARE +MPI_COMM_CONNECT +MPI_COMM_CREATE +MPI_COMM_CREATE_ERRHANDLER +MPI_COMM_CREATE_KEYVAL +MPI_COMM_DELETE_ATTR +MPI_COMM_DISCONNECT +MPI_COMM_DUP +MPI_COMM_DUP_FN +MPI_COMM_FREE +MPI_COMM_FREE_KEYVAL +MPI_COMM_GET_ATTR +MPI_COMM_GET_ERRHANDLER +MPI_COMM_GET_NAME +MPI_COMM_GET_PARENT +MPI_COMM_GROUP +MPI_COMM_JOIN +MPI_COMM_NULL_COPY_FN +MPI_COMM_NULL_DELETE_FN +MPI_COMM_RANK +MPI_COMM_REMOTE_GROUP +MPI_COMM_REMOTE_SIZE +MPI_COMM_SET_ATTR +MPI_COMM_SET_ERRHANDLER +MPI_COMM_SET_NAME +MPI_COMM_SIZE +MPI_COMM_SPAWN +MPI_COMM_SPAWN_MULTIPLE +MPI_COMM_SPLIT +MPI_COMM_SPLIT_TYPE +MPI_COMM_TEST_INTER +MPI_COMPARE_AND_SWAP +MPI_CONVERSION_FN_NULL +MPI_Cancel +MPI_Cart_coords +MPI_Cart_create +MPI_Cart_get +MPI_Cart_map +MPI_Cart_rank +MPI_Cart_shift +MPI_Cart_sub +MPI_Cartdim_get +MPI_Close_port +MPI_Comm_accept +MPI_Comm_call_errhandler +MPI_Comm_compare +MPI_Comm_connect +MPI_Comm_create +MPI_Comm_create_errhandler +MPI_Comm_create_keyval +MPI_Comm_delete_attr +MPI_Comm_disconnect +MPI_Comm_dup +MPI_Comm_free +MPI_Comm_free_keyval +MPI_Comm_get_attr +MPI_Comm_get_errhandler +MPI_Comm_get_name +MPI_Comm_get_parent +MPI_Comm_group +MPI_Comm_join +MPI_Comm_rank +MPI_Comm_remote_group +MPI_Comm_remote_size +MPI_Comm_set_attr +MPI_Comm_set_errhandler +MPI_Comm_set_name +MPI_Comm_size +MPI_Comm_spawn +MPI_Comm_spawn_multiple +MPI_Comm_split +MPI_Comm_split_type +MPI_Comm_test_inter +MPI_Compare_and_swap +MPI_DIMS_CREATE +MPI_DIST_GRAPH_CREATE +MPI_DIST_GRAPH_CREATE_ADJACENT +MPI_DIST_GRAPH_NEIGHBORS +MPI_DIST_GRAPH_NEIGHBORS_COUNT +MPI_DUP_FN +MPI_Dims_create +MPI_Dist_graph_create +MPI_Dist_graph_create_adjacent +MPI_Dist_graph_neighbors +MPI_Dist_graph_neighbors_count +MPI_ERRHANDLER_CREATE +MPI_ERRHANDLER_FREE +MPI_ERRHANDLER_GET +MPI_ERRHANDLER_SET +MPI_ERROR_CLASS +MPI_ERROR_STRING +MPI_EXSCAN +MPI_Errhandler_create +MPI_Errhandler_free +MPI_Errhandler_get +MPI_Errhandler_set +MPI_Error_class +MPI_Error_string +MPI_Exscan +MPI_FETCH_AND_OP +MPI_FILE_CALL_ERRHANDLER +MPI_FILE_CLOSE +MPI_FILE_CREATE_ERRHANDLER +MPI_FILE_DELETE +MPI_FILE_GET_AMODE +MPI_FILE_GET_ATOMICITY +MPI_FILE_GET_BYTE_OFFSET +MPI_FILE_GET_ERRHANDLER +MPI_FILE_GET_GROUP +MPI_FILE_GET_INFO +MPI_FILE_GET_POSITION +MPI_FILE_GET_POSITION_SHARED +MPI_FILE_GET_SIZE +MPI_FILE_GET_TYPE_EXTENT +MPI_FILE_GET_VIEW +MPI_FILE_IREAD +MPI_FILE_IREAD_AT +MPI_FILE_IREAD_SHARED +MPI_FILE_IWRITE +MPI_FILE_IWRITE_AT +MPI_FILE_IWRITE_SHARED +MPI_FILE_OPEN +MPI_FILE_PREALLOCATE +MPI_FILE_READ +MPI_FILE_READ_ALL +MPI_FILE_READ_ALL_BEGIN +MPI_FILE_READ_ALL_END +MPI_FILE_READ_AT +MPI_FILE_READ_AT_ALL +MPI_FILE_READ_AT_ALL_BEGIN +MPI_FILE_READ_AT_ALL_END +MPI_FILE_READ_ORDERED +MPI_FILE_READ_ORDERED_BEGIN +MPI_FILE_READ_ORDERED_END +MPI_FILE_READ_SHARED +MPI_FILE_SEEK +MPI_FILE_SEEK_SHARED +MPI_FILE_SET_ATOMICITY +MPI_FILE_SET_ERRHANDLER +MPI_FILE_SET_INFO +MPI_FILE_SET_SIZE +MPI_FILE_SET_VIEW +MPI_FILE_SYNC +MPI_FILE_WRITE +MPI_FILE_WRITE_ALL +MPI_FILE_WRITE_ALL_BEGIN +MPI_FILE_WRITE_ALL_END +MPI_FILE_WRITE_AT +MPI_FILE_WRITE_AT_ALL +MPI_FILE_WRITE_AT_ALL_BEGIN +MPI_FILE_WRITE_AT_ALL_END +MPI_FILE_WRITE_ORDERED +MPI_FILE_WRITE_ORDERED_BEGIN +MPI_FILE_WRITE_ORDERED_END +MPI_FILE_WRITE_SHARED +MPI_FINALIZE +MPI_FINALIZED +MPI_FREE_MEM +MPI_F_STATUSES_IGNORE DATA +MPI_F_STATUS_IGNORE DATA +MPI_Fetch_and_op +MPI_File_c2f +MPI_File_call_errhandler +MPI_File_close +MPI_File_create_errhandler +MPI_File_delete +MPI_File_f2c +MPI_File_get_amode +MPI_File_get_atomicity +MPI_File_get_byte_offset +MPI_File_get_errhandler +MPI_File_get_group +MPI_File_get_info +MPI_File_get_position +MPI_File_get_position_shared +MPI_File_get_size +MPI_File_get_type_extent +MPI_File_get_view +MPI_File_iread +MPI_File_iread_at +MPI_File_iread_shared +MPI_File_iwrite +MPI_File_iwrite_at +MPI_File_iwrite_shared +MPI_File_open +MPI_File_preallocate +MPI_File_read +MPI_File_read_all +MPI_File_read_all_begin +MPI_File_read_all_end +MPI_File_read_at +MPI_File_read_at_all +MPI_File_read_at_all_begin +MPI_File_read_at_all_end +MPI_File_read_ordered +MPI_File_read_ordered_begin +MPI_File_read_ordered_end +MPI_File_read_shared +MPI_File_seek +MPI_File_seek_shared +MPI_File_set_atomicity +MPI_File_set_errhandler +MPI_File_set_info +MPI_File_set_size +MPI_File_set_view +MPI_File_sync +MPI_File_write +MPI_File_write_all +MPI_File_write_all_begin +MPI_File_write_all_end +MPI_File_write_at +MPI_File_write_at_all +MPI_File_write_at_all_begin +MPI_File_write_at_all_end +MPI_File_write_ordered +MPI_File_write_ordered_begin +MPI_File_write_ordered_end +MPI_File_write_shared +MPI_Finalize +MPI_Finalized +MPI_Free_mem +MPI_GATHER +MPI_GATHERV +MPI_GET +MPI_GET_ACCUMULATE +MPI_GET_ADDRESS +MPI_GET_COUNT +MPI_GET_ELEMENTS +MPI_GET_ELEMENTS_X +MPI_GET_LIBRARY_VERSION +MPI_GET_PROCESSOR_NAME +MPI_GET_VERSION +MPI_GRAPHDIMS_GET +MPI_GRAPH_CREATE +MPI_GRAPH_GET +MPI_GRAPH_MAP +MPI_GRAPH_NEIGHBORS +MPI_GRAPH_NEIGHBORS_COUNT +MPI_GREQUEST_COMPLETE +MPI_GREQUEST_START +MPI_GROUP_COMPARE +MPI_GROUP_DIFFERENCE +MPI_GROUP_EXCL +MPI_GROUP_FREE +MPI_GROUP_INCL +MPI_GROUP_INTERSECTION +MPI_GROUP_RANGE_EXCL +MPI_GROUP_RANGE_INCL +MPI_GROUP_RANK +MPI_GROUP_SIZE +MPI_GROUP_TRANSLATE_RANKS +MPI_GROUP_UNION +MPI_Gather +MPI_Gatherv +MPI_Get +MPI_Get_accumulate +MPI_Get_address +MPI_Get_count +MPI_Get_elements +MPI_Get_elements_x +MPI_Get_library_version +MPI_Get_processor_name +MPI_Get_version +MPI_Graph_create +MPI_Graph_get +MPI_Graph_map +MPI_Graph_neighbors +MPI_Graph_neighbors_count +MPI_Graphdims_get +MPI_Grequest_complete +MPI_Grequest_start +MPI_Group_compare +MPI_Group_difference +MPI_Group_excl +MPI_Group_free +MPI_Group_incl +MPI_Group_intersection +MPI_Group_range_excl +MPI_Group_range_incl +MPI_Group_rank +MPI_Group_size +MPI_Group_translate_ranks +MPI_Group_union +MPI_IALLGATHER +MPI_IALLGATHERV +MPI_IALLREDUCE +MPI_IALLTOALL +MPI_IALLTOALLV +MPI_IALLTOALLW +MPI_IBARRIER +MPI_IBCAST +MPI_IBSEND +MPI_IEXSCAN +MPI_IGATHER +MPI_IGATHERV +MPI_IMPROBE +MPI_IMRECV +MPI_INFO_CREATE +MPI_INFO_DELETE +MPI_INFO_DUP +MPI_INFO_FREE +MPI_INFO_GET +MPI_INFO_GET_NKEYS +MPI_INFO_GET_NTHKEY +MPI_INFO_GET_VALUELEN +MPI_INFO_SET +MPI_INIT +MPI_INITIALIZED +MPI_INIT_THREAD +MPI_INTERCOMM_CREATE +MPI_INTERCOMM_MERGE +MPI_IPROBE +MPI_IRECV +MPI_IREDUCE +MPI_IREDUCE_SCATTER +MPI_IREDUCE_SCATTER_BLOCK +MPI_IRSEND +MPI_ISCAN +MPI_ISCATTER +MPI_ISCATTERV +MPI_ISEND +MPI_ISSEND +MPI_IS_THREAD_MAIN +MPI_Iallgather +MPI_Iallgatherv +MPI_Iallreduce +MPI_Ialltoall +MPI_Ialltoallv +MPI_Ialltoallw +MPI_Ibarrier +MPI_Ibcast +MPI_Ibsend +MPI_Iexscan +MPI_Igather +MPI_Igatherv +MPI_Improbe +MPI_Imrecv +MPI_Info_create +MPI_Info_delete +MPI_Info_dup +MPI_Info_free +MPI_Info_get +MPI_Info_get_nkeys +MPI_Info_get_nthkey +MPI_Info_get_valuelen +MPI_Info_set +MPI_Init +MPI_Init_thread +MPI_Initialized +MPI_Intercomm_create +MPI_Intercomm_merge +MPI_Iprobe +MPI_Irecv +MPI_Ireduce +MPI_Ireduce_scatter +MPI_Ireduce_scatter_block +MPI_Irsend +MPI_Is_thread_main +MPI_Iscan +MPI_Iscatter +MPI_Iscatterv +MPI_Isend +MPI_Issend +MPI_KEYVAL_CREATE +MPI_KEYVAL_FREE +MPI_Keyval_create +MPI_Keyval_free +MPI_LOOKUP_NAME +MPI_Lookup_name +MPI_MPROBE +MPI_MRECV +MPI_Mprobe +MPI_Mrecv +MPI_NULL_COPY_FN +MPI_NULL_DELETE_FN +MPI_OPEN_PORT +MPI_OP_COMMUTATIVE +MPI_OP_CREATE +MPI_OP_FREE +MPI_Op_commutative +MPI_Op_create +MPI_Op_free +MPI_Open_port +MPI_PACK +MPI_PACK_EXTERNAL +MPI_PACK_EXTERNAL_SIZE +MPI_PACK_SIZE +MPI_PCONTROL +MPI_PROBE +MPI_PUBLISH_NAME +MPI_PUT +MPI_Pack +MPI_Pack_external +MPI_Pack_external_size +MPI_Pack_size +MPI_Pcontrol +MPI_Probe +MPI_Publish_name +MPI_Put +MPI_QUERY_THREAD +MPI_Query_thread +MPI_RACCUMULATE +MPI_RECV +MPI_RECV_INIT +MPI_REDUCE +MPI_REDUCE_LOCAL +MPI_REDUCE_SCATTER +MPI_REDUCE_SCATTER_block +MPI_REGISTER_DATAREP +MPI_REQUEST_FREE +MPI_REQUEST_GET_STATUS +MPI_RGET +MPI_RGET_ACCUMULATE +MPI_RPUT +MPI_RSEND +MPI_RSEND_INIT +MPI_Raccumulate +MPI_Recv +MPI_Recv_init +MPI_Reduce +MPI_Reduce_local +MPI_Reduce_scatter +MPI_Reduce_scatter_block +MPI_Register_datarep +MPI_Request_free +MPI_Request_get_status +MPI_Rget +MPI_Rget_accumulate +MPI_Rput +MPI_Rsend +MPI_Rsend_init +MPI_SCAN +MPI_SCATTER +MPI_SCATTERV +MPI_SEND +MPI_SENDRECV +MPI_SENDRECV_REPLACE +MPI_SEND_INIT +MPI_SSEND +MPI_SSEND_INIT +MPI_START +MPI_STARTALL +MPI_STATUS_C2F +MPI_STATUS_F2C +MPI_STATUS_SET_CANCELLED +MPI_STATUS_SET_ELEMENTS +MPI_STATUS_SET_ELEMENTS_X +MPI_Scan +MPI_Scatter +MPI_Scatterv +MPI_Send +MPI_Send_init +MPI_Sendrecv +MPI_Sendrecv_replace +MPI_Ssend +MPI_Ssend_init +MPI_Start +MPI_Startall +MPI_Status_c2f +MPI_Status_f2c +MPI_Status_set_cancelled +MPI_Status_set_elements +MPI_Status_set_elements_x +MPI_TEST +MPI_TESTALL +MPI_TESTANY +MPI_TESTSOME +MPI_TEST_CANCELLED +MPI_TOPO_TEST +MPI_TYPE_COMMIT +MPI_TYPE_CONTIGUOUS +MPI_TYPE_CREATE_DARRAY +MPI_TYPE_CREATE_F90_COMPLEX +MPI_TYPE_CREATE_F90_INTEGER +MPI_TYPE_CREATE_F90_REAL +MPI_TYPE_CREATE_HINDEXED +MPI_TYPE_CREATE_HINDEXED_BLOCK +MPI_TYPE_CREATE_HVECTOR +MPI_TYPE_CREATE_INDEXED_BLOCK +MPI_TYPE_CREATE_KEYVAL +MPI_TYPE_CREATE_RESIZED +MPI_TYPE_CREATE_STRUCT +MPI_TYPE_CREATE_SUBARRAY +MPI_TYPE_DELETE_ATTR +MPI_TYPE_DUP +MPI_TYPE_DUP_FN +MPI_TYPE_EXTENT +MPI_TYPE_FREE +MPI_TYPE_FREE_KEYVAL +MPI_TYPE_GET_ATTR +MPI_TYPE_GET_CONTENTS +MPI_TYPE_GET_ENVELOPE +MPI_TYPE_GET_EXTENT +MPI_TYPE_GET_EXTENT_X +MPI_TYPE_GET_NAME +MPI_TYPE_GET_TRUE_EXTENT +MPI_TYPE_GET_TRUE_EXTENT_X +MPI_TYPE_HINDEXED +MPI_TYPE_HVECTOR +MPI_TYPE_INDEXED +MPI_TYPE_LB +MPI_TYPE_MATCH_SIZE +MPI_TYPE_NULL_COPY_FN +MPI_TYPE_NULL_DELETE_FN +MPI_TYPE_SET_ATTR +MPI_TYPE_SET_NAME +MPI_TYPE_SIZE +MPI_TYPE_SIZE_X +MPI_TYPE_STRUCT +MPI_TYPE_UB +MPI_TYPE_VECTOR +MPI_Test +MPI_Test_cancelled +MPI_Testall +MPI_Testany +MPI_Testsome +MPI_Topo_test +MPI_Type_commit +MPI_Type_contiguous +MPI_Type_create_darray +MPI_Type_create_f90_complex +MPI_Type_create_f90_integer +MPI_Type_create_f90_real +MPI_Type_create_hindexed +MPI_Type_create_hindexed_block +MPI_Type_create_hvector +MPI_Type_create_indexed_block +MPI_Type_create_keyval +MPI_Type_create_resized +MPI_Type_create_struct +MPI_Type_create_subarray +MPI_Type_delete_attr +MPI_Type_dup +MPI_Type_extent +MPI_Type_free +MPI_Type_free_keyval +MPI_Type_get_attr +MPI_Type_get_contents +MPI_Type_get_envelope +MPI_Type_get_extent +MPI_Type_get_extent_x +MPI_Type_get_name +MPI_Type_get_true_extent +MPI_Type_get_true_extent_x +MPI_Type_hindexed +MPI_Type_hvector +MPI_Type_indexed +MPI_Type_lb +MPI_Type_match_size +MPI_Type_set_attr +MPI_Type_set_name +MPI_Type_size +MPI_Type_size_x +MPI_Type_struct +MPI_Type_ub +MPI_Type_vector +MPI_UNPACK +MPI_UNPACK_EXTERNAL +MPI_UNPUBLISH_NAME +MPI_Unpack +MPI_Unpack_external +MPI_Unpublish_name +MPI_WAIT +MPI_WAITALL +MPI_WAITANY +MPI_WAITSOME +MPI_WIN_ALLOCATE +MPI_WIN_ALLOCATE_SHARED +MPI_WIN_ATTACH +MPI_WIN_CALL_ERRHANDLER +MPI_WIN_COMPLETE +MPI_WIN_CREATE +MPI_WIN_CREATE_DYNAMIC +MPI_WIN_CREATE_ERRHANDLER +MPI_WIN_CREATE_KEYVAL +MPI_WIN_DELETE_ATTR +MPI_WIN_DETACH +MPI_WIN_DUP_FN +MPI_WIN_FENCE +MPI_WIN_FLUSH +MPI_WIN_FLUSH_ALL +MPI_WIN_FLUSH_LOCAL +MPI_WIN_FLUSH_LOCAL_ALL +MPI_WIN_FREE +MPI_WIN_FREE_KEYVAL +MPI_WIN_GET_ATTR +MPI_WIN_GET_ERRHANDLER +MPI_WIN_GET_GROUP +MPI_WIN_GET_NAME +MPI_WIN_LOCK +MPI_WIN_LOCK_ALL +MPI_WIN_NULL_COPY_FN +MPI_WIN_NULL_DELETE_FN +MPI_WIN_POST +MPI_WIN_SET_ATTR +MPI_WIN_SET_ERRHANDLER +MPI_WIN_SET_NAME +MPI_WIN_SHARED_QUERY +MPI_WIN_START +MPI_WIN_SYNC +MPI_WIN_TEST +MPI_WIN_UNLOCK +MPI_WIN_UNLOCK_ALL +MPI_WIN_WAIT +MPI_WTICK +MPI_WTIME +MPI_Wait +MPI_Waitall +MPI_Waitany +MPI_Waitsome +MPI_Win_allocate +MPI_Win_allocate_shared +MPI_Win_attach +MPI_Win_call_errhandler +MPI_Win_complete +MPI_Win_create +MPI_Win_create_dynamic +MPI_Win_create_errhandler +MPI_Win_create_keyval +MPI_Win_delete_attr +MPI_Win_detach +MPI_Win_fence +MPI_Win_flush +MPI_Win_flush_all +MPI_Win_flush_local +MPI_Win_flush_local_all +MPI_Win_free +MPI_Win_free_keyval +MPI_Win_get_attr +MPI_Win_get_errhandler +MPI_Win_get_group +MPI_Win_get_name +MPI_Win_lock +MPI_Win_lock_all +MPI_Win_post +MPI_Win_set_attr +MPI_Win_set_errhandler +MPI_Win_set_name +MPI_Win_shared_query +MPI_Win_start +MPI_Win_sync +MPI_Win_test +MPI_Win_unlock +MPI_Win_unlock_all +MPI_Win_wait +MPI_Wtick +MPI_Wtime +MSMPI_GET_BSEND_OVERHEAD +MSMPI_GET_VERSION +MSMPI_Get_bsend_overhead +MSMPI_Get_version +MSMPI_Queuelock_acquire +MSMPI_Queuelock_release +MSMPI_Request_set_apc +MSMPI_Waitsome_interruptible +PMPI_ABORT +PMPI_ACCUMULATE +PMPI_ADDRESS +PMPI_ADD_ERROR_CLASS +PMPI_ADD_ERROR_CODE +PMPI_ADD_ERROR_STRING +PMPI_AINT_ADD +PMPI_AINT_DIFF +PMPI_ALLGATHER +PMPI_ALLGATHERV +PMPI_ALLOC_MEM +PMPI_ALLREDUCE +PMPI_ALLTOALL +PMPI_ALLTOALLV +PMPI_ALLTOALLW +PMPI_ATTR_DELETE +PMPI_ATTR_GET +PMPI_ATTR_PUT +PMPI_Abort +PMPI_Accumulate +PMPI_Add_error_class +PMPI_Add_error_code +PMPI_Add_error_string +PMPI_Address +PMPI_Aint_add +PMPI_Aint_diff +PMPI_Allgather +PMPI_Allgatherv +PMPI_Alloc_mem +PMPI_Allreduce +PMPI_Alltoall +PMPI_Alltoallv +PMPI_Alltoallw +PMPI_Attr_delete +PMPI_Attr_get +PMPI_Attr_put +PMPI_BARRIER +PMPI_BCAST +PMPI_BSEND +PMPI_BSEND_INIT +PMPI_BUFFER_ATTACH +PMPI_BUFFER_DETACH +PMPI_Barrier +PMPI_Bcast +PMPI_Bsend +PMPI_Bsend_init +PMPI_Buffer_attach +PMPI_Buffer_detach +PMPI_CANCEL +PMPI_CARTDIM_GET +PMPI_CART_COORDS +PMPI_CART_CREATE +PMPI_CART_GET +PMPI_CART_MAP +PMPI_CART_RANK +PMPI_CART_SHIFT +PMPI_CART_SUB +PMPI_CLOSE_PORT +PMPI_COMM_ACCEPT +PMPI_COMM_CALL_ERRHANDLER +PMPI_COMM_COMPARE +PMPI_COMM_CONNECT +PMPI_COMM_CREATE +PMPI_COMM_CREATE_ERRHANDLER +PMPI_COMM_CREATE_KEYVAL +PMPI_COMM_DELETE_ATTR +PMPI_COMM_DISCONNECT +PMPI_COMM_DUP +PMPI_COMM_DUP_FN +PMPI_COMM_FREE +PMPI_COMM_FREE_KEYVAL +PMPI_COMM_GET_ATTR +PMPI_COMM_GET_ERRHANDLER +PMPI_COMM_GET_NAME +PMPI_COMM_GET_PARENT +PMPI_COMM_GROUP +PMPI_COMM_JOIN +PMPI_COMM_NULL_COPY_FN +PMPI_COMM_NULL_DELETE_FN +PMPI_COMM_RANK +PMPI_COMM_REMOTE_GROUP +PMPI_COMM_REMOTE_SIZE +PMPI_COMM_SET_ATTR +PMPI_COMM_SET_ERRHANDLER +PMPI_COMM_SET_NAME +PMPI_COMM_SIZE +PMPI_COMM_SPAWN +PMPI_COMM_SPAWN_MULTIPLE +PMPI_COMM_SPLIT +PMPI_COMM_SPLIT_TYPE +PMPI_COMM_TEST_INTER +PMPI_COMPARE_AND_SWAP +PMPI_CONVERSION_FN_NULL +PMPI_Cancel +PMPI_Cart_coords +PMPI_Cart_create +PMPI_Cart_get +PMPI_Cart_map +PMPI_Cart_rank +PMPI_Cart_shift +PMPI_Cart_sub +PMPI_Cartdim_get +PMPI_Close_port +PMPI_Comm_accept +PMPI_Comm_call_errhandler +PMPI_Comm_compare +PMPI_Comm_connect +PMPI_Comm_create +PMPI_Comm_create_errhandler +PMPI_Comm_create_keyval +PMPI_Comm_delete_attr +PMPI_Comm_disconnect +PMPI_Comm_dup +PMPI_Comm_free +PMPI_Comm_free_keyval +PMPI_Comm_get_attr +PMPI_Comm_get_errhandler +PMPI_Comm_get_name +PMPI_Comm_get_parent +PMPI_Comm_group +PMPI_Comm_join +PMPI_Comm_rank +PMPI_Comm_remote_group +PMPI_Comm_remote_size +PMPI_Comm_set_attr +PMPI_Comm_set_errhandler +PMPI_Comm_set_name +PMPI_Comm_size +PMPI_Comm_spawn +PMPI_Comm_spawn_multiple +PMPI_Comm_split +PMPI_Comm_split_type +PMPI_Comm_test_inter +PMPI_Compare_and_swap +PMPI_DIMS_CREATE +PMPI_DIST_GRAPH_CREATE +PMPI_DIST_GRAPH_CREATE_ADJACENT +PMPI_DIST_GRAPH_NEIGHBORS +PMPI_DIST_GRAPH_NEIGHBORS_COUNT +PMPI_DUP_FN +PMPI_Dims_create +PMPI_Dist_graph_create +PMPI_Dist_graph_create_adjacent +PMPI_Dist_graph_neighbors +PMPI_Dist_graph_neighbors_count +PMPI_ERRHANDLER_CREATE +PMPI_ERRHANDLER_FREE +PMPI_ERRHANDLER_GET +PMPI_ERRHANDLER_SET +PMPI_ERROR_CLASS +PMPI_ERROR_STRING +PMPI_EXSCAN +PMPI_Errhandler_create +PMPI_Errhandler_free +PMPI_Errhandler_get +PMPI_Errhandler_set +PMPI_Error_class +PMPI_Error_string +PMPI_Exscan +PMPI_FETCH_AND_OP +PMPI_FILE_CALL_ERRHANDLER +PMPI_FILE_CLOSE +PMPI_FILE_CREATE_ERRHANDLER +PMPI_FILE_DELETE +PMPI_FILE_GET_AMODE +PMPI_FILE_GET_ATOMICITY +PMPI_FILE_GET_BYTE_OFFSET +PMPI_FILE_GET_ERRHANDLER +PMPI_FILE_GET_GROUP +PMPI_FILE_GET_INFO +PMPI_FILE_GET_POSITION +PMPI_FILE_GET_POSITION_SHARED +PMPI_FILE_GET_SIZE +PMPI_FILE_GET_TYPE_EXTENT +PMPI_FILE_GET_VIEW +PMPI_FILE_IREAD +PMPI_FILE_IREAD_AT +PMPI_FILE_IREAD_SHARED +PMPI_FILE_IWRITE +PMPI_FILE_IWRITE_AT +PMPI_FILE_IWRITE_SHARED +PMPI_FILE_OPEN +PMPI_FILE_PREALLOCATE +PMPI_FILE_READ +PMPI_FILE_READ_ALL +PMPI_FILE_READ_ALL_BEGIN +PMPI_FILE_READ_ALL_END +PMPI_FILE_READ_AT +PMPI_FILE_READ_AT_ALL +PMPI_FILE_READ_AT_ALL_BEGIN +PMPI_FILE_READ_AT_ALL_END +PMPI_FILE_READ_ORDERED +PMPI_FILE_READ_ORDERED_BEGIN +PMPI_FILE_READ_ORDERED_END +PMPI_FILE_READ_SHARED +PMPI_FILE_SEEK +PMPI_FILE_SEEK_SHARED +PMPI_FILE_SET_ATOMICITY +PMPI_FILE_SET_ERRHANDLER +PMPI_FILE_SET_INFO +PMPI_FILE_SET_SIZE +PMPI_FILE_SET_VIEW +PMPI_FILE_SYNC +PMPI_FILE_WRITE +PMPI_FILE_WRITE_ALL +PMPI_FILE_WRITE_ALL_BEGIN +PMPI_FILE_WRITE_ALL_END +PMPI_FILE_WRITE_AT +PMPI_FILE_WRITE_AT_ALL +PMPI_FILE_WRITE_AT_ALL_BEGIN +PMPI_FILE_WRITE_AT_ALL_END +PMPI_FILE_WRITE_ORDERED +PMPI_FILE_WRITE_ORDERED_BEGIN +PMPI_FILE_WRITE_ORDERED_END +PMPI_FILE_WRITE_SHARED +PMPI_FINALIZE +PMPI_FINALIZED +PMPI_FREE_MEM +PMPI_Fetch_and_op +PMPI_File_c2f +PMPI_File_call_errhandler +PMPI_File_close +PMPI_File_create_errhandler +PMPI_File_delete +PMPI_File_f2c +PMPI_File_get_amode +PMPI_File_get_atomicity +PMPI_File_get_byte_offset +PMPI_File_get_errhandler +PMPI_File_get_group +PMPI_File_get_info +PMPI_File_get_position +PMPI_File_get_position_shared +PMPI_File_get_size +PMPI_File_get_type_extent +PMPI_File_get_view +PMPI_File_iread +PMPI_File_iread_at +PMPI_File_iread_shared +PMPI_File_iwrite +PMPI_File_iwrite_at +PMPI_File_iwrite_shared +PMPI_File_open +PMPI_File_preallocate +PMPI_File_read +PMPI_File_read_all +PMPI_File_read_all_begin +PMPI_File_read_all_end +PMPI_File_read_at +PMPI_File_read_at_all +PMPI_File_read_at_all_begin +PMPI_File_read_at_all_end +PMPI_File_read_ordered +PMPI_File_read_ordered_begin +PMPI_File_read_ordered_end +PMPI_File_read_shared +PMPI_File_seek +PMPI_File_seek_shared +PMPI_File_set_atomicity +PMPI_File_set_errhandler +PMPI_File_set_info +PMPI_File_set_size +PMPI_File_set_view +PMPI_File_sync +PMPI_File_write +PMPI_File_write_all +PMPI_File_write_all_begin +PMPI_File_write_all_end +PMPI_File_write_at +PMPI_File_write_at_all +PMPI_File_write_at_all_begin +PMPI_File_write_at_all_end +PMPI_File_write_ordered +PMPI_File_write_ordered_begin +PMPI_File_write_ordered_end +PMPI_File_write_shared +PMPI_Finalize +PMPI_Finalized +PMPI_Free_mem +PMPI_GATHER +PMPI_GATHERV +PMPI_GET +PMPI_GET_ACCUMULATE +PMPI_GET_ADDRESS +PMPI_GET_COUNT +PMPI_GET_ELEMENTS +PMPI_GET_ELEMENTS_X +PMPI_GET_LIBRARY_VERSION +PMPI_GET_PROCESSOR_NAME +PMPI_GET_VERSION +PMPI_GRAPHDIMS_GET +PMPI_GRAPH_CREATE +PMPI_GRAPH_GET +PMPI_GRAPH_MAP +PMPI_GRAPH_NEIGHBORS +PMPI_GRAPH_NEIGHBORS_COUNT +PMPI_GREQUEST_COMPLETE +PMPI_GREQUEST_START +PMPI_GROUP_COMPARE +PMPI_GROUP_DIFFERENCE +PMPI_GROUP_EXCL +PMPI_GROUP_FREE +PMPI_GROUP_INCL +PMPI_GROUP_INTERSECTION +PMPI_GROUP_RANGE_EXCL +PMPI_GROUP_RANGE_INCL +PMPI_GROUP_RANK +PMPI_GROUP_SIZE +PMPI_GROUP_TRANSLATE_RANKS +PMPI_GROUP_UNION +PMPI_Gather +PMPI_Gatherv +PMPI_Get +PMPI_Get_accumulate +PMPI_Get_address +PMPI_Get_count +PMPI_Get_elements +PMPI_Get_elements_x +PMPI_Get_library_version +PMPI_Get_processor_name +PMPI_Get_version +PMPI_Graph_create +PMPI_Graph_get +PMPI_Graph_map +PMPI_Graph_neighbors +PMPI_Graph_neighbors_count +PMPI_Graphdims_get +PMPI_Grequest_complete +PMPI_Grequest_start +PMPI_Group_compare +PMPI_Group_difference +PMPI_Group_excl +PMPI_Group_free +PMPI_Group_incl +PMPI_Group_intersection +PMPI_Group_range_excl +PMPI_Group_range_incl +PMPI_Group_rank +PMPI_Group_size +PMPI_Group_translate_ranks +PMPI_Group_union +PMPI_IALLGATHER +PMPI_IALLGATHERV +PMPI_IALLREDUCE +PMPI_IALLTOALL +PMPI_IALLTOALLV +PMPI_IALLTOALLW +PMPI_IBARRIER +PMPI_IBCAST +PMPI_IBSEND +PMPI_IEXSCAN +PMPI_IGATHER +PMPI_IGATHERV +PMPI_IMPROBE +PMPI_IMRECV +PMPI_INFO_CREATE +PMPI_INFO_DELETE +PMPI_INFO_DUP +PMPI_INFO_FREE +PMPI_INFO_GET +PMPI_INFO_GET_NKEYS +PMPI_INFO_GET_NTHKEY +PMPI_INFO_GET_VALUELEN +PMPI_INFO_SET +PMPI_INIT +PMPI_INITIALIZED +PMPI_INIT_THREAD +PMPI_INTERCOMM_CREATE +PMPI_INTERCOMM_MERGE +PMPI_IPROBE +PMPI_IRECV +PMPI_IREDUCE +PMPI_IREDUCE_SCATTER +PMPI_IREDUCE_SCATTER_BLOCK +PMPI_IRSEND +PMPI_ISCAN +PMPI_ISCATTER +PMPI_ISCATTERV +PMPI_ISEND +PMPI_ISSEND +PMPI_IS_THREAD_MAIN +PMPI_Iallgather +PMPI_Iallgatherv +PMPI_Iallreduce +PMPI_Ialltoall +PMPI_Ialltoallv +PMPI_Ialltoallw +PMPI_Ibarrier +PMPI_Ibcast +PMPI_Ibsend +PMPI_Iexscan +PMPI_Igather +PMPI_Igatherv +PMPI_Improbe +PMPI_Imrecv +PMPI_Info_create +PMPI_Info_delete +PMPI_Info_dup +PMPI_Info_free +PMPI_Info_get +PMPI_Info_get_nkeys +PMPI_Info_get_nthkey +PMPI_Info_get_valuelen +PMPI_Info_set +PMPI_Init +PMPI_Init_thread +PMPI_Initialized +PMPI_Intercomm_create +PMPI_Intercomm_merge +PMPI_Iprobe +PMPI_Irecv +PMPI_Ireduce +PMPI_Ireduce_scatter +PMPI_Ireduce_scatter_block +PMPI_Irsend +PMPI_Is_thread_main +PMPI_Iscan +PMPI_Iscatter +PMPI_Iscatterv +PMPI_Isend +PMPI_Issend +PMPI_KEYVAL_CREATE +PMPI_KEYVAL_FREE +PMPI_Keyval_create +PMPI_Keyval_free +PMPI_LOOKUP_NAME +PMPI_Lookup_name +PMPI_MPROBE +PMPI_MRECV +PMPI_Mprobe +PMPI_Mrecv +PMPI_NULL_COPY_FN +PMPI_NULL_DELETE_FN +PMPI_OPEN_PORT +PMPI_OP_COMMUTATIVE +PMPI_OP_CREATE +PMPI_OP_FREE +PMPI_Op_commutative +PMPI_Op_create +PMPI_Op_free +PMPI_Open_port +PMPI_PACK +PMPI_PACK_EXTERNAL +PMPI_PACK_EXTERNAL_SIZE +PMPI_PACK_SIZE +PMPI_PCONTROL +PMPI_PROBE +PMPI_PUBLISH_NAME +PMPI_PUT +PMPI_Pack +PMPI_Pack_external +PMPI_Pack_external_size +PMPI_Pack_size +PMPI_Pcontrol +PMPI_Probe +PMPI_Publish_name +PMPI_Put +PMPI_QUERY_THREAD +PMPI_Query_thread +PMPI_RACCUMULATE +PMPI_RECV +PMPI_RECV_INIT +PMPI_REDUCE +PMPI_REDUCE_LOCAL +PMPI_REDUCE_SCATTER +PMPI_REDUCE_SCATTER_block +PMPI_REGISTER_DATAREP +PMPI_REQUEST_FREE +PMPI_REQUEST_GET_STATUS +PMPI_RGET +PMPI_RGET_ACCUMULATE +PMPI_RPUT +PMPI_RSEND +PMPI_RSEND_INIT +PMPI_Raccumulate +PMPI_Recv +PMPI_Recv_init +PMPI_Reduce +PMPI_Reduce_local +PMPI_Reduce_scatter +PMPI_Reduce_scatter_block +PMPI_Register_datarep +PMPI_Request_free +PMPI_Request_get_status +PMPI_Rget +PMPI_Rget_accumulate +PMPI_Rput +PMPI_Rsend +PMPI_Rsend_init +PMPI_SCAN +PMPI_SCATTER +PMPI_SCATTERV +PMPI_SEND +PMPI_SENDRECV +PMPI_SENDRECV_REPLACE +PMPI_SEND_INIT +PMPI_SSEND +PMPI_SSEND_INIT +PMPI_START +PMPI_STARTALL +PMPI_STATUS_C2F +PMPI_STATUS_F2C +PMPI_STATUS_SET_CANCELLED +PMPI_STATUS_SET_ELEMENTS +PMPI_STATUS_SET_ELEMENTS_X +PMPI_Scan +PMPI_Scatter +PMPI_Scatterv +PMPI_Send +PMPI_Send_init +PMPI_Sendrecv +PMPI_Sendrecv_replace +PMPI_Ssend +PMPI_Ssend_init +PMPI_Start +PMPI_Startall +PMPI_Status_c2f +PMPI_Status_f2c +PMPI_Status_set_cancelled +PMPI_Status_set_elements +PMPI_Status_set_elements_x +PMPI_TEST +PMPI_TESTALL +PMPI_TESTANY +PMPI_TESTSOME +PMPI_TEST_CANCELLED +PMPI_TOPO_TEST +PMPI_TYPE_COMMIT +PMPI_TYPE_CONTIGUOUS +PMPI_TYPE_CREATE_DARRAY +PMPI_TYPE_CREATE_F90_COMPLEX +PMPI_TYPE_CREATE_F90_INTEGER +PMPI_TYPE_CREATE_F90_REAL +PMPI_TYPE_CREATE_HINDEXED +PMPI_TYPE_CREATE_HINDEXED_BLOCK +PMPI_TYPE_CREATE_HVECTOR +PMPI_TYPE_CREATE_INDEXED_BLOCK +PMPI_TYPE_CREATE_KEYVAL +PMPI_TYPE_CREATE_RESIZED +PMPI_TYPE_CREATE_STRUCT +PMPI_TYPE_CREATE_SUBARRAY +PMPI_TYPE_DELETE_ATTR +PMPI_TYPE_DUP +PMPI_TYPE_DUP_FN +PMPI_TYPE_EXTENT +PMPI_TYPE_FREE +PMPI_TYPE_FREE_KEYVAL +PMPI_TYPE_GET_ATTR +PMPI_TYPE_GET_CONTENTS +PMPI_TYPE_GET_ENVELOPE +PMPI_TYPE_GET_EXTENT +PMPI_TYPE_GET_EXTENT_X +PMPI_TYPE_GET_NAME +PMPI_TYPE_GET_TRUE_EXTENT +PMPI_TYPE_GET_TRUE_EXTENT_X +PMPI_TYPE_HINDEXED +PMPI_TYPE_HVECTOR +PMPI_TYPE_INDEXED +PMPI_TYPE_LB +PMPI_TYPE_MATCH_SIZE +PMPI_TYPE_NULL_COPY_FN +PMPI_TYPE_NULL_DELETE_FN +PMPI_TYPE_SET_ATTR +PMPI_TYPE_SET_NAME +PMPI_TYPE_SIZE +PMPI_TYPE_SIZE_X +PMPI_TYPE_STRUCT +PMPI_TYPE_UB +PMPI_TYPE_VECTOR +PMPI_Test +PMPI_Test_cancelled +PMPI_Testall +PMPI_Testany +PMPI_Testsome +PMPI_Topo_test +PMPI_Type_commit +PMPI_Type_contiguous +PMPI_Type_create_darray +PMPI_Type_create_f90_complex +PMPI_Type_create_f90_integer +PMPI_Type_create_f90_real +PMPI_Type_create_hindexed +PMPI_Type_create_hindexed_block +PMPI_Type_create_hvector +PMPI_Type_create_indexed_block +PMPI_Type_create_keyval +PMPI_Type_create_resized +PMPI_Type_create_struct +PMPI_Type_create_subarray +PMPI_Type_delete_attr +PMPI_Type_dup +PMPI_Type_extent +PMPI_Type_free +PMPI_Type_free_keyval +PMPI_Type_get_attr +PMPI_Type_get_contents +PMPI_Type_get_envelope +PMPI_Type_get_extent +PMPI_Type_get_extent_x +PMPI_Type_get_name +PMPI_Type_get_true_extent +PMPI_Type_get_true_extent_x +PMPI_Type_hindexed +PMPI_Type_hvector +PMPI_Type_indexed +PMPI_Type_lb +PMPI_Type_match_size +PMPI_Type_set_attr +PMPI_Type_set_name +PMPI_Type_size +PMPI_Type_size_x +PMPI_Type_struct +PMPI_Type_ub +PMPI_Type_vector +PMPI_UNPACK +PMPI_UNPACK_EXTERNAL +PMPI_UNPUBLISH_NAME +PMPI_Unpack +PMPI_Unpack_external +PMPI_Unpublish_name +PMPI_WAIT +PMPI_WAITALL +PMPI_WAITANY +PMPI_WAITSOME +PMPI_WIN_ALLOCATE +PMPI_WIN_ALLOCATE_SHARED +PMPI_WIN_ATTACH +PMPI_WIN_CALL_ERRHANDLER +PMPI_WIN_COMPLETE +PMPI_WIN_CREATE +PMPI_WIN_CREATE_DYNAMIC +PMPI_WIN_CREATE_ERRHANDLER +PMPI_WIN_CREATE_KEYVAL +PMPI_WIN_DELETE_ATTR +PMPI_WIN_DETACH +PMPI_WIN_DUP_FN +PMPI_WIN_FENCE +PMPI_WIN_FLUSH +PMPI_WIN_FLUSH_ALL +PMPI_WIN_FLUSH_LOCAL +PMPI_WIN_FLUSH_LOCAL_ALL +PMPI_WIN_FREE +PMPI_WIN_FREE_KEYVAL +PMPI_WIN_GET_ATTR +PMPI_WIN_GET_ERRHANDLER +PMPI_WIN_GET_GROUP +PMPI_WIN_GET_NAME +PMPI_WIN_LOCK +PMPI_WIN_LOCK_ALL +PMPI_WIN_NULL_COPY_FN +PMPI_WIN_NULL_DELETE_FN +PMPI_WIN_POST +PMPI_WIN_SET_ATTR +PMPI_WIN_SET_ERRHANDLER +PMPI_WIN_SET_NAME +PMPI_WIN_SHARED_QUERY +PMPI_WIN_START +PMPI_WIN_SYNC +PMPI_WIN_TEST +PMPI_WIN_UNLOCK +PMPI_WIN_UNLOCK_ALL +PMPI_WIN_WAIT +PMPI_WTICK +PMPI_WTIME +PMPI_Wait +PMPI_Waitall +PMPI_Waitany +PMPI_Waitsome +PMPI_Win_allocate +PMPI_Win_allocate_shared +PMPI_Win_attach +PMPI_Win_call_errhandler +PMPI_Win_complete +PMPI_Win_create +PMPI_Win_create_dynamic +PMPI_Win_create_errhandler +PMPI_Win_create_keyval +PMPI_Win_delete_attr +PMPI_Win_detach +PMPI_Win_fence +PMPI_Win_flush +PMPI_Win_flush_all +PMPI_Win_flush_local +PMPI_Win_flush_local_all +PMPI_Win_free +PMPI_Win_free_keyval +PMPI_Win_get_attr +PMPI_Win_get_errhandler +PMPI_Win_get_group +PMPI_Win_get_name +PMPI_Win_lock +PMPI_Win_lock_all +PMPI_Win_post +PMPI_Win_set_attr +PMPI_Win_set_errhandler +PMPI_Win_set_name +PMPI_Win_shared_query +PMPI_Win_start +PMPI_Win_sync +PMPI_Win_test +PMPI_Win_unlock +PMPI_Win_unlock_all +PMPI_Win_wait +PMPI_Wtick +PMPI_Wtime +PMSMPI_GET_BSEND_OVERHEAD +PMSMPI_GET_VERSION +PMSMPI_Get_bsend_overhead +PMSMPI_Get_version +_MPIFCMB5 DATA +_MPIFCMB9 DATA +_MPIPRIV1 DATA +_MPIPRIV2 DATA +_MPIPRIVC DATA +_mpifcmb5 DATA +_mpifcmb5_ DATA +_mpifcmb9 DATA +_mpifcmb9_ DATA +_mpipriv1 DATA +_mpipriv1_ DATA +_mpipriv2 DATA +_mpipriv2_ DATA +_mpiprivc DATA +_mpiprivc_ DATA +mpi_abort +mpi_abort_ +mpi_abort__ +mpi_accumulate +mpi_accumulate_ +mpi_accumulate__ +mpi_add_error_class +mpi_add_error_class_ +mpi_add_error_class__ +mpi_add_error_code +mpi_add_error_code_ +mpi_add_error_code__ +mpi_add_error_string +mpi_add_error_string_ +mpi_add_error_string__ +mpi_address +mpi_address_ +mpi_address__ +mpi_aint_add +mpi_aint_add_ +mpi_aint_add__ +mpi_aint_diff +mpi_aint_diff_ +mpi_aint_diff__ +mpi_allgather +mpi_allgather_ +mpi_allgather__ +mpi_allgatherv +mpi_allgatherv_ +mpi_allgatherv__ +mpi_alloc_mem +mpi_alloc_mem_ +mpi_alloc_mem__ +mpi_allreduce +mpi_allreduce_ +mpi_allreduce__ +mpi_alltoall +mpi_alltoall_ +mpi_alltoall__ +mpi_alltoallv +mpi_alltoallv_ +mpi_alltoallv__ +mpi_alltoallw +mpi_alltoallw_ +mpi_alltoallw__ +mpi_attr_delete +mpi_attr_delete_ +mpi_attr_delete__ +mpi_attr_get +mpi_attr_get_ +mpi_attr_get__ +mpi_attr_put +mpi_attr_put_ +mpi_attr_put__ +mpi_barrier +mpi_barrier_ +mpi_barrier__ +mpi_bcast +mpi_bcast_ +mpi_bcast__ +mpi_bsend +mpi_bsend_ +mpi_bsend__ +mpi_bsend_init +mpi_bsend_init_ +mpi_bsend_init__ +mpi_buffer_attach +mpi_buffer_attach_ +mpi_buffer_attach__ +mpi_buffer_detach +mpi_buffer_detach_ +mpi_buffer_detach__ +mpi_cancel +mpi_cancel_ +mpi_cancel__ +mpi_cart_coords +mpi_cart_coords_ +mpi_cart_coords__ +mpi_cart_create +mpi_cart_create_ +mpi_cart_create__ +mpi_cart_get +mpi_cart_get_ +mpi_cart_get__ +mpi_cart_map +mpi_cart_map_ +mpi_cart_map__ +mpi_cart_rank +mpi_cart_rank_ +mpi_cart_rank__ +mpi_cart_shift +mpi_cart_shift_ +mpi_cart_shift__ +mpi_cart_sub +mpi_cart_sub_ +mpi_cart_sub__ +mpi_cartdim_get +mpi_cartdim_get_ +mpi_cartdim_get__ +mpi_close_port +mpi_close_port_ +mpi_close_port__ +mpi_comm_accept +mpi_comm_accept_ +mpi_comm_accept__ +mpi_comm_call_errhandler +mpi_comm_call_errhandler_ +mpi_comm_call_errhandler__ +mpi_comm_compare +mpi_comm_compare_ +mpi_comm_compare__ +mpi_comm_connect +mpi_comm_connect_ +mpi_comm_connect__ +mpi_comm_create +mpi_comm_create_ +mpi_comm_create__ +mpi_comm_create_errhandler +mpi_comm_create_errhandler_ +mpi_comm_create_errhandler__ +mpi_comm_create_keyval +mpi_comm_create_keyval_ +mpi_comm_create_keyval__ +mpi_comm_delete_attr +mpi_comm_delete_attr_ +mpi_comm_delete_attr__ +mpi_comm_disconnect +mpi_comm_disconnect_ +mpi_comm_disconnect__ +mpi_comm_dup +mpi_comm_dup_ +mpi_comm_dup__ +mpi_comm_dup_fn +mpi_comm_dup_fn_ +mpi_comm_dup_fn__ +mpi_comm_free +mpi_comm_free_ +mpi_comm_free__ +mpi_comm_free_keyval +mpi_comm_free_keyval_ +mpi_comm_free_keyval__ +mpi_comm_get_attr +mpi_comm_get_attr_ +mpi_comm_get_attr__ +mpi_comm_get_errhandler +mpi_comm_get_errhandler_ +mpi_comm_get_errhandler__ +mpi_comm_get_name +mpi_comm_get_name_ +mpi_comm_get_name__ +mpi_comm_get_parent +mpi_comm_get_parent_ +mpi_comm_get_parent__ +mpi_comm_group +mpi_comm_group_ +mpi_comm_group__ +mpi_comm_join +mpi_comm_join_ +mpi_comm_join__ +mpi_comm_null_copy_fn +mpi_comm_null_copy_fn_ +mpi_comm_null_copy_fn__ +mpi_comm_null_delete_fn +mpi_comm_null_delete_fn_ +mpi_comm_null_delete_fn__ +mpi_comm_rank +mpi_comm_rank_ +mpi_comm_rank__ +mpi_comm_remote_group +mpi_comm_remote_group_ +mpi_comm_remote_group__ +mpi_comm_remote_size +mpi_comm_remote_size_ +mpi_comm_remote_size__ +mpi_comm_set_attr +mpi_comm_set_attr_ +mpi_comm_set_attr__ +mpi_comm_set_errhandler +mpi_comm_set_errhandler_ +mpi_comm_set_errhandler__ +mpi_comm_set_name +mpi_comm_set_name_ +mpi_comm_set_name__ +mpi_comm_size +mpi_comm_size_ +mpi_comm_size__ +mpi_comm_spawn +mpi_comm_spawn_ +mpi_comm_spawn__ +mpi_comm_spawn_multiple +mpi_comm_spawn_multiple_ +mpi_comm_spawn_multiple__ +mpi_comm_split +mpi_comm_split_ +mpi_comm_split__ +mpi_comm_split_type +mpi_comm_split_type_ +mpi_comm_split_type__ +mpi_comm_test_inter +mpi_comm_test_inter_ +mpi_comm_test_inter__ +mpi_compare_and_swap +mpi_compare_and_swap_ +mpi_compare_and_swap__ +mpi_conversion_fn_null +mpi_conversion_fn_null_ +mpi_conversion_fn_null__ +mpi_dims_create +mpi_dims_create_ +mpi_dims_create__ +mpi_dist_graph_create +mpi_dist_graph_create_ +mpi_dist_graph_create__ +mpi_dist_graph_create_adjacent +mpi_dist_graph_create_adjacent_ +mpi_dist_graph_create_adjacent__ +mpi_dist_graph_neighbors +mpi_dist_graph_neighbors_ +mpi_dist_graph_neighbors__ +mpi_dist_graph_neighbors_count +mpi_dist_graph_neighbors_count_ +mpi_dist_graph_neighbors_count__ +mpi_dup_fn +mpi_dup_fn_ +mpi_dup_fn__ +mpi_errhandler_create +mpi_errhandler_create_ +mpi_errhandler_create__ +mpi_errhandler_free +mpi_errhandler_free_ +mpi_errhandler_free__ +mpi_errhandler_get +mpi_errhandler_get_ +mpi_errhandler_get__ +mpi_errhandler_set +mpi_errhandler_set_ +mpi_errhandler_set__ +mpi_error_class +mpi_error_class_ +mpi_error_class__ +mpi_error_string +mpi_error_string_ +mpi_error_string__ +mpi_exscan +mpi_exscan_ +mpi_exscan__ +mpi_fetch_and_op +mpi_fetch_and_op_ +mpi_fetch_and_op__ +mpi_file_call_errhandler +mpi_file_call_errhandler_ +mpi_file_call_errhandler__ +mpi_file_close +mpi_file_close_ +mpi_file_close__ +mpi_file_create_errhandler +mpi_file_create_errhandler_ +mpi_file_create_errhandler__ +mpi_file_delete +mpi_file_delete_ +mpi_file_delete__ +mpi_file_get_amode +mpi_file_get_amode_ +mpi_file_get_amode__ +mpi_file_get_atomicity +mpi_file_get_atomicity_ +mpi_file_get_atomicity__ +mpi_file_get_byte_offset +mpi_file_get_byte_offset_ +mpi_file_get_byte_offset__ +mpi_file_get_errhandler +mpi_file_get_errhandler_ +mpi_file_get_errhandler__ +mpi_file_get_group +mpi_file_get_group_ +mpi_file_get_group__ +mpi_file_get_info +mpi_file_get_info_ +mpi_file_get_info__ +mpi_file_get_position +mpi_file_get_position_ +mpi_file_get_position__ +mpi_file_get_position_shared +mpi_file_get_position_shared_ +mpi_file_get_position_shared__ +mpi_file_get_size +mpi_file_get_size_ +mpi_file_get_size__ +mpi_file_get_type_extent +mpi_file_get_type_extent_ +mpi_file_get_type_extent__ +mpi_file_get_view +mpi_file_get_view_ +mpi_file_get_view__ +mpi_file_iread +mpi_file_iread_ +mpi_file_iread__ +mpi_file_iread_at +mpi_file_iread_at_ +mpi_file_iread_at__ +mpi_file_iread_shared +mpi_file_iread_shared_ +mpi_file_iread_shared__ +mpi_file_iwrite +mpi_file_iwrite_ +mpi_file_iwrite__ +mpi_file_iwrite_at +mpi_file_iwrite_at_ +mpi_file_iwrite_at__ +mpi_file_iwrite_shared +mpi_file_iwrite_shared_ +mpi_file_iwrite_shared__ +mpi_file_open +mpi_file_open_ +mpi_file_open__ +mpi_file_preallocate +mpi_file_preallocate_ +mpi_file_preallocate__ +mpi_file_read +mpi_file_read_ +mpi_file_read__ +mpi_file_read_all +mpi_file_read_all_ +mpi_file_read_all__ +mpi_file_read_all_begin +mpi_file_read_all_begin_ +mpi_file_read_all_begin__ +mpi_file_read_all_end +mpi_file_read_all_end_ +mpi_file_read_all_end__ +mpi_file_read_at +mpi_file_read_at_ +mpi_file_read_at__ +mpi_file_read_at_all +mpi_file_read_at_all_ +mpi_file_read_at_all__ +mpi_file_read_at_all_begin +mpi_file_read_at_all_begin_ +mpi_file_read_at_all_begin__ +mpi_file_read_at_all_end +mpi_file_read_at_all_end_ +mpi_file_read_at_all_end__ +mpi_file_read_ordered +mpi_file_read_ordered_ +mpi_file_read_ordered__ +mpi_file_read_ordered_begin +mpi_file_read_ordered_begin_ +mpi_file_read_ordered_begin__ +mpi_file_read_ordered_end +mpi_file_read_ordered_end_ +mpi_file_read_ordered_end__ +mpi_file_read_shared +mpi_file_read_shared_ +mpi_file_read_shared__ +mpi_file_seek +mpi_file_seek_ +mpi_file_seek__ +mpi_file_seek_shared +mpi_file_seek_shared_ +mpi_file_seek_shared__ +mpi_file_set_atomicity +mpi_file_set_atomicity_ +mpi_file_set_atomicity__ +mpi_file_set_errhandler +mpi_file_set_errhandler_ +mpi_file_set_errhandler__ +mpi_file_set_info +mpi_file_set_info_ +mpi_file_set_info__ +mpi_file_set_size +mpi_file_set_size_ +mpi_file_set_size__ +mpi_file_set_view +mpi_file_set_view_ +mpi_file_set_view__ +mpi_file_sync +mpi_file_sync_ +mpi_file_sync__ +mpi_file_write +mpi_file_write_ +mpi_file_write__ +mpi_file_write_all +mpi_file_write_all_ +mpi_file_write_all__ +mpi_file_write_all_begin +mpi_file_write_all_begin_ +mpi_file_write_all_begin__ +mpi_file_write_all_end +mpi_file_write_all_end_ +mpi_file_write_all_end__ +mpi_file_write_at +mpi_file_write_at_ +mpi_file_write_at__ +mpi_file_write_at_all +mpi_file_write_at_all_ +mpi_file_write_at_all__ +mpi_file_write_at_all_begin +mpi_file_write_at_all_begin_ +mpi_file_write_at_all_begin__ +mpi_file_write_at_all_end +mpi_file_write_at_all_end_ +mpi_file_write_at_all_end__ +mpi_file_write_ordered +mpi_file_write_ordered_ +mpi_file_write_ordered__ +mpi_file_write_ordered_begin +mpi_file_write_ordered_begin_ +mpi_file_write_ordered_begin__ +mpi_file_write_ordered_end +mpi_file_write_ordered_end_ +mpi_file_write_ordered_end__ +mpi_file_write_shared +mpi_file_write_shared_ +mpi_file_write_shared__ +mpi_finalize +mpi_finalize_ +mpi_finalize__ +mpi_finalized +mpi_finalized_ +mpi_finalized__ +mpi_free_mem +mpi_free_mem_ +mpi_free_mem__ +mpi_gather +mpi_gather_ +mpi_gather__ +mpi_gatherv +mpi_gatherv_ +mpi_gatherv__ +mpi_get +mpi_get_ +mpi_get__ +mpi_get_accumulate +mpi_get_accumulate_ +mpi_get_accumulate__ +mpi_get_address +mpi_get_address_ +mpi_get_address__ +mpi_get_count +mpi_get_count_ +mpi_get_count__ +mpi_get_elements +mpi_get_elements_ +mpi_get_elements__ +mpi_get_elements_x +mpi_get_elements_x_ +mpi_get_elements_x__ +mpi_get_library_version +mpi_get_library_version_ +mpi_get_library_version__ +mpi_get_processor_name +mpi_get_processor_name_ +mpi_get_processor_name__ +mpi_get_version +mpi_get_version_ +mpi_get_version__ +mpi_graph_create +mpi_graph_create_ +mpi_graph_create__ +mpi_graph_get +mpi_graph_get_ +mpi_graph_get__ +mpi_graph_map +mpi_graph_map_ +mpi_graph_map__ +mpi_graph_neighbors +mpi_graph_neighbors_ +mpi_graph_neighbors__ +mpi_graph_neighbors_count +mpi_graph_neighbors_count_ +mpi_graph_neighbors_count__ +mpi_graphdims_get +mpi_graphdims_get_ +mpi_graphdims_get__ +mpi_grequest_complete +mpi_grequest_complete_ +mpi_grequest_complete__ +mpi_grequest_start +mpi_grequest_start_ +mpi_grequest_start__ +mpi_group_compare +mpi_group_compare_ +mpi_group_compare__ +mpi_group_difference +mpi_group_difference_ +mpi_group_difference__ +mpi_group_excl +mpi_group_excl_ +mpi_group_excl__ +mpi_group_free +mpi_group_free_ +mpi_group_free__ +mpi_group_incl +mpi_group_incl_ +mpi_group_incl__ +mpi_group_intersection +mpi_group_intersection_ +mpi_group_intersection__ +mpi_group_range_excl +mpi_group_range_excl_ +mpi_group_range_excl__ +mpi_group_range_incl +mpi_group_range_incl_ +mpi_group_range_incl__ +mpi_group_rank +mpi_group_rank_ +mpi_group_rank__ +mpi_group_size +mpi_group_size_ +mpi_group_size__ +mpi_group_translate_ranks +mpi_group_translate_ranks_ +mpi_group_translate_ranks__ +mpi_group_union +mpi_group_union_ +mpi_group_union__ +mpi_iallgather +mpi_iallgather_ +mpi_iallgather__ +mpi_iallgatherv +mpi_iallgatherv_ +mpi_iallgatherv__ +mpi_iallreduce +mpi_iallreduce_ +mpi_iallreduce__ +mpi_ialltoall +mpi_ialltoall_ +mpi_ialltoall__ +mpi_ialltoallv +mpi_ialltoallv_ +mpi_ialltoallv__ +mpi_ialltoallw +mpi_ialltoallw_ +mpi_ialltoallw__ +mpi_ibarrier +mpi_ibarrier_ +mpi_ibarrier__ +mpi_ibcast +mpi_ibcast_ +mpi_ibcast__ +mpi_ibsend +mpi_ibsend_ +mpi_ibsend__ +mpi_iexscan +mpi_iexscan_ +mpi_iexscan__ +mpi_igather +mpi_igather_ +mpi_igather__ +mpi_igatherv +mpi_igatherv_ +mpi_igatherv__ +mpi_improbe +mpi_improbe_ +mpi_improbe__ +mpi_imrecv +mpi_imrecv_ +mpi_imrecv__ +mpi_info_create +mpi_info_create_ +mpi_info_create__ +mpi_info_delete +mpi_info_delete_ +mpi_info_delete__ +mpi_info_dup +mpi_info_dup_ +mpi_info_dup__ +mpi_info_free +mpi_info_free_ +mpi_info_free__ +mpi_info_get +mpi_info_get_ +mpi_info_get__ +mpi_info_get_nkeys +mpi_info_get_nkeys_ +mpi_info_get_nkeys__ +mpi_info_get_nthkey +mpi_info_get_nthkey_ +mpi_info_get_nthkey__ +mpi_info_get_valuelen +mpi_info_get_valuelen_ +mpi_info_get_valuelen__ +mpi_info_set +mpi_info_set_ +mpi_info_set__ +mpi_init +mpi_init_ +mpi_init__ +mpi_init_thread +mpi_init_thread_ +mpi_init_thread__ +mpi_initialized +mpi_initialized_ +mpi_initialized__ +mpi_intercomm_create +mpi_intercomm_create_ +mpi_intercomm_create__ +mpi_intercomm_merge +mpi_intercomm_merge_ +mpi_intercomm_merge__ +mpi_iprobe +mpi_iprobe_ +mpi_iprobe__ +mpi_irecv +mpi_irecv_ +mpi_irecv__ +mpi_ireduce +mpi_ireduce_ +mpi_ireduce__ +mpi_ireduce_scatter +mpi_ireduce_scatter_ +mpi_ireduce_scatter__ +mpi_ireduce_scatter_block +mpi_ireduce_scatter_block_ +mpi_ireduce_scatter_block__ +mpi_irsend +mpi_irsend_ +mpi_irsend__ +mpi_is_thread_main +mpi_is_thread_main_ +mpi_is_thread_main__ +mpi_iscan +mpi_iscan_ +mpi_iscan__ +mpi_iscatter +mpi_iscatter_ +mpi_iscatter__ +mpi_iscatterv +mpi_iscatterv_ +mpi_iscatterv__ +mpi_isend +mpi_isend_ +mpi_isend__ +mpi_issend +mpi_issend_ +mpi_issend__ +mpi_keyval_create +mpi_keyval_create_ +mpi_keyval_create__ +mpi_keyval_free +mpi_keyval_free_ +mpi_keyval_free__ +mpi_lookup_name +mpi_lookup_name_ +mpi_lookup_name__ +mpi_mprobe +mpi_mprobe_ +mpi_mprobe__ +mpi_mrecv +mpi_mrecv_ +mpi_mrecv__ +mpi_null_copy_fn +mpi_null_copy_fn_ +mpi_null_copy_fn__ +mpi_null_delete_fn +mpi_null_delete_fn_ +mpi_null_delete_fn__ +mpi_op_commutative +mpi_op_commutative_ +mpi_op_commutative__ +mpi_op_create +mpi_op_create_ +mpi_op_create__ +mpi_op_free +mpi_op_free_ +mpi_op_free__ +mpi_open_port +mpi_open_port_ +mpi_open_port__ +mpi_pack +mpi_pack_ +mpi_pack__ +mpi_pack_external +mpi_pack_external_ +mpi_pack_external__ +mpi_pack_external_size +mpi_pack_external_size_ +mpi_pack_external_size__ +mpi_pack_size +mpi_pack_size_ +mpi_pack_size__ +mpi_pcontrol +mpi_pcontrol_ +mpi_pcontrol__ +mpi_probe +mpi_probe_ +mpi_probe__ +mpi_publish_name +mpi_publish_name_ +mpi_publish_name__ +mpi_put +mpi_put_ +mpi_put__ +mpi_query_thread +mpi_query_thread_ +mpi_query_thread__ +mpi_raccumulate +mpi_raccumulate_ +mpi_raccumulate__ +mpi_recv +mpi_recv_ +mpi_recv__ +mpi_recv_init +mpi_recv_init_ +mpi_recv_init__ +mpi_reduce +mpi_reduce_ +mpi_reduce__ +mpi_reduce_local +mpi_reduce_local_ +mpi_reduce_local__ +mpi_reduce_scatter +mpi_reduce_scatter_ +mpi_reduce_scatter__ +mpi_reduce_scatter_block +mpi_reduce_scatter_block_ +mpi_reduce_scatter_block__ +mpi_register_datarep +mpi_register_datarep_ +mpi_register_datarep__ +mpi_request_free +mpi_request_free_ +mpi_request_free__ +mpi_request_get_status +mpi_request_get_status_ +mpi_request_get_status__ +mpi_rget +mpi_rget_ +mpi_rget__ +mpi_rget_accumulate +mpi_rget_accumulate_ +mpi_rget_accumulate__ +mpi_rput +mpi_rput_ +mpi_rput__ +mpi_rsend +mpi_rsend_ +mpi_rsend__ +mpi_rsend_init +mpi_rsend_init_ +mpi_rsend_init__ +mpi_scan +mpi_scan_ +mpi_scan__ +mpi_scatter +mpi_scatter_ +mpi_scatter__ +mpi_scatterv +mpi_scatterv_ +mpi_scatterv__ +mpi_send +mpi_send_ +mpi_send__ +mpi_send_init +mpi_send_init_ +mpi_send_init__ +mpi_sendrecv +mpi_sendrecv_ +mpi_sendrecv__ +mpi_sendrecv_replace +mpi_sendrecv_replace_ +mpi_sendrecv_replace__ +mpi_ssend +mpi_ssend_ +mpi_ssend__ +mpi_ssend_init +mpi_ssend_init_ +mpi_ssend_init__ +mpi_start +mpi_start_ +mpi_start__ +mpi_startall +mpi_startall_ +mpi_startall__ +mpi_status_c2f +mpi_status_c2f_ +mpi_status_c2f__ +mpi_status_f2c +mpi_status_f2c_ +mpi_status_f2c__ +mpi_status_set_cancelled +mpi_status_set_cancelled_ +mpi_status_set_cancelled__ +mpi_status_set_elements +mpi_status_set_elements_ +mpi_status_set_elements__ +mpi_status_set_elements_x +mpi_status_set_elements_x_ +mpi_status_set_elements_x__ +mpi_test +mpi_test_ +mpi_test__ +mpi_test_cancelled +mpi_test_cancelled_ +mpi_test_cancelled__ +mpi_testall +mpi_testall_ +mpi_testall__ +mpi_testany +mpi_testany_ +mpi_testany__ +mpi_testsome +mpi_testsome_ +mpi_testsome__ +mpi_topo_test +mpi_topo_test_ +mpi_topo_test__ +mpi_type_commit +mpi_type_commit_ +mpi_type_commit__ +mpi_type_contiguous +mpi_type_contiguous_ +mpi_type_contiguous__ +mpi_type_create_darray +mpi_type_create_darray_ +mpi_type_create_darray__ +mpi_type_create_f90_complex +mpi_type_create_f90_complex_ +mpi_type_create_f90_complex__ +mpi_type_create_f90_integer +mpi_type_create_f90_integer_ +mpi_type_create_f90_integer__ +mpi_type_create_f90_real +mpi_type_create_f90_real_ +mpi_type_create_f90_real__ +mpi_type_create_hindexed +mpi_type_create_hindexed_ +mpi_type_create_hindexed__ +mpi_type_create_hindexed_block +mpi_type_create_hindexed_block_ +mpi_type_create_hindexed_block__ +mpi_type_create_hvector +mpi_type_create_hvector_ +mpi_type_create_hvector__ +mpi_type_create_indexed_block +mpi_type_create_indexed_block_ +mpi_type_create_indexed_block__ +mpi_type_create_keyval +mpi_type_create_keyval_ +mpi_type_create_keyval__ +mpi_type_create_resized +mpi_type_create_resized_ +mpi_type_create_resized__ +mpi_type_create_struct +mpi_type_create_struct_ +mpi_type_create_struct__ +mpi_type_create_subarray +mpi_type_create_subarray_ +mpi_type_create_subarray__ +mpi_type_delete_attr +mpi_type_delete_attr_ +mpi_type_delete_attr__ +mpi_type_dup +mpi_type_dup_ +mpi_type_dup__ +mpi_type_dup_fn +mpi_type_dup_fn_ +mpi_type_dup_fn__ +mpi_type_extent +mpi_type_extent_ +mpi_type_extent__ +mpi_type_free +mpi_type_free_ +mpi_type_free__ +mpi_type_free_keyval +mpi_type_free_keyval_ +mpi_type_free_keyval__ +mpi_type_get_attr +mpi_type_get_attr_ +mpi_type_get_attr__ +mpi_type_get_contents +mpi_type_get_contents_ +mpi_type_get_contents__ +mpi_type_get_envelope +mpi_type_get_envelope_ +mpi_type_get_envelope__ +mpi_type_get_extent +mpi_type_get_extent_ +mpi_type_get_extent__ +mpi_type_get_extent_x +mpi_type_get_extent_x_ +mpi_type_get_extent_x__ +mpi_type_get_name +mpi_type_get_name_ +mpi_type_get_name__ +mpi_type_get_true_extent +mpi_type_get_true_extent_ +mpi_type_get_true_extent__ +mpi_type_get_true_extent_x +mpi_type_get_true_extent_x_ +mpi_type_get_true_extent_x__ +mpi_type_hindexed +mpi_type_hindexed_ +mpi_type_hindexed__ +mpi_type_hvector +mpi_type_hvector_ +mpi_type_hvector__ +mpi_type_indexed +mpi_type_indexed_ +mpi_type_indexed__ +mpi_type_lb +mpi_type_lb_ +mpi_type_lb__ +mpi_type_match_size +mpi_type_match_size_ +mpi_type_match_size__ +mpi_type_null_copy_fn +mpi_type_null_copy_fn_ +mpi_type_null_copy_fn__ +mpi_type_null_delete_fn +mpi_type_null_delete_fn_ +mpi_type_null_delete_fn__ +mpi_type_set_attr +mpi_type_set_attr_ +mpi_type_set_attr__ +mpi_type_set_name +mpi_type_set_name_ +mpi_type_set_name__ +mpi_type_size +mpi_type_size_ +mpi_type_size__ +mpi_type_size_x +mpi_type_size_x_ +mpi_type_size_x__ +mpi_type_struct +mpi_type_struct_ +mpi_type_struct__ +mpi_type_ub +mpi_type_ub_ +mpi_type_ub__ +mpi_type_vector +mpi_type_vector_ +mpi_type_vector__ +mpi_unpack +mpi_unpack_ +mpi_unpack__ +mpi_unpack_external +mpi_unpack_external_ +mpi_unpack_external__ +mpi_unpublish_name +mpi_unpublish_name_ +mpi_unpublish_name__ +mpi_wait +mpi_wait_ +mpi_wait__ +mpi_waitall +mpi_waitall_ +mpi_waitall__ +mpi_waitany +mpi_waitany_ +mpi_waitany__ +mpi_waitsome +mpi_waitsome_ +mpi_waitsome__ +mpi_win_allocate +mpi_win_allocate_ +mpi_win_allocate__ +mpi_win_allocate_shared +mpi_win_allocate_shared_ +mpi_win_allocate_shared__ +mpi_win_attach +mpi_win_attach_ +mpi_win_attach__ +mpi_win_call_errhandler +mpi_win_call_errhandler_ +mpi_win_call_errhandler__ +mpi_win_complete +mpi_win_complete_ +mpi_win_complete__ +mpi_win_create +mpi_win_create_ +mpi_win_create__ +mpi_win_create_dynamic +mpi_win_create_dynamic_ +mpi_win_create_dynamic__ +mpi_win_create_errhandler +mpi_win_create_errhandler_ +mpi_win_create_errhandler__ +mpi_win_create_keyval +mpi_win_create_keyval_ +mpi_win_create_keyval__ +mpi_win_delete_attr +mpi_win_delete_attr_ +mpi_win_delete_attr__ +mpi_win_detach +mpi_win_detach_ +mpi_win_detach__ +mpi_win_dup_fn +mpi_win_dup_fn_ +mpi_win_dup_fn__ +mpi_win_fence +mpi_win_fence_ +mpi_win_fence__ +mpi_win_flush +mpi_win_flush_ +mpi_win_flush__ +mpi_win_flush_all +mpi_win_flush_all_ +mpi_win_flush_all__ +mpi_win_flush_local +mpi_win_flush_local_ +mpi_win_flush_local__ +mpi_win_flush_local_all +mpi_win_flush_local_all_ +mpi_win_flush_local_all__ +mpi_win_free +mpi_win_free_ +mpi_win_free__ +mpi_win_free_keyval +mpi_win_free_keyval_ +mpi_win_free_keyval__ +mpi_win_get_attr +mpi_win_get_attr_ +mpi_win_get_attr__ +mpi_win_get_errhandler +mpi_win_get_errhandler_ +mpi_win_get_errhandler__ +mpi_win_get_group +mpi_win_get_group_ +mpi_win_get_group__ +mpi_win_get_name +mpi_win_get_name_ +mpi_win_get_name__ +mpi_win_lock +mpi_win_lock_ +mpi_win_lock__ +mpi_win_lock_all +mpi_win_lock_all_ +mpi_win_lock_all__ +mpi_win_null_copy_fn +mpi_win_null_copy_fn_ +mpi_win_null_copy_fn__ +mpi_win_null_delete_fn +mpi_win_null_delete_fn_ +mpi_win_null_delete_fn__ +mpi_win_post +mpi_win_post_ +mpi_win_post__ +mpi_win_set_attr +mpi_win_set_attr_ +mpi_win_set_attr__ +mpi_win_set_errhandler +mpi_win_set_errhandler_ +mpi_win_set_errhandler__ +mpi_win_set_name +mpi_win_set_name_ +mpi_win_set_name__ +mpi_win_shared_query +mpi_win_shared_query_ +mpi_win_shared_query__ +mpi_win_start +mpi_win_start_ +mpi_win_start__ +mpi_win_sync +mpi_win_sync_ +mpi_win_sync__ +mpi_win_test +mpi_win_test_ +mpi_win_test__ +mpi_win_unlock +mpi_win_unlock_ +mpi_win_unlock__ +mpi_win_unlock_all +mpi_win_unlock_all_ +mpi_win_unlock_all__ +mpi_win_wait +mpi_win_wait_ +mpi_win_wait__ +mpi_wtick +mpi_wtick_ +mpi_wtick__ +mpi_wtime +mpi_wtime_ +mpi_wtime__ +mpifcmb5 DATA +mpifcmb5_ DATA +mpifcmb9 DATA +mpifcmb9_ DATA +mpipriv1 DATA +mpipriv1_ DATA +mpipriv2 DATA +mpipriv2_ DATA +mpiprivc DATA +mpiprivc_ DATA +mqs_get_communicator +mqs_next_communicator +mqs_next_operation +mqs_setup_basic_callbacks +mqs_setup_communicator_iterator +mqs_setup_image +mqs_setup_operation_iterator +mqs_setup_process +mqs_update_communicator_list +mqs_version_compatibility +msmpi_get_bsend_overhead +msmpi_get_bsend_overhead_ +msmpi_get_bsend_overhead__ +msmpi_get_version +msmpi_get_version_ +msmpi_get_version__ +pmpi_abort +pmpi_abort_ +pmpi_abort__ +pmpi_accumulate +pmpi_accumulate_ +pmpi_accumulate__ +pmpi_add_error_class +pmpi_add_error_class_ +pmpi_add_error_class__ +pmpi_add_error_code +pmpi_add_error_code_ +pmpi_add_error_code__ +pmpi_add_error_string +pmpi_add_error_string_ +pmpi_add_error_string__ +pmpi_address +pmpi_address_ +pmpi_address__ +pmpi_aint_add +pmpi_aint_add_ +pmpi_aint_add__ +pmpi_aint_diff +pmpi_aint_diff_ +pmpi_aint_diff__ +pmpi_allgather +pmpi_allgather_ +pmpi_allgather__ +pmpi_allgatherv +pmpi_allgatherv_ +pmpi_allgatherv__ +pmpi_alloc_mem +pmpi_alloc_mem_ +pmpi_alloc_mem__ +pmpi_allreduce +pmpi_allreduce_ +pmpi_allreduce__ +pmpi_alltoall +pmpi_alltoall_ +pmpi_alltoall__ +pmpi_alltoallv +pmpi_alltoallv_ +pmpi_alltoallv__ +pmpi_alltoallw +pmpi_alltoallw_ +pmpi_alltoallw__ +pmpi_attr_delete +pmpi_attr_delete_ +pmpi_attr_delete__ +pmpi_attr_get +pmpi_attr_get_ +pmpi_attr_get__ +pmpi_attr_put +pmpi_attr_put_ +pmpi_attr_put__ +pmpi_barrier +pmpi_barrier_ +pmpi_barrier__ +pmpi_bcast +pmpi_bcast_ +pmpi_bcast__ +pmpi_bsend +pmpi_bsend_ +pmpi_bsend__ +pmpi_bsend_init +pmpi_bsend_init_ +pmpi_bsend_init__ +pmpi_buffer_attach +pmpi_buffer_attach_ +pmpi_buffer_attach__ +pmpi_buffer_detach +pmpi_buffer_detach_ +pmpi_buffer_detach__ +pmpi_cancel +pmpi_cancel_ +pmpi_cancel__ +pmpi_cart_coords +pmpi_cart_coords_ +pmpi_cart_coords__ +pmpi_cart_create +pmpi_cart_create_ +pmpi_cart_create__ +pmpi_cart_get +pmpi_cart_get_ +pmpi_cart_get__ +pmpi_cart_map +pmpi_cart_map_ +pmpi_cart_map__ +pmpi_cart_rank +pmpi_cart_rank_ +pmpi_cart_rank__ +pmpi_cart_shift +pmpi_cart_shift_ +pmpi_cart_shift__ +pmpi_cart_sub +pmpi_cart_sub_ +pmpi_cart_sub__ +pmpi_cartdim_get +pmpi_cartdim_get_ +pmpi_cartdim_get__ +pmpi_close_port +pmpi_close_port_ +pmpi_close_port__ +pmpi_comm_accept +pmpi_comm_accept_ +pmpi_comm_accept__ +pmpi_comm_call_errhandler +pmpi_comm_call_errhandler_ +pmpi_comm_call_errhandler__ +pmpi_comm_compare +pmpi_comm_compare_ +pmpi_comm_compare__ +pmpi_comm_connect +pmpi_comm_connect_ +pmpi_comm_connect__ +pmpi_comm_create +pmpi_comm_create_ +pmpi_comm_create__ +pmpi_comm_create_errhandler +pmpi_comm_create_errhandler_ +pmpi_comm_create_errhandler__ +pmpi_comm_create_keyval +pmpi_comm_create_keyval_ +pmpi_comm_create_keyval__ +pmpi_comm_delete_attr +pmpi_comm_delete_attr_ +pmpi_comm_delete_attr__ +pmpi_comm_disconnect +pmpi_comm_disconnect_ +pmpi_comm_disconnect__ +pmpi_comm_dup +pmpi_comm_dup_ +pmpi_comm_dup__ +pmpi_comm_dup_fn +pmpi_comm_dup_fn_ +pmpi_comm_dup_fn__ +pmpi_comm_free +pmpi_comm_free_ +pmpi_comm_free__ +pmpi_comm_free_keyval +pmpi_comm_free_keyval_ +pmpi_comm_free_keyval__ +pmpi_comm_get_attr +pmpi_comm_get_attr_ +pmpi_comm_get_attr__ +pmpi_comm_get_errhandler +pmpi_comm_get_errhandler_ +pmpi_comm_get_errhandler__ +pmpi_comm_get_name +pmpi_comm_get_name_ +pmpi_comm_get_name__ +pmpi_comm_get_parent +pmpi_comm_get_parent_ +pmpi_comm_get_parent__ +pmpi_comm_group +pmpi_comm_group_ +pmpi_comm_group__ +pmpi_comm_join +pmpi_comm_join_ +pmpi_comm_join__ +pmpi_comm_null_copy_fn +pmpi_comm_null_copy_fn_ +pmpi_comm_null_copy_fn__ +pmpi_comm_null_delete_fn +pmpi_comm_null_delete_fn_ +pmpi_comm_null_delete_fn__ +pmpi_comm_rank +pmpi_comm_rank_ +pmpi_comm_rank__ +pmpi_comm_remote_group +pmpi_comm_remote_group_ +pmpi_comm_remote_group__ +pmpi_comm_remote_size +pmpi_comm_remote_size_ +pmpi_comm_remote_size__ +pmpi_comm_set_attr +pmpi_comm_set_attr_ +pmpi_comm_set_attr__ +pmpi_comm_set_errhandler +pmpi_comm_set_errhandler_ +pmpi_comm_set_errhandler__ +pmpi_comm_set_name +pmpi_comm_set_name_ +pmpi_comm_set_name__ +pmpi_comm_size +pmpi_comm_size_ +pmpi_comm_size__ +pmpi_comm_spawn +pmpi_comm_spawn_ +pmpi_comm_spawn__ +pmpi_comm_spawn_multiple +pmpi_comm_spawn_multiple_ +pmpi_comm_spawn_multiple__ +pmpi_comm_split +pmpi_comm_split_ +pmpi_comm_split__ +pmpi_comm_split_type +pmpi_comm_split_type_ +pmpi_comm_split_type__ +pmpi_comm_test_inter +pmpi_comm_test_inter_ +pmpi_comm_test_inter__ +pmpi_compare_and_swap +pmpi_compare_and_swap_ +pmpi_compare_and_swap__ +pmpi_conversion_fn_null +pmpi_conversion_fn_null_ +pmpi_conversion_fn_null__ +pmpi_dims_create +pmpi_dims_create_ +pmpi_dims_create__ +pmpi_dist_graph_create +pmpi_dist_graph_create_ +pmpi_dist_graph_create__ +pmpi_dist_graph_create_adjacent +pmpi_dist_graph_create_adjacent_ +pmpi_dist_graph_create_adjacent__ +pmpi_dist_graph_neighbors +pmpi_dist_graph_neighbors_ +pmpi_dist_graph_neighbors__ +pmpi_dist_graph_neighbors_count +pmpi_dist_graph_neighbors_count_ +pmpi_dist_graph_neighbors_count__ +pmpi_dup_fn +pmpi_dup_fn_ +pmpi_dup_fn__ +pmpi_errhandler_create +pmpi_errhandler_create_ +pmpi_errhandler_create__ +pmpi_errhandler_free +pmpi_errhandler_free_ +pmpi_errhandler_free__ +pmpi_errhandler_get +pmpi_errhandler_get_ +pmpi_errhandler_get__ +pmpi_errhandler_set +pmpi_errhandler_set_ +pmpi_errhandler_set__ +pmpi_error_class +pmpi_error_class_ +pmpi_error_class__ +pmpi_error_string +pmpi_error_string_ +pmpi_error_string__ +pmpi_exscan +pmpi_exscan_ +pmpi_exscan__ +pmpi_fetch_and_op +pmpi_fetch_and_op_ +pmpi_fetch_and_op__ +pmpi_file_call_errhandler +pmpi_file_call_errhandler_ +pmpi_file_call_errhandler__ +pmpi_file_close +pmpi_file_close_ +pmpi_file_close__ +pmpi_file_create_errhandler +pmpi_file_create_errhandler_ +pmpi_file_create_errhandler__ +pmpi_file_delete +pmpi_file_delete_ +pmpi_file_delete__ +pmpi_file_get_amode +pmpi_file_get_amode_ +pmpi_file_get_amode__ +pmpi_file_get_atomicity +pmpi_file_get_atomicity_ +pmpi_file_get_atomicity__ +pmpi_file_get_byte_offset +pmpi_file_get_byte_offset_ +pmpi_file_get_byte_offset__ +pmpi_file_get_errhandler +pmpi_file_get_errhandler_ +pmpi_file_get_errhandler__ +pmpi_file_get_group +pmpi_file_get_group_ +pmpi_file_get_group__ +pmpi_file_get_info +pmpi_file_get_info_ +pmpi_file_get_info__ +pmpi_file_get_position +pmpi_file_get_position_ +pmpi_file_get_position__ +pmpi_file_get_position_shared +pmpi_file_get_position_shared_ +pmpi_file_get_position_shared__ +pmpi_file_get_size +pmpi_file_get_size_ +pmpi_file_get_size__ +pmpi_file_get_type_extent +pmpi_file_get_type_extent_ +pmpi_file_get_type_extent__ +pmpi_file_get_view +pmpi_file_get_view_ +pmpi_file_get_view__ +pmpi_file_iread +pmpi_file_iread_ +pmpi_file_iread__ +pmpi_file_iread_at +pmpi_file_iread_at_ +pmpi_file_iread_at__ +pmpi_file_iread_shared +pmpi_file_iread_shared_ +pmpi_file_iread_shared__ +pmpi_file_iwrite +pmpi_file_iwrite_ +pmpi_file_iwrite__ +pmpi_file_iwrite_at +pmpi_file_iwrite_at_ +pmpi_file_iwrite_at__ +pmpi_file_iwrite_shared +pmpi_file_iwrite_shared_ +pmpi_file_iwrite_shared__ +pmpi_file_open +pmpi_file_open_ +pmpi_file_open__ +pmpi_file_preallocate +pmpi_file_preallocate_ +pmpi_file_preallocate__ +pmpi_file_read +pmpi_file_read_ +pmpi_file_read__ +pmpi_file_read_all +pmpi_file_read_all_ +pmpi_file_read_all__ +pmpi_file_read_all_begin +pmpi_file_read_all_begin_ +pmpi_file_read_all_begin__ +pmpi_file_read_all_end +pmpi_file_read_all_end_ +pmpi_file_read_all_end__ +pmpi_file_read_at +pmpi_file_read_at_ +pmpi_file_read_at__ +pmpi_file_read_at_all +pmpi_file_read_at_all_ +pmpi_file_read_at_all__ +pmpi_file_read_at_all_begin +pmpi_file_read_at_all_begin_ +pmpi_file_read_at_all_begin__ +pmpi_file_read_at_all_end +pmpi_file_read_at_all_end_ +pmpi_file_read_at_all_end__ +pmpi_file_read_ordered +pmpi_file_read_ordered_ +pmpi_file_read_ordered__ +pmpi_file_read_ordered_begin +pmpi_file_read_ordered_begin_ +pmpi_file_read_ordered_begin__ +pmpi_file_read_ordered_end +pmpi_file_read_ordered_end_ +pmpi_file_read_ordered_end__ +pmpi_file_read_shared +pmpi_file_read_shared_ +pmpi_file_read_shared__ +pmpi_file_seek +pmpi_file_seek_ +pmpi_file_seek__ +pmpi_file_seek_shared +pmpi_file_seek_shared_ +pmpi_file_seek_shared__ +pmpi_file_set_atomicity +pmpi_file_set_atomicity_ +pmpi_file_set_atomicity__ +pmpi_file_set_errhandler +pmpi_file_set_errhandler_ +pmpi_file_set_errhandler__ +pmpi_file_set_info +pmpi_file_set_info_ +pmpi_file_set_info__ +pmpi_file_set_size +pmpi_file_set_size_ +pmpi_file_set_size__ +pmpi_file_set_view +pmpi_file_set_view_ +pmpi_file_set_view__ +pmpi_file_sync +pmpi_file_sync_ +pmpi_file_sync__ +pmpi_file_write +pmpi_file_write_ +pmpi_file_write__ +pmpi_file_write_all +pmpi_file_write_all_ +pmpi_file_write_all__ +pmpi_file_write_all_begin +pmpi_file_write_all_begin_ +pmpi_file_write_all_begin__ +pmpi_file_write_all_end +pmpi_file_write_all_end_ +pmpi_file_write_all_end__ +pmpi_file_write_at +pmpi_file_write_at_ +pmpi_file_write_at__ +pmpi_file_write_at_all +pmpi_file_write_at_all_ +pmpi_file_write_at_all__ +pmpi_file_write_at_all_begin +pmpi_file_write_at_all_begin_ +pmpi_file_write_at_all_begin__ +pmpi_file_write_at_all_end +pmpi_file_write_at_all_end_ +pmpi_file_write_at_all_end__ +pmpi_file_write_ordered +pmpi_file_write_ordered_ +pmpi_file_write_ordered__ +pmpi_file_write_ordered_begin +pmpi_file_write_ordered_begin_ +pmpi_file_write_ordered_begin__ +pmpi_file_write_ordered_end +pmpi_file_write_ordered_end_ +pmpi_file_write_ordered_end__ +pmpi_file_write_shared +pmpi_file_write_shared_ +pmpi_file_write_shared__ +pmpi_finalize +pmpi_finalize_ +pmpi_finalize__ +pmpi_finalized +pmpi_finalized_ +pmpi_finalized__ +pmpi_free_mem +pmpi_free_mem_ +pmpi_free_mem__ +pmpi_gather +pmpi_gather_ +pmpi_gather__ +pmpi_gatherv +pmpi_gatherv_ +pmpi_gatherv__ +pmpi_get +pmpi_get_ +pmpi_get__ +pmpi_get_accumulate +pmpi_get_accumulate_ +pmpi_get_accumulate__ +pmpi_get_address +pmpi_get_address_ +pmpi_get_address__ +pmpi_get_count +pmpi_get_count_ +pmpi_get_count__ +pmpi_get_elements +pmpi_get_elements_ +pmpi_get_elements__ +pmpi_get_elements_x +pmpi_get_elements_x_ +pmpi_get_elements_x__ +pmpi_get_library_version +pmpi_get_library_version_ +pmpi_get_library_version__ +pmpi_get_processor_name +pmpi_get_processor_name_ +pmpi_get_processor_name__ +pmpi_get_version +pmpi_get_version_ +pmpi_get_version__ +pmpi_graph_create +pmpi_graph_create_ +pmpi_graph_create__ +pmpi_graph_get +pmpi_graph_get_ +pmpi_graph_get__ +pmpi_graph_map +pmpi_graph_map_ +pmpi_graph_map__ +pmpi_graph_neighbors +pmpi_graph_neighbors_ +pmpi_graph_neighbors__ +pmpi_graph_neighbors_count +pmpi_graph_neighbors_count_ +pmpi_graph_neighbors_count__ +pmpi_graphdims_get +pmpi_graphdims_get_ +pmpi_graphdims_get__ +pmpi_grequest_complete +pmpi_grequest_complete_ +pmpi_grequest_complete__ +pmpi_grequest_start +pmpi_grequest_start_ +pmpi_grequest_start__ +pmpi_group_compare +pmpi_group_compare_ +pmpi_group_compare__ +pmpi_group_difference +pmpi_group_difference_ +pmpi_group_difference__ +pmpi_group_excl +pmpi_group_excl_ +pmpi_group_excl__ +pmpi_group_free +pmpi_group_free_ +pmpi_group_free__ +pmpi_group_incl +pmpi_group_incl_ +pmpi_group_incl__ +pmpi_group_intersection +pmpi_group_intersection_ +pmpi_group_intersection__ +pmpi_group_range_excl +pmpi_group_range_excl_ +pmpi_group_range_excl__ +pmpi_group_range_incl +pmpi_group_range_incl_ +pmpi_group_range_incl__ +pmpi_group_rank +pmpi_group_rank_ +pmpi_group_rank__ +pmpi_group_size +pmpi_group_size_ +pmpi_group_size__ +pmpi_group_translate_ranks +pmpi_group_translate_ranks_ +pmpi_group_translate_ranks__ +pmpi_group_union +pmpi_group_union_ +pmpi_group_union__ +pmpi_iallgather +pmpi_iallgather_ +pmpi_iallgather__ +pmpi_iallgatherv +pmpi_iallgatherv_ +pmpi_iallgatherv__ +pmpi_iallreduce +pmpi_iallreduce_ +pmpi_iallreduce__ +pmpi_ialltoall +pmpi_ialltoall_ +pmpi_ialltoall__ +pmpi_ialltoallv +pmpi_ialltoallv_ +pmpi_ialltoallv__ +pmpi_ialltoallw +pmpi_ialltoallw_ +pmpi_ialltoallw__ +pmpi_ibarrier +pmpi_ibarrier_ +pmpi_ibarrier__ +pmpi_ibcast +pmpi_ibcast_ +pmpi_ibcast__ +pmpi_ibsend +pmpi_ibsend_ +pmpi_ibsend__ +pmpi_iexscan +pmpi_iexscan_ +pmpi_iexscan__ +pmpi_igather +pmpi_igather_ +pmpi_igather__ +pmpi_igatherv +pmpi_igatherv_ +pmpi_igatherv__ +pmpi_improbe +pmpi_improbe_ +pmpi_improbe__ +pmpi_imrecv +pmpi_imrecv_ +pmpi_imrecv__ +pmpi_info_create +pmpi_info_create_ +pmpi_info_create__ +pmpi_info_delete +pmpi_info_delete_ +pmpi_info_delete__ +pmpi_info_dup +pmpi_info_dup_ +pmpi_info_dup__ +pmpi_info_free +pmpi_info_free_ +pmpi_info_free__ +pmpi_info_get +pmpi_info_get_ +pmpi_info_get__ +pmpi_info_get_nkeys +pmpi_info_get_nkeys_ +pmpi_info_get_nkeys__ +pmpi_info_get_nthkey +pmpi_info_get_nthkey_ +pmpi_info_get_nthkey__ +pmpi_info_get_valuelen +pmpi_info_get_valuelen_ +pmpi_info_get_valuelen__ +pmpi_info_set +pmpi_info_set_ +pmpi_info_set__ +pmpi_init +pmpi_init_ +pmpi_init__ +pmpi_init_thread +pmpi_init_thread_ +pmpi_init_thread__ +pmpi_initialized +pmpi_initialized_ +pmpi_initialized__ +pmpi_intercomm_create +pmpi_intercomm_create_ +pmpi_intercomm_create__ +pmpi_intercomm_merge +pmpi_intercomm_merge_ +pmpi_intercomm_merge__ +pmpi_iprobe +pmpi_iprobe_ +pmpi_iprobe__ +pmpi_irecv +pmpi_irecv_ +pmpi_irecv__ +pmpi_ireduce +pmpi_ireduce_ +pmpi_ireduce__ +pmpi_ireduce_scatter +pmpi_ireduce_scatter_ +pmpi_ireduce_scatter__ +pmpi_ireduce_scatter_block +pmpi_ireduce_scatter_block_ +pmpi_ireduce_scatter_block__ +pmpi_irsend +pmpi_irsend_ +pmpi_irsend__ +pmpi_is_thread_main +pmpi_is_thread_main_ +pmpi_is_thread_main__ +pmpi_iscan +pmpi_iscan_ +pmpi_iscan__ +pmpi_iscatter +pmpi_iscatter_ +pmpi_iscatter__ +pmpi_iscatterv +pmpi_iscatterv_ +pmpi_iscatterv__ +pmpi_isend +pmpi_isend_ +pmpi_isend__ +pmpi_issend +pmpi_issend_ +pmpi_issend__ +pmpi_keyval_create +pmpi_keyval_create_ +pmpi_keyval_create__ +pmpi_keyval_free +pmpi_keyval_free_ +pmpi_keyval_free__ +pmpi_lookup_name +pmpi_lookup_name_ +pmpi_lookup_name__ +pmpi_mprobe +pmpi_mprobe_ +pmpi_mprobe__ +pmpi_mrecv +pmpi_mrecv_ +pmpi_mrecv__ +pmpi_null_copy_fn +pmpi_null_copy_fn_ +pmpi_null_copy_fn__ +pmpi_null_delete_fn +pmpi_null_delete_fn_ +pmpi_null_delete_fn__ +pmpi_op_commutative +pmpi_op_commutative_ +pmpi_op_commutative__ +pmpi_op_create +pmpi_op_create_ +pmpi_op_create__ +pmpi_op_free +pmpi_op_free_ +pmpi_op_free__ +pmpi_open_port +pmpi_open_port_ +pmpi_open_port__ +pmpi_pack +pmpi_pack_ +pmpi_pack__ +pmpi_pack_external +pmpi_pack_external_ +pmpi_pack_external__ +pmpi_pack_external_size +pmpi_pack_external_size_ +pmpi_pack_external_size__ +pmpi_pack_size +pmpi_pack_size_ +pmpi_pack_size__ +pmpi_pcontrol +pmpi_pcontrol_ +pmpi_pcontrol__ +pmpi_probe +pmpi_probe_ +pmpi_probe__ +pmpi_publish_name +pmpi_publish_name_ +pmpi_publish_name__ +pmpi_put +pmpi_put_ +pmpi_put__ +pmpi_query_thread +pmpi_query_thread_ +pmpi_query_thread__ +pmpi_raccumulate +pmpi_raccumulate_ +pmpi_raccumulate__ +pmpi_recv +pmpi_recv_ +pmpi_recv__ +pmpi_recv_init +pmpi_recv_init_ +pmpi_recv_init__ +pmpi_reduce +pmpi_reduce_ +pmpi_reduce__ +pmpi_reduce_local +pmpi_reduce_local_ +pmpi_reduce_local__ +pmpi_reduce_scatter +pmpi_reduce_scatter_ +pmpi_reduce_scatter__ +pmpi_reduce_scatter_block +pmpi_reduce_scatter_block_ +pmpi_reduce_scatter_block__ +pmpi_register_datarep +pmpi_register_datarep_ +pmpi_register_datarep__ +pmpi_request_free +pmpi_request_free_ +pmpi_request_free__ +pmpi_request_get_status +pmpi_request_get_status_ +pmpi_request_get_status__ +pmpi_rget +pmpi_rget_ +pmpi_rget__ +pmpi_rget_accumulate +pmpi_rget_accumulate_ +pmpi_rget_accumulate__ +pmpi_rput +pmpi_rput_ +pmpi_rput__ +pmpi_rsend +pmpi_rsend_ +pmpi_rsend__ +pmpi_rsend_init +pmpi_rsend_init_ +pmpi_rsend_init__ +pmpi_scan +pmpi_scan_ +pmpi_scan__ +pmpi_scatter +pmpi_scatter_ +pmpi_scatter__ +pmpi_scatterv +pmpi_scatterv_ +pmpi_scatterv__ +pmpi_send +pmpi_send_ +pmpi_send__ +pmpi_send_init +pmpi_send_init_ +pmpi_send_init__ +pmpi_sendrecv +pmpi_sendrecv_ +pmpi_sendrecv__ +pmpi_sendrecv_replace +pmpi_sendrecv_replace_ +pmpi_sendrecv_replace__ +pmpi_ssend +pmpi_ssend_ +pmpi_ssend__ +pmpi_ssend_init +pmpi_ssend_init_ +pmpi_ssend_init__ +pmpi_start +pmpi_start_ +pmpi_start__ +pmpi_startall +pmpi_startall_ +pmpi_startall__ +pmpi_status_c2f +pmpi_status_c2f_ +pmpi_status_c2f__ +pmpi_status_f2c +pmpi_status_f2c_ +pmpi_status_f2c__ +pmpi_status_set_cancelled +pmpi_status_set_cancelled_ +pmpi_status_set_cancelled__ +pmpi_status_set_elements +pmpi_status_set_elements_ +pmpi_status_set_elements__ +pmpi_status_set_elements_x +pmpi_status_set_elements_x_ +pmpi_status_set_elements_x__ +pmpi_test +pmpi_test_ +pmpi_test__ +pmpi_test_cancelled +pmpi_test_cancelled_ +pmpi_test_cancelled__ +pmpi_testall +pmpi_testall_ +pmpi_testall__ +pmpi_testany +pmpi_testany_ +pmpi_testany__ +pmpi_testsome +pmpi_testsome_ +pmpi_testsome__ +pmpi_topo_test +pmpi_topo_test_ +pmpi_topo_test__ +pmpi_type_commit +pmpi_type_commit_ +pmpi_type_commit__ +pmpi_type_contiguous +pmpi_type_contiguous_ +pmpi_type_contiguous__ +pmpi_type_create_darray +pmpi_type_create_darray_ +pmpi_type_create_darray__ +pmpi_type_create_f90_complex_ +pmpi_type_create_f90_complex__ +pmpi_type_create_f90_integer_ +pmpi_type_create_f90_integer__ +pmpi_type_create_f90_real_ +pmpi_type_create_f90_real__ +pmpi_type_create_hindexed +pmpi_type_create_hindexed_ +pmpi_type_create_hindexed__ +pmpi_type_create_hindexed_block +pmpi_type_create_hindexed_block_ +pmpi_type_create_hindexed_block__ +pmpi_type_create_hvector +pmpi_type_create_hvector_ +pmpi_type_create_hvector__ +pmpi_type_create_indexed_block +pmpi_type_create_indexed_block_ +pmpi_type_create_indexed_block__ +pmpi_type_create_keyval +pmpi_type_create_keyval_ +pmpi_type_create_keyval__ +pmpi_type_create_resized +pmpi_type_create_resized_ +pmpi_type_create_resized__ +pmpi_type_create_struct +pmpi_type_create_struct_ +pmpi_type_create_struct__ +pmpi_type_create_subarray +pmpi_type_create_subarray_ +pmpi_type_create_subarray__ +pmpi_type_delete_attr +pmpi_type_delete_attr_ +pmpi_type_delete_attr__ +pmpi_type_dup +pmpi_type_dup_ +pmpi_type_dup__ +pmpi_type_dup_fn +pmpi_type_dup_fn_ +pmpi_type_dup_fn__ +pmpi_type_extent +pmpi_type_extent_ +pmpi_type_extent__ +pmpi_type_free +pmpi_type_free_ +pmpi_type_free__ +pmpi_type_free_keyval +pmpi_type_free_keyval_ +pmpi_type_free_keyval__ +pmpi_type_get_attr +pmpi_type_get_attr_ +pmpi_type_get_attr__ +pmpi_type_get_contents +pmpi_type_get_contents_ +pmpi_type_get_contents__ +pmpi_type_get_envelope +pmpi_type_get_envelope_ +pmpi_type_get_envelope__ +pmpi_type_get_extent +pmpi_type_get_extent_ +pmpi_type_get_extent__ +pmpi_type_get_extent_x +pmpi_type_get_extent_x_ +pmpi_type_get_extent_x__ +pmpi_type_get_name +pmpi_type_get_name_ +pmpi_type_get_name__ +pmpi_type_get_true_extent +pmpi_type_get_true_extent_ +pmpi_type_get_true_extent__ +pmpi_type_get_true_extent_x +pmpi_type_get_true_extent_x_ +pmpi_type_get_true_extent_x__ +pmpi_type_hindexed +pmpi_type_hindexed_ +pmpi_type_hindexed__ +pmpi_type_hvector +pmpi_type_hvector_ +pmpi_type_hvector__ +pmpi_type_indexed +pmpi_type_indexed_ +pmpi_type_indexed__ +pmpi_type_lb +pmpi_type_lb_ +pmpi_type_lb__ +pmpi_type_match_size +pmpi_type_match_size_ +pmpi_type_match_size__ +pmpi_type_null_copy_fn +pmpi_type_null_copy_fn_ +pmpi_type_null_copy_fn__ +pmpi_type_null_delete_fn +pmpi_type_null_delete_fn_ +pmpi_type_null_delete_fn__ +pmpi_type_set_attr +pmpi_type_set_attr_ +pmpi_type_set_attr__ +pmpi_type_set_name +pmpi_type_set_name_ +pmpi_type_set_name__ +pmpi_type_size +pmpi_type_size_ +pmpi_type_size__ +pmpi_type_size_x +pmpi_type_size_x_ +pmpi_type_size_x__ +pmpi_type_struct +pmpi_type_struct_ +pmpi_type_struct__ +pmpi_type_ub +pmpi_type_ub_ +pmpi_type_ub__ +pmpi_type_vector +pmpi_type_vector_ +pmpi_type_vector__ +pmpi_unpack +pmpi_unpack_ +pmpi_unpack__ +pmpi_unpack_external +pmpi_unpack_external_ +pmpi_unpack_external__ +pmpi_unpublish_name +pmpi_unpublish_name_ +pmpi_unpublish_name__ +pmpi_wait +pmpi_wait_ +pmpi_wait__ +pmpi_waitall +pmpi_waitall_ +pmpi_waitall__ +pmpi_waitany +pmpi_waitany_ +pmpi_waitany__ +pmpi_waitsome +pmpi_waitsome_ +pmpi_waitsome__ +pmpi_win_allocate +pmpi_win_allocate_ +pmpi_win_allocate__ +pmpi_win_allocate_shared +pmpi_win_allocate_shared_ +pmpi_win_allocate_shared__ +pmpi_win_attach +pmpi_win_attach_ +pmpi_win_attach__ +pmpi_win_call_errhandler +pmpi_win_call_errhandler_ +pmpi_win_call_errhandler__ +pmpi_win_complete +pmpi_win_complete_ +pmpi_win_complete__ +pmpi_win_create +pmpi_win_create_ +pmpi_win_create__ +pmpi_win_create_dynamic +pmpi_win_create_dynamic_ +pmpi_win_create_dynamic__ +pmpi_win_create_errhandler +pmpi_win_create_errhandler_ +pmpi_win_create_errhandler__ +pmpi_win_create_keyval +pmpi_win_create_keyval_ +pmpi_win_create_keyval__ +pmpi_win_delete_attr +pmpi_win_delete_attr_ +pmpi_win_delete_attr__ +pmpi_win_detach +pmpi_win_detach_ +pmpi_win_detach__ +pmpi_win_dup_fn +pmpi_win_dup_fn_ +pmpi_win_dup_fn__ +pmpi_win_fence +pmpi_win_fence_ +pmpi_win_fence__ +pmpi_win_flush +pmpi_win_flush_ +pmpi_win_flush__ +pmpi_win_flush_all +pmpi_win_flush_all_ +pmpi_win_flush_all__ +pmpi_win_flush_local +pmpi_win_flush_local_ +pmpi_win_flush_local__ +pmpi_win_flush_local_all +pmpi_win_flush_local_all_ +pmpi_win_flush_local_all__ +pmpi_win_free +pmpi_win_free_ +pmpi_win_free__ +pmpi_win_free_keyval +pmpi_win_free_keyval_ +pmpi_win_free_keyval__ +pmpi_win_get_attr +pmpi_win_get_attr_ +pmpi_win_get_attr__ +pmpi_win_get_errhandler +pmpi_win_get_errhandler_ +pmpi_win_get_errhandler__ +pmpi_win_get_group +pmpi_win_get_group_ +pmpi_win_get_group__ +pmpi_win_get_name +pmpi_win_get_name_ +pmpi_win_get_name__ +pmpi_win_lock +pmpi_win_lock_ +pmpi_win_lock__ +pmpi_win_lock_all +pmpi_win_lock_all_ +pmpi_win_lock_all__ +pmpi_win_null_copy_fn +pmpi_win_null_copy_fn_ +pmpi_win_null_copy_fn__ +pmpi_win_null_delete_fn +pmpi_win_null_delete_fn_ +pmpi_win_null_delete_fn__ +pmpi_win_post +pmpi_win_post_ +pmpi_win_post__ +pmpi_win_set_attr +pmpi_win_set_attr_ +pmpi_win_set_attr__ +pmpi_win_set_errhandler +pmpi_win_set_errhandler_ +pmpi_win_set_errhandler__ +pmpi_win_set_name +pmpi_win_set_name_ +pmpi_win_set_name__ +pmpi_win_shared_query +pmpi_win_shared_query_ +pmpi_win_shared_query__ +pmpi_win_start +pmpi_win_start_ +pmpi_win_start__ +pmpi_win_sync +pmpi_win_sync_ +pmpi_win_sync__ +pmpi_win_test +pmpi_win_test_ +pmpi_win_test__ +pmpi_win_unlock +pmpi_win_unlock_ +pmpi_win_unlock__ +pmpi_win_unlock_all +pmpi_win_unlock_all_ +pmpi_win_unlock_all__ +pmpi_win_wait +pmpi_win_wait_ +pmpi_win_wait__ +pmpi_wtick +pmpi_wtick_ +pmpi_wtick__ +pmpi_wtime +pmpi_wtime_ +pmpi_wtime__ +pmsmpi_get_bsend_overhead +pmsmpi_get_bsend_overhead_ +pmsmpi_get_bsend_overhead__ +pmsmpi_get_version +pmsmpi_get_version_ +pmsmpi_get_version__ +recvq_posted DATA +recvq_unexpected DATA diff --git a/python_requirements.txt b/python_requirements.txt index 6f4e21c1a2b29f4c0aaffac70301070657f67abf..aed504f421d760fd9af281b06dc70628fc07ef17 100644 --- a/python_requirements.txt +++ b/python_requirements.txt @@ -1,6 +1,6 @@ -numpy==1.21.6 -scipy==1.8.1 -matplotlib==3.6.2 +numpy +scipy +matplotlib mpi4py doxypypy jupyter @@ -12,8 +12,9 @@ seaborn # GDAL, Fiona and Rasterio Python packages cannot be installed using PyPI on Windows # Also, the version of Shapely that comes through pip is unstable # Instead, we need to use unofficial wheels from Christoph Gohlke’s website -.\wheels\GDAL-3.4.3-cp310-cp310-win_amd64.whl -.\wheels\Fiona-1.8.21-cp310-cp310-win_amd64.whl -.\wheels\rasterio-1.2.10-cp310-cp310-win_amd64.whl -.\wheels\Shapely-1.8.2-cp310-cp310-win_amd64.whl -geopandas \ No newline at end of file +.\wheels\GDAL-3.7.3-cp311-cp311-win_amd64.whl +.\wheels\fiona-1.9.5-cp311-cp311-win_amd64.whl +.\wheels\rasterio-1.3.9-cp311-cp311-win_amd64.whl +.\wheels\shapely-2.0.2-cp311-cp311-win_amd64.whl +geopandas +pyqt5 \ No newline at end of file diff --git a/python_requirements_v8p4.txt b/python_requirements_v8p4.txt new file mode 100644 index 0000000000000000000000000000000000000000..004fab262a4458a60766c1a125ba8ca5588bff5e --- /dev/null +++ b/python_requirements_v8p4.txt @@ -0,0 +1,131 @@ +affine==2.4.0 +anyio==4.0.0 +argon2-cffi==23.1.0 +argon2-cffi-bindings==21.2.0 +arrow==1.3.0 +asttokens==2.4.1 +async-lru==2.0.4 +attrs==23.1.0 +Babel==2.13.1 +beautifulsoup4==4.12.2 +bleach==6.1.0 +certifi==2023.7.22 +cffi==1.16.0 +chardet==5.2.0 +charset-normalizer==3.3.2 +click==8.1.7 +click-plugins==1.1.1 +cligj==0.7.2 +colorama==0.4.6 +comm==0.2.0 +contourpy==1.2.0 +cycler==0.12.1 +debugpy==1.8.0 +decorator==5.1.1 +defusedxml==0.7.1 +doxypypy==0.8.8.7 +et-xmlfile==1.1.0 +exceptiongroup==1.1.3 +executing==2.0.1 +fastjsonschema==2.18.1 +.\wheels\fiona-1.9.5-cp310-cp310-win_amd64.whl +fonttools==4.44.0 +fqdn==1.5.1 +.\wheels\GDAL-3.7.3-cp310-cp310-win_amd64.whl +geopandas==0.14.0 +idna==3.4 +ipykernel==6.26.0 +ipython==8.17.2 +ipywidgets==8.1.1 +isoduration==20.11.0 +jedi==0.19.1 +Jinja2==3.1.2 +json5==0.9.14 +jsonpointer==2.4 +jsonschema==4.19.2 +jsonschema-specifications==2023.7.1 +jupyter==1.0.0 +jupyter-console==6.6.3 +jupyter-events==0.9.0 +jupyter-lsp==2.2.0 +jupyter_client==8.6.0 +jupyter_core==5.5.0 +jupyter_server==2.10.0 +jupyter_server_terminals==0.4.4 +jupyterlab==4.0.8 +jupyterlab-pygments==0.2.2 +jupyterlab-widgets==3.0.9 +jupyterlab_server==2.25.1 +kiwisolver==1.4.5 +lxml==4.9.3 +MarkupSafe==2.1.3 +matplotlib==3.6.2 +matplotlib-inline==0.1.6 +mistune==3.0.2 +mpi4py==3.1.5 +nbclient==0.9.0 +nbconvert==7.11.0 +nbformat==5.9.2 +nest-asyncio==1.5.8 +notebook==7.0.6 +notebook_shim==0.2.3 +numpy==1.21.6 +openpyxl==3.1.2 +overrides==7.4.0 +OWSLib==0.29.3 +packaging==23.2 +pandas==2.0.3 +pandocfilters==1.5.0 +parso==0.8.3 +Pillow==10.1.0 +platformdirs==3.11.0 +prometheus-client==0.18.0 +prompt-toolkit==3.0.39 +psutil==5.9.6 +pure-eval==0.2.2 +pycparser==2.21 +Pygments==2.16.1 +pyparsing==3.1.1 +pyproj==3.6.1 +PyQt5==5.15.10 +PyQt5-Qt5==5.15.2 +PyQt5-sip==12.13.0 +python-dateutil==2.8.2 +python-json-logger==2.0.7 +pytz==2023.3.post1 +pywin32==306 +pywinpty==2.0.12 +PyYAML==6.0.1 +pyzmq==25.1.1 +qtconsole==5.5.0 +QtPy==2.4.1 +.\wheels\rasterio-1.3.9-cp310-cp310-win_amd64.whl +referencing==0.30.2 +requests==2.31.0 +rfc3339-validator==0.1.4 +rfc3986-validator==0.1.1 +rpds-py==0.12.0 +scipy==1.8.1 +seaborn==0.13.0 +Send2Trash==1.8.2 +.\wheels\shapely-2.0.2-cp310-cp310-win_amd64.whl +six==1.16.0 +sniffio==1.3.0 +snuggs==1.4.7 +soupsieve==2.5 +stack-data==0.6.3 +terminado==0.17.1 +tinycss2==1.2.1 +tomli==2.0.1 +tornado==6.3.3 +traitlets==5.13.0 +types-python-dateutil==2.8.19.14 +typing_extensions==4.8.0 +tzdata==2023.3 +uri-template==1.3.0 +urllib3==2.0.7 +wcwidth==0.2.9 +webcolors==1.13 +webencodings==0.5.1 +websocket-client==1.6.4 +widgetsnbextension==4.0.9 diff --git a/python_requirements_v8p5.txt b/python_requirements_v8p5.txt new file mode 100644 index 0000000000000000000000000000000000000000..7de6f915fda2cf6feda0843989352e3c5150a7cc --- /dev/null +++ b/python_requirements_v8p5.txt @@ -0,0 +1,128 @@ +affine==2.4.0 +anyio==4.1.0 +argon2-cffi==23.1.0 +argon2-cffi-bindings==21.2.0 +arrow==1.3.0 +asttokens==2.4.1 +async-lru==2.0.4 +attrs==23.1.0 +Babel==2.13.1 +beautifulsoup4==4.12.2 +bleach==6.1.0 +certifi==2023.11.17 +cffi==1.16.0 +chardet==5.2.0 +charset-normalizer==3.3.2 +click==8.1.7 +click-plugins==1.1.1 +cligj==0.7.2 +colorama==0.4.6 +comm==0.2.0 +contourpy==1.2.0 +cycler==0.12.1 +debugpy==1.8.0 +decorator==5.1.1 +defusedxml==0.7.1 +doxypypy==0.8.8.7 +et-xmlfile==1.1.0 +executing==2.0.1 +fastjsonschema==2.19.0 +.\wheels\fiona-1.9.5-cp311-cp311-win_amd64.whl +fonttools==4.46.0 +fqdn==1.5.1 +.\wheels\GDAL-3.7.3-cp311-cp311-win_amd64.whl +geopandas==0.14.1 +idna==3.6 +ipykernel==6.27.1 +ipython==8.18.1 +ipywidgets==8.1.1 +isoduration==20.11.0 +jedi==0.19.1 +Jinja2==3.1.2 +json5==0.9.14 +jsonpointer==2.4 +jsonschema==4.20.0 +jsonschema-specifications==2023.11.2 +jupyter==1.0.0 +jupyter-console==6.6.3 +jupyter-events==0.9.0 +jupyter-lsp==2.2.1 +jupyter_client==8.6.0 +jupyter_core==5.5.0 +jupyter_server==2.11.1 +jupyter_server_terminals==0.4.4 +jupyterlab==4.0.9 +jupyterlab-widgets==3.0.9 +jupyterlab_pygments==0.3.0 +jupyterlab_server==2.25.2 +kiwisolver==1.4.5 +lxml==4.9.3 +MarkupSafe==2.1.3 +matplotlib==3.8.2 +matplotlib-inline==0.1.6 +mistune==3.0.2 +mpi4py==3.1.5 +nbclient==0.9.0 +nbconvert==7.11.0 +nbformat==5.9.2 +nest-asyncio==1.5.8 +notebook==7.0.6 +notebook_shim==0.2.3 +numpy==1.26.2 +openpyxl==3.1.2 +overrides==7.4.0 +OWSLib==0.29.3 +packaging==23.2 +pandas==2.1.3 +pandocfilters==1.5.0 +parso==0.8.3 +Pillow==10.1.0 +platformdirs==4.0.0 +prometheus-client==0.19.0 +prompt-toolkit==3.0.41 +psutil==5.9.6 +pure-eval==0.2.2 +pycparser==2.21 +Pygments==2.17.2 +pyparsing==3.1.1 +pyproj==3.6.1 +PyQt5==5.15.10 +PyQt5-Qt5==5.15.2 +PyQt5-sip==12.13.0 +python-dateutil==2.8.2 +python-json-logger==2.0.7 +pytz==2023.3.post1 +pywin32==306 +pywinpty==2.0.12 +PyYAML==6.0.1 +pyzmq==25.1.1 +qtconsole==5.5.1 +QtPy==2.4.1 +.\wheels\rasterio-1.3.9-cp311-cp311-win_amd64.whl +referencing==0.31.1 +requests==2.31.0 +rfc3339-validator==0.1.4 +rfc3986-validator==0.1.1 +rpds-py==0.13.2 +scipy==1.11.4 +seaborn==0.13.0 +Send2Trash==1.8.2 +.\wheels\shapely-2.0.2-cp311-cp311-win_amd64.whl +six==1.16.0 +sniffio==1.3.0 +snuggs==1.4.7 +soupsieve==2.5 +stack-data==0.6.3 +terminado==0.18.0 +tinycss2==1.2.1 +tornado==6.4 +traitlets==5.14.0 +types-python-dateutil==2.8.19.14 +tzdata==2023.3 +uri-template==1.3.0 +urllib3==2.1.0 +wcwidth==0.2.12 +webcolors==1.13 +webencodings==0.5.1 +websocket-client==1.7.0 +widgetsnbextension==4.0.9 diff --git a/wheels/Fiona-1.8.21-cp310-cp310-win_amd64.whl b/wheels/Fiona-1.8.21-cp310-cp310-win_amd64.whl deleted file mode 100644 index 287107918d44d9bb12eae70e249a00896da23d2a..0000000000000000000000000000000000000000 --- a/wheels/Fiona-1.8.21-cp310-cp310-win_amd64.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:20cb819eef56c57f356cce4fea3b0384da956aab20beed4b2826b73acf1a04b5 -size 540558 diff --git a/wheels/GDAL-3.4.3-cp310-cp310-win_amd64.whl b/wheels/GDAL-3.4.3-cp310-cp310-win_amd64.whl deleted file mode 100644 index 7bf8778a05b8f8bea84043f57907c8dead0aa4a7..0000000000000000000000000000000000000000 --- a/wheels/GDAL-3.4.3-cp310-cp310-win_amd64.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9893da5532a6c5dadc1fc3bc402ae29d161b7cf190d778f129da84d0e50baa29 -size 25754978 diff --git a/wheels/Shapely-1.8.2-cp310-cp310-win_amd64.whl b/wheels/Shapely-1.8.2-cp310-cp310-win_amd64.whl deleted file mode 100644 index 5f57e66fbd755284448e7befbded92cc40e17368..0000000000000000000000000000000000000000 --- a/wheels/Shapely-1.8.2-cp310-cp310-win_amd64.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b2e5d9af166ab78d9b6abfb2659a41b28af2999f57e8afd878bf8686f6a20b78 -size 988260 diff --git a/wheels/rasterio-1.2.10-cp310-cp310-win_amd64.whl b/wheels/rasterio-1.2.10-cp310-cp310-win_amd64.whl deleted file mode 100644 index b9d13eacdb9d42ab09d35d1f76156d45910b5a5b..0000000000000000000000000000000000000000 --- a/wheels/rasterio-1.2.10-cp310-cp310-win_amd64.whl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5631b57d5f45646bdbfb8b43f84ec7aba67ca30983781f26e430251dfad89e7f -size 1193598