There is a very important but subtle difference between "less than" and "less than or equal to" (ditto "more than"/"more than or equal to"). The net result was that valid minima were being replaced with NaNs, which caused NaNs to get written to the FVCOM input file which in turn causes the model to crash at the first time step