Skip to content

Commit 9759ee1

Browse files
committed
Merge remote-tracking branch 'upstream/cam_development' into update_gpu_tests
2 parents 89655a4 + 7502085 commit 9759ee1

File tree

8 files changed

+130
-1374
lines changed

8 files changed

+130
-1374
lines changed

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
[submodule "atmos_phys"]
3737
path = src/atmos_phys
3838
url = https://github.com/ESCOMP/atmospheric_physics
39-
fxtag = atmos_phys0_05_001
39+
fxtag = atmos_phys0_06_000
4040
fxrequired = AlwaysRequired
4141
fxDONOTUSEurl = https://github.com/ESCOMP/atmospheric_physics
4242

bld/configure

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2335,6 +2335,7 @@ sub write_filepath
23352335
# be overridden by modules from directories that occur earlier
23362336
# in the list of filepaths.
23372337
print $fh "$camsrcdir/src/physics/cam\n";
2338+
print $fh "$camsrcdir/src/atmos_phys/to_be_ccppized\n";
23382339

23392340
#Add the CCPP'ized subdirectories
23402341
print $fh "$camsrcdir/src/atmos_phys/schemes/tropopause_find\n";

cime_config/config_pes.xml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -164,14 +164,14 @@
164164
<ntasks_cpl>-4</ntasks_cpl>
165165
</ntasks>
166166
<nthrds>
167-
<nthrds_atm>2</nthrds_atm>
168-
<nthrds_lnd>2</nthrds_lnd>
169-
<nthrds_rof>2</nthrds_rof>
170-
<nthrds_ice>2</nthrds_ice>
171-
<nthrds_ocn>2</nthrds_ocn>
172-
<nthrds_glc>2</nthrds_glc>
173-
<nthrds_wav>2</nthrds_wav>
174-
<nthrds_cpl>2</nthrds_cpl>
167+
<nthrds_atm>1</nthrds_atm>
168+
<nthrds_lnd>1</nthrds_lnd>
169+
<nthrds_rof>1</nthrds_rof>
170+
<nthrds_ice>1</nthrds_ice>
171+
<nthrds_ocn>1</nthrds_ocn>
172+
<nthrds_glc>1</nthrds_glc>
173+
<nthrds_wav>1</nthrds_wav>
174+
<nthrds_cpl>1</nthrds_cpl>
175175
</nthrds>
176176
<rootpe>
177177
<rootpe_atm>0</rootpe_atm>

doc/ChangeLog

Lines changed: 99 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
===============================================================
22

3-
Tag name: cam6_4_0xx
3+
Tag name: cam6_4_046
44
Originator(s): sjsprecious
55
Date: 06 November 2024
6-
One-line Summary: update GPU regression tests with new XML options
6+
One-line Summary: update GPU regression tests with new XML options
77
Github PR URL: https://github.com/ESCOMP/CAM/pull/1186
88

99
Purpose of changes (include the issue number and title text for each relevant GitHub issue):
@@ -43,7 +43,7 @@ List all files added and what they do:
4343
- cime_config/testdefs/testmods_dirs/cam/outfrq9s_gpu_pcols760
4444
- shell_commands
4545
- user_nl_cam
46-
- user_nl_clm
46+
- user_nl_clm
4747

4848
List all existing files that have been modified, and describe the changes:
4949

@@ -231,14 +231,106 @@ izumi/nag/aux_cam: I do not know how to run on Izumi
231231
izumi/gnu/aux_cam: I do not know how to run on Izumi
232232

233233
CAM tag used for the baseline comparison tests if different than previous
234-
tag: cam6_4_044
234+
tag: cam6_4_045
235235

236236
Summarize any changes to answers: BFB
237237

238238
===============================================================
239239

240+
Tag name: cam6_4_045
241+
Originator(s): mwaxmonsky
242+
Date: 10/25/2024
243+
One-line Summary: Start refactoring of vertical diffusion to be CCPPized
244+
Github PR URL: https://github.com/ESCOMP/CAM/pull/1176
245+
246+
Purpose of changes (include the issue number and title text for each relevant GitHub issue):
247+
Start refactoring of vertical diffusion to be CCPPized and outsources solve phase of non-graft decomp solves to atmospheric physics solver.
248+
249+
Describe any changes made to build system:
250+
- Adds the to_be_ccppized directory in atmospheric_physics to source search path
251+
252+
Describe any changes made to the namelist: N/A
253+
254+
List any changes to the defaults for the boundary datasets: N/A
255+
256+
Describe any substantial timing or memory changes: N/A
257+
258+
Code reviewed by:
259+
260+
List all files eliminated:
261+
D src/utils/coords_1d.F90
262+
D src/utils/linear_1d_operators.F90
263+
- Files were moved to atmospheric_physics
264+
265+
List all files added and what they do: N/A
266+
267+
List all existing files that have been modified, and describe the changes:
268+
M .gitmodules
269+
M bld/configure
270+
M src/atmos_phys
271+
- Update atmospheric_physics reference and added new atmospheric_physics directory to search path
272+
273+
M cime_config/config_pes.xml
274+
- Decreasing NTHRDS from 2 to 1 to force single threaded execution as multithreaded execution enables the -smp flag which breaks under OpenMP when running the SE dycore, similar to #1087
275+
276+
M src/physics/cam/diffusion_solver.F90
277+
- Uses new CCPPized interface for decomp that was moved to atmospheric_physics repo to single solve step.
278+
279+
If there were any failures reported from running test_driver.sh on any test
280+
platform, and checkin with these failures has been OK'd by the gatekeeper,
281+
then copy the lines from the td.*.status files for the failed tests to the
282+
appropriate machine below. All failed tests must be justified.
283+
284+
derecho/intel/aux_cam:
285+
286+
ERP_Ln9.f09_f09_mg17.FCSD_HCO.derecho_intel.cam-outfrq9s (Overall: FAIL) details:
287+
SMS_Ld1.f09_f09_mg17.FCHIST_GC.derecho_intel.cam-outfrq1d (Overall: FAIL) details:
288+
- pre-existing failure due to HEMCO not having reproducible results issues #1018 and #856
289+
290+
SMS_D_Ln9.f19_f19_mg17.FXHIST.derecho_intel.cam-outfrq9s_amie (Overall: FAIL)
291+
SMS_D_Ln9_P1280x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.derecho_intel.cam-outfrq9s (Overall: FAIL)
292+
- pre-existing failures due to build-namelist error requiring CLM/CTSM external update.
293+
294+
derecho/nvhpc/aux_cam: All PASS
295+
296+
izumi/nag/aux_cam:
297+
298+
DAE.f45_f45_mg37.FHS94.izumi_nag.cam-dae (Overall: FAIL) details:
299+
- pre-existing failure -- issue #670
300+
301+
izumi/gnu/aux_cam: All PASS
302+
303+
CAM tag used for the baseline comparison tests if different than previous
304+
tag:
305+
306+
Summarize any changes to answers, i.e.,
307+
- what code configurations:
308+
- what platforms/compilers:
309+
- nature of change (roundoff; larger than roundoff but same climate; new
310+
climate):
311+
N/A
312+
313+
If bitwise differences were observed, how did you show they were no worse
314+
than roundoff?
315+
N/A
316+
317+
If this tag changes climate describe the run(s) done to evaluate the new
318+
climate in enough detail that it(they) could be reproduced, i.e.,
319+
- source tag (all code used must be in the repository):
320+
- platform/compilers:
321+
- configure commandline:
322+
- build-namelist command (or complete namelist):
323+
- MSS location of output:
324+
N/A
325+
326+
MSS location of control simulations used to validate new climate: N/A
327+
328+
URL for AMWG diagnostics output used to validate new climate: N/A
329+
330+
===============================================================
240331
===============================================================
241332

333+
>>>>>>> upstream/cam_development
242334
Tag name: cam6_4_044
243335
Originator(s): eaton
244336
Date: 04 November 2024
@@ -343,12 +435,12 @@ Describe any changes made to the namelist:
343435
. change default value of seasalt_emis_scale to 0.75 for cam7 (both lt and mt)
344436
This is a cam7 tuning mod from issue #1143
345437

346-
. update ubc_file_path for cam7 (lt only) to
438+
. update ubc_file_path for cam7 (lt only) to
347439
atm/cam/chem/ubc/b.e21.BWHIST.f09_g17.CMIP6-historical-WACCM.ensAvg123.cam.h0zm.H2O.1849-2014_c240604.nc
348440

349441
List any changes to the defaults for the boundary datasets:
350442

351-
. update ubc_file_path for cam7 (lt only) to
443+
. update ubc_file_path for cam7 (lt only) to
352444
atm/cam/chem/ubc/b.e21.BWHIST.f09_g17.CMIP6-historical-WACCM.ensAvg123.cam.h0zm.H2O.1849-2014_c240604.nc
353445

354446
Describe any substantial timing or memory changes: none
@@ -376,7 +468,7 @@ bld/namelist_files/namelist_defaults_cam.xml
376468
This is a cam7 tuning mod from issue #1143
377469

378470
bld/namelist_files/use_cases/1850_cam_lt.xml
379-
. update ubc_file_path to
471+
. update ubc_file_path to
380472
atm/cam/chem/ubc/b.e21.BWHIST.f09_g17.CMIP6-historical-WACCM.ensAvg123.cam.h0zm.H2O.1849-2014_c240604.nc
381473

382474
cime_config/testdefs/testlist_cam.xml

src/atmos_phys

Submodule atmos_phys updated 42 files

src/physics/cam/diffusion_solver.F90

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ subroutine compute_vdiff( lchnk ,
161161
use linear_1d_operators, only : BoundaryType, BoundaryFixedLayer, &
162162
BoundaryData, BoundaryFlux, TriDiagDecomp
163163
use vdiff_lu_solver, only : fin_vol_lu_decomp
164+
use vertical_diffusion_solver, only : fin_vol_solve
164165
use beljaars_drag_cam, only : do_beljaars
165166
! FIXME: This should not be needed
166167
use air_composition, only: rairv
@@ -570,12 +571,15 @@ end function vd_lu_qdecomp
570571
tau_damp_rate(:,k) = tau_damp_rate(:,k) + dragblj(:ncol,k)
571572
end do
572573

573-
decomp = fin_vol_lu_decomp(ztodt, p, &
574-
coef_q=tau_damp_rate, coef_q_diff=kvm(:ncol,:)*dpidz_sq)
574+
v(:ncol,:) = fin_vol_solve(ztodt, p, v(:ncol,:), ncol, pver, &
575+
coef_q=tau_damp_rate, &
576+
coef_q_diff=kvm(:ncol,:)*dpidz_sq)
577+
578+
u(:ncol,:) = fin_vol_solve(ztodt, p, u(:ncol,:), ncol, pver, &
579+
coef_q=tau_damp_rate, &
580+
coef_q_diff=kvm(:ncol,:)*dpidz_sq)
581+
575582

576-
call decomp%left_div(u(:ncol,:))
577-
call decomp%left_div(v(:ncol,:))
578-
call decomp%finalize()
579583

580584
! ---------------------------------------------------------------------- !
581585
! Calculate 'total' ( tautotx ) and 'tms' ( tautmsx ) stresses that !
@@ -741,37 +745,31 @@ end function vd_lu_qdecomp
741745

742746
! Boundary layer thickness of "0._r8" signifies that the boundary
743747
! condition is defined directly on the top interface.
744-
decomp = fin_vol_lu_decomp(ztodt, p, &
745-
coef_q_diff=kvh(:ncol,:)*dpidz_sq, &
746-
upper_bndry=interface_boundary)
747748

748749
if (.not. use_spcam) then
749-
call decomp%left_div(dse(:ncol,:), &
750-
l_cond=BoundaryData(dse_top(:ncol)))
750+
dse(:ncol,:) = fin_vol_solve(ztodt, p, dse(:ncol,:), ncol, pver, &
751+
coef_q_diff=kvh(:ncol,:)*dpidz_sq, &
752+
upper_bndry=interface_boundary, &
753+
l_cond=BoundaryData(dse_top(:ncol)))
751754
endif
752755

753-
call decomp%finalize()
754-
755756
! Calculate flux at top interface
756757

757758
! Modification : Why molecular diffusion does not work for dry static energy in all layers ?
758759

759760
topflx(:ncol) = - kvh(:ncol,1) * tmpi2(:ncol,1) / (ztodt*gravit) * &
760761
( dse(:ncol,1) - dse_top(:ncol) )
761762

762-
decomp = fin_vol_lu_decomp(ztodt, p, &
763-
coef_q_diff=kvt(:ncol,:)*dpidz_sq, &
764-
coef_q_weight=cpairv(:ncol,:))
765-
766763
ttemp0 = t(:ncol,:)
767764
ttemp = ttemp0
768765

769766
! upper boundary is zero flux for extended model
770767
if (.not. use_spcam) then
771-
call decomp%left_div(ttemp)
768+
ttemp = fin_vol_solve(ztodt, p, ttemp, ncol, pver, &
769+
coef_q_diff=kvt(:ncol,:)*dpidz_sq, &
770+
coef_q_weight=cpairv(:ncol,:))
772771
end if
773772

774-
call decomp%finalize()
775773

776774
!-------------------------------------
777775
! Update dry static energy
@@ -791,17 +789,13 @@ end function vd_lu_qdecomp
791789

792790
! Boundary layer thickness of "0._r8" signifies that the boundary
793791
! condition is defined directly on the top interface.
794-
decomp = fin_vol_lu_decomp(ztodt, p, &
795-
coef_q_diff=kv_total(:ncol,:)*dpidz_sq, &
796-
upper_bndry=interface_boundary)
797-
798792
if (.not. use_spcam) then
799-
call decomp%left_div(dse(:ncol,:), &
800-
l_cond=BoundaryData(dse_top(:ncol)))
793+
dse(:ncol,:) = fin_vol_solve(ztodt, p, dse(:ncol,:), ncol, pver, &
794+
coef_q_diff=kv_total(:ncol,:)*dpidz_sq, &
795+
upper_bndry=interface_boundary, &
796+
l_cond=BoundaryData(dse_top(:ncol)))
801797
end if
802798

803-
call decomp%finalize()
804-
805799
! Calculate flux at top interface
806800

807801
! Modification : Why molecular diffusion does not work for dry static energy in all layers ?

0 commit comments

Comments
 (0)