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