Skip to content

Sm nov222021#824

Merged
grantfirl merged 47 commits into
NCAR:mainfrom
SMoorthi-emc:SM_Nov222021
Jan 10, 2022
Merged

Sm nov222021#824
grantfirl merged 47 commits into
NCAR:mainfrom
SMoorthi-emc:SM_Nov222021

Conversation

@SMoorthi-emc
Copy link
Copy Markdown
Contributor

This PR updates "GFS_surface_composites.F90" and the associated "meta" file to remove unnecessary (and erroneous code).
It also adds a limit on zorli for points with ice.
There are some other cosmetic changes in some other routines (primarily blanks)

@yangfanglin
Copy link
Copy Markdown

@JongilHan66 @HelinWei-NOAA could you please review this PR ?

Copy link
Copy Markdown
Collaborator

@tanyasmirnova tanyasmirnova left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Most changes seem to be just cosmetic. I do not have any problems with these changes.

Comment thread physics/GFS_surface_composites.F90 Outdated
tsurf_ice(i) = tisfc(i)
ep1d_ice(i) = zero
gflx_ice(i) = zero
zorli(i) = max(1.0e-5, min(one, zorli(i)))
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JongilHan66 @HelinWei-NOAA @tanyasmirnova This is the change where zorli gets its limits.

Comment thread physics/GFS_surface_composites.F90 Outdated
uustar_wat(i) = uustar(i)
tsfc_wat(i) = tsfco(i)
tsurf_wat(i) = tsfco(i)
zorlo(i) = max(1.0e-5, min(one, zorlo(i)))
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

zorlo gets its limits here

Copy link
Copy Markdown
Contributor

@JongilHan66 JongilHan66 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes look ok for me.

Copy link
Copy Markdown
Collaborator

@grantfirl grantfirl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @SMoorthi-emc. Looks good to me.

@grantfirl
Copy link
Copy Markdown
Collaborator

High UFS commit queue priority due to this being needed for P8.

@grantfirl
Copy link
Copy Markdown
Collaborator

@SMoorthi-emc Shall I go ahead and submit upstream PRs to fv3atm and ufs-weather-model? Also, given the nature of these changes, I'm guessing that regression test baselines will need to be updated?

@SMoorthi-emc
Copy link
Copy Markdown
Contributor Author

SMoorthi-emc commented Jan 4, 2022 via email

@SMoorthi-emc
Copy link
Copy Markdown
Contributor Author

SMoorthi-emc commented Jan 5, 2022 via email

@SMoorthi-emc
Copy link
Copy Markdown
Contributor Author

SMoorthi-emc commented Jan 5, 2022 via email

@SMoorthi-emc
Copy link
Copy Markdown
Contributor Author

SMoorthi-emc commented Jan 5, 2022 via email

@SMoorthi-emc
Copy link
Copy Markdown
Contributor Author

All, I had to modify "GFS_surface_composites.F90" to take care of a crash in NoahMP.
The modification involves reinstating the deleted code with modified logic.
(this mod should take care of any new icy points)
You may want to take a look again.
Thanks
Moorthi

if (kdt == 1 .or. (.not. cplflx .or. lakefrac(i) > zero)) then
tem = one / (cice(i)*(one-frland(i)))
snowd_ice(i) = max(zero, (snowd(i) - snowd_lnd(i)*frland(i)) * tem)
weasd_ice(i) = max(zero, (weasd(i) - weasd_lnd(i)*frland(i)) * tem)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moorthi, with RUC LSM snowd_ice and weasd_ice should not be recomputed here because they are computed internally. I think we have to add to the condition in brackets: lsm /= lsm_ruc.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tanya,
I think all LSM's are called after calling this routine. As long as grid mean values are computed correctly, there should be no issue. When the coupled model is used, it is different. This loop takes care of the case when there is a new icy points if they happen to be defined within this routine.
Moorthi

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moorthi, the snow depth on the land and ice fractions could be very different, and because RUC LSM computes both weasd_ice and weasd_lnd, it wants to carry them along separately. Therefore, they should not be recomputed here from the grid mean when RUC LSM is used. The grid mean snow depth could be used as the diagnostics variable, convenient for plotting.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I originally wanted to do this computation on only new icy points, but unfortunately, there is no memory of previous "icy" points. I should also point out that "sfc_sice.f" also computes ice point variables, just like RUC does. While the computation here is not necessary for the icy points that remain icy, it does not hurt.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again, this is not special to RUC as what you stated is true for non-RUC also as in those cases ice is computed in sfc_sice.f
Well, I welcome anyone to come up with better alternative.
I should point out that this is already happening in the current code- so this should not be a point for rejecting my update as it improves on what currently exists.

endif
elseif (icy(i)) then
if (kdt == 1 .or. (.not. cplflx .or. lakefrac(i) > zero)) then
tem = one / cice(i)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here, with RUC LSM it should not be done.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just disagree.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants