| ! { dg-do compile } |
| ! |
| ! PR fortran/33231 |
| ! |
| ! Elemental function: |
| ! Intent OUT/INOUT dummy: Actual needs to be an array |
| ! if any actual is an array |
| ! |
| program prog |
| implicit none |
| integer :: i, j(2) |
| call sub(i,1,2) ! OK, only scalar |
| call sub(j,1,2) ! OK, scalar IN, array OUT |
| call sub(j,[1,2],3) ! OK, scalar & array IN, array OUT |
| call sub(j,[1,2],[1,2]) ! OK, all arrays |
| |
| call sub(i,1,2) ! OK, only scalar |
| call sub(i,[1,2],3) ! { dg-error "is a scalar" } |
| call sub(i,[1,2],[1,2]) ! { dg-error "is a scalar" } |
| contains |
| elemental subroutine sub(a,b,c) |
| integer :: func, a, b, c |
| intent(in) :: b,c |
| intent(out) :: a |
| a = b +c |
| end subroutine sub |
| end program prog |