The MPAS-O team discussed the outline for KPP that Mike sent along previously. 

1. Passing a single column at a time is OK, as long as 2. can be accommodated.

2. The attributes to vmix_input_type and vmix_output_type are all pointers. The reason for this is the following: First, if the attributes are allocatable arrays and are required intents in/out, we should just pass the native fields directly and thereby eliminate a copy. Copies could turn out to be a large overhead. Also, pointers can accommodate models regardless of array ordering (i.e. regardless of whether the vertical index is first or last). There will likely be performance issues depending on whether the k-index is first or last, but this will be an issue with copies or pointers.

3. We should be careful about namespace conflict. While we probably intend for all of the module to be private except for a few interfaces, we want to make sure that these interfaces are not so generic as to conflict with routines that already exist in ocean models.

Let us know your thoughts on this.