This patch carries over fortran gang parsing updates I recently applied to trunk to gomp-4_0-branch. Most of it was straightforward, but I did take the opportunity to clean up struct gfc_omp_clauses by eliminating some unnecessary bits for num_gangs, num_workers, vector_length and tile. Besides that, this patch does diverge from trunk a little because gomp4's preliminary support for device_type. Tom, while I was working on combined loop splitter, I noticed that reductions in combined constructs were still being associated with the parallel/kernels constructs. I've updated it to match the behavior in your c FE patch, i.e., reductions in combined constructs are only associated with the split acc loop. Let me know if that's causes any problems with you. This is how trunk behaves now. Another random note. I'm not sure why gfortran ICEs when I associate the private clauses in combined constructs with the acc loop. That code was ifdef'ed out in gfc_filter_oacc_combined_clauses. I'll investigate this later. I've applied this patch to gomp-4_0-branch. Cesar