| ! { dg-do run } |
| ! { dg-options "-floop-nest-optimize" } |
| |
| MODULE test |
| IMPLICIT NONE |
| TYPE subset_type |
| INTEGER :: ncon_tot |
| REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE :: coeff |
| END TYPE |
| CONTAINS |
| SUBROUTINE foo(subset) |
| TYPE(subset_type) :: subset |
| INTEGER :: icon1 |
| DO icon1=1,subset%ncon_tot |
| subset%coeff(:,icon1)=subset%coeff(:,icon1)/& |
| SQRT(DOT_PRODUCT(subset%coeff(:,icon1),subset%coeff(:,icon1))) |
| END DO |
| END SUBROUTINE |
| END MODULE |
| |
| USE test |
| TYPE(subset_type) :: subset |
| INTEGER, VOLATILE :: n1=7,n2=4 |
| ALLOCATE(subset%coeff(n1,n2)) |
| CALL RANDOM_NUMBER(subset%coeff) |
| subset%coeff=subset%coeff-0.5 |
| subset%ncon_tot=n2 |
| CALL foo(subset) |
| WRITE(6,*) MAXVAL(subset%coeff) |
| END |