OSDN Git Service

2011-09-26 Janus Weil <janus@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gfortran.dg / whole_file_33.f90
1 ! { dg-do compile }
2 !
3 ! PR fortran/48588
4 !
5 ! Contributed by Andres Legarra.
6 !
7
8 MODULE LA_PRECISION
9 IMPLICIT NONE
10 INTEGER, PARAMETER :: dp = KIND(1.0D0)
11 END MODULE LA_PRECISION
12
13 module lapack90
14 INTERFACE
15   SUBROUTINE DGESV_F90( A, B, IPIV, INFO )
16     USE la_precision, ONLY: wp => dp
17     IMPLICIT NONE
18     INTEGER, INTENT(OUT), OPTIONAL         :: INFO
19     INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IPIV(:)
20     REAL(WP), INTENT(IN OUT)               :: A(:,:), B(:,:)
21   END SUBROUTINE DGESV_F90
22 END INTERFACE
23 end module
24
25 SUBROUTINE DGESV_F90( A, B, IPIV, INFO )
26   USE la_precision, ONLY: wp => dp
27   IMPLICIT NONE
28   INTEGER, INTENT(OUT), OPTIONAL         :: INFO
29   INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IPIV(:)
30   REAL(WP), INTENT(IN OUT)               :: A(:,:), B(:,:)
31 END SUBROUTINE DGESV_F90
32
33 MODULE DENSEOP
34   USE LAPACK90
35   implicit none
36   integer, parameter :: r8 = SELECTED_REAL_KIND( 15, 307 )
37   real(r8)::denseop_tol=1.d-50
38
39   CONTAINS
40
41   SUBROUTINE GEINV8 (x)
42    real(r8)::x(:,:)
43    real(r8),allocatable::x_o(:,:)
44    allocate(x_o(size(x,1),size(x,1)))
45    CALL dgesv_f90(x,x_o)
46    x=x_o
47   END SUBROUTINE GEINV8
48 END MODULE DENSEOP
49
50 ! { dg-final { cleanup-modules "la_precision lapack90 denseop" } }