srh_0_1km and srh_0_3km - SRH - Storm Relative Helicity - discounting negative SRH

joaomas

New member
In the src/core_atmosphere/diagnostics/mpas_convective_diagnostics.F - subroutine convective_diagnostics_compute() - 440 line:

do k=1, nVertLevels+1
srh(k) = max(0.,srh(k)) ! discounting negative SRH
end do
(...)
if (need_srh_01km) then
srh_0_1km(iCell) = integral_zpoint(srh, zrel, 0.0_RKIND, 1000.0_RKIND, nVertLevelsP1)

end if
if (need_srh_03km) then
srh_0_3km(iCell) = integral_zpoint(srh, zrel, 0.0_RKIND, 3000.0_RKIND, nVertLevelsP1)
end if

Isn't it a problem to "discounting negative SRH values"? Considering there are cyclones in the Southern Hemisphere and since they are left-moving cell (tend negative values)? Associated with antistreamwise vorticity being ingested by the updrafts for cells moving to the left of the mean wind.

Thanks.

Ref. "Discriminant Analysis for Severe Storm Environments in South-Central Brazil" - https://journals.ametsoc.org/view/journals/mwre/151/10/MWR-D-22-0347.1.pdf
 
Hi
You are absolutely right that the code srh(k) = max(0.,srh(k)) ! discounting negative SRH is not appropriate for the southern hemisphere. As a quick fix of this issue, please modify the following piece of code in mpas_convective_diagnostics.F :

Code:
do k=1, nVertLevels+1
srh(k) = max(0.,srh(k)) ! discounting negative SRH
end do

Change it to:

Code:
! Correcting SRH for the Southern Hemisphere
do k=1, nVertLevels+1
    if (latCell(iCell) < 0.0) then
       srh(k) = -1.0 * srh(k)
    else
        srh(k) = srh(k)
    end if
    srh(k) = max(0.,srh(k)) ! discounting negative SRH
end do

Also remember to obtain latCell before you use it here. When you look at the results in the southern hemisphere, keep in mind that you change the 'sign' here so that you can correctly explain the physics.

Please let me know if you have more questions.
 
Hi Ming Chen,

Thank you for the quick analysis.

Below are the output results.

A fellow researcher suggested removing the loop that “discounts negative SRH”; those results are also below.


Code:
! --- removing the loop
! do k=1, nVertLevels+1
!   srh(k) = max(0.,srh(k)) ! discounting negative SRH
! end do



What do you think of this alternative solution? And of course, the final result using your suggestion?


Thank you.





Mesh: 5898242 (10km).
Date: 2026031900 + 24h FCST.


MPAS Original

1775133006878.png

MING CHEN suggestion

1775133242423.png

1775133267438.png


Alternative - suggested removing the loop that discounts negative SRH


1775133787874.png

1775133835438.png
 
You cannot compare the results in this way.

We will address this issue and keep you posted after we get it done. It may take some time. Thank you for your patience.
 
When I say 'not compare results in this way', I mean that you shouldn't compare results from original MPAS with that from the modified MPAS. This is because with the modification, the results are completely changed in southern hemisphere.

You definitely are able to compare MPAS output with that from GFS. Please keep in mind that the MPAS outputs are only valid over northern hemisphere.
 
Ah yes, the diff in grads was just to check if the code brought changes in the southern hemisphere... and it did indeed have changes. What we need to answer now is which one represents it better.

We performed a fourth simulation, replacing the maximum value with the absolute value.

do k=1, nVertLevels+1
srh(k) = abs(srh(k)) ! absolute values SRH
end do

I can't add more images with these new results; it's showing this error here in the forum.

"Oops! We ran into some problems.
The upload failed because the temporary directory was missing. The site administrator will need to resolve this before any files can be uploaded."
 
Back
Top