No, there is not a better way to do this.
WORKSHARE is much harder to implement than explicit loop parallelism. Compilers have been known to do correct but useless (aka "no-op") implementations of
WORKSHARE that map it to
SINGLE. This is correct but obviously provides no performance benefit.
When compilers support
WORKSHARE, they may do so selectively, e.g. Intel Fortran 15, which means that depending on it may lead to mixed results.
Even when compilers do a good job, in parallel computing in general, you will find that explicit parallelization wins, because the user is required to make good design choices up front and compilers, which are much less intelligent than humans, don't have to make important decisions.