Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cam6_3_151: "Science optimize" SE-CSLAM dycore and stabilize WACCM #968

Merged
merged 52 commits into from
Mar 22, 2024

Conversation

PeterHjortLauritzen
Copy link
Collaborator

@PeterHjortLauritzen PeterHjortLauritzen commented Jan 30, 2024

Increase computational throughput of the SE-CSLAM dynamical core by:

  • Reducing se_nsplit to 2 (from 3) in FMT: CSLAM now runs with ~30% longer time-step compared to baseline
  • No double advection of thermodynamic active tracers when using CSLAM. Overwrite GLL values of Q, CLDLIQ,
    etc. every vertical remapping time-step with CSLAM values (interpolated from physics grid to GLL grid)
  • Vertical sponge layer diffusion in physics for WACCM and WACCM-x
  • No increased hyperdiffusion in sponge for FLT and FMT

Provide stable configuration for WACCM with spectral-elements (ne30pg3 and ne16pg3): namelist changes

Resolve #864 (qneg issue)
Resolve #552 (read in topo file on GLL grid if available)
Resolve #951 (remove namelist defaults for pg4 grids)
Resolve #970 (Remove deprecated 'imp' module)

Copy link
Collaborator

@nusbaume nusbaume left a comment

Choose a reason for hiding this comment

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

Looks good, but I did have some small suggestions and a few questions.

bld/namelist_files/namelist_definition.xml Show resolved Hide resolved
doc/ChangeLog Show resolved Hide resolved
src/dynamics/se/dycore/fvm_mapping.F90 Outdated Show resolved Hide resolved
src/dynamics/se/dycore/fvm_mapping.F90 Outdated Show resolved Hide resolved
src/dynamics/se/dycore/global_norms_mod.F90 Outdated Show resolved Hide resolved
src/dynamics/se/dyn_comp.F90 Outdated Show resolved Hide resolved
src/dynamics/se/dyn_comp.F90 Outdated Show resolved Hide resolved
src/dynamics/se/dyn_grid.F90 Show resolved Hide resolved
src/physics/cam/vertical_diffusion.F90 Outdated Show resolved Hide resolved
src/physics/cam/vertical_diffusion.F90 Outdated Show resolved Hide resolved
doc/ChangeLog Show resolved Hide resolved
Copy link

@fvitt fvitt left a comment

Choose a reason for hiding this comment

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

Here are some initial comments

src/dynamics/se/dycore/fvm_mapping.F90 Outdated Show resolved Hide resolved
src/dynamics/se/dycore/fvm_mapping.F90 Outdated Show resolved Hide resolved
src/dynamics/se/dycore/fvm_mapping.F90 Show resolved Hide resolved
src/dynamics/se/dycore/fvm_mapping.F90 Outdated Show resolved Hide resolved
src/dynamics/se/dycore/fvm_mapping.F90 Outdated Show resolved Hide resolved
src/dynamics/se/dp_coupling.F90 Outdated Show resolved Hide resolved
src/dynamics/se/dp_coupling.F90 Outdated Show resolved Hide resolved
src/dynamics/se/dycore/fvm_mapping.F90 Outdated Show resolved Hide resolved
src/dynamics/se/dycore/global_norms_mod.F90 Outdated Show resolved Hide resolved
src/dynamics/se/dycore/prim_driver_mod.F90 Show resolved Hide resolved
Copy link

@fvitt fvitt left a comment

Choose a reason for hiding this comment

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

1 more request

src/physics/cam/vertical_diffusion.F90 Outdated Show resolved Hide resolved
@nusbaume nusbaume requested a review from fvitt February 27, 2024 15:33
Copy link

@fvitt fvitt left a comment

Choose a reason for hiding this comment

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

Sorry I have a few more questions

Comment on lines 334 to 336
else
allocate(kvm_sponge(1))
kvm_sponge(1) = 0.0_r8
Copy link

Choose a reason for hiding this comment

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

Is there a need to allocate for low top model were it is not doing anything?


if (masterproc) then
write(iulog,*)'Initializing vertical diffusion (vertical_diffusion_init)'
if (allocated(kvm_sponge(:))) then
Copy link

Choose a reason for hiding this comment

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

If kvm_sponge is always allocated then this check is not needed.

Comment on lines 1121 to 1123
do k=1,size(kvm_sponge(:),1)
kvm(:ncol,1) = kvm(:ncol,1)+kvm_sponge(k)
end do
Copy link

Choose a reason for hiding this comment

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

If kvm_sponge is allocated only for higher top models (MT and higher) then a check for allocated is needed here.

@nusbaume
Copy link
Collaborator

@fvitt Sorry, I understand your concern now! The variable kvm_sponge is now only allocated when it is actually being used, with the appropriate allocated() checks to make sure it doesn't break something if it hasn't been allocated.

@nusbaume nusbaume requested a review from fvitt February 27, 2024 17:40
Copy link

@fvitt fvitt left a comment

Choose a reason for hiding this comment

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

Looks good to me now. Thanks.

@cacraigucar cacraigucar changed the title "Science optimize" SE-CSLAM dycore and stabilize WACCM cam6_3_151: "Science optimize" SE-CSLAM dycore and stabilize WACCM Feb 28, 2024
@nusbaume nusbaume added SIMA and removed SIMA labels Mar 7, 2024
@cacraigucar cacraigucar changed the title cam6_3_151: "Science optimize" SE-CSLAM dycore and stabilize WACCM cam6_3_152: "Science optimize" SE-CSLAM dycore and stabilize WACCM Mar 21, 2024
@nusbaume nusbaume merged commit 39b31b4 into ESCOMP:cam_development Mar 22, 2024
cacraigucar added a commit to cacraigucar/CAM that referenced this pull request Mar 22, 2024
Merge pull request ESCOMP#968 from PeterHjortLauritzen/cam-opt
@cacraigucar cacraigucar changed the title cam6_3_152: "Science optimize" SE-CSLAM dycore and stabilize WACCM cam6_3_151: "Science optimize" SE-CSLAM dycore and stabilize WACCM Mar 26, 2024
gold2718 pushed a commit to gold2718/CAM that referenced this pull request May 2, 2024
Merge pull request ESCOMP#968 from PeterHjortLauritzen/cam-opt

cam6_3_152:  "Science optimize" SE-CSLAM dycore and stabilize WACCM

ESCOMP commit: 39b31b4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Tag
Development

Successfully merging this pull request may close these issues.

4 participants