I have been going back over my older code for generating forcing files and checking that everything is doing as I expected. In particular, I was looking at the fields supplied for the surface boundary forcing.
I was looking at this trac ticket https://www.myroms.org/projects/src/ticket/870, where the image shows what ROMS needs as the heat flux, with a net surface flux Q (units of W/m^2), divided by a reference density and heat capacity. (Likewise, a ROMS freshwater flux can be constructed by E-P / rho_{freshwater}).
This suggests that ROMS expects a surface heat flux with units of degCm/s (as the image says), which is some 4e-6 smaller than the net surface heat flux (i.e. divided by approximately 1000 and 4000).
However, I noted what looks like a conflict in the varinfo.yaml file, where the units and comment on the input are in Watt/m2:
Code: Select all
- variable: shflux # Input/Output
standard_name: surface_downward_heat_flux_in_sea_water
long_name: surface net heat flux
units: watt meter-2 # Input: [Watt/m2]
field: surface heat flux # [Celsius m/s]
time: shf_time # Output: [Watt/m2]
index_code: idTsur(itemp)
type: r2dvar
add_offset: 0.0d0
scale: 1.0d0
I am assuming that ROMS expects degCm/s, and thus that I should scale by rho_0 and C_p when I pre-process the data fields, and the unit description in the varinfo.yaml is incorrect?
Thanks in advance and kind regards,
David G.