impi-devel 2021.17.1__py2.py3-none-manylinux_2_28_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. impi_devel-2021.17.1.data/data/bin/mpicc +81 -0
  2. impi_devel-2021.17.1.data/data/bin/mpicxx +81 -0
  3. impi_devel-2021.17.1.data/data/bin/mpif77 +740 -0
  4. impi_devel-2021.17.1.data/data/bin/mpif90 +884 -0
  5. impi_devel-2021.17.1.data/data/bin/mpifc +81 -0
  6. impi_devel-2021.17.1.data/data/bin/mpigcc +683 -0
  7. impi_devel-2021.17.1.data/data/bin/mpigxx +687 -0
  8. impi_devel-2021.17.1.data/data/bin/mpiicc +42 -0
  9. impi_devel-2021.17.1.data/data/bin/mpiicpc +42 -0
  10. impi_devel-2021.17.1.data/data/bin/mpiicpx +573 -0
  11. impi_devel-2021.17.1.data/data/bin/mpiicx +582 -0
  12. impi_devel-2021.17.1.data/data/bin/mpiifort +46 -0
  13. impi_devel-2021.17.1.data/data/bin/mpiifx +738 -0
  14. impi_devel-2021.17.1.data/data/include/mpi/gfortran/10.2.0/mpi.mod +0 -0
  15. impi_devel-2021.17.1.data/data/include/mpi/gfortran/10.2.0/mpi_base.mod +0 -0
  16. impi_devel-2021.17.1.data/data/include/mpi/gfortran/10.2.0/mpi_constants.mod +0 -0
  17. impi_devel-2021.17.1.data/data/include/mpi/gfortran/10.2.0/mpi_sizeofs.mod +0 -0
  18. impi_devel-2021.17.1.data/data/include/mpi/gfortran/10.2.0/pmpi_base.mod +0 -0
  19. impi_devel-2021.17.1.data/data/include/mpi/gfortran/11.1.0/mpi.mod +0 -0
  20. impi_devel-2021.17.1.data/data/include/mpi/gfortran/11.1.0/mpi_base.mod +0 -0
  21. impi_devel-2021.17.1.data/data/include/mpi/gfortran/11.1.0/mpi_constants.mod +0 -0
  22. impi_devel-2021.17.1.data/data/include/mpi/gfortran/11.1.0/mpi_sizeofs.mod +0 -0
  23. impi_devel-2021.17.1.data/data/include/mpi/gfortran/11.1.0/pmpi_base.mod +0 -0
  24. impi_devel-2021.17.1.data/data/include/mpi/gfortran/12.4.0/mpi.mod +0 -0
  25. impi_devel-2021.17.1.data/data/include/mpi/gfortran/12.4.0/mpi_base.mod +0 -0
  26. impi_devel-2021.17.1.data/data/include/mpi/gfortran/12.4.0/mpi_constants.mod +0 -0
  27. impi_devel-2021.17.1.data/data/include/mpi/gfortran/12.4.0/mpi_sizeofs.mod +0 -0
  28. impi_devel-2021.17.1.data/data/include/mpi/gfortran/12.4.0/pmpi_base.mod +0 -0
  29. impi_devel-2021.17.1.data/data/include/mpi/gfortran/13.3.0/mpi.mod +0 -0
  30. impi_devel-2021.17.1.data/data/include/mpi/gfortran/13.3.0/mpi_base.mod +0 -0
  31. impi_devel-2021.17.1.data/data/include/mpi/gfortran/13.3.0/mpi_constants.mod +0 -0
  32. impi_devel-2021.17.1.data/data/include/mpi/gfortran/13.3.0/mpi_sizeofs.mod +0 -0
  33. impi_devel-2021.17.1.data/data/include/mpi/gfortran/13.3.0/pmpi_base.mod +0 -0
  34. impi_devel-2021.17.1.data/data/include/mpi/gfortran/14.2.0/mpi.mod +0 -0
  35. impi_devel-2021.17.1.data/data/include/mpi/gfortran/14.2.0/mpi_base.mod +0 -0
  36. impi_devel-2021.17.1.data/data/include/mpi/gfortran/14.2.0/mpi_constants.mod +0 -0
  37. impi_devel-2021.17.1.data/data/include/mpi/gfortran/14.2.0/mpi_sizeofs.mod +0 -0
  38. impi_devel-2021.17.1.data/data/include/mpi/gfortran/14.2.0/pmpi_base.mod +0 -0
  39. impi_devel-2021.17.1.data/data/include/mpi/gfortran/15.1.0/mpi.mod +0 -0
  40. impi_devel-2021.17.1.data/data/include/mpi/gfortran/15.1.0/mpi_base.mod +0 -0
  41. impi_devel-2021.17.1.data/data/include/mpi/gfortran/15.1.0/mpi_constants.mod +0 -0
  42. impi_devel-2021.17.1.data/data/include/mpi/gfortran/15.1.0/mpi_sizeofs.mod +0 -0
  43. impi_devel-2021.17.1.data/data/include/mpi/gfortran/15.1.0/pmpi_base.mod +0 -0
  44. impi_devel-2021.17.1.data/data/include/mpi/gfortran/7.1.0/mpi.mod +0 -0
  45. impi_devel-2021.17.1.data/data/include/mpi/gfortran/7.1.0/mpi_base.mod +0 -0
  46. impi_devel-2021.17.1.data/data/include/mpi/gfortran/7.1.0/mpi_constants.mod +0 -0
  47. impi_devel-2021.17.1.data/data/include/mpi/gfortran/7.1.0/mpi_sizeofs.mod +0 -0
  48. impi_devel-2021.17.1.data/data/include/mpi/gfortran/7.1.0/pmpi_base.mod +0 -0
  49. impi_devel-2021.17.1.data/data/include/mpi/gfortran/8.2.0/mpi.mod +0 -0
  50. impi_devel-2021.17.1.data/data/include/mpi/gfortran/8.2.0/mpi_base.mod +0 -0
  51. impi_devel-2021.17.1.data/data/include/mpi/gfortran/8.2.0/mpi_constants.mod +0 -0
  52. impi_devel-2021.17.1.data/data/include/mpi/gfortran/8.2.0/mpi_sizeofs.mod +0 -0
  53. impi_devel-2021.17.1.data/data/include/mpi/gfortran/8.2.0/pmpi_base.mod +0 -0
  54. impi_devel-2021.17.1.data/data/include/mpi/gfortran/9.1.0/mpi.mod +0 -0
  55. impi_devel-2021.17.1.data/data/include/mpi/gfortran/9.1.0/mpi_base.mod +0 -0
  56. impi_devel-2021.17.1.data/data/include/mpi/gfortran/9.1.0/mpi_constants.mod +0 -0
  57. impi_devel-2021.17.1.data/data/include/mpi/gfortran/9.1.0/mpi_sizeofs.mod +0 -0
  58. impi_devel-2021.17.1.data/data/include/mpi/gfortran/9.1.0/pmpi_base.mod +0 -0
  59. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/10.2.0/mpi.mod +0 -0
  60. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/10.2.0/mpi_base.mod +0 -0
  61. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/10.2.0/mpi_constants.mod +0 -0
  62. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/10.2.0/mpi_sizeofs.mod +0 -0
  63. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/10.2.0/pmpi_base.mod +0 -0
  64. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/11.1.0/mpi.mod +0 -0
  65. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/11.1.0/mpi_base.mod +0 -0
  66. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/11.1.0/mpi_constants.mod +0 -0
  67. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/11.1.0/mpi_sizeofs.mod +0 -0
  68. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/11.1.0/pmpi_base.mod +0 -0
  69. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/12.4.0/mpi.mod +0 -0
  70. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/12.4.0/mpi_base.mod +0 -0
  71. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/12.4.0/mpi_constants.mod +0 -0
  72. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/12.4.0/mpi_sizeofs.mod +0 -0
  73. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/12.4.0/pmpi_base.mod +0 -0
  74. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/13.3.0/mpi.mod +0 -0
  75. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/13.3.0/mpi_base.mod +0 -0
  76. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/13.3.0/mpi_constants.mod +0 -0
  77. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/13.3.0/mpi_sizeofs.mod +0 -0
  78. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/13.3.0/pmpi_base.mod +0 -0
  79. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/14.2.0/mpi.mod +0 -0
  80. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/14.2.0/mpi_base.mod +0 -0
  81. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/14.2.0/mpi_constants.mod +0 -0
  82. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/14.2.0/mpi_sizeofs.mod +0 -0
  83. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/14.2.0/pmpi_base.mod +0 -0
  84. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/15.1.0/mpi.mod +0 -0
  85. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/15.1.0/mpi_base.mod +0 -0
  86. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/15.1.0/mpi_constants.mod +0 -0
  87. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/15.1.0/mpi_sizeofs.mod +0 -0
  88. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/15.1.0/pmpi_base.mod +0 -0
  89. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/7.1.0/mpi.mod +0 -0
  90. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/7.1.0/mpi_base.mod +0 -0
  91. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/7.1.0/mpi_constants.mod +0 -0
  92. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/7.1.0/mpi_sizeofs.mod +0 -0
  93. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/7.1.0/pmpi_base.mod +0 -0
  94. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/8.2.0/mpi.mod +0 -0
  95. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/8.2.0/mpi_base.mod +0 -0
  96. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/8.2.0/mpi_constants.mod +0 -0
  97. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/8.2.0/mpi_sizeofs.mod +0 -0
  98. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/8.2.0/pmpi_base.mod +0 -0
  99. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/9.1.0/mpi.mod +0 -0
  100. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/9.1.0/mpi_base.mod +0 -0
  101. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/9.1.0/mpi_constants.mod +0 -0
  102. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/9.1.0/mpi_sizeofs.mod +0 -0
  103. impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/9.1.0/pmpi_base.mod +0 -0
  104. impi_devel-2021.17.1.data/data/include/mpi/ilp64/mpi.mod +0 -0
  105. impi_devel-2021.17.1.data/data/include/mpi/ilp64/mpi_base.mod +0 -0
  106. impi_devel-2021.17.1.data/data/include/mpi/ilp64/mpi_constants.mod +0 -0
  107. impi_devel-2021.17.1.data/data/include/mpi/ilp64/mpi_sizeofs.mod +0 -0
  108. impi_devel-2021.17.1.data/data/include/mpi/ilp64/pmpi_base.mod +0 -0
  109. impi_devel-2021.17.1.data/data/include/mpi/mpi.mod +0 -0
  110. impi_devel-2021.17.1.data/data/include/mpi/mpi_base.mod +0 -0
  111. impi_devel-2021.17.1.data/data/include/mpi/mpi_constants.mod +0 -0
  112. impi_devel-2021.17.1.data/data/include/mpi/mpi_f08.mod +0 -0
  113. impi_devel-2021.17.1.data/data/include/mpi/mpi_f08_callbacks.mod +0 -0
  114. impi_devel-2021.17.1.data/data/include/mpi/mpi_f08_compile_constants.mod +0 -0
  115. impi_devel-2021.17.1.data/data/include/mpi/mpi_f08_link_constants.mod +0 -0
  116. impi_devel-2021.17.1.data/data/include/mpi/mpi_f08_types.mod +0 -0
  117. impi_devel-2021.17.1.data/data/include/mpi/mpi_sizeofs.mod +0 -0
  118. impi_devel-2021.17.1.data/data/include/mpi/pmpi_base.mod +0 -0
  119. impi_devel-2021.17.1.data/data/include/mpi/pmpi_f08.mod +0 -0
  120. impi_devel-2021.17.1.data/data/include/mpi.h +4224 -0
  121. impi_devel-2021.17.1.data/data/include/mpi_abi.h +2057 -0
  122. impi_devel-2021.17.1.data/data/include/mpicxx.h +2796 -0
  123. impi_devel-2021.17.1.data/data/include/mpif.h +651 -0
  124. impi_devel-2021.17.1.data/data/include/mpio.h +767 -0
  125. impi_devel-2021.17.1.data/data/include/mpiof.h +113 -0
  126. impi_devel-2021.17.1.data/data/opt/mpi/bin/mpiptx +0 -0
  127. impi_devel-2021.17.1.data/data/share/doc/mpi/licensing/license.txt +72 -0
  128. impi_devel-2021.17.1.data/data/share/doc/mpi/licensing/third-party-programs.txt +1476 -0
  129. impi_devel-2021.17.1.dist-info/LICENSE.txt +25 -0
  130. impi_devel-2021.17.1.dist-info/METADATA +23 -0
  131. impi_devel-2021.17.1.dist-info/RECORD +133 -0
  132. impi_devel-2021.17.1.dist-info/WHEEL +6 -0
  133. impi_devel-2021.17.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,738 @@
1
+ #!/bin/sh
2
+ #
3
+ # Copyright Intel Corporation.
4
+ #
5
+ # This software and the related documents are Intel copyrighted materials, and
6
+ # your use of them is governed by the express license under which they were
7
+ # provided to you (License). Unless the License provides otherwise, you may
8
+ # not use, modify, copy, publish, distribute, disclose or transmit this
9
+ # software or the related documents without Intel's prior written permission.
10
+ #
11
+ # This software and the related documents are provided as is, with no express
12
+ # or implied warranties, other than those that are expressly stated in the
13
+ # License.
14
+ #.
15
+ # (C) 2006 by Argonne National Laboratory.
16
+ #
17
+ # COPYRIGHT
18
+ #
19
+ # The following is a notice of limited availability of the code, and disclaimer
20
+ # which must be included in the prologue of the code and in all source listings
21
+ # of the code.
22
+ #
23
+ # Copyright Notice
24
+ # 1998--2020, Argonne National Laboratory
25
+ #
26
+ # Permission is hereby granted to use, reproduce, prepare derivative works, and
27
+ # to redistribute to others. This software was authored by:
28
+ #
29
+ # Mathematics and Computer Science Division
30
+ # Argonne National Laboratory, Argonne IL 60439
31
+ #
32
+ # (and)
33
+ #
34
+ # Department of Computer Science
35
+ # University of Illinois at Urbana-Champaign
36
+ #
37
+ #
38
+ # GOVERNMENT LICENSE
39
+ #
40
+ # Portions of this material resulted from work developed under a U.S.
41
+ # Government Contract and are subject to the following license: the Government
42
+ # is granted for itself and others acting on its behalf a paid-up, nonexclusive,
43
+ # irrevocable worldwide license in this computer software to reproduce, prepare
44
+ # derivative works, and perform publicly and display publicly.
45
+ #
46
+ # DISCLAIMER
47
+ #
48
+ # This computer code material was prepared, in part, as an account of work
49
+ # sponsored by an agency of the United States Government. Neither the United
50
+ # States, nor the University of Chicago, nor any of their employees, makes any
51
+ # warranty express or implied, or assumes any legal liability or responsibility
52
+ # for the accuracy, completeness, or usefulness of any information, apparatus,
53
+ # product, or process disclosed, or represents that its use would not infringe
54
+ # privately owned rights.
55
+ #
56
+ # EXTERNAL CONTRIBUTIONS
57
+ #
58
+ # Portions of this code have been contributed under the above license by:
59
+ #
60
+ # * Intel Corporation
61
+ # * Cray
62
+ # * IBM Corporation
63
+ # * Microsoft Corporation
64
+ # * Mellanox Technologies Ltd.
65
+ # * DataDirect Networks.
66
+ # * Oak Ridge National Laboratory
67
+ # * Sun Microsystems, Lustre group
68
+ # * Dolphin Interconnect Solutions Inc.
69
+ # * Institut Polytechnique de Bordeaux
70
+ #
71
+ # .
72
+ #
73
+ # mpif90
74
+ # Simple script to compile and/or link MPI programs.
75
+ # This script knows the default flags and libraries, and can handle
76
+ # alternative C compilers and the associated flags and libraries.
77
+ # The important terms are:
78
+ # includedir, libdir - Directories containing an *installed* mpich2
79
+ # prefix, execprefix - Often used to define includedir and libdir
80
+ # FC - Fortran 90 compiler
81
+ # WRAPPER_FCFLAGS - Any special flags needed to compile
82
+ # WRAPPER_LDFLAGS - Any special flags needed to link
83
+ # MPILIBNAME - Name of the MPI library
84
+ # MPI_OTHERLIBS - Other libraries needed in order to link
85
+ # FC_OTHER_LIBS - Yet more libraries, needed just with F90
86
+ #
87
+ # We assume that (a) the C compiler can both compile and link programs
88
+ #
89
+ # Handling of command-line options:
90
+ # This is a little tricky because some options may contain blanks.
91
+ #
92
+ # Special issues with shared libraries - todo
93
+ #
94
+ # --------------------------------------------------------------------------
95
+
96
+ # Set the default values of all variables.
97
+ #
98
+ # Directory locations: Fixed for any MPI implementation.
99
+ # Set from the directory arguments to configure (e.g., --prefix=/usr/local)
100
+ prefix=I_MPI_SUBSTITUTE_INSTALLDIR
101
+ # The environment variable I_MPI_ROOT may be used to override installation folder path
102
+ if [ -n "${I_MPI_ROOT}" ] ; then
103
+ prefix="${I_MPI_ROOT}";
104
+ fi
105
+
106
+ sysconfdir=${prefix}/etc
107
+ includedir=${prefix}/include
108
+ libdir=${prefix}/lib
109
+ if [ ! -f "${I_MPI_ROOT}/lib/mpi/debug/libmpi.so" ]; then
110
+ release_lib_dir="/release"
111
+ debug_lib_dir="/debug"
112
+ modincdir="${prefix}/include"
113
+ else
114
+ release_lib_dir=""
115
+ debug_lib_dir="/mpi/debug"
116
+ sysconfdir=${prefix}/opt/mpi/etc
117
+ modincdir="${prefix}/include/mpi"
118
+ fi
119
+ MPILIBDIR=${release_lib_dir}
120
+
121
+ # The environment variable I_MPI_COMPILER_CONFIG_DIR may be used to override
122
+ # folder where *.conf files are place
123
+ if [ -n "$I_MPI_COMPILER_CONFIG_DIR" ] ; then
124
+ sysconfdir=$I_MPI_COMPILER_CONFIG_DIR;
125
+ fi
126
+ #
127
+ # Default settings for compiler, flags, and libraries
128
+ # Determined by a combination of environment variables and tests within
129
+ # configure (e.g., determining whehter -lsocket is needee)
130
+ FC="ifx"
131
+ FCCPP=""
132
+ #
133
+ # Fortran 90 Compiler characteristics
134
+ FCINC="-I"
135
+ # f90modinc specifies how to add a directory to the search path for modules.
136
+ # Some compilers (Intel ifc version 5) do not support this concept, and
137
+ # instead need
138
+ # a specific list of files that contain module names and directories.
139
+ # The FCMODINCSPEC is a more general approach that uses <dir> and <file>
140
+ # for the directory and file respectively.
141
+ FCMODINC="-I"
142
+ FCMODINCSPEC=""
143
+ FCEXT="f90"
144
+ #
145
+ FCFLAGS=""
146
+ LDFLAGS="-ldl"
147
+ MPILIBNAME="mpi"
148
+
149
+ # MPIVERSION is the version of the Intel(R) MPI Library for which mpiifort is intended
150
+ MPIVERSION="2021.17"
151
+ #
152
+ #
153
+ # Internal variables
154
+ # Show is set to echo to cause the compilation command to be echoed instead
155
+ # of executed.
156
+ Show=
157
+ static_mpi=no
158
+ strip_debug_info=
159
+ handle_executable=
160
+ executable=a.out
161
+ ilp64=no
162
+ no_ilp64=
163
+ no_rpath=no
164
+ verbose=no
165
+ #
166
+ # End of initialization of variables
167
+ #---------------------------------------------------------------------
168
+ # Environment Variables.
169
+ # The environment variables I_MPI_F90, MPICH_F90 may be used to override the
170
+ # default choices. I_MPI_F90 has higher priority than MPICH_F90.
171
+ # In addition, if there is a file $sysconfdir/mpif90-$FCname.conf,
172
+ # where FCname is the name of the compiler with all spaces replaced by hyphens
173
+ # (e.g., "f90 -64" becomes "f90--64", that file is sources, allowing other
174
+ # changes to the compilation environment. See the variables used by the
175
+ # script (defined above)
176
+
177
+ if [ -n "$I_MPI_F90" ] ; then
178
+ FC="$I_MPI_F90"
179
+ FCname=$(echo $FC | sed 's/ /-/g')
180
+ if [ -s $sysconfdir/mpif90-$(basename $FCname).conf ] ; then
181
+ . $sysconfdir/mpif90-$(basename $FCname).conf
182
+ fi
183
+ else
184
+ if [ -n "$MPICH_F90" ] ; then
185
+ FC="$MPICH_F90"
186
+ FCname=$(echo $FC | sed 's/ /-/g')
187
+ if [ -s $sysconfdir/mpif90-$(basename $FCname).conf ] ; then
188
+ . $sysconfdir/mpif90-$(basename $FCname).conf
189
+ fi
190
+ fi
191
+ fi
192
+ if [ -n "$I_MPI_DEBUG_INFO_STRIP" ] ; then
193
+ for comp_val in "0" "off" "no" "disable"
194
+ do
195
+ if [ "$I_MPI_DEBUG_INFO_STRIP" = "$comp_val" ] ; then
196
+ strip_debug_info=no
197
+ break
198
+ fi
199
+ done
200
+ fi
201
+ # Allow a profiling option to be selected through an environment variable
202
+ if [ -n "$MPIF90_PROFILE" ] ; then
203
+ profConf=$MPIF90_PROFILE
204
+ fi
205
+ if [ -n "$I_MPI_F90_PROFILE" ] ; then
206
+ profConf=$I_MPI_F90_PROFILE
207
+ fi
208
+ if [ -n "$MPIFC_PROFILE" ] ; then
209
+ profConf=$MPIFC_PROFILE
210
+ fi
211
+ if [ -n "$I_MPI_FC_PROFILE" ] ; then
212
+ profConf=$I_MPI_FC_PROFILE
213
+ fi
214
+
215
+ # Override default mpi library
216
+ if [ -n "$I_MPI_LINK" ] ; then
217
+ mpilib_override=$I_MPI_LINK
218
+ fi
219
+
220
+ #
221
+ # ------------------------------------------------------------------------
222
+ # Argument processing.
223
+ #
224
+ # Look through the arguments for arguments that indicate compile only.
225
+ # If these are *not* found, add the library options
226
+
227
+ linking=yes
228
+ allargs=""
229
+ cppflags=""
230
+ prevarg=""
231
+ for arg in "$@" ; do
232
+ # Set addarg to no if this arg should be ignored by the C compiler
233
+ addarg=yes
234
+ qarg=$arg
235
+ if [ "x$handle_executable" = "xyes" ] ; then
236
+ executable=$arg
237
+ handle_executable=
238
+ fi
239
+ case "$arg" in
240
+ # ----------------------------------------------------------------
241
+ # Compiler options that affect whether we are linking or no
242
+ -c|-S|-E|-M|-MM)
243
+ # The compiler links by default
244
+ linking=no
245
+ ;;
246
+ -o )
247
+ handle_executable=yes
248
+ addarg=yes
249
+ ;;
250
+ # ----------------------------------------------------------------
251
+ # Options that control how we use mpif90 (e.g., -show,
252
+ # -f90=* -config=*
253
+ -echo)
254
+ addarg=no
255
+ set -x
256
+ ;;
257
+ -f90=*)
258
+ FC=$(echo A$arg | sed -e 's/A-f90=//g')
259
+ if [ "$#" -eq "1" ] ; then
260
+ echo "Error: extra arguments required"
261
+ echo "usage: $(basename $0) -f90=<name> -v"
262
+ exit 1
263
+ fi
264
+ addarg=no
265
+ ;;
266
+ -show)
267
+ addarg=no
268
+ Show=echo
269
+ ;;
270
+ -show_env)
271
+ show_env=yes
272
+ ;;
273
+ -config=*)
274
+ addarg=no
275
+ FCname=$(echo A$arg | sed -e 's/A-config=//g')
276
+ if [ -s "$sysconfdir/mpif90-$FCname.conf" ] ; then
277
+ . "$sysconfdir/mpif90-$FCname.conf"
278
+ else
279
+ echo "Configuration file mpif90-$FCname.conf not found"
280
+ fi
281
+ ;;
282
+ -compile-info|-compile_info)
283
+ # -compile_info included for backward compatibility
284
+ Show=echo
285
+ addarg=no
286
+ ;;
287
+ -link-info|-link_info)
288
+ # -link_info included for backward compatibility
289
+ Show=echo
290
+ addarg=no
291
+ ;;
292
+ -v)
293
+ # Pass this argument to the compiler as well.
294
+ if [ "$#" -eq 1 ]; then
295
+ linking=no
296
+ fi
297
+ verbose=yes
298
+ ;;
299
+ -V)
300
+ # Pass this argument to the compiler to query the compiler version.
301
+ echo "$(basename $0) for the Intel(R) MPI Library $MPIVERSION for Linux*"
302
+ echo "Copyright Intel Corporation."
303
+ if [ "$#" -eq 1 ]; then
304
+ linking=no
305
+ fi
306
+ ;;
307
+ -profile=*)
308
+ # Pass the name of a profiling configuration. As
309
+ # a special case, lib<name>.so or lib<name>.la may be used
310
+ # if the library is in $libdir
311
+ profConf=$(echo A$arg | sed -e 's/A-profile=//g')
312
+ addarg=no
313
+ # Loading the profConf file is handled below
314
+ ;;
315
+ -help)
316
+ # Print mini-help if started without parameters
317
+ echo "Simple script to compile and/or link MPI programs."
318
+ echo "Usage: $(basename $0) [options] <files>"
319
+ echo "----------------------------------------------------------------------------"
320
+ echo "The following options are supported:"
321
+ echo " -fc=<name> | -f90=<name>"
322
+ echo " specify a FORTRAN compiler name: i.e. -fc=ifort"
323
+ echo " -echo print the scripts during their execution"
324
+ echo " -show show command lines without real calling"
325
+ echo " -show_env show environment variables"
326
+ echo " -config=<name> specify a configuration file: i.e. -config=ifort for mpif90-ifort.conf file"
327
+ echo " -v print version info of $(basename $0) and its native compiler"
328
+ echo " -profile=<name> specify a profile configuration file (an MPI profiling"
329
+ echo " library): i.e. -profile=myprofile for the myprofile.cfg file."
330
+ echo " As a special case, lib<name>.so or lib<name>.a may be used"
331
+ echo " if the library is found"
332
+ echo " -check_mpi link against the Intel(R) Trace Collector (-profile=vtmc)."
333
+ echo " -static_mpi link the Intel(R) MPI Library statically"
334
+ echo " -mt_mpi link the thread safe version of the Intel(R) MPI Library"
335
+ echo " -ilp64 link the ILP64 support of the Intel(R) MPI Library"
336
+ echo " -no_ilp64 disable ILP64 support explicitly"
337
+ echo " -fast the same as -static_mpi + pass -fast option to a compiler."
338
+ echo " -t or -trace"
339
+ echo " link against the Intel(R) Trace Collector"
340
+ echo " -trace-imbalance"
341
+ echo " link against the Intel(R) Trace Collector imbalance library"
342
+ echo " (-profile=vtim)"
343
+ echo " -dynamic_log link against the Intel(R) Trace Collector dynamically"
344
+ echo " -static use static linkage method"
345
+ echo " -nostrip turn off the debug information stripping during static linking"
346
+ echo " -O enable optimization"
347
+ echo " -link_mpi=<name>"
348
+ echo " link against the specified version of the Intel(R) MPI Library"
349
+ echo " i.e -link_mpi=opt|opt_mt|dbg|dbg_mt"
350
+ echo " -norpath disable rpath for compiler wrapper of the Intel(R) MPI Library"
351
+ echo "All other options will be passed to the compiler without changing."
352
+ echo "----------------------------------------------------------------------------"
353
+ echo "The following environment variables are used:"
354
+ echo " I_MPI_ROOT the Intel(R) MPI Library installation directory path"
355
+ echo " I_MPI_F90 or MPICH_F90"
356
+ echo " the path/name of the underlying compiler to be used"
357
+ echo " I_MPI_FC_PROFILE or I_MPI_F90_PROFILE or MPIF90_PROFILE"
358
+ echo " the name of profile file (without extension)"
359
+ echo " I_MPI_COMPILER_CONFIG_DIR"
360
+ echo " the folder which contains configuration files *.conf"
361
+ echo " I_MPI_TRACE_PROFILE"
362
+ echo " specify a default profile for the -trace option"
363
+ echo " I_MPI_CHECK_PROFILE"
364
+ echo " specify a default profile for the -check_mpi option"
365
+ echo " I_MPI_LINK specify the version of the Intel(R) MPI Library"
366
+ echo " I_MPI_DEBUG_INFO_STRIP"
367
+ echo " turn on/off the debug information stripping during static linking"
368
+ echo "----------------------------------------------------------------------------"
369
+ exit 0
370
+ ;;
371
+ -nolinkage)
372
+ # This internal option is used by wrapper driver scripts mpicc, mpicxx, mpifc when -v option is used.
373
+ linking=no
374
+ addarg=no
375
+ ;;
376
+ -g)
377
+ MPILIBDIR=${release_lib_dir}
378
+ ;;
379
+ -static_mpi)
380
+ static_mpi=yes
381
+ FCFLAGS="$FCFLAGS -Xlinker --export-dynamic"
382
+ addarg=no
383
+ ;;
384
+ -static)
385
+ static_mpi=yes
386
+ FCFLAGS="$FCFLAGS -Xlinker --export-dynamic"
387
+ addarg=yes
388
+ ;;
389
+ -mt_mpi)
390
+ addarg=no
391
+ ;;
392
+ -ilp64)
393
+ ilp64=yes
394
+ addarg=no
395
+ ;;
396
+ -i8)
397
+ if [ -z "$no_ilp64" ] ; then
398
+ ilp64=yes
399
+ fi
400
+ addarg=yes
401
+ ;;
402
+ -integer-size)
403
+ addarg=yes
404
+ ;;
405
+ 32|64)
406
+ if [ "$prevarg" = "-integer-size" ]; then
407
+ if [ $arg -eq 64 ]; then
408
+ if [ -z "$no_ilp64" ] ; then
409
+ ilp64=yes
410
+ fi
411
+ fi
412
+ fi
413
+ addarg=yes
414
+ ;;
415
+ -no_ilp64)
416
+ no_ilp64=yes
417
+ ilp64=no
418
+ addarg=no
419
+ ;;
420
+ -check_mpi)
421
+ if [ -z "$profConf" ]; then
422
+ if [ -z "$I_MPI_CHECK_PROFILE" ]; then
423
+ profConf="vtmc"
424
+ else
425
+ profConf="$I_MPI_CHECK_PROFILE"
426
+ fi
427
+ else
428
+ echo "Warning: the -check_mpi option will be ignored because the profile was set."
429
+ fi
430
+ addarg=no
431
+ ;;
432
+ -trace-imbalance)
433
+ if [ -z "$profConf" ]; then
434
+ profConf="vtim"
435
+ else
436
+ echo "Warning: the -trace-imbalance option will be ignored because the profile was set."
437
+ fi
438
+ addarg=no
439
+ ;;
440
+ -t | -trace | -t=* | -trace=* )
441
+ if [ -z "$profConf" ]; then
442
+ if [ -z "$I_MPI_TRACE_PROFILE" ]; then
443
+ profConf="vt"
444
+ else
445
+ profConf="$I_MPI_TRACE_PROFILE"
446
+ fi
447
+ else
448
+ echo "Warning: the -trace option will be ignored because the profile was set."
449
+ fi
450
+ # Disable strip to prevent debug symbols into separate dbg file in case of static linking IMPI-1493
451
+ strip_debug_info=no
452
+ addarg=no
453
+ ;;
454
+ -fast)
455
+ echo "Warning: the -fast option forces static linkage method for the Intel(R) MPI Library."
456
+ static_mpi=yes
457
+ FCFLAGS="$FCFLAGS -Xlinker --export-dynamic"
458
+ ;;
459
+ -fc=*)
460
+ FC=$(echo A$arg | sed -e 's/A-fc=//g')
461
+ if [ "$#" -eq "1" ] ; then
462
+ echo "Error: extra arguments required"
463
+ echo "usage: $(basename $0) -fc=<name> -v"
464
+ exit 1
465
+ fi
466
+ addarg=no
467
+ ;;
468
+ -link_mpi=* )
469
+ mpilib_override=$(echo A$arg | sed -e 's/A-link_mpi=//g')
470
+ addarg=no
471
+ ;;
472
+ -nostrip )
473
+ strip_debug_info=no
474
+ addarg=no
475
+ ;;
476
+ -norpath )
477
+ no_rpath=yes
478
+ addarg=no
479
+ ;;
480
+ # Other arguments. We are careful to handle arguments with
481
+ # quotes (we try to quote all arguments in case they include
482
+ # any spaces)
483
+ *\"*)
484
+ qarg="'$arg'"
485
+ case $arg in
486
+ -D*)
487
+ cppflags="$cppflags $qarg"
488
+ ;;
489
+ -I*)
490
+ cppflags="$cppflags $qarg"
491
+ ;;
492
+ esac
493
+ ;;
494
+ *\'*)
495
+ qarg=$(echo \"$arg\")
496
+ case $arg in
497
+ -D*)
498
+ cppflags="$cppflags $qarg"
499
+ ;;
500
+ -I*)
501
+ cppflags="$cppflags $qarg"
502
+ ;;
503
+ esac
504
+ ;;
505
+ -D*)
506
+ qarg="'$arg'"
507
+ cppflags="$cppflags $qarg"
508
+ ;;
509
+ -I*)
510
+ qarg="'$arg'"
511
+ cppflags="$cppflags $qarg"
512
+ ;;
513
+ # The following are special args used to handle .F files when the
514
+ # Fortran compiler itself does not handle these options
515
+ *.F|*.F90|.fpp|.FPP)
516
+ # If FCCPP is not empty, then we need to do the following:
517
+ # If any input files have the .F or .F90 extension, then
518
+ # If FCCPP = false, then
519
+ # generate an error message and exit
520
+ # Use FCCPP to convert the file from .F to .f, using
521
+ # $TMPDIR/f$$-$count.f as the output file name
522
+ # Replace the input file with this name in the args
523
+ # This is needed only for very broken systems
524
+
525
+ if [ -n "$FCCPP" ] ; then
526
+ if [ "$FCCPP" = "false" ] ; then
527
+ echo "This Fortran compiler does not accept .F or .F90 files"
528
+ exit 1
529
+ fi
530
+ addarg=no
531
+ # Remove and directory names and extension
532
+ ext=$(expr "$arg" : '.*\(\..*\)')
533
+ bfile=$(basename $arg $ext)
534
+ #
535
+ TMPDIR=${TMPDIR:-/tmp}
536
+ # Make sure that we use a valid extension for the temp file.
537
+ tmpfile=$TMPDIR/f$$-$bfile.$FCEXT
538
+ if $FCCPP $cppflags $arg > $tmpfile ; then
539
+ # Add this file to the commandline list
540
+ count=$((count + 1))
541
+ allargs[${#allargs}]="$tmpfile"
542
+ rmfiles="$rmfiles $tmpfile"
543
+ else
544
+ echo "Aborting compilation because of failure in preprocessing step"
545
+ echo "for file $arg ."
546
+ exit 1
547
+ fi
548
+ fi
549
+ # Otherwise, just accept the argument
550
+ ;;
551
+ *)
552
+ qarg="'$arg'"
553
+ ;;
554
+ # - end of special handling for .F files
555
+
556
+ esac
557
+ if [ $addarg = yes ] ; then
558
+ allargs="$allargs $qarg"
559
+ fi
560
+ prevarg="$arg"
561
+ done
562
+
563
+ if [ $# -eq 0 ] ; then
564
+ echo "Error: Command line argument is needed!"
565
+ "$0" -help
566
+ exit 1
567
+ fi
568
+
569
+ if [ -n "$mpilib_override" ] ; then
570
+ case "$mpilib_override" in
571
+ opt )
572
+ MPILIBDIR=${release_lib_dir}
573
+ ;;
574
+ opt_mt )
575
+ MPILIBDIR=${release_lib_dir}
576
+ ;;
577
+ dbg )
578
+ MPILIBDIR=${debug_lib_dir}
579
+ ;;
580
+ dbg_mt )
581
+ MPILIBDIR=${debug_lib_dir}
582
+ ;;
583
+ * )
584
+ echo "Warning: incorrect library version specified. Automatically selected library will be used."
585
+ ;;
586
+ esac
587
+ fi
588
+ # -----------------------------------------------------------------------
589
+
590
+ if [ "$static_mpi" = yes ] ; then
591
+ mpilibs="${libdir}/libmpifort.a ${libdir}${MPILIBDIR}/lib${MPILIBNAME}.a"
592
+ I_MPI_OTHERLIBS=""
593
+ MPI_OTHERLIBS=" -lrt -lpthread "
594
+ if [ "$ilp64" = yes ]; then
595
+ mpilibs="${libdir}${MPILIBDIR}/libmpi_ilp64.a $mpilibs"
596
+ fi
597
+ if [ "x$strip_debug_info" = "x" ] ; then
598
+ strip_debug_info=yes
599
+ fi
600
+ else
601
+ mpilibs="-lmpifort -l$MPILIBNAME"
602
+ I_MPI_OTHERLIBS=""
603
+ MPI_OTHERLIBS=" -lrt -lpthread "
604
+ if [ "$ilp64" = yes ]; then
605
+ mpilibs="-lmpi_ilp64 $mpilibs"
606
+ fi
607
+ fi
608
+ # Derived variables. These are assembled from variables set from the
609
+ # default, environment, configuration file (if any) and command-line
610
+ # options (if any)
611
+
612
+ #
613
+ # The library lib${MPILIBNAME}f90 contains the f90-specific features,
614
+ # such as the module objects and the routines defined by them
615
+ # (MPI_SIZEOF is handled in lib${MPILIBNAME)f90, for example).
616
+
617
+ #
618
+ # Handle the case of a profile switch
619
+ if [ -n "$profConf" ] ; then
620
+ profConffile=
621
+ if [ -s "$libdir/lib$profConf.a" -o -s "$libdir/lib$profConf.so" ] ; then
622
+ mpilibs="-l$profConf $mpilibs"
623
+ elif [ -s "$sysconfdir/$profConf.conf" ] ; then
624
+ profConffile="$sysconfdir/$profConf.conf"
625
+ elif [ -s "$profConf.conf" ] ; then
626
+ profConffile="$profConf.conf"
627
+ else
628
+ echo "Profiling configuration file $profConf.conf not found in $sysconfdir"
629
+ fi
630
+ if [ -n "$profConffile" -a -s "$profConffile" ] ; then
631
+ . $profConffile
632
+ if [ -n "$PROFILE_INCPATHS" ] ; then
633
+ FCFLAGS="$PROFILE_INCPATHS $FCFLAGS"
634
+ fi
635
+ if [ -n "$PROFILE_PRELIB" ] ; then
636
+ mpilibs="$PROFILE_PRELIB $mpilibs"
637
+ fi
638
+ if [ -n "$PROFILE_POSTLIB" ] ; then
639
+ mpilibs="$mpilibs $PROFILE_POSTLIB"
640
+ fi
641
+ fi
642
+ fi
643
+
644
+ # Construct the line to add the include directory (not all compilers
645
+ # use -I, unfortunately)
646
+ if [ -z "${FCINC}" ] ; then
647
+ # If there is no path, add a link to the mpif.h file.
648
+ # There *must* be a way to provide the path the any modules (there
649
+ # may be too many to link)
650
+ if [ ! -r mpif.h ] ; then
651
+ trap "$Show rm -f mpif.h" 0
652
+ # This should really be the (related) f77includedir (see mpif77).
653
+ $Show ln -s ${includedir}/mpif.h mpif.h
654
+ # Remember to remove this file
655
+ rmfiles="$rmfiles mpif.h"
656
+ fi
657
+ FCINCDIRS=
658
+ else
659
+ # Normally, FCINC is just -I, but some compilers have used different
660
+ # command line arguments
661
+ FCINCDIRS="${FCINC}\"${includedir}\" ${FCINC}\"${modincdir}\""
662
+ fi
663
+
664
+ # Handle the specification of the directory containing the modules
665
+ # For now, these are in the includedir (no choice argument supported)
666
+ if [ "$ilp64" = yes ] ; then
667
+ moduledir="$modincdir/ilp64"
668
+ else
669
+ moduledir="$modincdir"
670
+ fi
671
+ modulelib=${MPILIBNAME}f90
672
+ if [ -n "$FCMODINCSPEC" ] ; then
673
+ newarg=`echo A"$FCMODINCSPEC" | \
674
+ sed -e 's/^A//' -e 's%<dir>%'"$moduledir%g" -e 's/<file>/mpi/g'`
675
+ FCMODDIRS="$newarg"
676
+ FCMODLIBS="-l$modulelib"
677
+ elif [ -n "$FCMODINC" ] ; then
678
+ FCMODDIRS="${FCMODINC}\"${moduledir}\""
679
+ FCMODLIBS="-l$modulelib"
680
+ fi
681
+
682
+ #
683
+ # A temporary statement to invoke the compiler
684
+ # Place the -L before any args incase there are any mpi libraries in there.
685
+ # Eventually, we'll want to move this after any non-MPI implementation
686
+ # libraries
687
+
688
+ if [ "${show_env}" = "yes" ]; then
689
+ env | more
690
+ exit 0
691
+ fi
692
+
693
+ if [ "$no_rpath" = "yes" ]; then
694
+ rpath_opt="-Xlinker --enable-new-dtags"
695
+ else
696
+ rpath_opt="-Xlinker --enable-new-dtags -Xlinker -rpath -Xlinker \"${libdir}${MPILIBDIR}\" -Xlinker -rpath -Xlinker \"${libdir}\""
697
+ fi
698
+ if [ "$linking" = yes ] ; then
699
+ cmd_line="$FC $FCFLAGS $allargs $FCMODDIRS $FCINCDIRS -L\"${libdir}${MPILIBDIR}\" -L\"${libdir}\" $rpath_opt $mpilibs $I_MPI_OTHERLIBS $LDFLAGS $MPI_OTHERLIBS"
700
+ if [ "$Show" = echo ] ; then
701
+ echo $cmd_line
702
+ else
703
+ if [ "$verbose" = yes ]; then
704
+ echo mpiifx generated: $cmd_line
705
+ fi
706
+ eval `echo $cmd_line`
707
+ fi
708
+ rc=$?
709
+ if [ $rc -eq 0 -a "x$strip_debug_info" = "xyes" ] ; then
710
+ $Show objcopy --only-keep-debug ${executable} ${executable}.dbg
711
+ $Show objcopy --strip-debug ${executable}
712
+ $Show objcopy --add-gnu-debuglink=${executable}.dbg ${executable}
713
+ fi
714
+ else
715
+ cmd_line="$FC $FCFLAGS $allargs $FCMODDIRS $FCINCDIRS"
716
+ if [ "$Show" = echo ] ; then
717
+ echo $cmd_line
718
+ else
719
+ if [ "$verbose" = yes ]; then
720
+ echo mpiifx generated: $cmd_line
721
+ fi
722
+ eval `echo $cmd_line`
723
+ fi
724
+ rc=$?
725
+ fi
726
+ if [ -n "$rmfiles" ] ; then
727
+ for file in $rmfiles ; do
728
+ objfile=`basename $file .f`
729
+ if [ -s "${objfile}.o" ] ; then
730
+ # Rename
731
+ destfile=`echo $objfile | sed -e "s/.*$$-//"`
732
+ mv -f ${objfile}.o ${destfile}.o
733
+ fi
734
+ rm -f $file
735
+ done
736
+ rm -f $rmfiles
737
+ fi
738
+ exit $rc