diff --git a/dynamics/src/include/DynamicsKernel.hpp b/dynamics/src/include/DynamicsKernel.hpp index a179ff8ac..c0cabce24 100644 --- a/dynamics/src/include/DynamicsKernel.hpp +++ b/dynamics/src/include/DynamicsKernel.hpp @@ -99,6 +99,8 @@ template class DynamicsKernel { } else { // All other fields get shoved in a (labelled) bucket DGModelArray::ma2dg(data, advectedFields[name]); + // …and have their type annotated + fieldType[name] = data.getType(); } } @@ -140,6 +142,7 @@ template class DynamicsKernel { data.resize(); return DGModelArray::dg2ma(cice, data); } else { + // Use the stored array type to ensure the returned data has the correct type ModelArray::Type type = fieldType.at(name); ModelArray data(type); data.resize(); @@ -214,7 +217,7 @@ template class DynamicsKernel { std::unordered_map> advectedFields; // A map from field name to the type of - const std::unordered_map fieldType; + std::unordered_map fieldType; }; }