it might be more idiomatic to put the 2 levels of loops in the do concurrent rather than using the outer do.
If you want better control of parallelism you will use OpenMP and will avoid f95 and later iterative constructs.