⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 assumed_size_refs_1.f90

📁 linux下编程用 编译软件
💻 F90
字号:
!==================assumed_size_refs_1.f90==================! { dg-do compile }! Test the fix for PR25029, PR21256 in which references to! assumed size arrays without an upper bound to the last! dimension were generating no error. The first version of! the patch failed in DHSEQR, as pointed out by Toon Moene! in http://gcc.gnu.org/ml/fortran/2005-12/msg00466.html!! Contributed by Paul Thomas  <pault@gcc.gnu.org>!program assumed_size_test_1  implicit none  real a(2, 4)  a = 1.0  call foo (a)contains  subroutine foo(m)    real, target :: m(1:2, *)    real x(2,2,2)    real, external :: bar    real, pointer :: p(:,:), q(:,:)    allocate (q(2,2))! PR25029    p => m                     ! { dg-error "upper bound in the last dimension" }    q = m                      ! { dg-error "upper bound in the last dimension" }! PR21256( and PR25060)    m = 1                      ! { dg-error "upper bound in the last dimension" }    m(1,1) = 2.0    x = bar (m)    x = fcn (m)                ! { dg-error "upper bound in the last dimension" }    m(:, 1:2) = fcn (q)    call sub (m, x)            ! { dg-error "upper bound in the last dimension" }    call sub (m(1:2, 1:2), x)    print *, p    call DHSEQR(x)  end subroutine foo  elemental function fcn (a) result (b)    real, intent(in) :: a    real :: b    b = 2.0 * a  end function fcn  elemental subroutine sub (a, b)    real, intent(inout) :: a, b    b = 2.0 * a  end subroutine sub    SUBROUTINE DHSEQR( WORK )    REAL WORK( * )    EXTERNAL           DLARFX    INTRINSIC          MIN    WORK( 1 ) = 1.0    CALL DLARFX( MIN( 1, 8 ), WORK )  END SUBROUTINE DHSEQRend program assumed_size_test_1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -