1! { dg-do compile } 2! { dg-options "-O3" } 3SUBROUTINE calculates_green_opt() 4 INTEGER, PARAMETER :: dp=8 5 REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: green, green1 6 ALLOCATE(green(-nrec:nrec),stat=i_all) 7 DO ikern=1,nrec 8 green(-ikern)=gleft+gright 9 IF (ABS(green(ikern)) <= 1.e-20_dp) THEN 10 nrec=ikern 11 EXIT 12 END IF 13 END DO 14 ALLOCATE(green1(-nrec:nrec),stat=i_all) 15 CALL scf_recursion(nrec,green(-nrec),green1(-nrec)) 16END SUBROUTINE calculates_green_opt 17 18