Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
9cd4e74
Merge tag 'ctsm5.3.076' into merge-master-20250924
ekluzek Sep 24, 2025
81c6e54
Merge pull request #3503 from ekluzek/merge-master-20250924
ekluzek Sep 24, 2025
a744af8
Merge tag 'ctsm5.3.076' into b4b-dev
ekluzek Sep 24, 2025
aec43c9
Also bypass the import fields for_testing option, and move the decomp…
ekluzek Aug 27, 2025
1793ae1
Return up the chain in decompInit after endrun, for the testing. Do s…
ekluzek Aug 27, 2025
65ce59c
Merge branch 'b4b-dev' into decompinit_timer_updates
ekluzek Sep 24, 2025
c0be263
Remove stray conflict marker
ekluzek Sep 24, 2025
d9e956c
Remove the bit that has to do with the bypassing code for testing
ekluzek Sep 24, 2025
e479200
Remove the code repetetion from bad conflict resolution
ekluzek Sep 24, 2025
b1408b9
Add more documentation and formatting to the new routines and make su…
ekluzek Sep 24, 2025
89b7422
Start adding timers to lnd_set_decomp_and_domain_from_readmesh
ekluzek Jul 29, 2025
869965a
Add more timers
ekluzek Aug 6, 2025
97aa888
Change timers a bit to make sure there is a timer for each section
ekluzek Sep 24, 2025
84e9b4a
Add timers
ekluzek Aug 6, 2025
09631b0
Remove some of the extra timers
ekluzek Sep 24, 2025
c1d3709
Balance check doesn't take time, so adjust the timers again for part3
ekluzek Jul 31, 2025
f5f9d3c
Add another timer within part3, and also turn off some of the history…
ekluzek Jul 31, 2025
0838f49
Add timers for clm_initialize2 that cover the whole subroutine
ekluzek Jul 31, 2025
a66af70
Remove most of the extra timers in clm_init2 and just divide it up in…
ekluzek Sep 25, 2025
0553c8e
Remove more timers, put timers for clm_init around the initialize1 an…
ekluzek Sep 25, 2025
58734ee
Remove the memcheck call
ekluzek Sep 25, 2025
8eba257
Remove more timers, put timers for clm_init around the initialize1 an…
ekluzek Sep 25, 2025
2787ae7
Put calls in place for the internal subroutines and remove the old co…
ekluzek Sep 26, 2025
29eef59
Make sure the timer is closed in case of an early exit because the po…
ekluzek Sep 26, 2025
614dc14
Spin off a little routine to set important scalars before the check_e…
ekluzek Sep 29, 2025
6b43edc
Merge pull request #3511 from ekluzek/decompinit_timer_updates
ekluzek Sep 29, 2025
81354c8
Add a failing test as a reminder
mvdebolskiy Oct 2, 2025
e6f3780
Switch from intel to gnu
mvdebolskiy Oct 2, 2025
67697fb
Merge pull request #3516 from mvdebolskiy/mosart-eri-bug
samsrabin Oct 2, 2025
efe185a
Merge tag 'ctsm5.3.077' into merge-b4bdev-20251002
slevis-lmwg Oct 2, 2025
8f1bf84
Update ChangeLog/ChangeSum (I included test results preemptively)
slevis-lmwg Oct 2, 2025
5bd7c88
Update/fix ChangeLog/ChangeSum
slevis-lmwg Oct 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions cime_config/testdefs/ExpectedTestFails.xml
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,12 @@
<issue>#3383</issue>
</phase>
</test>
<test name="ERI_Ld41.f10_f10_mg37.I2000Clm60BgcCrop.derecho_gnu.clm-default">
<phase name="COMPARE_base_hybrid">
<status>FAIL</status>
<issue>#3494</issue>
</phase>
</test>

<test name="ERI_D_Ld9.f45_f45_mg37.I2000Clm60FatesSpCruRsGs.derecho_gnu.clm-FatesColdSatPhenCamLndTuningMode">
<phase name="COMPARE_base_rest">
Expand Down
10 changes: 10 additions & 0 deletions cime_config/testdefs/testlist_clm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4698,5 +4698,15 @@
</options>
</test>

<test name="ERI_Ld41" grid="f10_f10_mg37" compset="I2000Clm60BgcCrop" testmods="clm/default">
<machines>
<machine name="derecho" compiler="gnu" category="aux_clm"/>
</machines>
<options>
<option name="wallclock">00:30:00</option>
<option name="comment"> Placeholder failing test for mosart hybrid history issue which appears for tests longer than Ld33</option>
</options>
</test>


</testlist>
67 changes: 67 additions & 0 deletions doc/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,4 +1,71 @@
===============================================================
Tag name: ctsm5.3.078
Originator(s): slevis (Samuel Levis,UCAR/TSS,303-665-1310)
Date: Fri 03 Oct 2025 09:31:06 AM MDT
One-line Summary: Merge b4b-dev to master

Purpose and description of changes
----------------------------------

PR #3516 by Matvey: Add failing test as reminder for mosart history issue
PR #3511 by Erik: Decompinit timer updates

Significant changes to scientifically-supported configurations
--------------------------------------------------------------

Does this tag change answers significantly for any of the following physics configurations?
(Details of any changes will be given in the "Answer changes" section below.)

[Put an [X] in the box for any configuration with significant answer changes.]

[ ] clm6_0

[ ] clm5_0

[ ] ctsm5_0-nwp

[ ] clm4_5


Bugs fixed
----------
List of CTSM issues fixed (include CTSM Issue # and description) [one per line]:
Makes visible #3494 ERI_Ld90 tests fail with mosart.h0a having diffs
Fixes #3387 Bring in more timers for initialization
Some work in #3448 Improve design and error checking in decompMod and decomInitMod
Fixes #3508 Add decompMod_clean method
Fixes #3509 Internal subroutines for decompInit_lnd

Notes of particular relevance for developers:
---------------------------------------------
Changes to tests or testing:
New failing test added as reminder for mosart history issue

Testing summary:
----------------
[PASS means all tests PASS; OK means tests PASS other than expected fails.]

build-namelist tests (if CLMBuildNamelist.pm has changed):

derecho - OK

regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing):

derecho ----- OK
izumi ------- OK

Answer changes
--------------

Changes answers relative to baseline: No

Other details
-------------
Pull Requests that document the changes (include PR ids):
https://github.com/ESCOMP/ctsm/pull/3517

===============================================================
===============================================================
Tag name: ctsm5.3.077
Originator(s): rgknox (Ryan Knox,LAWRENCE BERKELEY NATIONAL LABORATORY)
Date: Thu 02 Oct 2025 09:39:48 AM MDT
Expand Down
1 change: 1 addition & 0 deletions doc/ChangeSum
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
Tag Who Date Summary
============================================================================================================================
ctsm5.3.078 slevis 10/03/2025 Merge b4b-dev to master
ctsm5.3.077 rgknox 10/02/2025 Adjustment of timestep albedo filtering with FATES
ctsm5.3.076 erik 09/24/2025 Merge b4b-dev to master
ctsm5.3.075 slevis 09/10/2025 Change default glcmec_downscale_longwave from true to false for clm6
Expand Down
21 changes: 13 additions & 8 deletions src/cpl/nuopc/lnd_comp_nuopc.F90
Original file line number Diff line number Diff line change
Expand Up @@ -409,6 +409,9 @@ subroutine InitializeRealize(gcomp, importState, exportState, clock, rc)
character(len=*),parameter :: subname=trim(modName)//':(InitializeRealize) '
!-------------------------------------------------------------------------------

! NOTE: Because this is an ESMF called subroutine -- do a timer over it's contents here rather than from the outside calls
call t_startf ('lc_lnd_init_realize')

rc = ESMF_SUCCESS
call ESMF_LogWrite(subname//' called', ESMF_LOGMSG_INFO)

Expand All @@ -431,6 +434,9 @@ subroutine InitializeRealize(gcomp, importState, exportState, clock, rc)
call NUOPC_CompAttributeGet(gcomp, name='single_column_lnd_domainfile', value=single_column_lnd_domainfile, rc=rc)
if (ChkErr(rc,__LINE__,u_FILE_u)) return

! NOTE: Now start the timer
!call t_startf ('lc_lnd_init_realize')

! TODO: there is a problem retrieving scol_spval from the driver - for now
! hard-wire scol_spval - this needs to be fixed
scol_spval = -999._r8
Expand Down Expand Up @@ -481,6 +487,8 @@ subroutine InitializeRealize(gcomp, importState, exportState, clock, rc)
end if
enddo
deallocate(lfieldnamelist)
! Close the timer for the subroutine
call t_stopf ('lc_lnd_init_realize')
! *******************
! *** RETURN HERE ***
! *******************
Expand Down Expand Up @@ -629,7 +637,9 @@ subroutine InitializeRealize(gcomp, importState, exportState, clock, rc)
hostname_in=hostname, &
username_in=username)

call t_startf('clm_init1')
call initialize1(dtime=dtime_sync)
call t_stopf('clm_init1')

! ---------------------
! Create ctsm decomp and domain info
Expand Down Expand Up @@ -663,7 +673,9 @@ subroutine InitializeRealize(gcomp, importState, exportState, clock, rc)
call ESMF_ClockGet(clock, currTime=currtime, rc=rc)
if (ChkErr(rc,__LINE__,u_FILE_u)) return

call t_startf('clm_init2')
call initialize2(ni, nj, currtime)
call t_stopf('clm_init2')

!--------------------------------
! Create land export state
Expand Down Expand Up @@ -702,6 +714,7 @@ subroutine InitializeRealize(gcomp, importState, exportState, clock, rc)
#endif

call ESMF_LogWrite(subname//' done', ESMF_LOGMSG_INFO)
call t_stopf ('lc_lnd_init_realize')

end subroutine InitializeRealize

Expand Down Expand Up @@ -812,11 +825,9 @@ subroutine ModelAdvance(gcomp, rc)
! Unpack import state
!--------------------------------

call t_startf ('lc_lnd_import')
call import_fields( gcomp, bounds, glc_present, rof_prognostic, &
atm2lnd_inst, glc2lnd_inst, water_inst%wateratm2lndbulk_inst, rc )
if (ChkErr(rc,__LINE__,u_FILE_u)) return
call t_stopf ('lc_lnd_import')

!--------------------------------
! Run model
Expand Down Expand Up @@ -884,14 +895,12 @@ subroutine ModelAdvance(gcomp, rc)
! call ESMF_VMBarrier(vm, rc=rc)
! if (ChkErr(rc,__LINE__,u_FILE_u)) return

call t_startf ('shr_orb_decl')
! Note - the orbital inquiries set the values in clm_varorb via the module use statements
call clm_orbital_update(clock, iulog, masterproc, eccen, obliqr, lambm0, mvelpp, rc)
if (ChkErr(rc,__LINE__,u_FILE_u)) return
calday = get_curr_calday(reuse_day_365_for_day_366=.true.)
call shr_orb_decl( calday , eccen, mvelpp, lambm0, obliqr, declin , eccf )
call shr_orb_decl( nextsw_cday, eccen, mvelpp, lambm0, obliqr, declinp1, eccf )
call t_stopf ('shr_orb_decl')

call t_startf ('ctsm_run')
! Restart File - use nexttimestr rather than currtimestr here since that is the time at the end of
Expand All @@ -908,19 +917,15 @@ subroutine ModelAdvance(gcomp, rc)
! Pack export state
!--------------------------------

call t_startf ('lc_lnd_export')
call export_fields(gcomp, bounds, glc_present, rof_prognostic, &
water_inst%waterlnd2atmbulk_inst, lnd2atm_inst, lnd2glc_inst, rc)
if (ChkErr(rc,__LINE__,u_FILE_u)) return
call t_stopf ('lc_lnd_export')

!--------------------------------
! Advance ctsm time step
!--------------------------------

call t_startf ('lc_ctsm2_adv_timestep')
call advance_timestep()
call t_stopf ('lc_ctsm2_adv_timestep')

! Check that internal clock is in sync with master clock
! Note that the driver clock has not been updated yet - so at this point
Expand Down
13 changes: 13 additions & 0 deletions src/cpl/share_esmf/lnd_set_decomp_and_domain.F90
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ module lnd_set_decomp_and_domain
use spmdMod , only : masterproc, mpicom
use clm_varctl , only : iulog, inst_suffix, FL => fname_len
use abortutils , only : endrun
use perf_mod , only : t_startf, t_stopf

implicit none
private ! except
Expand Down Expand Up @@ -87,6 +88,7 @@ subroutine lnd_set_decomp_and_domain_from_readmesh(driver, vm, meshfile_lnd, mes
real(r8) , pointer :: dataptr1d(:)
!-------------------------------------------------------------------------------

call t_startf('lnd_set_decomp_and_domain_from_readmesh: setup')
rc = ESMF_SUCCESS

! Write diag info
Expand All @@ -105,7 +107,10 @@ subroutine lnd_set_decomp_and_domain_from_readmesh(driver, vm, meshfile_lnd, mes
! Determine global 2d sizes from read of dimensions of surface dataset and allocate global memory
call lnd_get_global_dims(ni, nj, gsize, isgrid2d)

call t_stopf('lnd_set_decomp_and_domain_from_readmesh: setup')

! Read in the land mesh from the file
call t_startf('lnd_set_decomp_and_domain_from_readmesh: ESMF mesh')
mesh_lndinput = ESMF_MeshCreate(filename=trim(meshfile_lnd), fileformat=ESMF_FILEFORMAT_ESMFMESH, rc=rc)
if (ChkErr(rc,__LINE__,u_FILE_u)) return

Expand Down Expand Up @@ -142,9 +147,13 @@ subroutine lnd_set_decomp_and_domain_from_readmesh(driver, vm, meshfile_lnd, mes
else
call shr_sys_abort('driver '//trim(driver)//' is not supported, must be lilac or cmeps')
end if
call t_stopf('lnd_set_decomp_and_domain_from_readmesh: ESMF mesh')
call t_startf ('lnd_set_decomp_and_domain_from_readmesh: final')

! Determine lnd decomposition that will be used by ctsm from lndmask_glob
call t_startf ('decompInit_lnd')
call decompInit_lnd(lni=ni, lnj=nj, amask=lndmask_glob)
call t_stopf ('decompInit_lnd')

! Determine ocn decomposition that will be used to create the full mesh
! note that the memory for gindex_ocn will be allocated in the following call
Expand Down Expand Up @@ -251,6 +260,8 @@ subroutine lnd_set_decomp_and_domain_from_readmesh(driver, vm, meshfile_lnd, mes
deallocate(gindex_ocn)
deallocate(gindex_ctsm)

call t_stopf('lnd_set_decomp_and_domain_from_readmesh: final')

end subroutine lnd_set_decomp_and_domain_from_readmesh

!===============================================================================
Expand Down Expand Up @@ -315,7 +326,9 @@ subroutine lnd_set_decomp_and_domain_for_single_column(scol_lon, scol_lat, scol_
!-------------------------------------------------------------------------------

! Determine decomp and ldomain
call t_startf ('decompInit_lnd')
call decompInit_lnd(lni=1, lnj=1, amask=(/1/))
call t_stopf ('decompInit_lnd')

! Initialize processor bounds
call get_proc_bounds(bounds)
Expand Down
Loading