Vectorize user function(s) inside loop

Example

real function f (x)
    !DIR$ OMP DECLARE SIMD
    real, intent(in), value  :: x
    f= x + 1
end function f
...
real function f (x)
    !DIR$ OMP DECLARE SIMD
    real, intent(in), value  :: x
    f= x + 1
end function f

!DIR$ OMP SIMD
do k = 1, N
    a(k) = f(k)
enddo

Read More