Skip to content

Add 3dvar_cf Suite for GEOS-CF#716

Open
jeromebarre wants to merge 26 commits intodevelopfrom
feature/add-3dvar-cf
Open

Add 3dvar_cf Suite for GEOS-CF#716
jeromebarre wants to merge 26 commits intodevelopfrom
feature/add-3dvar-cf

Conversation

@jeromebarre
Copy link

This PR adds support for 3D-Var data assimilation on the GEOS-CF

As a first step it uses Identity for background error. Subsequent PRs will add BUMP and diffusion.
More obs will be added over time too.

@jeromebarre jeromebarre requested review from Dooruk, mer-a-o and mranst March 3, 2026 00:07
@jeromebarre jeromebarre added the compo Atmospheric composition related issues label Mar 3, 2026
# ---------------------------------
if npx_proc is not None and npy_proc is not None:
self.jedi_rendering.add_key('gsibec_configuration', self.config.gsibec_configuration())
if gsibec_configuration is not None:
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed this to allow for future background error covariance methods beyond gsibec. This conditional wasn't really appropriate. This now ensures flexibility for other FV3 configurations like GEOS-CF to adopt different B matrix flavors

@jeromebarre
Copy link
Author

@mranst I am not sure I have access to the tier1 test src. Let me know if you need me to add the test there.

@jeromebarre jeromebarre changed the title Add 3dvar_cf Suite for GEOS-CF Chemistry Data Assimilation Add 3dvar_cf Suite for GEOS-CF Mar 3, 2026
qd.check_for_obs(False)
],
geos_cf=[
qd.cycle_times(['T18']),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would remove this. This is redundant with start_cycle_point and final_cycle_point. If you keep this and change to final_cycle_point to run a longer experiment, you will need to add other cycle_times there too: T00 , T06, T12.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes good catch I am not sure why this line is here...

qd.model_components(['geos_cf']),
qd.check_for_obs(False)
],
geos_cf=[
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not put everything under questions?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I followed the logic in place in the other suites like 3d_var marine. @Dooruk would like to tell why this structure between questions vs geos_<application> and _3dvar_<app>_cycle_tier1 vs _3dvar_<app>_cycle is preferrable?


# --------------------------------------------------------------------------------------------------

_3dvar_cf = QuestionList(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor suggestion: I defined it the otherway for hofx_cf. First, the experiment and then experiment_tier1 = experiment. It makes more sense to me, logically.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


varincrement1 = {
'write increment': True,
'increment': {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This works fine. I'm just curious, what's the difference between writing the increment using these keys under online diagnostics vs using increment to structured grid?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder that too...
I followed what was done with 3dvar_atmos

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

compo Atmospheric composition related issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants