Rotating Winds: Error in Documentation?
Is there an error in the documentation for de-rotating model winds? In the model documentation - http://www2.cosmo-model.org/content/model/documentation/core/cosmoDyncsNumcs.pdf - section 3.3.3 (p. 27) equation 3.78 gives the following for de-rotating model winds (u, v) to winds in geographical coordinates (u_g, v_g):
u_g = u*cos(delta) + v*sin(delta)
v_g = -u*sin(delta) + v*cos(delta)
where sin(delta)=a/sqrt(a^2 + b^2) and cos(delta)=b/sqrt(a^2 + b^2). a and b are given as follows:
a = cos(lat_rot_npole)*sin(lon_g - lon_rot_npole)
b = cos(lat_g)*sin(lat_rot_npole) - sin(lat_g)*cos(lat_rot_npole)*cos(lon_g - lon_rot_npole)
This however does not produce the expected results, in disagreement with other functions like in CDO (rotuvb) and the recommended de-rotation formulae used in WRF and NCL.
In order for this to work, the longitude difference term in a and b (lon_g - lon_rot_npole) would have to be reversed and given as (lon_rot_npole - lon_g).
Alternatively, the longitude difference term could be left unchanged, but then the fomulae would need to be given as:
u_g = u*cos(delta) - v*sin(delta)
v_g = u*sin(delta) + v*cos(delta)
which is the form of the equations used by CDO and WRF.
RE: Rotating Winds: Error in Documentation? - Added by Rolf Zentek about 6 years ago
In the COSMO (and EXTPAR) source code inside
mo_utilities_extpar.f90) there is a subroutine
uvrot2uv which uses the formula you cited, but with the longitude-swapping-correction you already noticed.
I copied and used this part of the code a little while ago and tested the rotations, and everything seemed fine, so I think you are correct.
thanks for sharing your experience. It’s nice to have the issue confirmed by another user.
Hopefully the documentation will be corrected!