@bblay So the deal here is that we have compatible candidate cubes over which to concatenate. This compatibility includes the `dtype` of the data payload. So the **default** numpy `fill_value` should be the same over **all** masked data, unless it's been changed explicitly.

Rather than clobbering the fill value with `np.nan` everytime, I'd be more in favour of using the fill value from the masked data **only** if it is common across all the masked data. Otherwise use `np.nan` as a fall-back fill value.

If after concatenating several cubes of masked and non-masked data into a single cube, the user want to unmask the payload with the fill value, then they can make that decision themselves. If there is non-masked data that contains the fill value, then the user can change the fill value or not. We give them the option.

You mention in the comments that `np.nan` is safer, but what if non-masked data contains nan's. Clearly, that is then not a safe option.

I just feel that if we can preserve the original fill value, particularly if its common across all the masked data, then we should. What do you think?