@@ -14,6 +14,8 @@ dnl Copyright (c) 2007 Los Alamos National Security, LLC. All rights
14
14
dnl reserved.
15
15
dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved.
16
16
dnl Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved.
17
+ dnl Copyright (c) 2013 Research Organization for Information Science
18
+ dnl and Technology (RIST). All rights reserved.
17
19
dnl $COPYRIGHT $
18
20
dnl
19
21
dnl Additional copyrights may follow
@@ -70,42 +72,48 @@ AC_DEFUN([_OMPI_FORTRAN_CHECK_IGNORE_TKR], [
70
72
ompi_fortran_ignore_tkr_predecl=!
71
73
ompi_fortran_ignore_tkr_type= real
72
74
73
- # Vendor-neutral, TYPE(*) syntax
75
+ # Vendor-neutral, TYPE(*), DIMENSION(..) syntax
74
76
OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB(
75
- [! ], [type(* )],
76
- [TYPE(* ), DIMENSION(* )],
77
+ [! ], [type(* ), DIMENSION(..)],[, ASYNCHRONOUS ],
78
+ [TYPE(* ), DIMENSION(.. )],
77
79
[internal_ignore_tkr_happy= 1], [internal_ignore_tkr_happy= 0])
80
+ # Vendor-neutral, TYPE(*), DIMENSION(*) syntax
81
+ AS_IF([test $internal_ignore_tkr_happy -eq 0],
82
+ [OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB(
83
+ [! ], [type(* ), DIMENSION(* )],[],
84
+ [TYPE(* ), DIMENSION(* )],
85
+ [internal_ignore_tkr_happy= 1], [internal_ignore_tkr_happy= 0])])
78
86
79
87
# GCC compilers
80
88
AS_IF([test $internal_ignore_tkr_happy -eq 0],
81
89
[OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB(
82
- [! GCC\$ ATTRIBUTES NO_ARG_CHECK ::], [type(* ), dimension(* )],
90
+ [! GCC\$ ATTRIBUTES NO_ARG_CHECK ::], [type(* ), dimension(* )],[],
83
91
[! GCC\$ ATTRIBUTES NO_ARG_CHECK],
84
92
[internal_ignore_tkr_happy= 1], [internal_ignore_tkr_happy= 0])])
85
93
# Intel compilers
86
94
AS_IF([test $internal_ignore_tkr_happy -eq 0],
87
95
[OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB(
88
- [! DEC\$ ATTRIBUTES NO_ARG_CHECK ::], [real, dimension(* )],
96
+ [! DEC\$ ATTRIBUTES NO_ARG_CHECK ::], [real, dimension(* )],[],
89
97
[! DEC\$ ATTRIBUTES NO_ARG_CHECK],
90
98
[internal_ignore_tkr_happy= 1], [internal_ignore_tkr_happy= 0])])
91
99
# Solaris Studio compilers
92
100
# Note that due to a compiler bug, we have been advised by Oracle to
93
101
# use the "character(*)" type
94
102
AS_IF([test $internal_ignore_tkr_happy -eq 0],
95
103
[OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB(
96
- [! \$ PRAGMA IGNORE_TKR], [character(* )],
104
+ [! \$ PRAGMA IGNORE_TKR], [character(* )],[],
97
105
[! \$ PRAGMA IGNORE_TKR],
98
106
[internal_ignore_tkr_happy= 1], [internal_ignore_tkr_happy= 0])])
99
107
# Cray compilers
100
108
AS_IF([test $internal_ignore_tkr_happy -eq 0],
101
109
[OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB(
102
- [! DIR\$ IGNORE_TKR], [real, dimension(* )],
110
+ [! DIR\$ IGNORE_TKR], [real, dimension(* )],[],
103
111
[! DIR\$ IGNORE_TKR],
104
112
[internal_ignore_tkr_happy= 1], [internal_ignore_tkr_happy= 0])])
105
113
# IBM compilers
106
114
AS_IF([test $internal_ignore_tkr_happy -eq 0],
107
115
[OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB(
108
- [! IBM* IGNORE_TKR], [real, dimension(* )],
116
+ [! IBM* IGNORE_TKR], [real, dimension(* )],[],
109
117
[! IBM* IGNORE_TKR],
110
118
[internal_ignore_tkr_happy= 1], [internal_ignore_tkr_happy= 0])])
111
119
@@ -124,13 +132,14 @@ AC_DEFUN([_OMPI_FORTRAN_CHECK_IGNORE_TKR], [
124
132
# functionality
125
133
# $1: pre-decl qualifier line -- likely a compiler directive
126
134
# $2: parameter type
127
- # $3: message for AC-MSG-CHECKING
128
- # $4: action to take if the test passes
129
- # $5: action to take if the test fails
135
+ # $3: asynchronous keyword
136
+ # $4: message for AC-MSG-CHECKING
137
+ # $5: action to take if the test passes
138
+ # $6: action to take if the test fails
130
139
AC_DEFUN([OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB], [
131
140
OPAL_VAR_SCOPE_PUSH(msg)
132
141
AC_LANG_PUSH([Fortran])
133
- AC_MSG_CHECKING([for Fortran compiler support of $3 ])
142
+ AC_MSG_CHECKING([for Fortran compiler support of $4 ])
134
143
AC_COMPILE_IFELSE(AC_LANG_PROGRAM([],[[!
135
144
! Autoconf puts " program main" at the top
136
145
@@ -184,20 +193,35 @@ AC_DEFUN([OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB], [
184
193
end program
185
194
186
195
subroutine force_assumed_shape(a, count)
196
+ implicit none
187
197
integer :: count
188
198
real, dimension(:,:) :: a
189
199
call foo(a, count)
190
200
end subroutine force_assumed_shape
191
201
202
+ module mod
203
+ interface
204
+ subroutine bar(buffer, count)
205
+ $2 , intent(in)$3 :: buffer
206
+ integer, intent(in) :: count
207
+ end subroutine bar
208
+ end interface
209
+ end module
210
+
211
+ subroutine bogus(buffer, count)
212
+ use mod, only : bar
213
+ implicit none
214
+ $2 , intent(in)$3 :: buffer
215
+ integer, intent(in) :: count
216
+ call bar(buffer, count)
192
217
! Autoconf puts " end" after the last line
193
- subroutine bogus
194
218
]]),
195
219
[msg= yes
196
220
ompi_fortran_ignore_tkr_predecl= " $1 "
197
221
ompi_fortran_ignore_tkr_type= " $2 "
198
- $4 ],
222
+ $5 ],
199
223
[msg= no
200
- $5 ])
224
+ $6 ])
201
225
AC_MSG_RESULT($msg )
202
226
AC_LANG_POP([Fortran])
203
227
OPAL_VAR_SCOPE_POP
0 commit comments