Skip to content
Open
Show file tree
Hide file tree
Changes from 249 commits
Commits
Show all changes
278 commits
Select commit Hold shift + click to select a range
14ae8f8
Variable epssm(zeta) introduction, step (2): Added code into mpas_atm…
skamaroc Oct 1, 2025
d163ed6
Merge branch 'framework/duplicate_stream_fix' into develop (PR #1353)
mgduda Oct 2, 2025
b1202f7
Refactoring duplicate definitions of halo_exchange_routine
abishekg7 Aug 19, 2025
55c737f
Merge branch 'framework/refactor_halo_interface' into develop (PR #1359)
mgduda Oct 3, 2025
097f9fe
Variable epssm(zeta) introduction, step (3): modified code to set
skamaroc Oct 14, 2025
51d8389
Changed the default values of the variable_epssm configuration variables
skamaroc Oct 14, 2025
42b5d79
Add src/framework to list of include directories when building with C…
jim-p-w Oct 22, 2025
198c0a1
Merge branch 'atmosphere/cmake_framework' into develop (PR #1366)
mgduda Oct 22, 2025
80db0ac
Nullify pointer arguments in all pool accessor routines
Oct 25, 2025
93b9932
Merge branch 'framework/nullify_ptr_args_in_pool_accessors' into deve…
mgduda Oct 29, 2025
0b3d40a
Chemistry hooks integrated with MUSICA stubs and guarded build flags.
dwfncar Aug 22, 2025
78ac40c
Merge branch 'musica_micm_stubs' into develop (PR #1360)
mgduda Nov 5, 2025
f1ebfdd
Merge branch 'better-declare-variable' into develop (PR #1271)
mgduda Nov 7, 2025
9a432a3
Explicitly declare ierr as an integer variable in the noahmp_init rou…
mgduda Nov 7, 2025
d922ad0
Merge branch 'atmosphere/noahmpinit_fix_implicit_ierr' into develop (…
mgduda Nov 10, 2025
9743fb4
Add -fimplicit-none to FFLAGS_OPT and FFLAGS_DEBUG in 'gnu' build target
mgduda Nov 10, 2025
9fa8cb2
Merge branch 'framework/add_gnu_implicit_none_flag' into develop (PR …
mgduda Nov 10, 2025
c2f726c
Fixed units designation of GW drag diagnostic variables dusfcg, dtaux…
mdtoyNOAA Nov 13, 2025
6b6c272
Remove scaling of gravity-wave absorbing layer coefficient by local m…
skamaroc Oct 23, 2025
389441b
Merge branch 'gw_absorbing_layer_fix' into develop (PR #1379)
mgduda Dec 29, 2025
4a6857f
Fix to esmf_time_f90 include path in the root chemistry Makefile
abishekg7 Dec 30, 2025
447de92
Merge branch 'atmosphere/fix_chem_makefile' into develop (PR #1390)
mgduda Dec 31, 2025
aae3ac8
Set default PnetCDF header alignment to 128 KiB
Dec 12, 2025
934f6e4
add new deformation coefficients to registries
Dec 20, 2019
da78a8c
initialize new deformation coefficients
Dec 20, 2019
b7880ce
add pointers for new coefficients
Dec 20, 2019
235b61c
add initialization of new arrays to zero
Dec 23, 2019
cf17fae
pass new arrays to dyn_tend_work - compiles
Dec 23, 2019
bf910d6
add deformation formulation to 2d Smagorinsky kdiff
mgduda Dec 4, 2025
31a507c
bug fixes for computing the deformation coefficients for the 2D Smago…
skamaroc Dec 27, 2019
a4c08d4
Fixed error in w_x, w_y deformation coefficients.
skamaroc Dec 30, 2019
4fbeab4
New module file for the dissipation routines.
skamaroc Dec 31, 2019
bf5e369
(1) Changes to the Makefile to compile new dissipation module.
mgduda Dec 4, 2025
597f74f
Modifications to use mpas_atm_dimensions in the dissipation module
skamaroc Dec 31, 2019
b454527
Adding configuration string for the les models in the Registry.
mgduda Dec 4, 2025
728077e
Moved the dissipation term computations for u, theta and w from
mgduda Dec 4, 2025
93d2ac5
Added initialization for convective boundary layer LES case.
skamaroc Jan 6, 2020
c5eb44e
add calcalate_n2 routine (no functional code yet)
Jan 7, 2020
b18f3e2
add to arg list of calculate_n2
Jan 8, 2020
a633636
add dry N^2
Jan 16, 2020
d42a459
fix theta to be in diag pool
Jan 17, 2020
f0fc10d
fix to use theta_m and qv instead of non-updated theta
Jan 17, 2020
116368b
use local 1d theta array for efficiency
Jan 17, 2020
b673e28
add qtot drag term to thetav in dry case
Jan 24, 2020
a9d7bfa
add cloudy conditions N2 calculation following WRF and Durran and Kle…
Jan 27, 2020
f12589d
remove thetav use
Jan 30, 2020
7abd792
add bn2 to output and commented out test call
mgduda Dec 4, 2025
a6faf86
added a 3D vertical eddy viscosity to the Registry for use in LES app…
skamaroc Mar 6, 2020
88aa0b2
Added a horizontal eddy_viscosity array to go along with the vertical
skamaroc Mar 9, 2020
05f206c
Bug fixes in the new LES mixing routines.
skamaroc Mar 9, 2020
92fbf81
added test calls to the new 3D LES schemes. This is currently hardwired
mgduda Dec 4, 2025
1eaffdf
Bug fixes for the supercell test case using the 3D Smagorinsky LES mo…
skamaroc Mar 9, 2020
eb4b3ef
switched signs of the vertical turbulent fluxes and vertical flux div…
skamaroc Mar 9, 2020
dbd83ea
Added new lower boundary conditions for LES simulations:
mgduda Dec 4, 2025
59f1348
Added a scalar variable named tke. This is the turbulent kinetic energy
skamaroc Mar 16, 2020
31f21ff
Added passive test of prognostic tke. Does not yet pass debug step.
skamaroc Mar 17, 2020
7e1581b
1.5 order prognostic tke mods. The prognostic tke does not feed back …
skamaroc Mar 18, 2020
84ad242
Added mixing routines for scalars within the LES models,
skamaroc Mar 18, 2020
bf39525
Clean up and changes to run the prognostic tke les model. initial tests
skamaroc Mar 20, 2020
203fdef
bug fixes and the addition of the Prandtl number formulation to the
skamaroc Mar 24, 2020
1f442ae
changed Prandtl number to 1/3 for LES simulations in the MPAS_constan…
skamaroc Apr 2, 2020
57a8829
implemented a perturbation coriolis term option for the LES cases.
skamaroc Apr 2, 2020
7ddd21d
introduced the sheared PBL test case for the LES implementation, incl…
skamaroc Apr 2, 2020
6212e0e
Implemented SAS case sounding in LES initialization.
skamaroc Apr 23, 2020
3591008
Added the SAS LES time-varying lower boundary moisture and heat fluxes.
mgduda Dec 4, 2025
f77c123
changed the initialization for the random potential temperature pretu…
skamaroc May 4, 2020
b6f044a
Added a 3D diagnostic variable: the inverse Prandtl number used in the
skamaroc May 4, 2020
2a9afca
Threaded the 3D inverse Prandtl number through to the routines that n…
skamaroc May 4, 2020
7bef48f
ustm passed to u_dissipation_3d, diag_physics pool accessed
May 13, 2020
f2ae5be
ustm add pointer remove blanks in pool statement
May 15, 2020
1ab69a0
add les_model check to bypass pbl calls
Jun 3, 2020
b6f5cba
add time_of_day_seconds calculation (compiles)
Jun 17, 2020
d6d42f0
add flux_les_sas call in driver_sfclayer routine
Jun 23, 2020
a7a1dc5
add fluxes to sfclay arguments and pass in
Jun 23, 2020
e6d26f2
pass heat flux args to sfclay1d
Jul 30, 2020
460c8b5
copy specified fluxes to hfx and qfx before sfclay1d
Jul 30, 2020
fb5e94f
add MOL and BR calculations to sfclay1d
Jul 30, 2020
88df14a
add ustm drag in u_dissipation_3d les_sas_test
Aug 12, 2020
5c9feb4
skip hfx and qfx calcs in sfclay for specified_flux
Aug 13, 2020
d0d418d
pass hfx and qfx to dissipation and use for les_sas
Aug 13, 2020
3121ce5
comment out duplicate flux_les_sas in dissipiation module
Aug 18, 2020
af3233d
Set dummy TSK and UST=USTM (no VCONV)
Aug 18, 2020
16637ca
sign correction for MOL
Aug 18, 2020
210df8e
pass clock atm_do_timestep to physics_driver to driver_sfclayer
Aug 19, 2020
eba2aee
put k loop around prandtl_inverse calc in dissipation
Aug 19, 2020
9895ad5
bug fixes - fixed an uninitialized value in the w turbulent flux at t…
skamaroc Sep 25, 2020
82a1a8c
hfx = heat_flux*rho*cp (factor added)
Oct 27, 2020
a7828af
add print for ust_edge
Nov 10, 2020
5e34d46
initialize landmask, lu_index(ivgtyp), xland = 1
Nov 10, 2020
4514244
change hardwired value of f - need to generize to use fEdge
Nov 2, 2021
cdb3a2e
fix rdzw/rdzu for w dissipation, use fEdge instead of coriolis_value
Nov 3, 2021
dcaa620
revert to hardwired f until fEdge can be used
Nov 3, 2021
19e94ab
convert moisture_flux w'q' to surface flux qfx
Nov 30, 2021
2bea048
moisture_flux in dynamics should be w'q' = qfx/rho
Dec 8, 2021
99e8905
add commented fEdge line while still using hardwired f
dudhia Mar 24, 2022
684cc61
initial prep to use les_test option
dudhia Jun 22, 2022
2410a51
fix for compile
dudhia Oct 30, 2024
f0ee5eb
fixes to compile init_atmosphere
dudhia Oct 30, 2024
af5807a
to compile atmosphere
dudhia Nov 1, 2024
a284542
fix small error in tke shear production and add surface heat flux
dudhia Jan 2, 2025
c3f694c
remove specialized physics code to leave dynonly les
dudhia Mar 19, 2025
d916283
mods to scale les-supercell case and remove surface fluxes from les_test
dudhia May 21, 2025
97e73ed
add seed tke = 0.1 at all points
dudhia May 23, 2025
ac2f96c
fix scaling for x_period and y_period for cases
dudhia Aug 12, 2025
250db00
revert supercell a_scale to 1.0
dudhia Aug 27, 2025
e446ec8
add config_les_surface to registry and routines (not used yet)
dudhia Sep 29, 2025
96574f2
clean up and reduce duplication
dudhia Oct 8, 2025
a311c6f
remove redundant dissipation routines
dudhia Oct 8, 2025
49372ce
Merge with Bill Skamarock updated LES modules
dudhia Oct 9, 2025
6345dc1
add surface flux namelist options
dudhia Oct 21, 2025
eef4473
Add explicit declarations of iCell, k, and p in the calculate_n2 routine
mgduda Dec 4, 2025
a6eec0e
Avoid passing null pointers for ustm, hfx, and qfx to atm_compute_dyn…
mgduda Dec 5, 2025
f18ccf0
Change the intel fortran preprocessing order.
jim-p-w Feb 6, 2026
66e724a
Introduce init_atmosphere namelist options to control hybrid vertical…
skamaroc Oct 20, 2025
3474081
Merge branch 'coordinate_smoothing' into develop (PR #1382)
mgduda Feb 9, 2026
cbc8a5e
Implement option to turn off microphysics tendencies above a specifie…
skamaroc Oct 17, 2025
dd0413c
Move 'mp_top_level' from mesh pool to tend_physics pool in the atmosp…
mgduda Feb 10, 2026
86f0cb4
Merge branch 'microphysics_top' into develop (PR #1380)
mgduda Feb 11, 2026
94fa465
Merge branch 'bugfix/intel-fpp-fix' into develop (PR #1392)
mgduda Feb 13, 2026
c34e74d
Remove etp, etm, ewp, and ewm from the 'invariant' stream in the atmo…
mgduda Feb 11, 2026
0d434b5
Remove old epssm variables and commented-out code from mpas_atm_time_…
mgduda Feb 11, 2026
a18b64f
Report use of config_epssm in the &nhyd_model namlist group with log …
mgduda Feb 12, 2026
6f9441c
Deactivate epssm log writes in atm_compute_damping_coefs using MPAS_D…
mgduda Feb 12, 2026
dfc451e
Copy epssm arrays etp, etm, ewp, and ewm to the device when using Ope…
mgduda Feb 12, 2026
45c8a2f
Merge branch 'epssm_z' into develop (PR #1381)
mgduda Feb 13, 2026
ff8081a
Ensure the buffer provided to MPAS_io_get_var_generic is large enough.
jim-p-w Jan 5, 2026
9def555
Add a test to verify reading character variables won't overrun buffers.
jim-p-w Jan 5, 2026
e530428
Allow optional arguments to logging macros in mpas_io.F
jim-p-w Feb 17, 2026
25dff0e
Merge branch 'atmosphere/check_buffer_len' into develop (PR #1367)
mgduda Feb 18, 2026
f69133a
Adding support for linking with the SCOTCH graph partitioning library
abishekg7 Feb 19, 2026
faaf2e4
Adding source files that enable Fortran-C interfaces from MPAS to SCOTCH
abishekg7 Feb 19, 2026
ac7ec8a
Adding online graph partitioning routine to mpas_block_decomp.F
abishekg7 Feb 19, 2026
3d09d77
Enabling online graph partitioning via SCOTCH when partition file not…
abishekg7 Feb 20, 2026
8c8f81e
Adding new timers to mpas_block_decomp.F
abishekg7 Feb 20, 2026
ff391a3
Merge branch 'framework/increase_default_pnetcdf_header_size' into de…
mgduda Feb 20, 2026
6909cc2
Merge branch 'ptscotch_c_f' into develop (PR #1364)
mgduda Feb 20, 2026
44e0d39
Remove unused variables from new LES code
mgduda Dec 5, 2025
197296f
Clean up trailing whitespace and indentation in mpas_atm_dissipation_…
mgduda Dec 5, 2025
3df6857
Use a macro for debugging print statements in mpas_atm_dissipation_mo…
mgduda Dec 5, 2025
e093272
Add 'lbc_tke' to the 'lbc_scalars' var_array in atmosphere core Regis…
mgduda Jan 21, 2026
d60a765
Initial pass at porting mpas_atm_dissipation_models to GPUs with OpenACC
mgduda Feb 25, 2026
d79df9c
Update copyright statement at the top of mpas_atm_dissipation_models.F
mgduda Jan 29, 2026
f600615
Fix LaTeX quotes in possible_values for config_les_model and config_l…
mgduda Jan 29, 2026
4d3b299
Fix indentation of deformation_coef_* variables in atmosphere core Re…
mgduda Feb 3, 2026
d866412
Clean up indentation in atm_init_test_coefs routine in mpas_atm_advec…
mgduda Feb 3, 2026
84986ea
Tidy up module use statements in mpas_atm_time_integration.F
mgduda Feb 3, 2026
be8887d
Fix indentation of call to atm_compute_dyn_tend in atm_srk3
mgduda Feb 3, 2026
4245502
Fix indentation of calls to calculate_n2 and les_models in atm_comput…
mgduda Feb 4, 2026
01c4a5e
Remove commented-out calls to non-existent dissipation routines
mgduda Feb 4, 2026
fb5c14a
Set the Prandtl number back to 1.0 in mpas_constants
mgduda Feb 4, 2026
128b96d
Remove unnecessary variables from the atmosphere core's restart stream
mgduda Feb 4, 2026
ce6c254
Move computation of time_of_day_seconds into flux_les_sas routine
mgduda Feb 4, 2026
b2a7449
Fix implementation of "CAM-MPAS" 2nd-order horizontal filter
mgduda Feb 4, 2026
dc9c0d7
Use integer comparisons for config_les_model and config_les_surface
mgduda Feb 25, 2026
27c8b38
Revert init_atm_case_squall_line routine to v8.3.1
mgduda Feb 25, 2026
e9d81de
Revert the init_atm_case_mtn_wave routine to v8.3.1
mgduda Feb 25, 2026
493fd4b
Fix CMake builds by adding mpas_atm_dissipation_models.F to source fi…
mgduda Mar 3, 2026
63f2d44
Merge branch 'atmosphere/initial_les' into develop (PR #1404)
mgduda Mar 3, 2026
66517f6
Add MPAS_ESMF to Makefile opts for external ESMF
danrosen25 Feb 4, 2026
116cb42
MICM configuration is now driven by a MUSICA namelist option with add…
dwfncar Nov 10, 2025
3a1cd2d
Merge branch 'develop_musica_micm' into develop (PR #1376)
mgduda Mar 9, 2026
8da696a
Merge branch 'extesmf' into develop (PR #1405)
mgduda Mar 10, 2026
05458b3
Initialize the mpi_errcode argument to MPI_Abort in MPAS's log_abort …
mgduda Mar 11, 2026
824c6a3
Initialize the mpi_errcode argument to MPI_Abort in mpas_dmpar_global…
mgduda Mar 12, 2026
97680bd
Initialize the mpi_errcode argument to MPI_Abort in mpas_dmpar_abort
mgduda Mar 12, 2026
d62480f
Compute, rather than read from input, deformation_coef_* fields at mo…
mgduda Mar 6, 2026
580e004
Remove deformation_coef_* fields and their computation from init_atmo…
mgduda Mar 6, 2026
c63f2c9
Add routines in mpas_atm_time_integration to consolidate ACC data tra…
abishekg7 Mar 9, 2026
f751a6a
Introducing routines in mpas_atm_iau to consolidate ACC data tranfers
abishekg7 Mar 9, 2026
79112a1
Introducing routines in mpas_atmphys_interface to consolidate ACC dat…
abishekg7 Mar 9, 2026
dd204b7
Introducing routines in mpas_atmphys_todynamics to consolidate ACC da…
abishekg7 Mar 9, 2026
d25cc81
Add routines in mpas_vector_reconstruction to consolidate ACC data tr…
abishekg7 Mar 9, 2026
7172760
Consolidating OpenACC device-host memory transfers
abishekg7 Mar 9, 2026
eabe6d0
Adding timers to measure ACC memory transfer costs
abishekg7 Mar 9, 2026
5269f7f
Merge branch 'atmosphere/acc_mem_move_per_timestep' into develop (PR …
mgduda Mar 13, 2026
91df8a3
Merge branch 'framework/initialize_abort_code' into develop (PR #1418)
mgduda Mar 13, 2026
84aa45b
Enable GPU-aware halo exchanges via OpenACC directives
Mar 17, 2026
b0ce630
New namelist option to switch on or off GPU-aware MPI halo exchanges
abishekg7 Mar 17, 2026
cc782e2
Merge branch 'atmosphere/move_deformation_coef_computation' into deve…
mgduda Mar 19, 2026
968254e
Remove defc_a and defc_b from the init_atmosphere and atmosphere cores
mgduda Mar 6, 2026
365f28c
Use the checkout_externals utility to checkout physics submodules wit…
jim-p-w Mar 20, 2026
669a7ed
Merge branch 'framework/acc_halo_exch' into develop (PR #1355)
mgduda Mar 20, 2026
662394e
Merge branch 'atmosphere/remove_defc_ab' into develop (PR #1422)
mgduda Mar 20, 2026
4445468
Merge branch 'develop_fix_UGWP_diags_units' into develop (PR #1378)
mgduda Mar 20, 2026
1c3c6e4
Merge branch 'feature/externals' into develop (PR #1421)
mgduda Mar 23, 2026
c628836
Fix evapprod indexing typo in mpas_atmphys_interface.F
jihyeonjang Jan 12, 2026
03eef48
Merge branch 'bugfix_evapprod_develop' into develop (PR #1396)
mgduda Mar 23, 2026
e57a717
Remove PV diagnostics from default "output" stream in MPAS-Atmosphere
mgduda Mar 24, 2026
c30097b
Merge branch 'atmosphere/dont_output_pv_diags' into develop (PR #1428)
mgduda Mar 25, 2026
0e77221
Consolidating multiple definitions of vertical_interp into init_atm_v…
abishekg7 Mar 25, 2026
01242cc
Add units for config_mpas_cam_coef in atmosphere Registry.xml
abishekg7 Mar 25, 2026
08eae14
Merge branch 'atmosphere/adjust_units' into develop (PR #1430)
mgduda Mar 25, 2026
88ae401
Merge branch 'init_atmosphere/consolidate_vertical_interp' into devel…
mgduda Mar 25, 2026
099fee9
Correcting the ESMF link path in src/core_atmosphere/utils/Makefile
abishekg7 Mar 27, 2026
e411765
Merge branch 'fix_esmf_link_path' into develop (PR #1432)
mgduda Mar 30, 2026
bca1171
Define new package, 'les', and attach it to the 'tke' constituent of …
mgduda Mar 30, 2026
77c59fa
Fix build failure for mpas_atm_dissipation_models when DO_PHYSICS is …
mgduda Mar 31, 2026
af8e416
Merge branch 'atmosphere/fix_nophys_build_constants' into develop (PR…
mgduda Mar 31, 2026
02fcc5c
Fix crash in atm_compute_dyn_tend when DO_PHYSICS is not defined in b…
mgduda Mar 31, 2026
d86b005
Merge branch 'atmosphere/fix_les_nophys_crash' into develop (PR #1436)
mgduda Apr 1, 2026
4b94ec1
Merge branch 'atmosphere/new_les_package' into develop (PR #1433)
mgduda Apr 1, 2026
0e5a47a
Update version number to 8.4.0
mgduda Apr 1, 2026
32d2b1b
Fix calls to mpas_halo_exch_group_full_halo_exch in mpas_halo_testing
abishekg7 Apr 1, 2026
3f7de93
Merge branch 'test/fix_halo_tests' into release-v8.4.0 (PR #1437)
mgduda Apr 2, 2026
8f667d5
Fix segfault when CAM radiation is activated in MPAS-Atmosphere
smileMchen Jan 5, 2026
8871bfe
Merge branch 'camrad' into release-v8.4.0 (PR #1391)
mgduda Apr 2, 2026
11eb3fe
Merge branch 'hotfix-v8.3.1_q2diag' into release-v8.4.0 (PR #1383)
mgduda Apr 2, 2026
00f5ad2
Fix snow initialization over seaice points in MPAS-A
smileMchen Apr 1, 2026
db6dbba
Merge branch 'initsnow' into release-v8.4.0 (PR #1438)
mgduda Apr 3, 2026
deaad7f
Update config_init_case Registry.xml description to include LES case
mgduda Apr 8, 2026
410ac71
Merge branch 'init_atmosphere/les_case_registry_desc' into release-v8…
mgduda Apr 8, 2026
44ee2f8
Fix premature use of optional argument in mpas_get_stream_filename
islas Apr 6, 2026
c0f839d
Merge branch 'bugfix_streammgr_optierr' into release-v8.4.0 (PR #1441)
mgduda Apr 9, 2026
515e520
Merge branch 'release-v8.4.0'
mgduda Apr 16, 2026
7f4a63e
Merge branch 'master' into merge_upstream_8.4.0
clark-evans Apr 25, 2026
aa7e7f4
Remove redundant variable definitions in mpas_atmphys_initialize_real.F
clark-evans Apr 25, 2026
6a9dd74
Update mpas_atm_time_integration.F
clark-evans Apr 25, 2026
88ea5ba
Update mpas_atmphys_driver.F
clark-evans Apr 25, 2026
26fed47
Update mpas_atmphys_driver_convection.F
clark-evans Apr 25, 2026
0e33c50
Update CI tests for noaa/develop and v8.4
clark-evans Apr 30, 2026
31483ce
Update GFL submodule to latest version
clark-evans Apr 30, 2026
62a5bdc
v8.3.1-2.28: Hotfix for CI tests
dustinswales May 5, 2026
67bf1cc
Maybe revert changes again...
clark-evans Jun 3, 2026
b38b07d
Revert MYNN-EDMF
clark-evans Jun 3, 2026
d54a699
Update version number to 8.4.1
mgduda Jun 4, 2026
563a7a2
Check for duplicate namelist options in active_when attributes
abishekg7 May 27, 2026
ba33de2
Fix Fortran standard violation due to undefined pointer actual argume…
kuanchihwang Apr 21, 2026
df75267
Add missing dummy argument intent in atm_compute_dyn_tend
kuanchihwang Apr 21, 2026
94029b3
Avoid implicit save attribute during variable declaration in atm_srk3
kuanchihwang Apr 21, 2026
a985b13
Merge branch 'noaa/develop' into merge_upstream_8.4.0
dustinswales Jun 5, 2026
11d347a
Reducing rap/summer CI test timestep for testing
clark-evans Jun 5, 2026
62b3a0a
Merge branch 'staging/fix-undefined-pointer-argument' into hotfix-v8.…
mgduda Jun 5, 2026
95d33cd
Limit the saturation vapor pressure e_s used in the Kessler microphysics
skamaroc May 7, 2026
c0a314b
Merge branch 'kessler_high_top_fix' into hotfix-v8.4.1 (PR #1452)
mgduda Jun 5, 2026
9bf81b9
Merge branch 'framework/fix_duplicate_activewhen' into hotfix-v8.4.1 …
mgduda Jun 5, 2026
4e03bc8
This commit mirrors a similar commit in MONAN. It fixes a cryptic bug…
mpaiao May 26, 2026
740091c
Merge branch 'mpaiao-pr-nsoil-hotfix' into hotfix-v8.4.1 (PR #1459)
mgduda Jun 8, 2026
7b79c0b
Fix broken builds with GEN_F90=true by adding missing include paths t…
mgduda May 29, 2026
8564695
Merge branch 'all/fix_gen_f90_build' into hotfix-v8.4.1 (PR #1465)
mgduda Jun 8, 2026
d30b995
Atmosphere core allocates surface arrays based on sfclay choice not P…
dudhia May 26, 2026
e4c027e
Merge branch 'sfclayfix' into hotfix-v8.4.1 (PR #1460)
mgduda Jun 9, 2026
91c5eac
Merge branch 'hotfix-v8.4.1'
mgduda Jun 10, 2026
87247c0
Merge upstream branch 'master' (v8.4.1 bugfix release) into merge_ups…
clark-evans Jun 10, 2026
97c0f84
Add qcg back to core_atmosphere/Registry.xml
clark-evans Jun 10, 2026
4ae22c3
Update run_mpas.yml
clark-evans Jun 10, 2026
d4f633f
Add updated MYNN and MYJ sfc layer to sfclayer package definition
clark-evans Jun 10, 2026
a2c1812
Nudging the rap/summer timestep longer as a test
clark-evans Jun 12, 2026
481c9dd
Merge branch 'noaa/develop' into merge_upstream_8.4.0
clark-evans Jun 12, 2026
8fa0de0
Shorten the rap/summer timestep again, sigh
clark-evans Jun 12, 2026
d72e5df
Change output interval for rap/summer test
clark-evans Jun 12, 2026
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
4 changes: 2 additions & 2 deletions .github/workflows/bld_mpas_images.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ run-name: CI Image Build for MPAS-A
on:
push:
branches:
# Only build containers when pushing to gsl/develop
- "gsl/develop"
# Only build containers when pushing to noaa/develop
- "noaa/develop"

jobs:
docker:
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/run_mpas.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ on: [push, pull_request, workflow_dispatch]
#
# Tests:
# Baseline Codebase Repository:Branch Physics build type
# 1/7) MPAS-Dev:v8.3.0 mesoscale_reference Release/Debug
# 2/8) MPAS-Dev:v8.3.0 convection_permitting Release/Debug
# 3/9) MPAS-Dev:v8.3.0 mesoscale_reference_noahmp Release/Debug
# 4/10) ufs-community:gsl/develop mesoscale_reference Release/Debug
# 5/11) ufs-community:gsl/develop convection_permitting Release/Debug
# 6/12) ufs-community:gsl/develop mesoscale_reference_noahmp Release/Debug
# 1/7) MPAS-Dev:v8.4.0 mesoscale_reference Release/Debug
# 2/8) MPAS-Dev:v8.4.0 convection_permitting Release/Debug
# 3/9) MPAS-Dev:v8.4.0 mesoscale_reference_noahmp Release/Debug
# 4/10) ufs-community:noaa/develop mesoscale_reference Release/Debug
# 5/11) ufs-community:noaa/develop convection_permitting Release/Debug
# 6/12) ufs-community:noaa/develop mesoscale_reference_noahmp Release/Debug
#
#############################################################################################
jobs:
Expand All @@ -43,13 +43,13 @@ jobs:
f-compiler: [gfortran]#,ifx]
physics: [mesoscale_reference, convection_permitting, mesoscale_reference_noahmp]
repo: [ufs-community, MPAS-Dev]
branch: [gsl/develop, v8.3.0]
branch: [noaa/develop, v8.4.0]
build-type: [Debug, Release]
exclude:
- repo: MPAS-Dev
branch: gsl/develop
branch: noaa/develop
- repo: ufs-community
branch: v8.3.0
branch: v8.4.0
include:
# Set container images for each compiler
- f-compiler: gfortran
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/run_mpas_hrrr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ on: [push, pull_request, workflow_dispatch]
#
# Tests:
# Baseline Codebase Repository:Branch Physics IC source season build-type
# 1/4) ufs-community:gsl/develop hrrrv5 gfs winter Release/Debug
# 2/5) ufs-community:gsl/develop hrrrv5 rap summer Release/Debug
# 3/6) ufs-community:gsl/develop hrrrv5 rap winter Release/Debug
# 1/4) ufs-community:noaa/develop hrrrv5 gfs winter Release/Debug
# 2/5) ufs-community:noaa/develop hrrrv5 rap summer Release/Debug
# 3/6) ufs-community:noaa/develop hrrrv5 rap winter Release/Debug
#
#############################################################################################
jobs:
Expand Down Expand Up @@ -90,15 +90,15 @@ jobs:
if: contains(matrix.build-type, 'Debug')
run: |
cd ${runner_ROOT}
git clone --recursive --branch gsl/develop https://github.com/ufs-community/MPAS-Model.git MPAS-Model-BL
git clone --recursive --branch noaa/develop https://github.com/ufs-community/MPAS-Model.git MPAS-Model-BL
cd ${mpas_bl_ROOT}
make ${{matrix.bld_target}} CORE=atmosphere DEBUG=true

- name: Checkout and build MPAS standalone for baseline generation (Release)
if: contains(matrix.build-type, 'Release')
run: |
cd ${runner_ROOT}
git clone --recursive --branch gsl/develop https://github.com/ufs-community/MPAS-Model.git MPAS-Model-BL
git clone --recursive --branch noaa/develop https://github.com/ufs-community/MPAS-Model.git MPAS-Model-BL
cd ${mpas_bl_ROOT}
make ${{matrix.bld_target}} CORE=atmosphere

Expand Down
126 changes: 122 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ gnu: # BUILDTARGET GNU Fortran, C, and C++ compilers
"CC_SERIAL = gcc" \
"CXX_SERIAL = g++" \
"FFLAGS_PROMOTION = -fdefault-real-8 -fdefault-double-8" \
"FFLAGS_OPT = -std=f2008 -O3 -ffree-line-length-none -fconvert=big-endian -ffree-form" \
"FFLAGS_OPT = -std=f2008 -fimplicit-none -O3 -ffree-line-length-none -fconvert=big-endian -ffree-form" \
"CFLAGS_OPT = -O3" \
"CXXFLAGS_OPT = -O3" \
"LDFLAGS_OPT = -O3" \
"FFLAGS_DEBUG = -std=f2008 -g -ffree-line-length-none -fconvert=big-endian -ffree-form -fcheck=all -fbacktrace -ffpe-trap=invalid,zero,overflow" \
"FFLAGS_DEBUG = -std=f2008 -fimplicit-none -g -ffree-line-length-none -fconvert=big-endian -ffree-form -fcheck=all -fbacktrace -ffpe-trap=invalid,zero,overflow" \
"CFLAGS_DEBUG = -g" \
"CXXFLAGS_DEBUG = -g" \
"LDFLAGS_DEBUG = -g" \
Expand Down Expand Up @@ -822,11 +822,11 @@ intel: # BUILDTARGET Intel oneAPI Fortran, C, and C++ compiler suite
"CC_SERIAL = icx" \
"CXX_SERIAL = icpx" \
"FFLAGS_PROMOTION = -real-size 64" \
"FFLAGS_OPT = -O3 -convert big_endian -free -align array64byte" \
"FFLAGS_OPT = -O3 -convert big_endian -free -align array64byte -Qoption,fpp,-macro_expand=vc" \
"CFLAGS_OPT = -O3" \
"CXXFLAGS_OPT = -O3" \
"LDFLAGS_OPT = -O3" \
"FFLAGS_DEBUG = -g -convert big_endian -free -check bounds,pointers,arg_temp_created,format,shape,contiguous -fpe0 -traceback" \
"FFLAGS_DEBUG = -g -convert big_endian -free -check bounds,pointers,arg_temp_created,format,shape,contiguous -fpe0 -traceback -Qoption,fpp,-macro_expand=vc" \
"CFLAGS_DEBUG = -g -traceback" \
"CXXFLAGS_DEBUG = -g -traceback" \
"LDFLAGS_DEBUG = -g -traceback" \
Expand All @@ -844,6 +844,24 @@ CPPINCLUDES =
FCINCLUDES =
LIBS =

export MPAS_ESMF ?= embedded
ifeq "$(MPAS_ESMF)" "external"
ifeq ($(wildcard $(ESMFMKFILE)), )
$(error ESMFMKFILE must be set if MPAS_ESMF=external)
endif
include $(ESMFMKFILE)
export MPAS_ESMF_INC = $(ESMF_F90COMPILEPATHS)
export MPAS_ESMF_LIB = $(ESMF_F90LINKPATHS) $(ESMF_F90ESMFLINKPATHS) $(ESMF_F90ESMFLINKLIBS)
override CPPFLAGS += -DMPAS_EXTERNAL_ESMF_LIB=true
ESMF_MESSAGE="MPAS was built with an external ESMF library using ESMFMKFILE"
else ifeq "$(MPAS_ESMF)" "embedded"
export MPAS_ESMF_INC = -I$(PWD)/src/external/esmf_time_f90
export MPAS_ESMF_LIB = -L$(PWD)/src/external/esmf_time_f90 -lesmf_time
ESMF_MESSAGE="MPAS was built with the embedded ESMF timekeeping library."
else
$(error Invalid MPAS_ESMF option: $(MPAS_ESMF) - valid options "embedded", "external")
endif

ifneq "$(PIO)" ""
#
# Regardless of PIO library version, look for a lib subdirectory of PIO path
Expand Down Expand Up @@ -918,6 +936,15 @@ endif
LIBS += $(NCLIB)
endif

ifneq "$(SCOTCH)" ""
SCOTCH_INCLUDES += -I$(SCOTCH)/include
SCOTCH_LIBS += -L$(SCOTCH)/lib64 -lptscotch -lscotch -lptscotcherr -lm
SCOTCH_FLAGS = -DMPAS_SCOTCH

CPPINCLUDES += $(SCOTCH_INCLUDES)
LIBS += $(SCOTCH_LIBS)
override CPPFLAGS += $(SCOTCH_FLAGS)
endif

ifneq "$(PNETCDF)" ""
ifneq ($(wildcard $(PNETCDF)/lib/libpnetcdf.*), )
Expand Down Expand Up @@ -1031,6 +1058,20 @@ $(if $(PRECISION),$(info NOTE: PRECISION=single is unnecessary, single is the de
PRECISION_MESSAGE="MPAS was built with default single-precision reals."
endif #PRECISION IF

# Optional MUSICA support for chemistry
ifeq "$(shell echo $(MUSICA) | tr '[:upper:]' '[:lower:]')" "true"
ifeq ($(shell pkg-config --exists musica-fortran && echo yes || echo no), no)
$(error "musica-fortran package is not installed. Please install it to proceed.")
endif
MUSICA_FCINCLUDES += $(shell pkg-config --cflags musica-fortran)
MUSICA_LIBS += $(shell pkg-config --libs musica-fortran)
MUSICA_FFLAGS = -DMPAS_USE_MUSICA

FCINCLUDES += $(MUSICA_FCINCLUDES)
LIBS += $(MUSICA_LIBS)
override CPPFLAGS += $(MUSICA_FFLAGS)
endif

ifeq "$(USE_PAPI)" "true"
CPPINCLUDES += -I$(PAPI)/include -D_PAPI
FCINCLUDES += -I$(PAPI)/include
Expand Down Expand Up @@ -1533,6 +1574,63 @@ mpi_f08_test:
$(if $(findstring 1,$(MPAS_MPI_F08)), $(eval MPI_F08_MESSAGE = "Using the mpi_f08 module."), )
$(if $(findstring 1,$(MPAS_MPI_F08)), $(info mpi_f08 module detected.))

musica_fortran_test:
@#
@# Create a Fortran test program that will link against the MUSICA library
@#
$(info Checking for a working MUSICA-Fortran library...)
$(eval MUSICA_FORTRAN_TEST := $(shell $\
printf "program test_musica_fortran\n$\
& use musica_util, only : string_t\n$\
& use musica_micm, only : get_micm_version\n$\
& type(string_t) :: version_string\n$\
& version_string = get_micm_version()\n$\
& print *, \"MUSICA support is available. MICM version: \", version_string%%value_\n$\
end program test_musica_fortran\n" | sed 's/&/ /' > test_musica_fortran.f90; $\
$\
$(FC) $(MUSICA_FCINCLUDES) $(MUSICA_FFLAGS) test_musica_fortran.f90 -o test_musica_fortran.x $(MUSICA_LIBS) > /dev/null 2>&1; $\
musica_fortran_status=$$?; $\
rm -f test_musica_fortran.f90 test_musica_fortran.x; $\
if [ $$musica_fortran_status -eq 0 ]; then $\
printf "1"; $\
else $\
printf "0"; $\
fi $\
))
$(if $(findstring 0,$(MUSICA_FORTRAN_TEST)), $(error Could not build a simple test program with MUSICA-Fortran))
$(eval MUSICA_FORTRAN_VERSION := $(shell pkg-config --modversion musica-fortran))
$(if $(findstring 1,$(MUSICA_FORTRAN_TEST)), $(info Built a simple test program with MUSICA-Fortran version $(MUSICA_FORTRAN_VERSION)), )

scotch_c_test:
@#
@# Create a C test program and try to build against the PT-SCOTCH library
@#
$(info Checking for a working Scotch library...)
$(eval SCOTCH_C_TEST := $(shell $\
printf "#include <stdio.h>\n\
&#include \"mpi.h\"\n\
&#include \"ptscotch.h\"\n\
&int main(){\n\
& int err;\n\
& SCOTCH_Dgraph *dgraph;\n\
& err = SCOTCH_dgraphInit(dgraph, MPI_COMM_WORLD);\n\
& SCOTCH_dgraphExit(dgraph);\n\
& return err;\n\
&}\n" | sed 's/&/ /' > ptscotch_c_test.c; $\
$\
$(CC) $(CPPINCLUDES) $(CFLAGS) $(LDFLAGS) ptscotch_c_test.c -o ptscotch_c_test.x $(SCOTCH_LIBS) > ptscotch_c_test.log 2>&1; $\
scotch_c_status=$$?; $\
if [ $$scotch_c_status -eq 0 ]; then $\
printf "1"; $\
rm -f ptscotch_c_test.c ptscotch_c_test.x ptscotch_c_test.log; $\
else $\
printf "0"; $\
fi $\
))
$(if $(findstring 0,$(SCOTCH_C_TEST)), $(error Could not build a simple C program with Scotch. $\
Test program ptscotch_c_test.c and output ptscotch_c_test.log have been left $\
in the top-level MPAS directory for further debugging ))
$(if $(findstring 1,$(SCOTCH_C_TEST)), $(info Built a simple C program with Scotch ))

pnetcdf_test:
@#
Expand Down Expand Up @@ -1583,6 +1681,20 @@ IO_MESSAGE = "Using the SMIOL library."
override CPPFLAGS += "-DMPAS_SMIOL_SUPPORT"
endif

ifneq "$(MUSICA_FFLAGS)" ""
MAIN_DEPS += musica_fortran_test
MUSICA_MESSAGE = "MPAS was linked with the MUSICA-Fortran library version $(MUSICA_FORTRAN_VERSION)."
else
MUSICA_MESSAGE = "MPAS was not linked with the MUSICA-Fortran library."
endif

ifneq "$(SCOTCH)" ""
MAIN_DEPS += scotch_c_test
SCOTCH_MESSAGE = "MPAS has been linked with the Scotch graph partitioning library."
else
SCOTCH_MESSAGE = "MPAS was NOT linked with the Scotch graph partitioning library."
endif

mpas_main: $(MAIN_DEPS)
cd src; $(MAKE) FC="$(FC)" \
CC="$(CC)" \
Expand Down Expand Up @@ -1619,13 +1731,16 @@ mpas_main: $(MAIN_DEPS)
@echo $(OPENMP_MESSAGE)
@echo $(OPENMP_OFFLOAD_MESSAGE)
@echo $(OPENACC_MESSAGE)
@echo $(MUSICA_MESSAGE)
@echo $(SCOTCH_MESSAGE)
@echo $(SHAREDLIB_MESSAGE)
ifeq "$(AUTOCLEAN)" "true"
@echo $(AUTOCLEAN_MESSAGE)
endif
@echo $(GEN_F90_MESSAGE)
@echo $(TIMER_MESSAGE)
@echo $(IO_MESSAGE)
@echo $(ESMF_MESSAGE)
@echo "*******************************************************************************"
clean:
cd src; $(MAKE) clean RM="$(RM)" CORE="$(CORE)" AUTOCLEAN="$(AUTOCLEAN)"
Expand Down Expand Up @@ -1682,6 +1797,9 @@ errmsg:
@echo " OPENACC=true - builds and links with OpenACC flags. Default is to not use OpenACC."
@echo " PRECISION=double - builds with default double-precision real kind. Default is to use single-precision."
@echo " SHAREDLIB=true - generate position-independent code suitable for use in a shared library. Default is false."
@echo " MPAS_ESMF=opt - Selects the ESMF library to be used for MPAS. Options are:"
@echo " MPAS_ESMF=embedded - Use the embedded ESMF timekeeping library (default)"
@echo " MPAS_ESMF=external - Use an external ESMF library, determined by ESMFMKFILE"
@echo ""
@echo "Ensure that NETCDF, PNETCDF, PIO, and PAPI (if USE_PAPI=true) are environment variables"
@echo "that point to the absolute paths for the libraries."
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
MPAS-v8.3.1-2.26
MPAS-v8.4.0-1.0
====

The Model for Prediction Across Scales (MPAS) is a collaborative project for
Expand Down
1 change: 1 addition & 0 deletions cmake/Functions/MPAS_Functions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ function(mpas_fortran_target target)
list(APPEND MPAS_FORTRAN_TARGET_COMPILE_OPTIONS_PUBLIC
$<$<COMPILE_LANGUAGE:Fortran>:-align array64byte>
$<$<COMPILE_LANGUAGE:Fortran>:-convert big_endian>
$<$<COMPILE_LANGUAGE:Fortran>:-Qoption,fpp,-macro_expand=vc>
)
if(MPAS_DOUBLE_PRECISION)
list(APPEND MPAS_FORTRAN_TARGET_COMPILE_OPTIONS_PRIVATE
Expand Down
10 changes: 6 additions & 4 deletions cmake/Modules/FindPnetCDF.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -133,27 +133,29 @@ set(_new_components)
if(PnetCDF_Fortran_FOUND AND NOT TARGET PnetCDF::PnetCDF_Fortran)
add_library(PnetCDF::PnetCDF_Fortran INTERFACE IMPORTED)
set_target_properties(PnetCDF::PnetCDF_Fortran PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${PnetCDF_INCLUDE_DIR}
INTERFACE_LINK_DIRECTORIES ${PnetCDF_LIB_DIR})
INTERFACE_LINK_DIRECTORIES ${PnetCDF_LIB_DIR}
INTERFACE_LINK_LIBRARIES pnetcdf)
if(PnetCDF_MODULE_DIR AND NOT PnetCDF_MODULE_DIR STREQUAL PnetCDF_INCLUDE_DIR )
set_property(TARGET PnetCDF::PnetCDF_Fortran APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${PnetCDF_MODULE_DIR})
endif()
set(_new_components 1)
target_link_libraries(PnetCDF::PnetCDF_Fortran INTERFACE -lpnetcdf)
endif()

# PnetCDF::PnetCDF_C imported interface target
if(PnetCDF_C_FOUND AND NOT TARGET PnetCDF::PnetCDF_C)
add_library(PnetCDF::PnetCDF_C INTERFACE IMPORTED)
set_target_properties(PnetCDF::PnetCDF_C PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${PnetCDF_INCLUDE_DIR}
INTERFACE_LINK_DIRECTORIES ${PnetCDF_LIB_DIR})
INTERFACE_LINK_DIRECTORIES ${PnetCDF_LIB_DIR}
INTERFACE_LINK_LIBRARIES pnetcdf)
set(_new_components 1)
endif()

# PnetCDF::PnetCDF_CXX imported interface target
if(PnetCDF_CXX_FOUND AND NOT TARGET PnetCDF::PnetCDF_CXX)
add_library(PnetCDF::PnetCDF_CXX INTERFACE IMPORTED)
set_target_properties(PnetCDF::PnetCDF_CXX PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${PnetCDF_INCLUDE_DIR}
INTERFACE_LINK_DIRECTORIES ${PnetCDF_LIB_DIR})
INTERFACE_LINK_DIRECTORIES ${PnetCDF_LIB_DIR}
INTERFACE_LINK_LIBRARIES pnetcdf)
set(_new_components 1)
endif()

Expand Down
2 changes: 1 addition & 1 deletion src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ else
all: mpas

mpas: $(AUTOCLEAN_DEPS) externals frame ops dycore drver
$(LINKER) $(LDFLAGS) -o $(EXE_NAME) driver/*.o -L. -ldycore -lops -lframework $(LIBS) -I./external/esmf_time_f90 -L./external/esmf_time_f90 -lesmf_time
$(LINKER) $(LDFLAGS) -o $(EXE_NAME) driver/*.o -L. -ldycore -lops -lframework $(LIBS) $(MPAS_ESMF_INC) $(MPAS_ESMF_LIB)

externals: $(AUTOCLEAN_DEPS)
( cd external; $(MAKE) FC="$(FC)" SFC="$(SFC)" CC="$(CC)" SCC="$(SCC)" FFLAGS="$(FFLAGS)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" NETCDF="$(NETCDF)" CORE="$(CORE)" all )
Expand Down
3 changes: 2 additions & 1 deletion src/core_atmosphere/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ if(NOT EXISTS ${ATMOSPHERE_CORE_PHYSICS_MMM_DIR})
endif()

else()
message(STATUS "Directory ${DIR_TO_CHECK} already exists, skipping clone")
message( STATUS "Finished checking out external repos via manage_externals" )
endif()

set(ATMOSPHERE_CORE_PHYSICS_MMM_SOURCES
Expand Down Expand Up @@ -476,6 +476,7 @@ list(TRANSFORM ATMOSPHERE_CORE_DIAGNOSTIC_SOURCES PREPEND diagnostics/)
# dynamics/
set(ATMOSPHERE_CORE_DYNAMICS_SOURCES
mpas_atm_boundaries.F
mpas_atm_dissipation_models.F
mpas_atm_iau.F
mpas_atm_time_integration.F)
list(TRANSFORM ATMOSPHERE_CORE_DYNAMICS_SOURCES PREPEND dynamics/)
Expand Down
Loading
Loading