NSF commits $35 million to improve scientific software