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

CCPP physics init routines have no effect on 3D tracer variables #751

Open
MicroTed opened this issue Jan 11, 2024 · 0 comments
Open

CCPP physics init routines have no effect on 3D tracer variables #751

MicroTed opened this issue Jan 11, 2024 · 0 comments
Labels
bug Something isn't working

Comments

@MicroTed
Copy link
Contributor

MicroTed commented Jan 11, 2024

Description

I've been doing some tests with a doubly-periodic ideal simulation option for FV3 (PR coming soon), and noticed a problem with the Thompson aerosol aware having zero values for nwfa and nifa when it should be initializing a profile.

The 3D tracer data are passed to the CCPP physics init routines as 'inout', but any changes made to the tracers don't get back to the cubed_sphere 'q' array. For example, the mp_thompson_init routine will (try to) set values for nwfa and nifa if the input arays are zero. I can check in atmos_model_init (atmos_model.F90) that the values are actually coming back (via Statein%qgrs), but this has no effect on the q array. (I also tried copying the Statein%qgrs values to Stateout%gq0, and still nothing changed in the model output).

Note that the 2d arrays (nwfa2d, nifa2d) do carry through. I think that these exist outside of cubed_sphere?

I spent some time trying to follow where the data are passed back and forth, but all I could find was that the values from fv_restart seem to be final for the first time step.

One question is whether the physics init routines are supposed to be able to change the 3d (i.e., buggy behavior), or whether they are really only provided to be able to set parameters within the physics (i.e., improper use). Ideally these init routines would be the place to set up missing variables since they get the actual IC before any advection occurs.

P.S. I also noticed this problem with the init routines when I initially was adding the NSSL microphysics to CCPP. I found that changes to the tracer values didn't 'stick' and therefore reverted to doing initializations in the 'run' routine on the first time step.

How to reproduce:
UFS Ideal simulation option code is here: https://github.com/LarissaReames-NOAA/ufs-weather-model/tree/ideal-periodic (build with FV3_ideal_mp_thompson SDF -- from ufs_ideal_run)
Run directory setup: https://github.com/MicroTed/ufs_ideal_run

@MicroTed MicroTed added the bug Something isn't working label Jan 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant