Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GFS physics radiation: solar hour incorrect if model initialized not on the hour #17

Open
brianhenn opened this issue Oct 24, 2022 · 3 comments

Comments

@brianhenn
Copy link

brianhenn commented Oct 24, 2022

The GFS physics radiation routine sets the solar hour (Model%solhr) used to determine cosine of the solar zenith angle and thus radiative fluxes. The way in which it is computed will result in the solar hour being rounded backwards by a fraction of an hour if the model's initialization time is not on the hour (i.e, minutes and seconds are 0 in the initial date). This is because solar hour is computed as the sum of the fractional hour since initialization plus the integer hour of initialization. There is not any problem if the model is initialized on the hour, but if initialized off the hour, the physics will use a solar hour that is shifted by the sub-hourly amount. Thus any forecasts outputs and diagnostics involving time and solar diurnal cycle will be nominally incorrect (the internal dynamics and physics of the model presumably aren't affected).

To Reproduce
Initialize SHiELD with a not-on-the-hour initialization time; the peak downward shortwave flux will not be at 0° longitude at 12Z, for example (neglecting eq. of time), but will instead be shifted east by 0.0 < subhour < 1.0 hours (0.0 < deg < 15.0), where subhour is the fraction of the hour after the last full hour in the initialization time.

Expected behavior
The solar hour result should not be shifted in this way. Instead, the solar hour should be computed from the fractional hours elapsed since initialization plus the fractional hour of initialization (instead of the integer hour of initialization).

@lharris4
Copy link
Contributor

lharris4 commented Oct 27, 2022 via email

@brianhenn
Copy link
Author

Hi Lucas, thanks for checking in here.

I think the issue I pointed out is independent of whether to restart on the radiation timestep? My proposed solution is to compute the solar hour based on the sum of the fractional hours elapsed since the initialization time and the fractional hour of initialization (instead of the integer hour), modulo 24 hours. Since the fractional hours elapsed is computed from the fractional initial hour, this ensures that the correct solar hour is used, instead of one that is off by a sub-hourly amount.

@lharris4
Copy link
Contributor

lharris4 commented Nov 21, 2022 via email

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

No branches or pull requests

2 participants