Porting a global ocean model onto a shared-memory multiprocessor: Observations and guidelines