Avoid writing uninitialised data.
b%dims wasn't being initialised in some subroutines, but is still written to the block header.
Although this bug only appears for blocks which don't really need b%dims, it was breaking sdfdiff.
I've only applied this fix to one file that contained the subroutine that was causing a problem for me. It might need to be applied to other files too.