Finding and exploiting parallelism in an ocean simulation program: Experience, results, and implications