[mpas-developers] core-independence of operators

Michael Duda duda at ucar.edu
Mon Sep 26 15:01:12 MDT 2011


Hi, Everyone.

While sorting through the last of the differences between shared code in
our atmos_physics branch and the trunk, one issue that came up was where
the uReconstruct{X,Y,Z,Zonal,Meriodional} fields are stored -- that is,
to which structure in the Registry they belong. In the trunk, all cores
have these fields in 'state', while in the atmos_physics branch, we've
chosen to move them to 'diag', since they are diagnosed from the normal
velocity component on edges.

I think we may have discussed this sometime in the past, but one
possible solution to this issue would be to pass individual arrays to
the routines in the operators collection, thereby making them
core-independent. Specifically, I had in mind passing the
uReconstruct{X,Y,Z,Zonal,Meriodional} fields individually to the
reconstruct() subroutine in src/operators/module_vector_reconstruction.F.
But, if we chose to pursue the individual argument approach to its
conclusion, we could even pass all of the fields from the mesh type as
individual arguments, too.

What do you all think? Since the argument lists to the operator routines
wouldn't become too unwieldy from doing so, I'd propose to pass only
bare arrays to operator routines; but, I can see arguments to keeping
the mesh_type arguments, since other parts of the MPAS infrastructure
are also hard-wired to expect specific fields in the mesh type, too.  
In any case, I'd strongly argue for passing the
uReconstruct{X,Y,Z,Zonal,Meriodional} fields as separate arguments.  

Any thoughts or preferences would be welcomed!

Cheers,
Michael


More information about the mpas-developers mailing list