Hello,
On point 1: I agree with you, for example in function TR we see that the rank in the list of prescribed values (stored in array TRACER) is:
IRANK=ITRAC+(I-1)*NTRAC for boundary I, so the order is: all values of boundary 1, then all values of boundary 2, unless I am wrong somewhere. I'll check documentation.
On point 2: it should not be as you say. See subroutine rescue.f, only the tracers that have not been found are re-initialized. They are recognized by the tracer names declared. So if you really see that salinity is reset to 0, it is a problem somewhere, e.g. if the tracers names change (or if we have a bug somewhere, in which case I would need your files).
With best regards,
Jean-Michel Hervouet