Open climbfuji opened 3 years ago
We probably should talk to the NCAR FV3 team (Steve Goldhaber, Peter Lauritzen etc) to learn how they are generating the field_table "on the fly". They worked on reengineering the field_table a couple of years ago. I'd also suggest including GFDL's Rusty Benson in the discussion. This is not a purely physics issue. I believe tracer transport uses this table as well.
After reading all these options, it appears that the current option is not so bad at all. Currently, the user knows what field table to use and if the user/developer adds a new scheme, knows how to update. When it is magically created within the code, the developer of a new scheme will have to dive into the code. I hope the option to provide an external field_table will be maintained (it is easier to switch field tables in the run script depending on the scheme) even if it is generated optionally within the code.
On Mon, Jun 28, 2021 at 11:33 PM Fanglin Yang @.***> wrote:
We probably should talk to the NCAR FV3 team (Steve Goldhaber, Peter Lauritzen etc) to learn how they are generating the field_table "on the fly". They worked on reengineering the field_table a couple of years ago. I'd also suggest including GFDL's Rusty Benson in the discussion. This is not a purely physics issue. I believe tracer transport uses this table as well.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ufs-community/ufs-weather-model/issues/673#issuecomment-870203578, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALLVRYXSOMXL2CCN7LDVCUDTVE5G7ANCNFSM47PGBS7Q .
-- Dr. Shrinivas Moorthi Research Meteorologist Modeling and Data Assimilation Branch Environmental Modeling Center / National Centers for Environmental Prediction 5830 University Research Court - (W/NP23), College Park MD 20740 USA Tel: (301)683-3718
e-mail: @.*** Phone: (301) 683-3718 Fax: (301) 683-3718
I had briefly talked with Rusty about this, but even taking it one step further (use an INTERNAL_FIELD_TABLE logic, similar to INTERNAL_FILE_NML). This however involves quite some changes in FMS, which I would like to avoid. And it is an independent step that can be taken after we implemented the logic. And yes, I also talked with Steve Goldhaber about this in our CCPP framework developer meeting. But I'll check again with him about the approach the use, good point.
On Jun 28, 2021, at 9:33 PM, Fanglin Yang @.***> wrote:
We probably should talk to the NCAR FV3 team (Steve Goldhaber, Peter Lauritzen etc) to learn how they are generating the field_table "on the fly". They worked on reengineering the field_table a couple of years ago. I'd also suggest including GFDL's Rusty Benson in the discussion. This is not a purely physics issue. I believe tracer transport uses this table as well.
— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/ufs-community/ufs-weather-model/issues/673#issuecomment-870203578, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB5C2RMBPKCPKQKICARHWTLTVE5G5ANCNFSM47PGBS7Q.
Description
The
field_table
file is required in the run directory and used early on in the model run to set up the tracers for the run. This file contains information that is 100% determined by the choice of microphysics and microphysics-dependent options, if any. Inconsistencies often result in difficult to track down segmentation faults.We should therefore strive for a way to generate the
field_table
file on the fly instead of requiring it in the run directory and be consistent with the microphysics settings.Solution
Generate
field_table
depending on the choice of microphysics and microphysics-dependent options, if any, before calling the FV3 dycoreatmosphere_init
routine. At this point inatmos_model.F90
, the contents ofinput.nml
is already known (when using INTERNAL_FILE_NML at least, I don't think the other option is still supported and/or tested). The challenge is that the GFS_control DDT routine that reads the internal namelist cannot be called yet, because it depends on information from the dycore init - a classical chicken and egg problem.I see several options to solve the problem:
input.nml
, and generatesfield_table
rt.sh
atmosphere_init
, use a Fortran subroutine that parses the SDF / namelist and generatesfield_table
atmosphere_init
, call a Python program from Fortran that parses the SDF / namelist and generatesfield_table
input.nml
instead offield_table
to set up the tracer manageratmosphere_init
. Provide a query function for the microphysics settings and generatedfield_table
based on this informationatmos_model.F90
before callingatmosphere_init
input.nml
query would still be required unless we come up with a design that provides all this information at build time (e.g. encoding such important namelist switches in the suite definition file instead ofinput.nml
)field_table
)All in all, the CCPP-based solution seems the cleanest and easiest to me, even though it means that one would lose the option to switch between different flavors of the same microphysis at run time. (But how often was that needed in the past?)
Alternatives
I am looking forward to learn about alternative solutions from all the smart developers out there.