1! { dg-do compile }
2! { dg-options "-floop-nest-optimize -O2 -ffast-math" }
3! PR67518 :  isl: position out of bounds
4MODULE ao_util
5    INTEGER, PARAMETER :: dp=8
6CONTAINS
7  FUNCTION exp_radius(l,alpha,threshold,prefactor,epsin) RESULT(radius)
8    REAL(KIND=dp), INTENT(IN)                :: alpha, threshold, prefactor
9    REAL(KIND=dp), INTENT(IN), OPTIONAL      :: epsin
10    DO
11       IF (iter.gt.maxiter) THEN
12          CALL stop_program(routineN,moduleN,1,"exceeded")
13       ENDIF
14    ENDDO
15    CALL stop_program(routineN,moduleN,1,"exceeded")
16  END FUNCTION exp_radius
17 FUNCTION exp_radius_very_extended(la_min,la_max,lb_min,lb_max,pab,o1,o2,ra,rb,rp,&
18                          zetp,eps,prefactor,cutoff,epsin) RESULT(radius)
19    REAL(KIND=dp), DIMENSION(:, :), &
20      OPTIONAL, POINTER                      :: pab
21    REAL(KIND=dp), INTENT(IN)                :: ra(3), rb(3), rp(3), zetp, &
22                                                eps, prefactor, cutoff
23    REAL(KIND=dp)                            :: bini, binj, coef(0:20), &
24                                                epsin_local, polycoef(0:60), &
25                                                rad_b, s1, s2
26    IF (PRESENT(pab)) THEN
27    ENDIF
28    DO lxa=0,la_max
29    DO lxb=0,lb_max
30       coef(0:la_max+lb_max)=0.0_dp
31       DO i=0,lxa
32          DO j=0,lxb
33             coef(lxa+lxb-i-j)=coef(lxa+lxb-i-j) + bini*binj*s1*s2
34          ENDDO
35       ENDDO
36       DO i=0,lxa+lxb
37          polycoef(i)=MAX(polycoef(i),coef(i))
38       ENDDO
39    ENDDO
40    ENDDO
41    DO i=0,la_max+lb_max
42          radius=MAX(radius,exp_radius(i,zetp,eps,polycoef(i),epsin_local) )
43    ENDDO
44  END FUNCTION exp_radius_very_extended
45END MODULE ao_util
46