1! { dg-do run } 2! { dg-options "-floop-nest-optimize" } 3 4MODULE test 5 IMPLICIT NONE 6 TYPE subset_type 7 INTEGER :: ncon_tot 8 REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE :: coeff 9 END TYPE 10CONTAINS 11 SUBROUTINE foo(subset) 12 TYPE(subset_type) :: subset 13 INTEGER :: icon1 14 DO icon1=1,subset%ncon_tot 15 subset%coeff(:,icon1)=subset%coeff(:,icon1)/& 16 SQRT(DOT_PRODUCT(subset%coeff(:,icon1),subset%coeff(:,icon1))) 17 END DO 18 END SUBROUTINE 19END MODULE 20 21USE test 22 TYPE(subset_type) :: subset 23 INTEGER, VOLATILE :: n1=7,n2=4 24 ALLOCATE(subset%coeff(n1,n2)) 25 CALL RANDOM_NUMBER(subset%coeff) 26 subset%coeff=subset%coeff-0.5 27 subset%ncon_tot=n2 28 CALL foo(subset) 29 WRITE(6,*) MAXVAL(subset%coeff) 30END 31