Surface tracer fluxes in ROMS are stored in FORCES(ng)%stflx, with the convention that this is
positive down, i.e. that a positive flux causes the amount of the tracer in the water column to increase. (Incidentally, the same is true of momentum fluxes: a positive value of sustr, say, tends to accelerate the water colum in the xi direction.)
For salt, the surface flux can be specified from a forcing file with the variable swflux, which is described in varinfo.dat as "surface net freswater flux, (E-P)". This is multiplied by 1.157407d-7 (to convert from cm/d to m/s) and then in set_vbc.F at line 284 it is multiplied by the salinity to get a salt flux:
Code: Select all
stflx(i,j,isalt)=stflx(i,j,isalt)*t(i,j,N(ng),nrhs,isalt)
The salt flux is positive down, and adding freshwater reduces salinity, so the freshwater flux is
positive up. And this is consistent with the description of the freshwater flux as E-P, assuming E is positive up (a loss term for freshwater in the ocean) and P is positive down (a gain term for freshwater in the ocean).
Why am I pointing this out? Well, I think it's possible for people to get confused about this. Not a seasoned ROMS user like myself. Oh no.