Elemental functions are a neat feature of Fortran but are limited by the requirement that all arguments be scalars. Could this be relaxed to allow a mix of scalar and array arguments? A partially elemental function would be elemental for the scalar arguments, which in the caller would be scalars or conformable arrays as they are now. A function such as

```
elemental function moment(power,offset,x) result(y)
integer, intent(in) :: power
real , intent(in) :: offset
real , intent(in) :: x(:)
real :: y
y = sum((x-offset)**power)/max(size(x),1)
end function moment
```

would be allowed. It could be called with `moment(1,2.0,x)`

or `moment([1,2],2.0,x)`

or `moment(1,[0.0,1.0],x)`

or `moment([1,2],[0.0,1.0],x)`

. The result would have the same shape as the expressions passed as arguments `power`

and `offset`

. Currently one can get similar behavior by defining a derived type with an array component and using that as a function argument, since that is considered a scalar. I don’t see why this should be necessary.