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

in #8: General Questions

Cookies disclaimer

Our site saves small pieces of text information (cookies) on your
device in order to verify your login. These cookies are essential
to provide access to resources on this website and it will not
work properly without.
Learn more

<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>

<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>

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):

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:

<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>

<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>

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.

<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>

<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>

## 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).

aandbare 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

aandb(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.

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

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.