Skip to content

Merge GCM v12 codebase into develop - #91

Merged
mathomp4 merged 102 commits into
developfrom
feature/sdrabenh/gcm_v12
May 27, 2026
Merged

Merge GCM v12 codebase into develop#91
mathomp4 merged 102 commits into
developfrom
feature/sdrabenh/gcm_v12

Conversation

@sdrabenh

@sdrabenh sdrabenh commented May 26, 2026

Copy link
Copy Markdown
Contributor

dr0cloud and others added 30 commits April 12, 2024 14:16
…per_band_instrumentation

# Conflicts:
#	GEOS_RadiationShared/rad_utils.F90
#	GEOSirrad_GridComp/GEOS_IrradGridComp.F90
#	GEOSsolar_GridComp/GEOS_SolarGridComp.F90
…trumentation-merge-scott

Add per-band output for RRTMGP as well
tclune and others added 15 commits May 4, 2026 13:35
…ed polymorphic dummy

In PROCESS_RRTMGP_BLOCK, aer_props is only allocated when need_aer_optical_props
is true. Passing an unallocated polymorphic class allocatable to a non-allocatable
dummy argument (as compute_rte_sw was doing) is undefined behaviour and caused a
runtime crash when aerosols were inactive.

Fix: remove aer_props and need_aer_optical_props from compute_rte_sw's interface;
perform the aer_props%increment(optical_props) call at the PROCESS_RRTMGP_BLOCK
call site, guarded by the need_aer_optical_props check, where aer_props is known
to be allocated.
Passing an unallocated polymorphic allocatable to a non-allocatable
dummy argument is undefined behaviour. Guard the call with
need_aer_optical_props so aer_props is always allocated when passed.
Add OpenMP hybrid parallelism to RRTMGP shortwave block loop
Replace two-phase nBlocks+partial_block pattern with ceiling division
so every iteration is structurally identical. Per-block objects
(optical props, sources, cloud/aer scratch arrays) now allocated at
top of each iteration and freed at bottom. Prerequisite for subroutine
extraction and OMP PARALLEL DO.
Move aerosol optical property loading and normalization out of the
block loop body into a module-level sibling subroutine. Call site
guarded by need_dirty_optical_props so aer_props is always allocated
when passed.
Add OpenMP hybrid parallelism to RRTMGP-LW block loop in LW_Driver
@mathomp4
mathomp4 merged commit 47ce6dc into develop May 27, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

0 diff The changes in this pull request have verified to be zero-diff with the target branch. Non 0-diff The changes in this pull request are non-zero-diff

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants