Funny you mention weather because I have worked in the field. We had to make a change in the discretization scheme, and pretty much all of the assumptions of the super optimized parallelized production version had to be thrown away, to the point that we had to abandon it completely.
Software engineering needs well defined boundaries to design between them and test edge cases. When we are doing fundamental research we don’t have this. Literally anything can change in the logic, the inputs, the outputs.