Skip to content

Commit 6f56981

Browse files
authored
Merge pull request #138 from G-Ragghianti/gragghia/implicit_func
Resolve compiler errors due to rank mismatches
2 parents b702e68 + d71d972 commit 6f56981

File tree

11 files changed

+216
-195
lines changed

11 files changed

+216
-195
lines changed

TESTING/EIG/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,5 @@ target_link_libraries(xshseqr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} MP
9898
target_link_libraries(xdhseqr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} MPI::MPI_Fortran)
9999

100100
if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10)
101-
set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -std=legacy" ) # local to this directory
101+
set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}" ) # local to this directory
102102
endif()

TESTING/EIG/pcseprtst.f

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ SUBROUTINE PCSEPRTST(DESCA, UPLO, N, MATTYPE, SUBTESTS, THRESH,
215215
LOGICAL WKNOWN
216216
CHARACTER JOBZ, RANGE
217217
CHARACTER*14 PASSED
218-
INTEGER CONTEXT, I, IAM, IHETERO, IINFO, IL, IMODE, IN,
218+
INTEGER CONTEXT, I, IAM, IINFO, IL, IMODE, IN,
219219
$ INDD, INDWORK, ISIZESUBTST, ISIZEEVR,
220220
$ ISIZETST, ITYPE, IU, J, LLWORK, LEVRSIZE,
221221
$ MAXSIZE, MYCOL, MYROW, NB, NGEN, NLOC,
@@ -231,7 +231,7 @@ SUBROUTINE PCSEPRTST(DESCA, UPLO, N, MATTYPE, SUBTESTS, THRESH,
231231
* ..
232232
* .. Local Arrays ..
233233
INTEGER ISEEDIN( 4 ), KMAGN( MAXTYP ), KMODE( MAXTYP ),
234-
$ KTYPE( MAXTYP )
234+
$ KTYPE( MAXTYP ), IHETERO( 1 )
235235
DOUBLE PRECISION CTIME( 10 ), WTIME( 10 )
236236
* ..
237237
* .. External Functions ..
@@ -272,15 +272,15 @@ SUBROUTINE PCSEPRTST(DESCA, UPLO, N, MATTYPE, SUBTESTS, THRESH,
272272
*
273273
IF( IAM.EQ.0 ) THEN
274274
IF( LSAME( HETERO, 'Y' ) ) THEN
275-
IHETERO = 2
275+
IHETERO( 1 ) = 2
276276
ELSE
277-
IHETERO = 1
277+
IHETERO( 1 ) = 1
278278
END IF
279279
CALL IGEBS2D( CONTEXT, 'All', ' ', 1, 1, IHETERO, 1 )
280280
ELSE
281281
CALL IGEBR2D( CONTEXT, 'All', ' ', 1, 1, IHETERO, 1, 0, 0 )
282282
END IF
283-
IF( IHETERO.EQ.2 ) THEN
283+
IF( IHETERO( 1 ).EQ.2 ) THEN
284284
HETERO = 'Y'
285285
ELSE
286286
HETERO = 'N'

TESTING/EIG/pdsepinfo.f

Lines changed: 56 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -121,15 +121,15 @@ SUBROUTINE PDSEPINFO( CONTEXT, IAM, NIN, NOUT, MAXSETSIZE,
121121
* .. Scalar Arguments ..
122122
CHARACTER SUBTESTS
123123
INTEGER CONTEXT, IAM, INFO, MAXSETSIZE, MAXTYPE, NIN,
124-
$ NMATSIZES, NMATTYPES, NOUT, NPCONFIGS, NUPLOS,
125-
$ ORDER
124+
$ NOUT, ORDER
126125
DOUBLE PRECISION ABSTOL, THRESH
127126
* ..
128127
* .. Array Arguments ..
129128
CHARACTER UPLOS( 2 )
130129
INTEGER MATSIZES( MAXSETSIZE ), MATTYPES( MAXSETSIZE ),
131130
$ NBS( MAXSETSIZE ), NPCOLS( MAXSETSIZE ),
132-
$ NPROWS( MAXSETSIZE )
131+
$ NPROWS( MAXSETSIZE ), NMATSIZES( 1 ),
132+
$ NMATTYPES( 1 ), NPCONFIGS( 1 ), NUPLOS( 1 )
133133
* ..
134134
* .. Parameters ..
135135
INTEGER BLOCK_CYCLIC_2D, DLEN_, DTYPE_, CTXT_, M_, N_,
@@ -142,7 +142,7 @@ SUBROUTINE PDSEPINFO( CONTEXT, IAM, NIN, NOUT, MAXSETSIZE,
142142
* ..
143143
* .. Local Scalars ..
144144
CHARACTER*80 TESTSUMMRY
145-
INTEGER I, ISUBTESTS
145+
INTEGER I
146146
* ..
147147
* .. External Functions ..
148148
LOGICAL LSAME
@@ -155,7 +155,7 @@ SUBROUTINE PDSEPINFO( CONTEXT, IAM, NIN, NOUT, MAXSETSIZE,
155155
* ..
156156
*
157157
* .. Local Arrays ..
158-
INTEGER IUPLOS( 2 )
158+
INTEGER IUPLOS( 2 ), ISUBTESTS( 1 )
159159
* ..
160160
* .. Executable Statements ..
161161
* This is just to keep ftnchek happy
@@ -171,18 +171,18 @@ SUBROUTINE PDSEPINFO( CONTEXT, IAM, NIN, NOUT, MAXSETSIZE,
171171
END IF
172172
*
173173
IF( IAM.EQ.0 ) THEN
174-
READ( NIN, FMT = * )NMATSIZES
174+
READ( NIN, FMT = * ) NMATSIZES( 1 )
175175
CALL IGEBS2D( CONTEXT, 'All', ' ', 1, 1, NMATSIZES, 1 )
176176
ELSE
177177
CALL IGEBR2D( CONTEXT, 'All', ' ', 1, 1, NMATSIZES, 1, 0, 0 )
178178
END IF
179-
IF( NMATSIZES.EQ.-1 ) THEN
179+
IF( NMATSIZES( 1 ).EQ.-1 ) THEN
180180
INFO = -1
181181
GO TO 70
182182
END IF
183-
IF( NMATSIZES.LT.1 .OR. NMATSIZES.GT.MAXSETSIZE ) THEN
183+
IF( NMATSIZES( 1 ).LT.1 .OR. NMATSIZES( 1 ).GT.MAXSETSIZE ) THEN
184184
IF( IAM.EQ.0 ) THEN
185-
WRITE( NOUT, FMT = 9999 )'Matrix size', NMATSIZES, 1,
185+
WRITE( NOUT, FMT = 9999 )'Matrix size', NMATSIZES( 1 ), 1,
186186
$ MAXSETSIZE
187187
END IF
188188
INFO = -2
@@ -191,41 +191,43 @@ SUBROUTINE PDSEPINFO( CONTEXT, IAM, NIN, NOUT, MAXSETSIZE,
191191
*
192192
*
193193
IF( IAM.EQ.0 ) THEN
194-
READ( NIN, FMT = * )( MATSIZES( I ), I = 1, NMATSIZES )
195-
CALL IGEBS2D( CONTEXT, 'All', ' ', 1, NMATSIZES, MATSIZES, 1 )
194+
READ( NIN, FMT = * )( MATSIZES( I ), I = 1, NMATSIZES( 1 ) )
195+
CALL IGEBS2D( CONTEXT, 'All', ' ', 1, NMATSIZES( 1 ),
196+
$ MATSIZES, 1 )
196197
ELSE
197-
CALL IGEBR2D( CONTEXT, 'All', ' ', 1, NMATSIZES, MATSIZES, 1,
198-
$ 0, 0 )
198+
CALL IGEBR2D( CONTEXT, 'All', ' ', 1, NMATSIZES( 1 ),
199+
$ MATSIZES, 1, 0, 0 )
199200
END IF
200201
*
201202
IF( IAM.EQ.0 ) THEN
202-
READ( NIN, FMT = * )NUPLOS
203+
READ( NIN, FMT = * )NUPLOS( 1 )
203204
CALL IGEBS2D( CONTEXT, 'All', ' ', 1, 1, NUPLOS, 1 )
204205
ELSE
205206
CALL IGEBR2D( CONTEXT, 'All', ' ', 1, 1, NUPLOS, 1, 0, 0 )
206207
END IF
207-
IF( NUPLOS.LT.1 .OR. NUPLOS.GT.2 ) THEN
208+
IF( NUPLOS( 1 ).LT.1 .OR. NUPLOS( 1 ).GT.2 ) THEN
208209
IF( IAM.EQ.0 ) THEN
209-
WRITE( NOUT, FMT = 9999 )'# of UPLOs', NUPLOS, 1, 2
210+
WRITE( NOUT, FMT = 9999 )'# of UPLOs', NUPLOS( 1 ), 1, 2
210211
END IF
211212
INFO = -2
212213
GO TO 70
213214
END IF
214215
*
215216
IF( IAM.EQ.0 ) THEN
216-
READ( NIN, FMT = * )( UPLOS( I ), I = 1, NUPLOS )
217-
DO 10 I = 1, NUPLOS
217+
READ( NIN, FMT = * )( UPLOS( I ), I = 1, NUPLOS( 1 ) )
218+
DO 10 I = 1, NUPLOS( 1 )
218219
IF( LSAME( UPLOS( I ), 'L' ) ) THEN
219220
IUPLOS( I ) = 1
220221
ELSE
221222
IUPLOS( I ) = 2
222223
END IF
223224
10 CONTINUE
224-
CALL IGEBS2D( CONTEXT, 'All', ' ', 1, NUPLOS, IUPLOS, 1 )
225+
CALL IGEBS2D( CONTEXT, 'All', ' ', 1, NUPLOS( 1 ), IUPLOS, 1 )
225226
ELSE
226-
CALL IGEBR2D( CONTEXT, 'All', ' ', 1, NUPLOS, IUPLOS, 1, 0, 0 )
227+
CALL IGEBR2D( CONTEXT, 'All', ' ', 1, NUPLOS( 1 ), IUPLOS,
228+
$ 1, 0, 0 )
227229
END IF
228-
DO 20 I = 1, NUPLOS
230+
DO 20 I = 1, NUPLOS( 1 )
229231
IF( IUPLOS( I ).EQ.1 ) THEN
230232
UPLOS( I ) = 'L'
231233
ELSE
@@ -234,28 +236,29 @@ SUBROUTINE PDSEPINFO( CONTEXT, IAM, NIN, NOUT, MAXSETSIZE,
234236
20 CONTINUE
235237
*
236238
IF( IAM.EQ.0 ) THEN
237-
READ( NIN, FMT = * )NPCONFIGS
239+
READ( NIN, FMT = * )NPCONFIGS( 1 )
238240
CALL IGEBS2D( CONTEXT, 'All', ' ', 1, 1, NPCONFIGS, 1 )
239241
ELSE
240242
CALL IGEBR2D( CONTEXT, 'All', ' ', 1, 1, NPCONFIGS, 1, 0, 0 )
241243
END IF
242-
IF( NPCONFIGS.LT.1 .OR. NPCONFIGS.GT.MAXSETSIZE ) THEN
244+
IF( NPCONFIGS( 1 ).LT.1 .OR. NPCONFIGS( 1 ).GT.MAXSETSIZE ) THEN
243245
IF( IAM.EQ.0 ) THEN
244-
WRITE( NOUT, FMT = 9999 )'# proc configs', NPCONFIGS, 1,
245-
$ MAXSETSIZE
246+
WRITE( NOUT, FMT = 9999 )'# proc configs', NPCONFIGS( 1 ),
247+
$ 1, MAXSETSIZE
246248
END IF
247249
INFO = -2
248250
GO TO 70
249251
END IF
250252
*
251253
IF( IAM.EQ.0 ) THEN
252-
READ( NIN, FMT = * )( NPROWS( I ), I = 1, NPCONFIGS )
253-
CALL IGEBS2D( CONTEXT, 'All', ' ', 1, NPCONFIGS, NPROWS, 1 )
254+
READ( NIN, FMT = * )( NPROWS( I ), I = 1, NPCONFIGS( 1 ) )
255+
CALL IGEBS2D( CONTEXT, 'All', ' ', 1, NPCONFIGS( 1 ), NPROWS,
256+
$ 1 )
254257
ELSE
255-
CALL IGEBR2D( CONTEXT, 'All', ' ', 1, NPCONFIGS, NPROWS, 1, 0,
256-
$ 0 )
258+
CALL IGEBR2D( CONTEXT, 'All', ' ', 1, NPCONFIGS( 1 ), NPROWS,
259+
$ 1, 0, 0 )
257260
END IF
258-
DO 30 I = 1, NPCONFIGS
261+
DO 30 I = 1, NPCONFIGS( 1 )
259262
IF( NPROWS( I ).LE.0 )
260263
$ INFO = -2
261264
30 CONTINUE
@@ -267,13 +270,14 @@ SUBROUTINE PDSEPINFO( CONTEXT, IAM, NIN, NOUT, MAXSETSIZE,
267270
END IF
268271
*
269272
IF( IAM.EQ.0 ) THEN
270-
READ( NIN, FMT = * )( NPCOLS( I ), I = 1, NPCONFIGS )
271-
CALL IGEBS2D( CONTEXT, 'All', ' ', 1, NPCONFIGS, NPCOLS, 1 )
273+
READ( NIN, FMT = * )( NPCOLS( I ), I = 1, NPCONFIGS( 1 ) )
274+
CALL IGEBS2D( CONTEXT, 'All', ' ', 1, NPCONFIGS( 1 ), NPCOLS,
275+
$ 1 )
272276
ELSE
273-
CALL IGEBR2D( CONTEXT, 'All', ' ', 1, NPCONFIGS, NPCOLS, 1, 0,
274-
$ 0 )
277+
CALL IGEBR2D( CONTEXT, 'All', ' ', 1, NPCONFIGS( 1 ), NPCOLS,
278+
$ 1, 0, 0 )
275279
END IF
276-
DO 40 I = 1, NPCONFIGS
280+
DO 40 I = 1, NPCONFIGS( 1 )
277281
IF( NPCOLS( I ).LE.0 )
278282
$ INFO = -2
279283
40 CONTINUE
@@ -286,12 +290,13 @@ SUBROUTINE PDSEPINFO( CONTEXT, IAM, NIN, NOUT, MAXSETSIZE,
286290
*
287291
*
288292
IF( IAM.EQ.0 ) THEN
289-
READ( NIN, FMT = * )( NBS( I ), I = 1, NPCONFIGS )
290-
CALL IGEBS2D( CONTEXT, 'All', ' ', 1, NPCONFIGS, NBS, 1 )
293+
READ( NIN, FMT = * )( NBS( I ), I = 1, NPCONFIGS( 1 ) )
294+
CALL IGEBS2D( CONTEXT, 'All', ' ', 1, NPCONFIGS( 1 ), NBS, 1 )
291295
ELSE
292-
CALL IGEBR2D( CONTEXT, 'All', ' ', 1, NPCONFIGS, NBS, 1, 0, 0 )
296+
CALL IGEBR2D( CONTEXT, 'All', ' ', 1, NPCONFIGS( 1 ) , NBS, 1,
297+
$ 0, 0 )
293298
END IF
294-
DO 50 I = 1, NPCONFIGS
299+
DO 50 I = 1, NPCONFIGS( 1 )
295300
IF( NBS( I ).LE.0 )
296301
$ INFO = -2
297302
50 CONTINUE
@@ -304,29 +309,30 @@ SUBROUTINE PDSEPINFO( CONTEXT, IAM, NIN, NOUT, MAXSETSIZE,
304309
*
305310
*
306311
IF( IAM.EQ.0 ) THEN
307-
READ( NIN, FMT = * )NMATTYPES
312+
READ( NIN, FMT = * )NMATTYPES( 1 )
308313
CALL IGEBS2D( CONTEXT, 'All', ' ', 1, 1, NMATTYPES, 1 )
309314
ELSE
310315
CALL IGEBR2D( CONTEXT, 'All', ' ', 1, 1, NMATTYPES, 1, 0, 0 )
311316
END IF
312-
IF( NMATTYPES.LT.1 .OR. NMATTYPES.GT.MAXSETSIZE ) THEN
317+
IF( NMATTYPES( 1 ).LT.1 .OR. NMATTYPES( 1 ).GT.MAXSETSIZE ) THEN
313318
IF( IAM.EQ.0 ) THEN
314-
WRITE( NOUT, FMT = 9999 )'matrix types', NMATTYPES, 1,
319+
WRITE( NOUT, FMT = 9999 )'matrix types', NMATTYPES( 1 ), 1,
315320
$ MAXSETSIZE
316321
END IF
317322
INFO = -2
318323
GO TO 70
319324
END IF
320325
*
321326
IF( IAM.EQ.0 ) THEN
322-
READ( NIN, FMT = * )( MATTYPES( I ), I = 1, NMATTYPES )
323-
CALL IGEBS2D( CONTEXT, 'All', ' ', 1, NMATTYPES, MATTYPES, 1 )
327+
READ( NIN, FMT = * )( MATTYPES( I ), I = 1, NMATTYPES( 1 ) )
328+
CALL IGEBS2D( CONTEXT, 'All', ' ', 1, NMATTYPES( 1 ),
329+
$ MATTYPES, 1 )
324330
ELSE
325-
CALL IGEBR2D( CONTEXT, 'All', ' ', 1, NMATTYPES, MATTYPES, 1,
326-
$ 0, 0 )
331+
CALL IGEBR2D( CONTEXT, 'All', ' ', 1, NMATTYPES( 1 ),
332+
$ MATTYPES, 1, 0, 0 )
327333
END IF
328334
*
329-
DO 60 I = 1, NMATTYPES
335+
DO 60 I = 1, NMATTYPES( 1 )
330336
IF( MATTYPES( I ).LT.1 .OR. MATTYPES( I ).GT.MAXTYPE ) THEN
331337
IF( IAM.EQ.0 ) THEN
332338
WRITE( NOUT, FMT = 9999 )'matrix type', MATTYPES( I ),
@@ -339,15 +345,15 @@ SUBROUTINE PDSEPINFO( CONTEXT, IAM, NIN, NOUT, MAXSETSIZE,
339345
IF( IAM.EQ.0 ) THEN
340346
READ( NIN, FMT = * )SUBTESTS
341347
IF( LSAME( SUBTESTS, 'Y' ) ) THEN
342-
ISUBTESTS = 2
348+
ISUBTESTS( 1 ) = 2
343349
ELSE
344-
ISUBTESTS = 1
350+
ISUBTESTS( 1 ) = 1
345351
END IF
346352
CALL IGEBS2D( CONTEXT, 'All', ' ', 1, 1, ISUBTESTS, 1 )
347353
ELSE
348354
CALL IGEBR2D( CONTEXT, 'All', ' ', 1, 1, ISUBTESTS, 1, 0, 0 )
349355
END IF
350-
IF( ISUBTESTS.EQ.2 ) THEN
356+
IF( ISUBTESTS( 1 ).EQ.2 ) THEN
351357
SUBTESTS = 'Y'
352358
ELSE
353359
SUBTESTS = 'N'

TESTING/EIG/pdseprtst.f

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ SUBROUTINE PDSEPRTST(DESCA, UPLO, N, MATTYPE, SUBTESTS, THRESH,
203203
LOGICAL WKNOWN
204204
CHARACTER JOBZ, RANGE
205205
CHARACTER*14 PASSED
206-
INTEGER CONTEXT, I, IAM, IHETERO, IINFO, IL, IMODE, IN,
206+
INTEGER CONTEXT, I, IAM, IINFO, IL, IMODE, IN,
207207
$ INDD, INDWORK, ISIZESUBTST, ISIZEEVR,
208208
$ ISIZETST, ITYPE, IU, J, LLWORK, LEVRSIZE,
209209
$ MAXSIZE, MYCOL, MYROW, NB, NGEN, NLOC,
@@ -217,7 +217,7 @@ SUBROUTINE PDSEPRTST(DESCA, UPLO, N, MATTYPE, SUBTESTS, THRESH,
217217
* ..
218218
* .. Local Arrays ..
219219
INTEGER ISEEDIN( 4 ), KMAGN( MAXTYP ), KMODE( MAXTYP ),
220-
$ KTYPE( MAXTYP )
220+
$ KTYPE( MAXTYP ), IHETERO( 1 )
221221
DOUBLE PRECISION CTIME( 10 ), WTIME( 10 )
222222
* ..
223223
* .. External Functions ..
@@ -258,15 +258,15 @@ SUBROUTINE PDSEPRTST(DESCA, UPLO, N, MATTYPE, SUBTESTS, THRESH,
258258
*
259259
IF( IAM.EQ.0 ) THEN
260260
IF( LSAME( HETERO, 'Y' ) ) THEN
261-
IHETERO = 2
261+
IHETERO( 1 ) = 2
262262
ELSE
263-
IHETERO = 1
263+
IHETERO( 1 ) = 1
264264
END IF
265265
CALL IGEBS2D( CONTEXT, 'All', ' ', 1, 1, IHETERO, 1 )
266266
ELSE
267267
CALL IGEBR2D( CONTEXT, 'All', ' ', 1, 1, IHETERO, 1, 0, 0 )
268268
END IF
269-
IF( IHETERO.EQ.2 ) THEN
269+
IF( IHETERO( 1 ).EQ.2 ) THEN
270270
HETERO = 'Y'
271271
ELSE
272272
HETERO = 'N'

TESTING/EIG/pdseptst.f

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ SUBROUTINE PDSEPTST( DESCA, UPLO, N, MATTYPE, SUBTESTS, THRESH,
211211
LOGICAL WKNOWN
212212
CHARACTER JOBZ, RANGE
213213
CHARACTER*14 PASSED
214-
INTEGER CONTEXT, I, IAM, IHETERO, IINFO, IL, IMODE, IN,
214+
INTEGER CONTEXT, I, IAM, IINFO, IL, IMODE, IN,
215215
$ INDD, INDWORK, ISIZESUBTST, ISIZESYEVX,
216216
$ ISIZETST, ITYPE, IU, J, LLWORK, LSYEVXSIZE,
217217
$ MAXSIZE, MINSIZE, MYCOL, MYROW, NB, NGEN, NLOC,
@@ -225,7 +225,7 @@ SUBROUTINE PDSEPTST( DESCA, UPLO, N, MATTYPE, SUBTESTS, THRESH,
225225
* ..
226226
* .. Local Arrays ..
227227
INTEGER ISEEDIN( 4 ), KMAGN( MAXTYP ), KMODE( MAXTYP ),
228-
$ KTYPE( MAXTYP )
228+
$ KTYPE( MAXTYP ), IHETERO( 1 )
229229
DOUBLE PRECISION CTIME( 10 ), WTIME( 10 )
230230
* ..
231231
* .. External Functions ..
@@ -269,15 +269,15 @@ SUBROUTINE PDSEPTST( DESCA, UPLO, N, MATTYPE, SUBTESTS, THRESH,
269269
*
270270
IF( IAM.EQ.0 ) THEN
271271
IF( LSAME( HETERO, 'Y' ) ) THEN
272-
IHETERO = 2
272+
IHETERO( 1 ) = 2
273273
ELSE
274-
IHETERO = 1
274+
IHETERO( 1 ) = 1
275275
END IF
276276
CALL IGEBS2D( CONTEXT, 'All', ' ', 1, 1, IHETERO, 1 )
277277
ELSE
278278
CALL IGEBR2D( CONTEXT, 'All', ' ', 1, 1, IHETERO, 1, 0, 0 )
279279
END IF
280-
IF( IHETERO.EQ.2 ) THEN
280+
IF( IHETERO( 1 ).EQ.2 ) THEN
281281
HETERO = 'Y'
282282
ELSE
283283
HETERO = 'N'

0 commit comments

Comments
 (0)