All,
It's enough of a gotcha that I thought I would send a general warning to PyClaw developers and users.
The following clawpack controller code 'loses' the imposed Fortran order passed in from the state object when a frame gets passed in:
if self.keep_copy:
self.frames.append(copy.deepcopy(self.solution))
This means that output frames are of default numpy type (C contiguous).
In fact, the output solution does not appear to have either C or Fortran contiguous ordering, I'm not even sure what that means.
In [80]: claw.solution.q.flags
Out[80]:
C_CONTIGUOUS : False
F_CONTIGUOUS : False
OWNDATA : False
WRITEABLE : True
ALIGNED : True
UPDATEIFCOPY : False
This won't affect anybody who's not interfacing into other languages, but I was quite surprised to see this behavior, especially from a library as robust as numpy.
Cheers,
Aron