Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
396 commits
Select commit Hold shift + click to select a range
21f4d34
Move `dpx` to be passed in the acoustics instead of temp
FlorianDeconinck Jan 20, 2025
036fc2f
`dpx` calculated on cell center
FlorianDeconinck Jan 20, 2025
89e9e07
Merge branch 'GEOS_update/yppm_xppm' into develop__GEOSv_11_4_2
FlorianDeconinck Jan 20, 2025
66ced6d
Merge branch 'fix/GEOS/D_SW' into develop__GEOSv_11_4_2
FlorianDeconinck Jan 20, 2025
7ae236d
Merge branch 'fix/GEOSv11_4_2/DynCore' into develop__GEOSv_11_4_2
FlorianDeconinck Jan 20, 2025
6d28e5b
Add remapping reference to README
FlorianDeconinck Jan 20, 2025
b3c7941
Lint
FlorianDeconinck Jan 20, 2025
6c8b424
Remapping GEOS obejct (untested)
FlorianDeconinck Jan 20, 2025
e90d0e7
Update dynamics with custom Remapping
FlorianDeconinck Jan 20, 2025
c39a2a4
Typo
FlorianDeconinck Jan 20, 2025
0d749d2
Accounting for j=je+1 calculations in map u
gmao-ckung Jan 21, 2025
d23f391
Corrected issue that caused pt to incorrected read netCDF file
gmao-ckung Jan 21, 2025
3953b29
Continued verifying GEOS remapping/fv_mapz
gmao-ckung Jan 22, 2025
5567bc9
Adding fv_mapz serialization file
gmao-ckung Jan 22, 2025
a53c3fe
Removed extraneous variables from GEOS remapping translate test and a…
gmao-ckung Jan 23, 2025
e61b6bb
Added fv_mapz serialization file
gmao-ckung Jan 23, 2025
6c13879
Small correction in mpp_global_sum.py
gmao-ckung Jan 24, 2025
8e59317
`remapper`: align with modified dynamics
FlorianDeconinck Jan 24, 2025
2a774ac
Revert "Update dynamics with custom Remapping"
FlorianDeconinck Jan 24, 2025
2645e4f
Revert "Typo"
FlorianDeconinck Jan 24, 2025
242ccb8
Merge branch 'feature/fv_mapz_GEOS' into develop__GEOSv_11_4_2
FlorianDeconinck Jan 24, 2025
9934749
Fluxes and courant number as independent parameters (out of state)
FlorianDeconinck Jan 26, 2025
e3b799b
Update translate test to independent fluxes/courant
FlorianDeconinck Jan 26, 2025
754bc14
Add compute total energy function (partial)
FlorianDeconinck Jan 26, 2025
e4acb47
Fluxes & Courant number are local then increment global fields (f32)
FlorianDeconinck Jan 26, 2025
12cdd70
Adapt translate test & allow for ULP<100 to pass test
FlorianDeconinck Jan 26, 2025
49f68f1
Merge branch 'fix/GEOSv11_4_2/DynCore' into develop__GEOSv_11_4_2
FlorianDeconinck Jan 26, 2025
013c7c4
Merge branch 'fix/GEOSv11_4_2/Dynamics' into develop__GEOSv_11_4_2
FlorianDeconinck Jan 26, 2025
968a535
Remove checkpointers
FlorianDeconinck Jan 26, 2025
c920cdb
Merge branch 'fix/GEOSv11_4_2/Dynamics' into develop__GEOSv_11_4_2
FlorianDeconinck Jan 26, 2025
23b813b
Update README
FlorianDeconinck Jan 26, 2025
0cfcd73
Fix `Tracers` on GPU
FlorianDeconinck Jan 26, 2025
16417aa
Merge branch 'fix/GEOS/TracerAdvection' into develop__GEOSv_11_4_2
FlorianDeconinck Jan 26, 2025
fa9680e
Small edit to bounds in mpp_global_sum
gmao-ckung Jan 28, 2025
560a124
Removed extraneous code preventing fv_dynamics from executing
gmao-ckung Jan 28, 2025
8f4cd7c
Linting
gmao-ckung Jan 28, 2025
18a5218
Enabled mpp_global_sum with flag to choose 'precise' or 'simplified' …
gmao-ckung Jan 29, 2025
3263488
Merge pull request #2 from gmao-ckung/feature/fv_mapz_GEOS_update_Tra…
gmao-ckung Jan 29, 2025
dd4e8de
Small fixes to input and output dictionaries in translate test. Not …
gmao-ckung Jan 30, 2025
9484453
Using domain_compute in domain within stencil_factory calls
gmao-ckung Jan 30, 2025
830ae0b
Updated translate test with quantity factor to create temporary data
gmao-ckung Jan 30, 2025
76bfbec
Added updated fv_dynamics.F90.SER serialization file
gmao-ckung Jan 30, 2025
87c7f28
Made specific tracer parameter calls within remapping as calls from t…
gmao-ckung Jan 31, 2025
e7596f9
Reorganizing code and accessing constants from PyFV3 and NDSL instead…
gmao-ckung Feb 4, 2025
3ad0b51
Code cleanup
gmao-ckung Feb 4, 2025
a1498b2
Laying groundwork to use translate test to test LangrangianToEulerian
gmao-ckung Feb 4, 2025
ad5cba2
Continue development of LtoE translate test
gmao-ckung Feb 5, 2025
27c67b2
Continue L_to_E integration in translate remapping test
gmao-ckung Feb 5, 2025
4817f62
Re-incorporated Tracer class into GEOS Remapping translate test
gmao-ckung Feb 7, 2025
9d4c9fb
updated fv_dynamics serialization file
gmao-ckung Feb 12, 2025
a4f89d9
Fix Rayleigh Friction trigger configuration (raise)
FlorianDeconinck Feb 12, 2025
6014298
Merge branch 'fix/GEOSv11_4_2/Dynamics' into develop__GEOSv_11_4_2
FlorianDeconinck Feb 12, 2025
de77b0e
Added temporary calculation to flux calculation in fxadv.py that will…
gmao-ckung Feb 27, 2025
03206b0
Added fix to improve result matching of 'delpc' with GEOS codebase
gmao-ckung Mar 4, 2025
639b1d0
Added notes on porting
gmao-ckung Mar 5, 2025
e4d65df
Move damping increment to own K stencils
FlorianDeconinck Mar 5, 2025
312e76f
Merge branch 'fix/RayleighDamping_mixed_precision' into develop__GEOS…
FlorianDeconinck Mar 5, 2025
5407ea6
Merge remote-tracking branch 'fdeconinck/fix/GEOS/D_SW' into develop_…
FlorianDeconinck Mar 5, 2025
4b45e29
Update to new NDSL API
FlorianDeconinck Mar 5, 2025
be7f48e
Merge branch 'fix/GEOSv11_4_2/Dynamics' into develop__GEOSv_11_4_2
FlorianDeconinck Mar 5, 2025
00f2f59
Fix `f32_correction` + lint
FlorianDeconinck Mar 10, 2025
84af13b
Merge branch 'fix/GEOSv11_4_2/Dynamics' into develop__GEOSv_11_4_2
FlorianDeconinck Mar 10, 2025
04cbc82
Merge pull request #3 from gmao-ckung/feature/fv_mapz_GEOS_update_tra…
gmao-ckung Mar 11, 2025
1c2be5d
Fix inner power calculation with a mixed precision factor
FlorianDeconinck Mar 11, 2025
937176c
Merge branch 'fix/DelnFlux_f32_support' into develop__GEOSv_11_4_2
FlorianDeconinck Mar 11, 2025
4bb5cff
Restore `cd` to it's original 64-bit factor
FlorianDeconinck Mar 11, 2025
b2b28d7
Merge branch 'fix/GEOSv11_4_2/HyperDiffusionDamping' into develop__GE…
FlorianDeconinck Mar 11, 2025
cf02043
Update README.md
FlorianDeconinck Mar 11, 2025
eca6ee2
Restore `da_min` true 64-bit type
FlorianDeconinck Mar 11, 2025
dbf0b78
Merge branch 'fix/GEOSv11_4_2/DynCore' into develop__GEOSv_11_4_2
FlorianDeconinck Mar 11, 2025
c113486
Remove debuggin artefacts
FlorianDeconinck Mar 11, 2025
6a4f484
Merge branch 'fix/DelnFlux_f32_support' into develop__GEOSv_11_4_2
FlorianDeconinck Mar 11, 2025
82ba97c
Fix `dd8` power function
FlorianDeconinck Mar 12, 2025
b09ca84
Merge branch 'fix/GEOS/D_SW' into develop__GEOSv_11_4_2
FlorianDeconinck Mar 12, 2025
11788b5
Match Fortran by multiplyin by 1/GRAV instead of divide
FlorianDeconinck Mar 17, 2025
35c311a
Merge branch 'fix/GEOSv11_4_2/RiemanSolver' into develop__GEOSv_11_4_2
FlorianDeconinck Mar 17, 2025
72465a6
Fix
FlorianDeconinck Mar 25, 2025
e1bc27b
Undo `dt` refactoring in interpolation
FlorianDeconinck Mar 25, 2025
3450b0d
Adjust contravriant functions
FlorianDeconinck Mar 25, 2025
e077ab4
Docs
FlorianDeconinck Mar 25, 2025
8e631e0
Rename a2b_ord4 use for clarity
FlorianDeconinck Mar 25, 2025
5083d0d
Match Fortan circulation c grid operation factor
FlorianDeconinck Mar 25, 2025
2663505
Match fortran on cubic interpolation & edge interpolation
FlorianDeconinck Mar 25, 2025
9d17b56
PK3 Halo match the fortran
FlorianDeconinck Mar 25, 2025
648e548
Make sure to use `dz_min` as parameters to allow for better GEOS inte…
FlorianDeconinck Mar 25, 2025
31fbb22
Merge branch 'fix/GEOS/D_SW' into develop__GEOSv_11_4_2
FlorianDeconinck Mar 25, 2025
064c071
Merge branch 'fix/GEOSv11_4_2/DynCore' into develop__GEOSv_11_4_2
FlorianDeconinck Mar 25, 2025
4e3707f
Merge branch 'fix/GEOSv11_4_2/C_SW' into develop__GEOSv_11_4_2
FlorianDeconinck Mar 25, 2025
d4b81c1
Merge branch 'fix/RayleighDamping_mixed_precision' into develop__GEOS…
FlorianDeconinck Mar 25, 2025
ebd058f
Merge branch 'fix/F32/nh_p_grad' into develop__GEOSv_11_4_2
FlorianDeconinck Mar 25, 2025
b494884
Match Fortran great circle distance
FlorianDeconinck Mar 25, 2025
9c23c83
Merge branch 'fix/GEOSv11_4_2/A2B_Ord4' into develop__GEOSv_11_4_2
FlorianDeconinck Mar 25, 2025
327d050
Pass `dz_min` from `dyn_core` to the updater
FlorianDeconinck Mar 26, 2025
910d47d
Merge branch 'fix/GEOSv11_4_2/DynCore' into develop__GEOSv_11_4_2
FlorianDeconinck Mar 26, 2025
38b6581
Update `int` dtypes to precision capable ones
FlorianDeconinck Mar 27, 2025
f3d31a1
Merge branch 'feature/fv_mapz_GEOS' into develop__GEOSv_11_4_2
FlorianDeconinck Mar 27, 2025
54d5619
Fix remap after tracer merge
FlorianDeconinck Mar 27, 2025
46deb72
Merge branch 'feature/fv_mapz_GEOS' into develop__GEOSv_11_4_2
FlorianDeconinck Mar 27, 2025
b5626b7
Proper type for da_min
FlorianDeconinck Mar 27, 2025
27a5540
Merge branch 'fix/GEOSv11_4_2/Dynamics' into develop__GEOSv_11_4_2
FlorianDeconinck Mar 27, 2025
593da4a
Fix bad merge
FlorianDeconinck Mar 28, 2025
9a98368
Heat source from vorticity on the correct grid
FlorianDeconinck Apr 14, 2025
23f9862
Insure abs on proper precision
FlorianDeconinck Apr 14, 2025
17e6bc5
Merge branch 'fix/GEOS/D_SW' into develop__GEOSv_11_4_2
FlorianDeconinck Apr 14, 2025
4ae3f4b
Merge branch 'fix/GEOSv11_4_2/DynCore' into develop__GEOSv_11_4_2
FlorianDeconinck Apr 14, 2025
8e59620
Add `dz_min` as a namelist input
FlorianDeconinck Apr 14, 2025
d8fe920
Merge branch 'fix/GEOSv11_4_2/Dynamics' into develop__GEOSv_11_4_2
FlorianDeconinck Apr 14, 2025
c7f56bc
Hotfix for dyncore
FlorianDeconinck Apr 14, 2025
9624c3f
Add defaiult to `dz_min`
FlorianDeconinck Apr 15, 2025
39c157a
Merge branch 'fix/GEOSv11_4_2/Dynamics' into develop__GEOSv_11_4_2
FlorianDeconinck Apr 15, 2025
d8c6881
Fix proper use of `gz` corner extension
FlorianDeconinck Apr 18, 2025
53bbfd8
Match divg_d Fortran computation for divergence_corner
FlorianDeconinck Apr 18, 2025
f89fadf
Initialize `gz` to HUGE_R
FlorianDeconinck Apr 18, 2025
b305a0f
Merge branch 'fix/F32/UpdateDzC' into develop__GEOSv_11_4_2
FlorianDeconinck Apr 18, 2025
5e2dddb
Merge branch 'fix/GEOSv11_4_2/C_SW' into develop__GEOSv_11_4_2
FlorianDeconinck Apr 18, 2025
a0568ba
Merge branch 'fix/GEOSv11_4_2/DynCore' into develop__GEOSv_11_4_2
FlorianDeconinck Apr 18, 2025
f638927
Fix translate test halo reach & pass `dz_min`
FlorianDeconinck Apr 18, 2025
b541f86
Merge branch 'fix/F32/UpdateDzC' into develop__GEOSv_11_4_2
FlorianDeconinck Apr 18, 2025
e58d416
Pass `dz_min` in translate test
FlorianDeconinck Apr 18, 2025
5e03de0
Merge branch 'fix/F32/UpdateDzD' into develop__GEOSv_11_4_2
FlorianDeconinck Apr 18, 2025
8cf966b
Clean up Translate test
FlorianDeconinck Apr 30, 2025
80564a9
Merge branch 'feature/fv_mapz_GEOS' into develop__GEOSv_11_4_2
FlorianDeconinck Apr 30, 2025
c0d8685
Fix copy to cover interface dimensions
FlorianDeconinck May 1, 2025
9d9b64d
Merge branch 'fix/GEOSv11_4_2/Dynamics' into develop__GEOSv_11_4_2
FlorianDeconinck May 1, 2025
0484df8
Fix increment of fluxes for interface dims
FlorianDeconinck May 1, 2025
ec87515
Merge branch 'fix/GEOSv11_4_2/Dynamics' into develop__GEOSv_11_4_2
FlorianDeconinck May 1, 2025
31acc83
Fix set value to cover interface
FlorianDeconinck May 2, 2025
03bc3e3
Flip refactor division to match fortran
FlorianDeconinck May 2, 2025
0ca04d7
Localize ratio to match fortran
FlorianDeconinck May 2, 2025
87d3bba
Split p_grad by dimensions to forbid halos bleed
FlorianDeconinck May 2, 2025
cd605ab
Correct docs
FlorianDeconinck May 2, 2025
9ae1b06
Restore `UnreachableStmtPruning` to fix dace:cpu layout transparency …
FlorianDeconinck May 2, 2025
64063e0
Extend translate test to halo
FlorianDeconinck May 2, 2025
3ef943c
Fix translate sizes
FlorianDeconinck May 2, 2025
7d5987f
Extend rieman solver test to halos
FlorianDeconinck May 2, 2025
a1c1132
Docs and verbose parameters
FlorianDeconinck May 2, 2025
4764ff5
Fix bad copy
FlorianDeconinck May 2, 2025
a853b9f
Fix precision of PressureAdjustedTemperature test
FlorianDeconinck May 2, 2025
977b715
Merge branch 'fix/GEOSv11_4_2/Dynamics' into develop__GEOSv_11_4_2
FlorianDeconinck May 2, 2025
75417b6
Merge branch 'fix/F32/UpdateDzC' into develop__GEOSv_11_4_2
FlorianDeconinck May 2, 2025
145e9f3
Merge branch 'fix/GEOS/D_SW' into develop__GEOSv_11_4_2
FlorianDeconinck May 2, 2025
4a9d1e7
Merge branch 'fix/GEOSv11_4_2/A2B_Ord4' into develop__GEOSv_11_4_2
FlorianDeconinck May 2, 2025
ac0a045
Merge branch 'fix/F32/UpdateDzD' into develop__GEOSv_11_4_2
FlorianDeconinck May 2, 2025
4e844bc
Merge branch 'fix/GEOSv11_4_2/RiemanSolver' into develop__GEOSv_11_4_2
FlorianDeconinck May 2, 2025
e6874ea
Merge branch 'fix/DelnFlux_f32_support' into develop__GEOSv_11_4_2
FlorianDeconinck May 2, 2025
0a974e6
Merge branch 'fix/GEOS/TracerAdvection' into develop__GEOSv_11_4_2
FlorianDeconinck May 2, 2025
f6e8d8b
Merge branch 'fix/GEOSv11_4_2/DynCore' into develop__GEOSv_11_4_2
FlorianDeconinck May 2, 2025
f1c2559
Switch global reduce to `simplified` version
FlorianDeconinck May 9, 2025
73cddd9
Merge branch 'feature/fv_mapz_GEOS' into develop__GEOSv_11_4_2
FlorianDeconinck May 9, 2025
8337746
Reset `Tracers` for pyFV3 using `FieldBundle`
FlorianDeconinck May 19, 2025
1f1279b
Update tracers to `FieldBundle` and orchestration
FlorianDeconinck May 19, 2025
cb58c04
Merge branch 'feature/tracer_rework_part1' into develop__GEOSv_11_4_2
FlorianDeconinck May 19, 2025
be6e7aa
Merge branch 'feature/fv_mapz_GEOS' into develop__GEOSv_11_4_2
FlorianDeconinck May 19, 2025
1246525
Update README.md
FlorianDeconinck May 19, 2025
30f7959
Move MPP global sum to sub-modules
FlorianDeconinck May 19, 2025
2daf7bf
Orchestrate MPP via callback
FlorianDeconinck May 19, 2025
b15864e
Merge branch 'feature/fv_mapz_GEOS' into develop__GEOSv_11_4_2
FlorianDeconinck May 19, 2025
1267b2a
Fix imports on translate
FlorianDeconinck May 19, 2025
36b053e
Bad merge
FlorianDeconinck May 19, 2025
8bc02ee
Merge branch 'feature/fv_mapz_GEOS' into develop__GEOSv_11_4_2
FlorianDeconinck May 19, 2025
5282707
Move Tracers2D1L to FieldBundle tracers
FlorianDeconinck May 20, 2025
92a813a
Merge branch 'fix/GEOS/TracerAdvection' into develop__GEOSv_11_4_2
FlorianDeconinck May 20, 2025
7ea01d1
Help `mypy` by going to `TypeAlias`
FlorianDeconinck May 20, 2025
aa425de
Merge branch 'feature/tracer_rework_part1' into develop__GEOSv_11_4_2
FlorianDeconinck May 20, 2025
8d8b912
Fix liquid tracers order for GEOS
FlorianDeconinck Jun 26, 2025
ac0c83f
Orchestrate Tracers
FlorianDeconinck Jun 26, 2025
1b01b2f
Fix DycoreState for tracers, translate test
FlorianDeconinck Jun 26, 2025
2092e47
Merge branch 'feature/tracer_rework_part1' into develop__GEOSv_11_4_2
FlorianDeconinck Jun 26, 2025
b2d2638
Merge branch 'fix/GEOS/TracerAdvection' into develop__GEOSv_11_4_2
FlorianDeconinck Jun 26, 2025
7eeec07
Merge branch 'fix/GEOSv11_4_2/DynCore' into develop__GEOSv_11_4_2
FlorianDeconinck Jun 26, 2025
1476dcd
Fix ComputeTotalEnergy w/ new Tracers
FlorianDeconinck Jun 26, 2025
b893fab
Orchestrater compute total energy
FlorianDeconinck Jun 27, 2025
c7ce6b2
Orchestrate dynamics + new tracers structure
FlorianDeconinck Jun 27, 2025
fa339ff
Fix FVDynamics translate tests
FlorianDeconinck Jun 27, 2025
c4c9ffe
Orchestrate `ray_fast` w/ workaround for lazy call
FlorianDeconinck Jun 27, 2025
e25f246
Fix assert in `sum`
FlorianDeconinck Jun 27, 2025
c209450
Remove redundant cast
FlorianDeconinck Jul 21, 2025
60422dc
Update code to M2 standards
FlorianDeconinck Sep 3, 2025
98601fb
Fixed UpdateDzC - computation now occurs at all needed points, no lon…
CharlesKrop Sep 22, 2025
c891618
Brought back UpdateDzC documentation
CharlesKrop Sep 22, 2025
802e358
Fixed GlobalSum class and updated translate tests
gmao-ckung Sep 25, 2025
172d4ea
Update to NDSL 2025.10.00 API (Namelist, Corners)
FlorianDeconinck Nov 26, 2025
f2a73ef
Merge remote-tracking branch 'NOAA/develop' into develop__GEOSv_11_4_2
FlorianDeconinck Mar 11, 2026
ddb37d9
[WIP] Flak8 fixes
FlorianDeconinck Mar 11, 2026
303e24c
[WIP] Non-tracers lint & fixes
FlorianDeconinck Mar 12, 2026
120950b
[WIP] Remove the DIM constants
FlorianDeconinck Mar 12, 2026
bba011e
pyFV3 -> pyfv3
FlorianDeconinck Mar 12, 2026
b00d2d0
[WIPP] Fix acoustics translate tests
FlorianDeconinck Mar 12, 2026
d2a372f
[WIP] Fix dyncore translate test (and some lint)
FlorianDeconinck Mar 12, 2026
239de93
Fix `dz_min` type in config
FlorianDeconinck Mar 13, 2026
556785d
Fix copy corners for numpy/quantity usage
FlorianDeconinck Mar 13, 2026
1b1d882
Merge branch 'update/modernize_remapping' into feature/tracers_to_ddi…
FlorianDeconinck Apr 6, 2026
8b1f6f0
Introduce `DataDimensionFields` powered tracers
FlorianDeconinck Apr 6, 2026
5de1b7a
Allow `copy_corners` to be distributed against all the memory type (a…
FlorianDeconinck Apr 7, 2026
321bf92
Tracers 2D1L. WARNING: orchestration broken
FlorianDeconinck Apr 7, 2026
00f6546
Update FVDynamics to new Tracers
FlorianDeconinck Apr 8, 2026
12e6068
Merge remote-tracking branch 'NOAA/develop' into feature/tracers_to_d…
FlorianDeconinck Apr 8, 2026
8f9b81d
Fix orchestration for copy_corners_nord in delnflux
FlorianDeconinck Apr 13, 2026
caece5d
Fix YPPM translate + clean up
FlorianDeconinck Apr 13, 2026
7af163d
Fix standard override
FlorianDeconinck Apr 13, 2026
1b6f5ad
Remove no longer needed `norunroll`
FlorianDeconinck Apr 13, 2026
d1b54cc
Fix translates
FlorianDeconinck Apr 13, 2026
c16865d
Merge branch 'develop' into feature/tracers_to_ddims_field
FlorianDeconinck Apr 14, 2026
f816c2b
Use a global quantity of `Tracers`
FlorianDeconinck Apr 15, 2026
e2354ea
Deactivate broken DryConvectiveAdjustment
FlorianDeconinck Apr 17, 2026
c01366d
[TMP] Link to specific branch for `ndsl`
FlorianDeconinck Apr 20, 2026
35f9fa3
Lint
FlorianDeconinck Apr 20, 2026
de71aa8
Rework tracers to allow re-entry. Clean up `Fillz` accessors
FlorianDeconinck Apr 20, 2026
b6091d9
Lint
FlorianDeconinck Apr 20, 2026
4c70a59
Lint
FlorianDeconinck Apr 20, 2026
45f9162
Fix doubly periodic test
FlorianDeconinck Apr 20, 2026
07adf16
More `.data` cleanup
FlorianDeconinck Apr 21, 2026
facbc2a
External trigger for pyFV3 CI pulls this branch
FlorianDeconinck Apr 22, 2026
f7c335e
Pull on `DataDimensionField` branch for `pySHieLD`
FlorianDeconinck Apr 22, 2026
ee25b70
Pace CI to branch hook
FlorianDeconinck Apr 22, 2026
5648d7a
Update `pySHiELD` branch
FlorianDeconinck Apr 22, 2026
a433fbc
Merge branch 'develop' into develop__GEOSv_11_4_2
FlorianDeconinck Apr 23, 2026
dac5668
Merge branch 'feature/tracers_to_ddims_field' into develop__GEOSv_11_4_2
FlorianDeconinck Apr 23, 2026
162ca79
Use FVTracers + fix merge
FlorianDeconinck Apr 23, 2026
9de3687
Fix TracerCMax test and temporary alloc
FlorianDeconinck Apr 23, 2026
f05f253
Tracer2D1L: restore code ate by merge
FlorianDeconinck Apr 24, 2026
133fe71
Verbose TracerCMax callback issue w/ ticket
FlorianDeconinck Apr 24, 2026
49dbd82
Update to `develop` NDSL
FlorianDeconinck Apr 24, 2026
06a4209
FVDynamics orchestration
FlorianDeconinck Apr 25, 2026
53a3dba
Fix tracers marshalling in translate_RemappingGEOS
FlorianDeconinck Apr 27, 2026
f816cb3
Move NDSLRuntime across Acoustics codes
FlorianDeconinck Apr 30, 2026
90cfc42
Condig: pass `dz_min` down from a namelist read
FlorianDeconinck May 1, 2026
b7db557
Move threshold of 100 ULP for all backends on FV
FlorianDeconinck May 1, 2026
b12419c
Mixed precision for the Configuration
FlorianDeconinck May 1, 2026
613190d
NDSRuntime the XPPM & YPPM
FlorianDeconinck May 1, 2026
a782a72
Bad merge brought a dual application of the `pt ` to potential densit…
FlorianDeconinck May 1, 2026
00b4e6d
Use `da_min` and `da_min_c` directly
FlorianDeconinck May 5, 2026
d9d3449
Lint
FlorianDeconinck May 5, 2026
dfa2277
Remove archived old fv_mapz
FlorianDeconinck May 5, 2026
44e969f
Implementing `nwat==0`
FlorianDeconinck May 5, 2026
ca8c149
Move timing collection into it's own file to calm down mypy
FlorianDeconinck May 5, 2026
3fc78a3
Align xppm and yppm
FlorianDeconinck May 5, 2026
a96b7e0
Align xppm & yppm again
FlorianDeconinck May 5, 2026
ec20c54
Upgrade all to NDSLRuntime
FlorianDeconinck May 7, 2026
c05fca2
To locals: D_SW
FlorianDeconinck May 11, 2026
258dcb1
To locals: DynCore
FlorianDeconinck May 11, 2026
22d8589
To locals: Remapping_GEOS + Validation thresholds
FlorianDeconinck May 12, 2026
8595d72
To locals: Tracer2D1L
FlorianDeconinck May 12, 2026
8a399a7
Refactor unused local or local that can be inlined in stencils as tem…
FlorianDeconinck May 12, 2026
a180141
To Locals: FVDynamics
FlorianDeconinck May 12, 2026
65543bb
Remove dead code + lint on Tracers
FlorianDeconinck May 12, 2026
19cff26
Workaround in copy corners for SDFG -> STree bug
FlorianDeconinck May 15, 2026
289f55a
Guard for `nwat<6`
FlorianDeconinck May 27, 2026
dba4907
Fix type of Tracers in compute total energy
FlorianDeconinck May 28, 2026
b3a2ef1
Restore temparay fields in tracer adjustement code
FlorianDeconinck May 28, 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
2 changes: 1 addition & 1 deletion .github/workflows/pace_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:

jobs:
pace_main_tests:
uses: NOAA-GFDL/pace/.github/workflows/main_unit_tests.yaml@develop
uses: FlorianDeconinck/pace/.github/workflows/main_unit_tests.yaml@feature/data_dimensions_field
with:
component_trigger: true
component_name: pyFV3
2 changes: 1 addition & 1 deletion .github/workflows/pyshield_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:

jobs:
pyshield_translate_tests:
uses: NOAA-GFDL/PySHiELD/.github/workflows/translate.yaml@develop
uses: FlorianDeconinck/PySHiELD/.github/workflows/translate.yaml@update/ndsl_without_tracers_list
with:
component_trigger: true
component_name: pyFV3
3 changes: 2 additions & 1 deletion .github/workflows/translate.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,9 @@ jobs:
uses: actions/checkout@v6
with:
submodules: 'recursive'
repository: NOAA-GFDL/pyFV3
repository: FlorianDeconinck/pyFV3
path: pyFV3
ref: feature/tracers_to_ddims_field

- name: Checkout hash that triggered CI
uses: actions/checkout@v6
Expand Down
459 changes: 459 additions & 0 deletions ORIG.README.md

Large diffs are not rendered by default.

509 changes: 51 additions & 458 deletions README.md

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions examples/standalone/runfile/dynamics.py
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,7 @@ def setup_dycore(
config=dycore_config,
phis=state.phis,
state=state,
exclude_tracers=[],
timestep=timedelta(seconds=dycore_config.dt_atmos),
)
return dycore, state, stencil_factory
Expand Down
239 changes: 122 additions & 117 deletions pyfv3/_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,13 @@
import yaml
from dacite import Config, from_dict

from ndsl.dsl.typing import Float, Int
from ndsl.utils import f90nml_as_dict


DEFAULT_INT = 0
DEFAULT_INT = Int(0)
DEFAULT_STR = ""
DEFAULT_FLOAT = 0.0
DEFAULT_FLOAT = Float(0.0)
DEFAULT_BOOL = False
DEFAULT_DYCORE_NML_GROUPS = (
"main_nml",
Expand All @@ -29,34 +30,34 @@ class SatAdjustConfig:
rad_rain: bool
rad_graupel: bool
tintqs: bool
sat_adj0: float
ql_gen: float
qs_mlt: float
ql0_max: float
t_sub: float
qi_gen: float
qi_lim: float
qi0_max: float
dw_ocean: float
dw_land: float
icloud_f: int
cld_min: float
tau_i2s: float
tau_v2l: float
tau_r2g: float
tau_l2r: float
tau_l2v: float
tau_imlt: float
tau_smlt: float
sat_adj0: Float
ql_gen: Float
qs_mlt: Float
ql0_max: Float
t_sub: Float
qi_gen: Float
qi_lim: Float
qi0_max: Float
dw_ocean: Float
dw_land: Float
icloud_f: Int
cld_min: Float
tau_i2s: Float
tau_v2l: Float
tau_r2g: Float
tau_l2r: Float
tau_l2v: Float
tau_imlt: Float
tau_smlt: Float


@dataclasses.dataclass(frozen=True)
class RemappingConfig:
fill: bool
kord_tm: int
kord_tr: int
kord_wz: int
kord_mt: int
kord_tm: Int
kord_tr: Int
kord_wz: Int
kord_mt: Int
do_sat_adj: bool
sat_adjust: SatAdjustConfig

Expand All @@ -67,32 +68,32 @@ def hydrostatic(self) -> bool:

@dataclasses.dataclass(frozen=True)
class RiemannConfig:
p_fac: float
a_imp: float
p_fac: Float
a_imp: Float
use_logp: bool
beta: float
beta: Float


@dataclasses.dataclass(frozen=True)
class DGridShallowWaterLagrangianDynamicsConfig:
dddmp: float
d2_bg: float
d2_bg_k1: float
d2_bg_k2: float
d4_bg: float
ke_bg: float
nord: int
n_sponge: int
grid_type: int
d_ext: float
hord_dp: int
hord_tm: int
hord_mt: int
hord_vt: int
dddmp: Float
d2_bg: Float
d2_bg_k1: Float
d2_bg_k2: Float
d4_bg: Float
ke_bg: Float
nord: Int
n_sponge: Int
grid_type: Int
d_ext: Float
hord_dp: Int
hord_tm: Int
hord_mt: Int
hord_vt: Int
do_f3d: bool
do_skeb: bool
d_con: float
vtdm4: float
d_con: Float
vtdm4: Float
inline_q: bool
convert_ke: bool
do_vort_damp: bool
Expand All @@ -101,12 +102,12 @@ class DGridShallowWaterLagrangianDynamicsConfig:

@dataclasses.dataclass(frozen=True)
class AcousticDynamicsConfig:
tau: float
k_split: int
n_split: int
m_split: int
delt_max: float
rf_cutoff: float
tau: Float
k_split: Int
n_split: Int
m_split: Int
delt_max: Float
rf_cutoff: Float
rf_fast: bool
breed_vortex_inline: bool
"""
Expand All @@ -121,6 +122,8 @@ class AcousticDynamicsConfig:
"""
riemann: RiemannConfig
d_grid_shallow_water: DGridShallowWaterLagrangianDynamicsConfig
dz_min: float
"""Controls minimum thickness in NH solver"""

@property
def nord(self) -> int:
Expand Down Expand Up @@ -161,50 +164,50 @@ def use_logp(self) -> bool:

@dataclasses.dataclass
class DynamicalCoreConfig:
dt_atmos: int = DEFAULT_INT
n_steps: int = 1
a_imp: float = DEFAULT_FLOAT
beta: float = DEFAULT_FLOAT
consv_te: float = DEFAULT_FLOAT
d2_bg: float = DEFAULT_FLOAT
d2_bg_k1: float = DEFAULT_FLOAT
d2_bg_k2: float = DEFAULT_FLOAT
d4_bg: float = DEFAULT_FLOAT
d_con: float = DEFAULT_FLOAT
d_ext: float = DEFAULT_FLOAT
dddmp: float = DEFAULT_FLOAT
delt_max: float = DEFAULT_FLOAT
dt_atmos: Int = DEFAULT_INT
n_steps: Int = 1
a_imp: Float = DEFAULT_FLOAT
beta: Float = DEFAULT_FLOAT
consv_te: Float = DEFAULT_FLOAT
d2_bg: Float = DEFAULT_FLOAT
d2_bg_k1: Float = DEFAULT_FLOAT
d2_bg_k2: Float = DEFAULT_FLOAT
d4_bg: Float = DEFAULT_FLOAT
d_con: Float = DEFAULT_FLOAT
d_ext: Float = DEFAULT_FLOAT
dddmp: Float = DEFAULT_FLOAT
delt_max: Float = DEFAULT_FLOAT
do_sat_adj: bool = DEFAULT_BOOL
do_vort_damp: bool = DEFAULT_BOOL
fill: bool = DEFAULT_BOOL
hord_dp: int = DEFAULT_INT
hord_mt: int = DEFAULT_INT
hord_tm: int = DEFAULT_INT
hord_tr: int = DEFAULT_INT
hord_vt: int = DEFAULT_INT
hord_dp: Int = DEFAULT_INT
hord_mt: Int = DEFAULT_INT
hord_tm: Int = DEFAULT_INT
hord_tr: Int = DEFAULT_INT
hord_vt: Int = DEFAULT_INT
hydrostatic: bool = DEFAULT_BOOL
k_split: int = DEFAULT_INT
ke_bg: float = DEFAULT_FLOAT
kord_mt: int = DEFAULT_INT
kord_tm: int = DEFAULT_INT
kord_tr: int = DEFAULT_INT
kord_wz: int = DEFAULT_INT
n_split: int = DEFAULT_INT
nord: int = DEFAULT_INT
npx: int = DEFAULT_INT
npy: int = DEFAULT_INT
npz: int = DEFAULT_INT
ntiles: int = DEFAULT_INT
nwat: int = DEFAULT_INT
p_fac: float = DEFAULT_FLOAT
rf_cutoff: float = DEFAULT_FLOAT
tau: float = DEFAULT_FLOAT
vtdm4: float = DEFAULT_FLOAT
k_split: Int = DEFAULT_INT
ke_bg: Float = DEFAULT_FLOAT
kord_mt: Int = DEFAULT_INT
kord_tm: Int = DEFAULT_INT
kord_tr: Int = DEFAULT_INT
kord_wz: Int = DEFAULT_INT
n_split: Int = DEFAULT_INT
nord: Int = DEFAULT_INT
npx: Int = DEFAULT_INT
npy: Int = DEFAULT_INT
npz: Int = DEFAULT_INT
ntiles: Int = DEFAULT_INT
nwat: Int = DEFAULT_INT
p_fac: Float = DEFAULT_FLOAT
rf_cutoff: Float = DEFAULT_FLOAT
tau: Float = DEFAULT_FLOAT
vtdm4: Float = DEFAULT_FLOAT
z_tracer: bool = DEFAULT_BOOL
do_qa: bool = DEFAULT_BOOL
layout: tuple[int, int] = (1, 1)
grid_type: int = 0
u_max: float = 350.0
grid_type: Int = Int(0)
u_max: Float = Float(350.0)
"""max windspeed for dp config"""
do_f3d: bool = False
inline_q: bool = False
Expand All @@ -214,40 +217,39 @@ class DynamicalCoreConfig:
moist_phys: bool = True
check_negative: bool = False
# gfdl_cloud_microphys.F90
tau_r2g: float = 900.0
tau_r2g: Float = Float(900.0)
"""rain freezing during fast_sat"""
tau_smlt: float = 900.0
tau_smlt: Float = Float(900.0)
"""snow melting"""
tau_g2r: float = 600.0
tau_g2r: Float = Float(600.0)
"""graupel melting to rain"""
tau_imlt: float = 600.0
tau_imlt: Float = Float(600.0)
"""cloud ice melting"""
tau_i2s: float = 1000.0
tau_i2s: Float = Float(1000.0)
"""cloud ice to snow auto - conversion"""
tau_l2r: float = 900.0
tau_l2r: Float = Float(900.0)
"""cloud water to rain auto - conversion"""
tau_g2v: float = 1200.0
tau_g2v: Float = Float(1200.0)
"""graupel sublimation"""
tau_v2g: float = 21600.0
tau_v2g: Float = Float(21600.0)
"""graupel deposition -- make it a slow process"""
sat_adj0: float = 0.90
sat_adj0: Float = Float(0.90)
"""adjustment factor (0: no 1: full) during fast_sat_adj"""
ql_gen: float = (
1.0e-3 # max new cloud water during remapping step if fast_sat_adj = .t.
)
ql_mlt: float = 2.0e-3
ql_gen: Float = Float(1.0e-3)
"""max new cloud water during remapping step if fast_sat_adj = .t."""
ql_mlt: Float = Float(2.0e-3)
"""max value of cloud water allowed from melted cloud ice"""
qs_mlt: float = 1.0e-6
qs_mlt: Float = Float(1.0e-6)
"""max cloud water due to snow melt"""
ql0_max: float = 2.0e-3
ql0_max: Float = Float(2.0e-3)
"""max cloud water value (auto converted to rain)"""
t_sub: float = 184.0
t_sub: Float = Float(184.0)
"""min temp for sublimation of cloud ice"""
qi_gen: float = 1.82e-6
qi_gen: Float = Float(1.82e-6)
"""max cloud ice generation during remapping step"""
qi_lim: float = 1.0
qi_lim: Float = Float(1.0)
"""cloud ice limiter to prevent large ice build up"""
qi0_max: float = 1.0e-4
qi0_max: Float = Float(1.0e-4)
"""max cloud ice value (by other sources)"""
rad_snow: bool = True
"""consider snow in cloud fraction calculation"""
Expand All @@ -257,33 +259,34 @@ class DynamicalCoreConfig:
"""consider graupel in cloud fraction calculation"""
tintqs: bool = False
"""use temperature in the saturation mixing in PDF"""
dw_ocean: float = 0.10
dw_ocean: Float = Float(0.10)
"""base value for ocean"""
dw_land: float = 0.15
dw_land: Float = Float(0.15)
"""base value for subgrid deviation / variability over land"""
# cloud scheme 0 - ?
# 1: old fvgfs gfdl) mp implementation
# 2: binary cloud scheme (0 / 1)
icloud_f: int = 0
cld_min: float = 0.05
icloud_f: Int = Int(0)
cld_min: Float = Float(0.05)
"""!< minimum cloud fraction"""
tau_l2v: float = 300.0
tau_l2v: Float = Float(300.0)
"""cloud water to water vapor (evaporation)"""
tau_v2l: float = 90.0
tau_v2l: Float = Float(90.0)
"""water vapor to cloud water (condensation)"""
c2l_ord: int = 4
c2l_ord: Int = Int(4)
regional: bool = False
m_split: int = 0
m_split: Int = Int(0)
convert_ke: bool = False
breed_vortex_inline: bool = False
use_old_omega: bool = True
rf_fast: bool = False
adiabatic: bool = False
nf_omega: int = 1
fv_sg_adj: int = -1
n_sponge: int = 1
nf_omega: Int = Int(1)
fv_sg_adj: Int = Int(-1)
n_sponge: Int = Int(1)
sw_dynamics: bool = False
"""shallow water conditions"""
dz_min: Float = Float(2.0)
namelist_override: str | None = None
target_nml_groups: tuple[str, ...] | None = DEFAULT_DYCORE_NML_GROUPS

Expand Down Expand Up @@ -342,6 +345,7 @@ def from_dict(
tuple[int, int]: lambda x: tuple(x),
tuple[str, ...]: lambda x: tuple(x) if x is not None else None,
},
cast=[Int, Float],
)
dycore_config = from_dict(
data_class=DynamicalCoreConfig, data=data, config=dacite_config
Expand Down Expand Up @@ -450,6 +454,7 @@ def acoustic_dynamics(self) -> AcousticDynamicsConfig:
breed_vortex_inline=self.breed_vortex_inline,
use_old_omega=self.use_old_omega,
riemann=self.riemann,
dz_min=self.dz_min,
d_grid_shallow_water=self.d_grid_shallow_water,
)

Expand Down
Loading
Loading