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
When the CCPP physics were introduced, it was required to pass the global communicator that includes all compute tasks, but not the I/O tasks, to the physics for the purpose of broadcasting lookup tables at physics init time etc.
This was implemented by @climbfuji by exporting commglobal from the dycore to populate a member of the GFS control DDT. As @bensonr pointed out, we should be able to get this communicator directly from ESMF (which passes it to the dycore in the first place).
Solution
Pass the global communicator that includes all compute tasks, but not the I/O tasks, from ESMF directly to atmos_model.F90 and stop exporting commglobal from the dycore.
Alternatives
Keep the current, inelegant solution.
Testing:
n/a
Dependent PRs:
n/a
The text was updated successfully, but these errors were encountered:
@junwang-noaa - we could, but I think the communicator should be pushed
down to atmos_model_init as an argument. It should then be included as an
element of the GFS_init_type and sent down to the physics via the Init_parm
ddt - and not as yet another argument to GFS_Initialize (commglobal)
At the same time, the argument to GFS_Initialize being satisfied via
mpp_npes() should also become an element in GFS_init_type. The whole
reason for this particular ddt is to keep from having to make interface
changes as you find another variable you'd like to pass down into another
component or sub-component, in this case the physics initialization. If
this is allowed to continue, you could quickly find yourself back to the
olden days of 100+ arguments going between components and sub-components.
Description
When the CCPP physics were introduced, it was required to pass the global communicator that includes all compute tasks, but not the I/O tasks, to the physics for the purpose of broadcasting lookup tables at physics init time etc.
This was implemented by @climbfuji by exporting
commglobal
from the dycore to populate a member of the GFS control DDT. As @bensonr pointed out, we should be able to get this communicator directly from ESMF (which passes it to the dycore in the first place).Solution
Pass the global communicator that includes all compute tasks, but not the I/O tasks, from ESMF directly to
atmos_model.F90
and stop exportingcommglobal
from the dycore.Alternatives
Keep the current, inelegant solution.
Testing:
n/a
Dependent PRs:
n/a
The text was updated successfully, but these errors were encountered: