Skip to content

add integrated physics#84

Open
JosephMouallem wants to merge 1 commit intoNOAA-GFDL:mainfrom
JosephMouallem:int_phys
Open

add integrated physics#84
JosephMouallem wants to merge 1 commit intoNOAA-GFDL:mainfrom
JosephMouallem:int_phys

Conversation

@JosephMouallem
Copy link
Copy Markdown
Contributor

@JosephMouallem JosephMouallem commented Apr 24, 2026

Add integrated physics from the original PR #77
Credit to @linjiongzhou

Dependencies:
NOAA-GFDL/GFDL_atmos_cubed_sphere#413
NOAA-GFDL/atmos_drivers#72

@lharris4
Copy link
Copy Markdown
Contributor

@JosephMouallem this is really great---thanks for getting this together so quickly. Does this code and associated PRs compile correctly, run in coupled mode, and also execute the integrated physics correctly? The latter may need a runscript from @gaokun227 demonstrating this capability.

Copy link
Copy Markdown
Contributor

@lharris4 lharris4 left a comment

Choose a reason for hiding this comment

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

I have one minor cleanup request, and do make sure that the model compiles correctly in all appropriate compilation modes.

One interesting question is how to handle the implicit coupling with the integrated physics' PBL. I presume that we can simply set the atmospheric diffusion coefficients to 0 above the surface layer and run the implicit coupling as we ordinarily would?

Comment thread GFS_layer/GFS_driver.F90
blksz(:) = Init_parm%blksz(:)

!--- set control properties (including namelist read)
call Model%init (Init_parm%nlunit, Init_parm%fn_nml, &
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The level of abstraction here is a bit challenging. This calls control_initialize() in GFS_typedefs.F90, correct? Also, is it possible to pass the whole Init_par structure instead of each individual component? This would make it easier to add flags and other data to this structure without needing to modify calls to control_initialize().

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Note that this cleanup is only a "nice" thing to have and isn't a requisite for making the code work correctly.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I agree, this will be a good improvement and sets things up more cleanly for the future

@JosephMouallem
Copy link
Copy Markdown
Contributor Author

At the moment, this code compiles without issues, we still need to run tests to make sure this is giving the intended behavior. I haven't looked implicit coupling here but the same refactoring logic should be applied here as well.

@gaokun227 gaokun227 closed this Apr 27, 2026
@gaokun227 gaokun227 reopened this Apr 27, 2026
@gaokun227
Copy link
Copy Markdown
Contributor

A suitable testing strategy would be to compare two versions of the uncoupled SHiELD executable: one built from Linjiong Zhou’s latest shield2025_inline branches in his GitHub repositories, and the other incorporating the code changes in this PR. If the implementation here is correct, the two executables running with the inline physics enabled should produce identical results, including physics diagnostics such as surface fluxes, PBL & Conv scheme tendencies.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants