You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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
The text was updated successfully, but these errors were encountered: