Rotating Winds: Error in Documentation? – in #8: General Questions

in #8: General Questions

<p> Dear all, </p> <p> 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): </p> <p> u_g = u*cos(delta) + v*sin(delta) <br/> v_g = -u*sin(delta) + v*cos(delta) </p> <p> where sin(delta)=a/sqrt(a^2 + b^2) and cos(delta)=b/sqrt(a^2 + b^2). <strong> a </strong> and <strong> b </strong> are given as follows: </p> <p> a = cos(lat_rot_npole)*sin(lon_g – lon_rot_npole) <br/> b = cos(lat_g)*sin(lat_rot_npole) – sin(lat_g)*cos(lat_rot_npole)*cos(lon_g – lon_rot_npole) </p> <p> This however does not produce the expected results, in disagreement with other functions like in <span class="caps"> CDO </span> (rotuvb) and the recommended de-rotation formulae used in <span class="caps"> WRF </span> and <span class="caps"> NCL </span> . </p> <p> In order for this to work, the longitude difference term in <strong> a </strong> and <strong> b </strong> (lon_g – lon_rot_npole) would have to be reversed and given as (lon_rot_npole – lon_g). </p> <p> Alternatively, the longitude difference term could be left unchanged, but then the fomulae would need to be given as: </p> <p> u_g = u*cos(delta) – v*sin(delta) <br/> v_g = u*sin(delta) + v*cos(delta) </p> <p> which is the form of the equations used by <span class="caps"> CDO </span> and <span class="caps"> WRF </span> . </p> <p> Best, <br/> EM. </p>

  @edmundmeredith in #fb127c7

<p> Dear all, </p> <p> 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): </p> <p> u_g = u*cos(delta) + v*sin(delta) <br/> v_g = -u*sin(delta) + v*cos(delta) </p> <p> where sin(delta)=a/sqrt(a^2 + b^2) and cos(delta)=b/sqrt(a^2 + b^2). <strong> a </strong> and <strong> b </strong> are given as follows: </p> <p> a = cos(lat_rot_npole)*sin(lon_g – lon_rot_npole) <br/> b = cos(lat_g)*sin(lat_rot_npole) – sin(lat_g)*cos(lat_rot_npole)*cos(lon_g – lon_rot_npole) </p> <p> This however does not produce the expected results, in disagreement with other functions like in <span class="caps"> CDO </span> (rotuvb) and the recommended de-rotation formulae used in <span class="caps"> WRF </span> and <span class="caps"> NCL </span> . </p> <p> In order for this to work, the longitude difference term in <strong> a </strong> and <strong> b </strong> (lon_g – lon_rot_npole) would have to be reversed and given as (lon_rot_npole – lon_g). </p> <p> Alternatively, the longitude difference term could be left unchanged, but then the fomulae would need to be given as: </p> <p> u_g = u*cos(delta) – v*sin(delta) <br/> v_g = u*sin(delta) + v*cos(delta) </p> <p> which is the form of the equations used by <span class="caps"> CDO </span> and <span class="caps"> WRF </span> . </p> <p> Best, <br/> EM. </p>

Rotating Winds: Error in Documentation?

Dear all,

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 .

Best,
EM.

View in channel
<p> Hey Edmund, </p> <p> In the <span class="caps"> COSMO </span> (and <span class="caps"> EXTPAR </span> ) source code inside <code> utilities.f90 </code> (and <code> mo_utilities_extpar.f90 </code> ) there is a subroutine <code> uvrot2uv </code> which uses the formula you cited, but(!) with the longitude-swapping-correction you already noticed. <br/> 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. </p> <p> best <br/> Rolf </p>

  @rolfzentek in #51c8d24

<p> Hey Edmund, </p> <p> In the <span class="caps"> COSMO </span> (and <span class="caps"> EXTPAR </span> ) source code inside <code> utilities.f90 </code> (and <code> mo_utilities_extpar.f90 </code> ) there is a subroutine <code> uvrot2uv </code> which uses the formula you cited, but(!) with the longitude-swapping-correction you already noticed. <br/> 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. </p> <p> best <br/> Rolf </p>

Hey Edmund,

In the COSMO (and EXTPAR ) source code inside utilities.f90 (and 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.

best
Rolf

<p> Hi Rolf, </p> <p> thanks for sharing your experience. It’s nice to have the issue confirmed by another user. <br/> Hopefully the documentation will be corrected! </p> <p> Best, <br/> EM. </p>

  @edmundmeredith in #ee175b1

<p> Hi Rolf, </p> <p> thanks for sharing your experience. It’s nice to have the issue confirmed by another user. <br/> Hopefully the documentation will be corrected! </p> <p> Best, <br/> EM. </p>

Hi Rolf,

thanks for sharing your experience. It’s nice to have the issue confirmed by another user.
Hopefully the documentation will be corrected!

Best,
EM.