diff --git a/SRC/cgees.f b/SRC/cgees.f index 36269985e..4d102a921 100644 --- a/SRC/cgees.f +++ b/SRC/cgees.f @@ -208,8 +208,12 @@ SUBROUTINE CGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, VS, COMPLEX A( LDA, * ), VS( LDVS, * ), W( * ), WORK( * ) * .. * .. Function Arguments .. - LOGICAL SELECT - EXTERNAL SELECT + INTERFACE + LOGICAL FUNCTION SELECT_PROC_TYPE(EV) BIND(C) + COMPLEX EV + END FUNCTION SELECT_PROC_TYPE + END INTERFACE + PROCEDURE(SELECT_PROC_TYPE) :: SELECT * .. * * ===================================================================== diff --git a/SRC/cgeesx.f b/SRC/cgeesx.f index fd717973f..84933958b 100644 --- a/SRC/cgeesx.f +++ b/SRC/cgeesx.f @@ -252,8 +252,12 @@ SUBROUTINE CGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, COMPLEX A( LDA, * ), VS( LDVS, * ), W( * ), WORK( * ) * .. * .. Function Arguments .. - LOGICAL SELECT - EXTERNAL SELECT + INTERFACE + LOGICAL FUNCTION SELECT_PROC_TYPE(EV) BIND(C) + COMPLEX EV + END FUNCTION SELECT_PROC_TYPE + END INTERFACE + PROCEDURE(SELECT_PROC_TYPE) :: SELECT * .. * * ===================================================================== diff --git a/SRC/cgges.f b/SRC/cgges.f index 85bc2b0ee..f28245988 100644 --- a/SRC/cgges.f +++ b/SRC/cgges.f @@ -284,8 +284,12 @@ SUBROUTINE CGGES( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, $ WORK( * ) * .. * .. Function Arguments .. - LOGICAL SELCTG - EXTERNAL SELCTG + INTERFACE + LOGICAL FUNCTION SELCTG_PROC_TYPE(ALPHA,BETA) BIND(C) + COMPLEX ALPHA, BETA + END FUNCTION SELCTG_PROC_TYPE + END INTERFACE + PROCEDURE(SELCTG_PROC_TYPE) :: SELCTG * .. * * ===================================================================== diff --git a/SRC/cgges3.f b/SRC/cgges3.f index 05dbc7fa7..3ca10204c 100644 --- a/SRC/cgges3.f +++ b/SRC/cgges3.f @@ -283,8 +283,12 @@ SUBROUTINE CGGES3( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, $ WORK( * ) * .. * .. Function Arguments .. - LOGICAL SELCTG - EXTERNAL SELCTG + INTERFACE + LOGICAL FUNCTION SELCTG_PROC_TYPE(ALPHA,BETA) BIND(C) + COMPLEX ALPHA, BETA + END FUNCTION SELCTG_PROC_TYPE + END INTERFACE + PROCEDURE(SELCTG_PROC_TYPE) :: SELCTG * .. * * ===================================================================== diff --git a/SRC/cggesx.f b/SRC/cggesx.f index 379d21c4e..cc6a662b6 100644 --- a/SRC/cggesx.f +++ b/SRC/cggesx.f @@ -346,8 +346,12 @@ SUBROUTINE CGGESX( JOBVSL, JOBVSR, SORT, SELCTG, SENSE, N, A, $ WORK( * ) * .. * .. Function Arguments .. - LOGICAL SELCTG - EXTERNAL SELCTG + INTERFACE + LOGICAL FUNCTION SELCTG_PROC_TYPE(ALPHA,BETA) BIND(C) + COMPLEX ALPHA, BETA + END FUNCTION SELCTG_PROC_TYPE + END INTERFACE + PROCEDURE(SELCTG_PROC_TYPE) :: SELCTG * .. * * ===================================================================== diff --git a/SRC/dgees.f b/SRC/dgees.f index 23f2954e3..5e4e7c245 100644 --- a/SRC/dgees.f +++ b/SRC/dgees.f @@ -227,8 +227,12 @@ SUBROUTINE DGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, WR, WI, $ WR( * ) * .. * .. Function Arguments .. - LOGICAL SELECT - EXTERNAL SELECT + INTERFACE + LOGICAL FUNCTION SELECT_PROC_TYPE(WR, WI) BIND(C) + DOUBLE PRECISION WR, WI + END FUNCTION SELECT_PROC_TYPE + END INTERFACE + PROCEDURE(SELECT_PROC_TYPE) :: SELECT * .. * * ===================================================================== diff --git a/SRC/dgeesx.f b/SRC/dgeesx.f index 93f119ea9..1e99dda92 100644 --- a/SRC/dgeesx.f +++ b/SRC/dgeesx.f @@ -294,8 +294,12 @@ SUBROUTINE DGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, $ WR( * ) * .. * .. Function Arguments .. - LOGICAL SELECT - EXTERNAL SELECT + INTERFACE + LOGICAL FUNCTION SELECT_PROC_TYPE(WR, WI) BIND(C) + DOUBLE PRECISION WR, WI + END FUNCTION SELECT_PROC_TYPE + END INTERFACE + PROCEDURE(SELECT_PROC_TYPE) :: SELECT * .. * * ===================================================================== diff --git a/SRC/dgges.f b/SRC/dgges.f index b700860f6..77b3b4dca 100644 --- a/SRC/dgges.f +++ b/SRC/dgges.f @@ -297,8 +297,12 @@ SUBROUTINE DGGES( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, $ VSR( LDVSR, * ), WORK( * ) * .. * .. Function Arguments .. - LOGICAL SELCTG - EXTERNAL SELCTG + INTERFACE + LOGICAL FUNCTION SELCTG_PROC_TYPE(ALPHAR, ALPHAI, BETA) BIND(C) + DOUBLE PRECISION ALPHAR, ALPHAI, BETA + END FUNCTION SELCTG_PROC_TYPE + END INTERFACE + PROCEDURE(SELCTG_PROC_TYPE) :: SELCTG * .. * * ===================================================================== diff --git a/SRC/dgges3.f b/SRC/dgges3.f index 5ea3f5dbd..0d2cf4461 100644 --- a/SRC/dgges3.f +++ b/SRC/dgges3.f @@ -296,8 +296,12 @@ SUBROUTINE DGGES3( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, $ VSR( LDVSR, * ), WORK( * ) * .. * .. Function Arguments .. - LOGICAL SELCTG - EXTERNAL SELCTG + INTERFACE + LOGICAL FUNCTION SELCTG_PROC_TYPE(ALPHAR, ALPHAI, BETA) BIND(C) + DOUBLE PRECISION ALPHAR, ALPHAI, BETA + END FUNCTION SELCTG_PROC_TYPE + END INTERFACE + PROCEDURE(SELCTG_PROC_TYPE) :: SELCTG * .. * * ===================================================================== diff --git a/SRC/dggesx.f b/SRC/dggesx.f index c716af4c9..3d649eed7 100644 --- a/SRC/dggesx.f +++ b/SRC/dggesx.f @@ -381,8 +381,12 @@ SUBROUTINE DGGESX( JOBVSL, JOBVSR, SORT, SELCTG, SENSE, N, A, $ WORK( * ) * .. * .. Function Arguments .. - LOGICAL SELCTG - EXTERNAL SELCTG + INTERFACE + LOGICAL FUNCTION SELCTG_PROC_TYPE(ALPHAR, ALPHAI, BETA) BIND(C) + DOUBLE PRECISION ALPHAR, ALPHAI, BETA + END FUNCTION SELCTG_PROC_TYPE + END INTERFACE + PROCEDURE(SELCTG_PROC_TYPE) :: SELCTG * .. * * ===================================================================== diff --git a/SRC/sgees.f b/SRC/sgees.f index d1b339ed6..b41685c9e 100644 --- a/SRC/sgees.f +++ b/SRC/sgees.f @@ -227,8 +227,12 @@ SUBROUTINE SGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, WR, WI, $ WR( * ) * .. * .. Function Arguments .. - LOGICAL SELECT - EXTERNAL SELECT + INTERFACE + LOGICAL FUNCTION SELECT_PROC_TYPE(WR, WI) BIND(C) + REAL WR, WI + END FUNCTION SELECT_PROC_TYPE + END INTERFACE + PROCEDURE(SELECT_PROC_TYPE) :: SELECT * .. * * ===================================================================== diff --git a/SRC/sgeesx.f b/SRC/sgeesx.f index ca324c093..21721e6a2 100644 --- a/SRC/sgeesx.f +++ b/SRC/sgeesx.f @@ -294,8 +294,12 @@ SUBROUTINE SGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, $ WR( * ) * .. * .. Function Arguments .. - LOGICAL SELECT - EXTERNAL SELECT + INTERFACE + LOGICAL FUNCTION SELECT_PROC_TYPE(WR, WI) BIND(C) + REAL WR, WI + END FUNCTION SELECT_PROC_TYPE + END INTERFACE + PROCEDURE(SELECT_PROC_TYPE) :: SELECT * .. * * ===================================================================== diff --git a/SRC/sgges.f b/SRC/sgges.f index 074e6a5b0..998b2b763 100644 --- a/SRC/sgges.f +++ b/SRC/sgges.f @@ -297,8 +297,12 @@ SUBROUTINE SGGES( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, $ VSR( LDVSR, * ), WORK( * ) * .. * .. Function Arguments .. - LOGICAL SELCTG - EXTERNAL SELCTG + INTERFACE + LOGICAL FUNCTION SELCTG_PROC_TYPE(ALPHAR, ALPHAI, BETA) BIND(C) + REAL ALPHAR, ALPHAI, BETA + END FUNCTION SELCTG_PROC_TYPE + END INTERFACE + PROCEDURE(SELCTG_PROC_TYPE) :: SELCTG * .. * * ===================================================================== diff --git a/SRC/sgges3.f b/SRC/sgges3.f index 639efbee2..0f5125819 100644 --- a/SRC/sgges3.f +++ b/SRC/sgges3.f @@ -296,8 +296,12 @@ SUBROUTINE SGGES3( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, $ VSR( LDVSR, * ), WORK( * ) * .. * .. Function Arguments .. - LOGICAL SELCTG - EXTERNAL SELCTG + INTERFACE + LOGICAL FUNCTION SELCTG_PROC_TYPE(ALPHAR, ALPHAI, BETA) BIND(C) + REAL ALPHAR, ALPHAI, BETA + END FUNCTION SELCTG_PROC_TYPE + END INTERFACE + PROCEDURE(SELCTG_PROC_TYPE) :: SELCTG * .. * * ===================================================================== diff --git a/SRC/sggesx.f b/SRC/sggesx.f index 3b7456c5d..a03db3589 100644 --- a/SRC/sggesx.f +++ b/SRC/sggesx.f @@ -381,8 +381,12 @@ SUBROUTINE SGGESX( JOBVSL, JOBVSR, SORT, SELCTG, SENSE, N, A, $ WORK( * ) * .. * .. Function Arguments .. - LOGICAL SELCTG - EXTERNAL SELCTG + INTERFACE + LOGICAL FUNCTION SELCTG_PROC_TYPE(ALPHAR, ALPHAI, BETA) BIND(C) + REAL ALPHAR, ALPHAI, BETA + END FUNCTION SELCTG_PROC_TYPE + END INTERFACE + PROCEDURE(SELCTG_PROC_TYPE) :: SELCTG * .. * * ===================================================================== diff --git a/SRC/zgees.f b/SRC/zgees.f index 0402e7c7a..995419de6 100644 --- a/SRC/zgees.f +++ b/SRC/zgees.f @@ -208,8 +208,12 @@ SUBROUTINE ZGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, VS, COMPLEX*16 A( LDA, * ), VS( LDVS, * ), W( * ), WORK( * ) * .. * .. Function Arguments .. - LOGICAL SELECT - EXTERNAL SELECT + INTERFACE + LOGICAL FUNCTION SELECT_PROC_TYPE(EV) BIND(C) + COMPLEX*16 EV + END FUNCTION SELECT_PROC_TYPE + END INTERFACE + PROCEDURE(SELECT_PROC_TYPE) :: SELECT * .. * * ===================================================================== diff --git a/SRC/zgeesx.f b/SRC/zgeesx.f index a5770aa77..ad1731c6c 100644 --- a/SRC/zgeesx.f +++ b/SRC/zgeesx.f @@ -252,8 +252,12 @@ SUBROUTINE ZGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, COMPLEX*16 A( LDA, * ), VS( LDVS, * ), W( * ), WORK( * ) * .. * .. Function Arguments .. - LOGICAL SELECT - EXTERNAL SELECT + INTERFACE + LOGICAL FUNCTION SELECT_PROC_TYPE(EV) BIND(C) + COMPLEX*16 EV + END FUNCTION SELECT_PROC_TYPE + END INTERFACE + PROCEDURE(SELECT_PROC_TYPE) :: SELECT * .. * * ===================================================================== diff --git a/SRC/zgges.f b/SRC/zgges.f index 76903d1d3..836a2b1fa 100644 --- a/SRC/zgges.f +++ b/SRC/zgges.f @@ -284,8 +284,12 @@ SUBROUTINE ZGGES( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, $ WORK( * ) * .. * .. Function Arguments .. - LOGICAL SELCTG - EXTERNAL SELCTG + INTERFACE + LOGICAL FUNCTION SELCTG_PROC_TYPE(ALPHA,BETA) BIND(C) + COMPLEX*16 ALPHA, BETA + END FUNCTION SELCTG_PROC_TYPE + END INTERFACE + PROCEDURE(SELCTG_PROC_TYPE) :: SELCTG * .. * * ===================================================================== diff --git a/SRC/zgges3.f b/SRC/zgges3.f index 1225a82d9..de8b2ae2a 100644 --- a/SRC/zgges3.f +++ b/SRC/zgges3.f @@ -283,8 +283,12 @@ SUBROUTINE ZGGES3( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, $ WORK( * ) * .. * .. Function Arguments .. - LOGICAL SELCTG - EXTERNAL SELCTG + INTERFACE + LOGICAL FUNCTION SELCTG_PROC_TYPE(ALPHA,BETA) BIND(C) + COMPLEX*16 ALPHA, BETA + END FUNCTION SELCTG_PROC_TYPE + END INTERFACE + PROCEDURE(SELCTG_PROC_TYPE) :: SELCTG * .. * * ===================================================================== diff --git a/SRC/zggesx.f b/SRC/zggesx.f index 351b1efaf..0353bb43a 100644 --- a/SRC/zggesx.f +++ b/SRC/zggesx.f @@ -346,8 +346,12 @@ SUBROUTINE ZGGESX( JOBVSL, JOBVSR, SORT, SELCTG, SENSE, N, A, $ WORK( * ) * .. * .. Function Arguments .. - LOGICAL SELCTG - EXTERNAL SELCTG + INTERFACE + LOGICAL FUNCTION SELCTG_PROC_TYPE(ALPHA,BETA) BIND(C) + COMPLEX*16 ALPHA, BETA + END FUNCTION SELCTG_PROC_TYPE + END INTERFACE + PROCEDURE(SELCTG_PROC_TYPE) :: SELCTG * .. * * =====================================================================