Recent Releases of RRTMGP.jl
RRTMGP.jl - v1.0.0
RRTMGP v1.0.0
- Breaking: removed the deprecated getters
clear_lw_flux,clear_sw_flux,
toa_flux,top_of_atmosphere_lw_flux_dn, and
top_of_atmosphere_diffuse_sw_flux_dn, along with the renamed-module aliases
VmrsandGrayUtils. Useclear_lw_flux_net,clear_sw_flux_net,
toa_sw_flux_dn,toa_lw_flux_dn,toa_diffuse_sw_flux_dn,
VolumeMixingRatios, andGrayAtmosphere.
Merged pull requests:
- Docs cleanup (#621) (@tapios)
- Remove deprecated aliases; release v1 (#622) (@tapios)
Closed issues:
- Remove compat aliases (#611)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] 10 days ago
RRTMGP.jl - v0.23.0
RRTMGP v0.23.0
v0.23.0
- Multi-angle longwave quadrature now works. The spectral non-scattering
longwave solver integrates the Schwarzschild equation along 1-4
Gauss-Jacobi-5 angles, selected with then_gauss_angleskeyword of
NoScatLWRTEorRRTMGPSolver(the tables existed, but every kernel read
only the first angle). The default remains the single-angle diffusivity
approximation, bit for bit. One angle reproduces the hemispheric
transmittance2E₃(τ)to about 2.5%, four angles to better than 0.1%; run
time grows in proportion to the number of angles. Gray radiation and the
two-stream longwave solver rejectn_gauss_angles > 1rather than ignore
it. A prescribed incident longwave flux is now converted to intensity as
F/π(unchanged for one angle), so the angle-weighted fluxes sum back to
F. Checked by the newtest/angular_discretization.jl. - Breaking (renames, with deprecations):
clear_lw_flux→
clear_lw_flux_netandclear_sw_flux→clear_sw_flux_net(matching
lw_flux_net/sw_flux_net);toa_flux→toa_sw_flux_dn,
top_of_atmosphere_lw_flux_dn→toa_lw_flux_dn, and
top_of_atmosphere_diffuse_sw_flux_dn→toa_diffuse_sw_flux_dn(one
toa_prefix for the incident-flux getters; theSwBCsfield and the
solve/solve_graykeywordtoa_fluxare unchanged). The old names
forward with a deprecation warning until the next breaking release. - Breaking:
RadiationOutputfields now match the getters:
lw_flux_up/lw_flux_dn/lw_flux_net,
sw_flux_up/sw_flux_dn/sw_direct_flux_dn/sw_flux_net, andnet_flux
(previouslylw_up/lw_dn/lw_net,sw_up/sw_dn/sw_direct_dn/
sw_net, andnet).heating_rateandsolverare unchanged. - The public API is delimited.
RRTMGP.PUBLIC_NAMESlists it,
test/public_api.jllocks it (every listed name defined and documented,
nothing undeclared on the module surface), and on Julia 1.11 and later the
list is declared withpublic. Undocumented helpers became internal
(get_artifact_path,aerosol_names_docs,gas_names_sw_docs,
update_views, and theAEROSOL_IDXconstant are_-prefixed); the
interpolation extension points (interp!,extrap!,requires_z,
uniform_z_p,best_fit_p) gained docstrings and stay public. validate_inputsreports the incident-solar-flux violation as
toa_sw_flux_dnrather than the storage field name.- ClimaAtmos downstream testing moved from GitHub Actions, whose job timed
out, to Buildkite, which triggers theclimaatmos-downstreampipeline
against the RRTMGP commit under test. ClimaCoupler stays on GitHub Actions.
Merged pull requests:
- Cleanup toward v1: limit public API, unify variable names, enable multi-angle LW (#619) (@tapios)
- v0.23 (#620) (@tapios)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] 11 days ago
RRTMGP.jl - v0.22.2
RRTMGP v0.22.2
Merged pull requests:
- Ts/vendor dev guides (#614) (@tapios)
- add set_volume_mixing_ratio for well-mixed gases (#615) (@szy21)
- set z and metric_scaling for the isothermal boundary layer (#616) (@szy21)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] about 2 months ago
RRTMGP.jl - v0.22.0
- Internal compute buffers now use device-dependent physical layouts behind a
uniform column-first(ncol, nlay/nlev)indexing convention: optical
properties (OneScalar,TwoStream), source functions (SourceLWNoScat,
SourceLW2Str,SourceSW2Str), and the broadband flux buffers (FluxLW,
FluxSW). On the GPU the storage is column-first, giving coalesced access
(on an A100 at DYAMOND scale this cuts longwave kernel times by 25-36% and
shortwave all-sky by 14-20%); on the CPU the storage stays vertical-first
under a lazyPermutedDimsArraywrapper, preserving the stride-1 vertical
sweeps (and CPU performance) while running the same kernel code.
The Layer-2 flux getters (lw_flux_up,net_flux, ...) still present
plain(nlev, ncol)views: they readFluxes.FluxPresentationarrays that
update_fluxes!fills from the compute buffers with one fused transposing
copy per call (so getters remainArray-materializable, broadcastable, and
reducible on the GPU). The opt-in per-band buffers (FluxBand) keep the
host-facing(nlev, ncol, n_bnd)layout. Breaking for Layer-1
(functional-core) users: code reading the workspace fields directly
(slv.flux.flux_up,op.τ, ...) must swap index order to[gcol, ilev]
or wrap the buffer inFluxes.lazy_transpose. State inputs
(AtmosphericStatearrays) and all boundary-condition arrays are
unchanged. - New
TransposedStateCache: column-first copies of the hot
AtmosphericStatearrays (layer pressure/temperature/dry-air column
amount/relative humidity, level temperatures), refreshed by one
permutedims!per spectral solve, so the gas-optics g-point loop reads
coalesced memory on GPUs. On by default on the GPU (the RTE workspace
constructors build one; theRRTMGPSolvershares a single cache between
the longwave and shortwave workspaces) and off (nothing) on the CPU,
where the state's vertical-first layout is already cache-friendly; pass
state_cache = nothingto opt out, or pass the same cache to several
workspaces to share the storage. - Documentation reorganized along tutorial / how-to / explanation / reference
lines: two new executable (Literate.jl) tutorials — "A first radiation
calculation" and "Radiative-convective equilibrium", which reproduces
Manabe's classic fixed-relative-humidity climate-sensitivity experiment with
RRTMGP's clear-sky optics — plus four how-to guides (driving RRTMGP from a
host model, running on GPUs, caching the lookup tables, per-band fluxes).
The README now gives a Thermodynamics.jl-style overview with quick starts. - Struct docstrings migrated off
DocStringExtensions.FIELDSto explicit
# Fieldssections (per the CliMA documentation policy), so field
descriptions and units render on the API pages without inline field
docstrings. - New unit tests for previously indirect paths: every interpolation /
bottom-extrapolation scheme against closed forms (including a dry-adiabat
round-trip throughinterpolate_levels!), solver-constructor and getter
guard errors,validate_inputsfield-by-field, the incident-longwave-flux
boundary condition, pointwise deep-atmosphere flux scaling, heating-rate =
net-flux divergence, grayclip!, aerosol-onlyLookupBundleround-trips,
cloud-radiative-effect sign checks in the all-sky tests, and the McICA
reproducibility tests now also run inFloat32. - New advisory GPU benchmark ratchet (
perf/benchmark_ratchet.jl+ a
soft-fail Buildkite step): the DYAMOND-scalesolve_lw!/solve_sw!medians
are compared against per-GPU baselines committed under
perf/benchmark_baselines/, flagging wall-time regressions beyond 20%
without blocking merges. The three DYAMOND benchmark scripts are now
includable (their sweeps run only when executed as scripts). - New docs page "Fortran and paper concordance": tables mapping RRTMGP.jl
names (containers, RTE/gas-optics/cloud/aerosol kernels) to the Fortran
rte-rrtmgpmo_*/ty_*names and to the papers whose equations they
implement, so Fortran-literate readers can navigate instantly. - The standalone (Layer-3) path is complete:
standard_atmosphere(FT; kind)
builds an idealized clear-skyAtmosphereProfile(:tropical,
:midlatitude_summer,:subarctic_winter— analytic two-segment
temperature, exact hydrostatic pressure, idealized water vapor/ozone,
present-day well-mixed gases), andsolve(profile; method)solves it in one
call —ClearSkyRadiation(default) orGrayRadiation. Bothsolveand
solve_graynow return a documentedRadiationOutputstruct with stable
field names (lw_up…sw_direct_dn,net,heating_rate,solver);
solve_graypreviously returned aNamedTuplewith the same names, so
field access is unchanged. - New
prepare_atmosphere!(solver): runs the atmospheric-state preparation
cascade (level interpolation, isothermal boundary layer, clipping, dry-air
column amounts) without solving, so hosts can inspect the prepared state —
the prepare/solve split.update_fluxes!is now literally
prepare_atmosphere!followed by the three solve/combine steps. - Breaking:
lookup_tablesnow returns a typed [LookupBundle] instead of
a nested(; lookups, lu_kwargs)NamedTuple: stable fields
(lookup_lw,lookup_sw, cloud/aerosol tables, the name→index maps, and the
band/gas counts),nothingwhere a table is absent. Code that indexed the
NamedTuple (e.g.bundle.lookups.lookup_lw,bundle.lu_kwargs.nbnd_lw) drops
one level (bundle.lookup_lw,bundle.nbnd_lw). - New
save_lookup_tables(path, bundle)/load_lookup_tables(path, grid_params)
cache the lookup tables on disk (JuliaSerialization; a same-version cache,
not an interchange format), so the spectral methods can run without NCDatasets
once a cache has been generated — e.g. for standalone/classroom use. - The CPU and CUDA solver drivers now share device-agnostic per-(g-point,
column) bodies (*_gpt_col!insrc/rte/), removing the duplicated
orchestration where backend asymmetries repeatedly crept in. As part of the
unification, the broadband shortwave direct beamsw_direct_flux_dnis now
accumulated at every level: it was previously meaningful only at the
surface row (a documented limitation inherited from PR #550), with the rows
above holding the first g-point's profile on CPU and uninitialized memory on
GPU. - Breaking (with aliases): renamed two modules for clarity —
Vmrs→
VolumeMixingRatiosandGrayUtils→GrayAtmosphere. The old names remain
asconstaliases for one release and will be removed in 0.24. - Breaking: renamed
aerosol_idx()→aerosol_index_map(), resolving the
one-character collision withaerosol_index(name)(which returns a single
index rather than the whole map). - Float32 accuracy overhaul of the RTE kernels: series-switch threshold for the
longwave no-scattering source at eps^(1/4) (was 100·eps), exactγ1 − γ2
identities in the two-streamk, expm1-based thin-layer factors, a consistent
off-resonance evaluation of the shortwave direct reflectance/transmittance,
exact non-cancelling delta-scaling forms, an addition-built direct-beam
profile, a continuous gas-optics η interpolation at η = 1, and a restructured
longwave two-stream source (exact1 ∓ Rdif − Tdiffactorizations, so no term
divides by τ and thin layers keep their real O(τ) emission instead of being
zeroed below a threshold). Measured Float32↔Float64 broadband agreement
improves 25–90×: every longwave path now sits at its ~2–5e-4 W/m²
interpolation-noise floor (from 1.1e-2–3.4e-2). A new ratcheting f32↔f64
consistency test (test/float32_consistency.jl) locks the gains, and the
Float32 longwave no-scattering reference tolerances tighten from 0.05 to
5e-3 W/m². - New
RRTMGP.Numericsmodule: every numerical guard constant (k_min,
τ_thresh,resonance_window,μ₀_min) in one place with its derivation. - New opt-in input validation: set
RRTMGP.check_values[] = trueto have
update_fluxes!validate solver inputs (pressures/temperatures positive and
finite,cos_zenith ∈ [-1, 1], emissivity/albedos ∈ [0, 1], VMRs ≥ 0) via
validate_inputs; off by default and allocation-free when off. - Lookup loaders now assert the canonical gas slots the kernels hard-code
(h2o → 1, o3 → 3) and thattemperature_Planckis in Kelvin (the g128 file
variants store an integer index, which would silently corrupt the Planck
interpolation). - Breaking: the public API is now centered on
RRTMGPSolverplus a complete set of named
getters (layer_temperature,level_pressure,net_flux, ...), built on the functional
solve_lw!/solve_sw!core. Hosts exchange every input and output through the getters — a
documented, ClimaCore-free data-exchange contract — and drive the solve with a single
allocation-free, type-stableupdate_fluxes!that returnsnothing(results are read back
through the getters). - Breaking: removed the deprecated positional-argument constructors that warned to use
RRTMGPGridParams: the old signatures ofOneScalar,TwoStream,FluxLW,FluxSW,
SourceLWNoScat,SourceLW2Str,SourceSW2Str,NoScatLWRTE,TwoStreamLWRTE,
NoScatSWRTE,TwoStreamSWRTE, andVmrGM, plussource_func_longwave,
source_func_shortwave, andinit_vmr. Construct these withRRTMGPGridParams(and
VolumeMixingRatioGlobalMeanforVmrGM). - Breaking:
RRTMGPGridParamsnow takesdomain_nlay(the physical layer count) instead
ofnlay, and adds the isothermal boundary layer internally; the storednlayfield is the
total. Callers no longer computedomain_nlay + 1themselves. - Breaking: removed the internal
RRTMGPData{Order}data-layout types and helpers
(NVCData/VCData/NCData/NData,set_cols!/set_domain!/domain_view, and the
index-order tags); the getter-based API does not use them. - Lifted the grid-adaptation helpers out of ClimaAtmos into RRTMGP as separable, in-place
functions over plain(nlay, ncol)array views:interpolate_levels!,
add_isothermal_boundary_layer!,clip!, andupdate_concentrations!. clip!now also clamps the spectral solvers' layer/level temperatures into the
valid range of the optics lookup tables — the tables' first and last reference
temperatures (lookup.t_ref_min/t_ref_max, 160–355 K for the standard tables),
read straight from the lookup table — moving the clamp that ClimaAtmos applied
before every radiation call into RRTMGP's own input preparation. The gray path is
deliberately not clamped: it uses no lookup tables, and idealized gray atmospheres
can legitimately reach temperatures outside the lookup range.- Added standalone entry points that need no NetCDF lookup tables —
solve_gray,
default_parameters, andheating_rate(in K/s) — for single-column/classroom use. - Added optional spectrally-resolved (per-band) fluxes: construct with
spectral_fluxes = true,
then readspectral_{lw,sw}_flux_{up,dn,net}and the band edges{lw,sw}_band_bounds. Off by
default, and the broadband path is byte-for-byte unchanged. - Added a canonical aerosol species name map: the aerosol getters take canonical names
(sulfate,sea_salt1,black_carbon_rh, ...), and hosts map their own short names
(so4,ss1, ...) to these. - Added
deep_atmosphere_inverse_scaling(anRRTMGPSolverkwarg/getter): a(nlev, ncol)
factor applied to the fluxes for deep-atmosphere geometry, where the host passes the
multiplicative inverse of its metric scaling (the low-levelmetric_scalingargument is
unchanged). RRTMGPSolverand its optics/source workspaces are nowAdapt-able via custom overloads
that preserve the packed-buffer view topology across device transfers, so checkpoint restores
stay zero-allocation.- Fixed
VolumeMixingRatioGlobalMean, which threw anUndefVarErroron every call. - New documentation: "The functional core" and "The getter contract" pages.
Migration
RRTMGPGridParams now takes the physical domain_nlay and adds the isothermal boundary layer
itself, so host adapters (ClimaAtmos/ClimaCoupler) no longer compute the total layer count:
- nlay = domain_nlay + Int(add_isothermal_boundary_layer)
- gp = RRTMGPGridParams(FT; context, nlay, ncol, isothermal_boundary_layer)
+ gp = RRTMGPGridParams(FT; context, domain_nlay, ncol, isothermal_boundary_layer)
+ nlay = gp.nlay # total, if you still need it (e.g. for state allocation)
Results are read through the getters after the solve: update_fluxes!(solver, seed) returns
nothing, so use net_flux(solver) (a domain-masked view) or the raw solver.net_flux_buffer.
Atmosphere - Radiative Transfer
- Julia
Published by tapios about 2 months ago
RRTMGP.jl - v0.21.8
RRTMGP v0.21.8
Merged pull requests:
- update ClimaCoupler env for downstream test (#596) (@juliasloan25)
- add downgrade test (#597) (@juliasloan25)
- Allow CUDA.jl v6 (#598) (@giordano)
Closed issues:
- Generalize tolerances (#56)
- Add per-grid-point capability (#178)
- Improve memory management (#179)
- Remove magic indexes (#184)
- Make all returned arguments the first one (#192)
- Add documentation for data files (#228)
- Flame graphs times out on builkite (#519)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] 4 months ago
RRTMGP.jl - v0.21.7
RRTMGP v0.21.7
Merged pull requests:
- Move CI to new file system (#586) (@nefrathenrici)
- feat: add CLA workflow caller (#589) (@kalphonse-rgb)
- Update cla.yml (#590) (@kalphonse-rgb)
- clarify naming in readme (#592) (@szy21)
- rename weighted_irradiance to toa_flux (#593) (@szy21)
- chore: changes the CLA action trigger to pull_request_target (#594) (@cmbengue)
- always calculate optical depth (#595) (@szy21)
Closed issues:
- Enable CLA Workflow (#588)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] 7 months ago
RRTMGP.jl - v0.21.2
RRTMGP v0.21.2
Merged pull requests:
- Add API to RRTMGP (#575) (@charleskawczynski)
- Add nsys profiler to GPU benchmarks (#576) (@sriharshakandala)
- Updates fluxes to apply scaled metrics in deep-atmosphere configurations (#577) (@akshaysridhar)
- Update patch version (#580) (@akshaysridhar)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] over 1 year ago
RRTMGP.jl - v0.21.0
RRTMGP v0.21.0
Breaking changes
- Users now need to add aod_sw_ext and aod_sw_sca to AerosolState.
Merged pull requests:
- Add aerosol optical depth to AerosolState (#567) (@charleskawczynski)
- add download badge (#569) (@szy21)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] over 1 year ago
RRTMGP.jl - v0.20.0
RRTMGP v0.20.0
Breaking changes
- Users now need to specify dust and sea salt aerosols for five different size bins.
Merged pull requests:
- add different sizes for dust and sea salt (#564) (@szy21)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] over 1 year ago
RRTMGP.jl - v0.19.2
RRTMGP v0.19.2
Merged pull requests:
- Rename tests. (#556) (@sriharshakandala)
- Fix typos/rendering (#557) (@navidcy)
- add coupler AMIP downstream test; add Julia 1.11 to downstream tests (#558) (@juliasloan25)
- Update ArtifactPaths.md (#559) (@jty53)
- update cloud optics (#562) (@szy21)
- remove pade approximation (#563) (@szy21)
- bump patch version (#565) (@szy21)
Closed issues:
- Add downstream tests (#543)
- Support reproducible restarts (#544)
- Update cloud optics lookup table (#561)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] over 1 year ago
RRTMGP.jl - v0.19.1
RRTMGP v0.19.1
Merged pull requests:
- Add Clima (A100) pipeline (#531) (@sriharshakandala)
- Change data layout for fluxes. (#532) (@sriharshakandala)
- Change data layout for optical properties. (#533) (@sriharshakandala)
- Change data layout for sources. (#534) (@sriharshakandala)
- Change data layouts for pressure, temperature, col_dry and relative humidity (#535) (@sriharshakandala)
- Change data layout for
Vmr(#536) (@sriharshakandala) - Fix typo in
compute_relative_humidity_kernel!(#537) (@sriharshakandala) - Refactor
Fluxes(#538) (@sriharshakandala) - Simplify type parameters for
AngularDiscretizationsandBCs. (#540) (@sriharshakandala) - Remove Infiltrator from test suite. (#541) (@sriharshakandala)
- Add reproducibility test for non-trivial cloud fractions (#542) (@sriharshakandala)
- Revert all changes after
v0.19.0. (#545) (@sriharshakandala) - Add downstream tests for
ClimaAtmos.jl(#546) (@sriharshakandala) - Update shortwave aerosol lookup tables. (#548) (@sriharshakandala)
- Fix flux_dn_dir not updated in all sky two stream (#550) (@Sbozzolo)
- Fix typo in
compute_relative_humidity_kernel!(#552) (@sriharshakandala) - Update modules for pipelines (#554) (@sriharshakandala)
- bump patch version (#555) (@szy21)
Closed issues:
- Pass a random seed number in the function that generates random numbers (#316)
- Infiltrator should not be left in the code (#489)
- Update aerosol SW lookup table (#539)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] almost 2 years ago
RRTMGP.jl - v0.19.0
RRTMGP v0.19.0
Merged pull requests:
- Compute
aero_maskinternally (#525) (@sriharshakandala) - Support
1Dinterpolation on non-uniform grid (#527) (@sriharshakandala) - Compute and store
aero_mask. (#528) (@sriharshakandala) - bump minor release (#529) (@szy21)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] almost 2 years ago
RRTMGP.jl - v0.18.0
RRTMGP v0.18.0
Merged pull requests:
- Remove ClimaParams dependency (#513) (@nefrathenrici)
- Move
Artifacts(#520) (@sriharshakandala) - Rename files not containing modules to use
snake_case(#521) (@sriharshakandala) - Add
clear-skyandall-sky with aerosolsGPU benchmarks (#522) (@sriharshakandala) - Add support for multiple aerosol types in a layer (#523) (@sriharshakandala)
- bump minor release (#524) (@szy21)
Closed issues:
- make sure all SW fluxes are zero when zenith_angle > pi/2 (#446)
- Use FastGaussQuadrature instead of GaussQuadrature (#447)
- Update
LookUptables and reference datasets (#481) - Filenames do not follow standard convention (#486)
ClimaParamsis at the same time dependency and weak dependency of RRTMGP (#512)- Allow different aerosol types (#516)
- Artifacts.toml seems outdated and input data is not documented (#517)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] about 2 years ago
RRTMGP.jl - v0.16.0
RRTMGP v0.16.0
Merged pull requests:
- Fix noscatter shortwave solve (#504) (@nefrathenrici)
- Support
OneScalarcloud optics. (#505) (@sriharshakandala) - Rename
rte_lw_noscat!(#506) (@sriharshakandala) - Release 0.16.0 (#507) (@nefrathenrici)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] about 2 years ago
RRTMGP.jl - v0.15.0
RRTMGP v0.15.0
Merged pull requests:
- Split
Solver(#492) (@sriharshakandala) - Simplify arguments for
solve_lw!andsolve_sw!(#493) (@sriharshakandala) - Remove unused dependencies (#494) (@sriharshakandala)
- Update Artifacts to use
rrtmgp-data-v1.8.1(#495) (@sriharshakandala) - Move
AngularDiscretizationtoNoScatLWRTE(#496) (@sriharshakandala) - Add non-scattering longwave test to
clear-skysolver (#497) (@sriharshakandala) - Update longwave secants and weights (#498) (@sriharshakandala)
- Simplify source calculations for
NoScatLWRTEsolver. (#499) (@sriharshakandala) - Minor release
0.15.0(#501) (@nefrathenrici)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] about 2 years ago
RRTMGP.jl - v0.13.3
RRTMGP v0.13.3
Merged pull requests:
- Make cuda an extension (#485) (@charleskawczynski)
- Add ClimaComms backward compatibility (#487) (@charleskawczynski)
Closed issues:
- Move CUDA to Julia extension (#479)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] over 2 years ago
RRTMGP.jl - v0.13.2
RRTMGP v0.13.2
Merged pull requests:
- Update climacommon to 2024_03_18 (#475) (@Sbozzolo)
- Update climacommon to 2024_04_05 (#476) (@Sbozzolo)
- handle FT of 0-dim Array (#484) (@juliasloan25)
Closed issues:
- Array() now returns an Array for 0-dimensional input (#482)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] over 2 years ago
RRTMGP.jl - v0.13.1
RRTMGP v0.13.1
Merged pull requests:
- Replace exponential function in gray source calculations (#467) (@sriharshakandala)
- Some optimizations to gray LW simulation (#468) (@sriharshakandala)
- Update argument types for
compute_col_gas!(#470) (@sriharshakandala) - Add
getviewforGrayAtmosphericState(#471) (@sriharshakandala) - Update
build_cloud_mask!(#472) (@sriharshakandala) - New patch version (#473) (@nefrathenrici)
- Zero out SW Fluxes when zenith angle is > 90 deg - 2 * eps (#474) (@sriharshakandala)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] over 2 years ago
RRTMGP.jl - v0.13.0
RRTMGP v0.13.0
Merged pull requests:
- Remove inferable fields from
AtmosphericStates(#453) (@sriharshakandala) - Add
CloudState(#454) (@sriharshakandala) - Restructure data layout in
AtmosphericStates(#455) (@sriharshakandala) - Update to ClimaParams v0.10 (#456) (@nefrathenrici)
- Add
all-skyDYAMOND GPU benchmark (#459) (@sriharshakandala) - Move to new-central (#461) (@sriharshakandala)
- Update Adapt compat (#462) (@charleskawczynski)
- Remove old and unused environments (#463) (@charleskawczynski)
- Release v0.13 (#466) (@nefrathenrici)
Closed issues:
- Set up benchmark pipeline for evaluating RRTMGP.jl performance (#423)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] over 2 years ago
RRTMGP.jl - v0.12.0
RRTMGP v0.12.0
Merged pull requests:
- Swap dimensions for some lookup data (#432) (@sriharshakandala)
- Restructure minor optics computation (#433) (@sriharshakandala)
- Update
OneScalarandTwoStreamstructs (#434) (@sriharshakandala) - Fix
net_fluxcalculation for shortwave solver. (#435) (@sriharshakandala) - Restructure Source structs (#436) (@sriharshakandala)
- Simplify type parameters for
AtmosphericState(#437) (@sriharshakandala) - Always inline and remove use of StepRange (#438) (@charleskawczynski)
- Restructure LookUpCld to reduce metadata size (#442) (@sriharshakandala)
- Ease register pressure in
GasOptics.jl(#443) (@sriharshakandala) - Split shortwave optics function (#445) (@sriharshakandala)
- Add lower bound for cumulative optical thickness (#448) (@sriharshakandala)
- Restructure LookUp tables (#449) (@sriharshakandala)
- Update dependencies (#450) (@sriharshakandala)
- Update to ClimaParameters v0.9 (#452) (@nefrathenrici)
Closed issues:
RRTMGPIcallbacks fail on P100 (#400)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] over 2 years ago
RRTMGP.jl - v0.11.0
RRTMGP v0.11.0
Merged pull requests:
- docs: don't append parent environment (#402) (@simonbyrne)
- Update Julia, CUDA versions in Buildkite pipeline (#405) (@sriharshakandala)
- Simplify 2-stream increment function (#407) (@sriharshakandala)
- Split up
LookUp tableandPadecloud optics tables. (#408) (@sriharshakandala) - Split
RTEsolver code based on optics type (#409) (@sriharshakandala) - Refactor
build_cloud_mask!(#411) (@sriharshakandala) - Restructure cloud optics computations (#412) (@sriharshakandala)
- Restructure 2-stream shortwave solver (#413) (@sriharshakandala)
- update shortwave RTE docs (#414) (@szy21)
- Store
cos_zenithinstead ofzenith(#415) (@sriharshakandala) - Swap
vmrdimensions (#416) (@sriharshakandala) - Simplify optics. (#417) (@sriharshakandala)
- Store
ln(p_ref)instead ofp_refin lookup tables (#418) (@sriharshakandala) - Replace
fldwithunsafe_trunc(#419) (@sriharshakandala) - Fix single-precision relative and absolute errors (#421) (@sriharshakandala)
- Add rrtmgp-lookup-data artifact (#422) (@simonbyrne)
- Add RRTMGPParameters constructor package extension (#425) (@nefrathenrici)
- Update examples/Manifest.toml (#426) (@nefrathenrici)
- Simplify optics parameter types (#427) (@sriharshakandala)
- Simplify parameter types for RTE shortwave solver (#428) (@sriharshakandala)
- Split LW & SW gas optics functions (#429) (@sriharshakandala)
- Restructure longwave RTE solver (#430) (@sriharshakandala)
- New minor release (#431) (@nefrathenrici)
Closed issues:
- Add single precision support for RRTMGP (#337)
- RRTMGPReferenceData artifact (#401)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] over 2 years ago
RRTMGP.jl - v0.9.3
RRTMGP v0.9.3
Merged pull requests:
- Add compat for NCDatasets. (#393) (@sriharshakandala)
- Change syntax to get NC data (#395) (@charleskawczynski)
- Migrating from Bors to GitHub Merge queue + Buildkite (#396) (@sriharshakandala)
Closed issues:
- Update NCDatasets compats in environments (#394)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] almost 3 years ago
RRTMGP.jl - v0.9.2
RRTMGP v0.9.2
Merged pull requests:
- Add threaded benchmarks (#378) (@charleskawczynski)
- Add gpu benchmark (#380) (@charleskawczynski)
- Do benchmark more carefully (#381) (@charleskawczynski)
- Apply fixes for Float32 (#383) (@charleskawczynski)
- Update all_sky tests (#384) (@sriharshakandala)
- remove compute_optical_props_CUDA!. (#385) (@sriharshakandala)
- Add back stand-alone clear-sky lw & sw tests (#386) (@sriharshakandala)
- Add single precision support for RRTMGP (#387) (@sriharshakandala)
- Update CUDA compat and dependencies. (#392) (@charleskawczynski)
Closed issues:
compute_optical_props_CUDA!is untested. (#290)test/rfmip_clear_sky_sw.jlis not being exercised. (#361)- Feedback on Detected COMMAND_INJECTION (#390)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] almost 3 years ago
RRTMGP.jl - v0.9.1
RRTMGP v0.9.1
Closed issues:
- Cannot infer splatted args (#365)
- Fix timing of tests (#369)
Merged pull requests:
- Update dependencies, use
ClimaComms.@threaded(#366) (@charleskawczynski) - Add flame graphs (#367) (@charleskawczynski)
- Do less splatting (#368) (@charleskawczynski)
- Prep timing (#370) (@charleskawczynski)
- Add benchmarks (#371) (@charleskawczynski)
- Precompute expensive terms (#372) (@charleskawczynski)
- Avoid slowpath in pow (#373) (@charleskawczynski)
- Remove splatting (#374) (@charleskawczynski)
- Lower allocation limit (#375) (@charleskawczynski)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] about 3 years ago
RRTMGP.jl - v0.7.0
RRTMGP v0.7.0
Closed issues:
- Performance issues (#55)
- Add plots in docs (#112)
- Add documentation (#174)
- Make docs strict (#262)
- Albedo Specification (#284)
- Improve documentation (#325)
- Add docs: overview and RTE equations (#328)
- Add equations for gray radiation (#329)
- Add / Clean up equations for gas optics (#331)
- Add / Clean up equations for cloud optics (#332)
- Add documentation for cloud overlapping assumption (#333)
- Add examples/tutorials (#334)
- Enable single threaded launch option (#335)
- Add different options for gray radiation LW optical thickness (#339)
- Add / Clean up API (#342)
Merged pull requests:
- add gray sw optical depth (#323) (@szy21)
- Make docs strict (#326) (@szy21)
- Add docs: overview and RTE equations (#327) (@szy21)
- Add equations for gray radiation (#330) (@szy21)
- Adds gas optics to docs (#336) (@szy21)
- Enable user-defined gray optical thickness calculations (#338) (@sriharshakandala)
- Add documentation for cloud optics (#340) (@szy21)
- Add documentation for examples (#341) (@szy21)
- Clean up api in docs (#343) (@szy21)
- fix docs for gray atmosphere optics (#344) (@szy21)
- Update README.md (#345) (@szy21)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] over 3 years ago
RRTMGP.jl - v0.6.0
RRTMGP v0.6.0
Closed issues:
- Implement McICA to handle partial cloud fraction (#296)
- Change the random number generation in maximum overlap assumption (#312)
Merged pull requests:
- Use RRTMG version of maximum-random overlap algorithm. (#313) (@sriharshakandala)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] about 4 years ago
RRTMGP.jl - v0.5.0
RRTMGP v0.5.0
Closed issues:
- Refine/enlarge cloud_mask to be g-point and long/shortwave specific (#297)
- Add user prescribable cloud fraction input (#299)
- Build cloud mask for a given cloud fraction (#301)
- Update Artifacts to add reference data for cloud fraction tests (#305)
- Cleanup outdated code (#309)
Merged pull requests:
- Rename master -> main (#295) (@charleskawczynski)
- Refine/enlarge cloud_mask to be g-point and long/shortwave specific (#298) (@sriharshakandala)
- Add cloud fraction to AtmosphericState (#300) (@sriharshakandala)
- Build McICA-sampled cloud mask from cloud fraction data (#302) (@sriharshakandala)
- Enable parallel initialization of CPU and GPU environments in Buildkite (#304) (@sriharshakandala)
- Update Artifacts to add reference data for cloud fraction tests (#306) (@sriharshakandala)
- Sk/add cloud frac arg to test (#307) (@sriharshakandala)
- Remove outdated code (#308) (@sriharshakandala)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] about 4 years ago
RRTMGP.jl - v0.4.0
RRTMGP v0.4.0
Closed issues:
- Artifact handling is brittle (#288)
Merged pull requests:
- Remove unnecessary deps from pkg (#286) (@charleskawczynski)
- Develop RRTMGP in examples and gpu envs (#289) (@charleskawczynski)
- Remove NCDatasets from package Project toml (#292) (@charleskawczynski)
- Unify formatter with other repos (#293) (@charleskawczynski)
- Disable codecov annotations (#294) (@charleskawczynski)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] about 4 years ago
RRTMGP.jl - v0.3.0
RRTMGP v0.3.0
Closed issues:
- Build LES Longwave driver (#256)
- TagBot trigger issue (#276)
Merged pull requests:
- Update compat entries for Adapt, CUDA, GaussQuadrature, and UnPack. (#275) (@sriharshakandala)
- Fix logo link (#277) (@charleskawczynski)
- Update to Julia 1.7.2. (#278) (@sriharshakandala)
- Replace UnPack with native Julia destructuring syntax (#279) (@sriharshakandala)
- Eliminate GPU to CPU copy for some GPU arrays in RTE (#280) (@sriharshakandala)
- merge gpu kernels (#281) (@sriharshakandala)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] over 4 years ago
RRTMGP.jl - RRTMGP.jl v0.2.0
- This release includes a major refactoring of RRTMGP.jl to use GPU acceleration on CUDA devices and native Julia multithreading on all other devices.
- Clear-sky, all-sky and gray radiation problems are supported.
Atmosphere - Radiative Transfer
- Julia
Published by sriharshakandala almost 5 years ago
RRTMGP.jl - v0.1.0
RRTMGP v0.1.0
First version!
Closed issues:
- Change repo name (#18)
- Translation checklist (#30)
- Add calculation for zenith angle (#113)
- Add layer to optical properties (#175)
- Remove OffsetArrays (#183)
- Add data structures for RTE (#191)
Merged pull requests:
- Add RTE.jl (#1) (@charleskawczynski)
- Add RRTMG (#3) (@charleskawczynski)
- Config (#5) (@charleskawczynski)
- Azure (#6) (@charleskawczynski)
- Azure (#7) (@charleskawczynski)
- Fix readme (#8) (@charleskawczynski)
- Config (#9) (@charleskawczynski)
- Add data and netcdf files (#10) (@charleskawczynski)
- Add JRRTMGP to docs env (#11) (@charleskawczynski)
- Add RTE doc (#12) (@charleskawczynski)
- Remove readme from docs (#13) (@charleskawczynski)
- Fix Azure links in README (#14) (@charleskawczynski)
- Add Fortran files, with .jl ext (#15) (@charleskawczynski)
- Translate
mo_gas_optics_kernels(#16) (@charleskawczynski) - Translate
mo_rte_solver_kernels(#17) (@charleskawczynski) - Translate 3 fortran files (#19) (@skandalaCLIMA)
- Translate
mo_util_array.f90(#20) (@skandalaCLIMA) - [WIP] Translate
mo_optical_props.jl(#21) (@charleskawczynski) - Add modules/submodules (#22) (@charleskawczynski)
- Combine modules (#23) (@charleskawczynski)
- Add
mo_fluxes(#24) (@charleskawczynski) - Add mo_source_functions (#25) (@charleskawczynski)
- Add Fortran Examples (#26) (@charleskawczynski)
- Update fortran intrinsics (#27) (@charleskawczynski)
- Mo optical props (#28) (@charleskawczynski)
- Mo rte sw.f90 (#29) (@skandalaCLIMA)
- Fix deallocate in mo_optical_props (#31) (@charleskawczynski)
- Add back dealloc (#32) (@charleskawczynski)
- [WIP] Mo gas concentrations (#33) (@charleskawczynski)
- Mo fluxes (#34) (@charleskawczynski)
- Translate mo_rrtmgp_constants (#35) (@charleskawczynski)
- Translate mo_util_string (#36) (@charleskawczynski)
- Translate mo_gas_optics_rrtmgp (#37) (@charleskawczynski)
- Mo gas optics kernels (#38) (@charleskawczynski)
- Mo util string (#39) (@charleskawczynski)
- Mo rrtmgp constants (#40) (@charleskawczynski)
- Translate mo_util_reorder (#41) (@charleskawczynski)
- Mo util reorder (#42) (@charleskawczynski)
- Translate mo_gas_optics (#43) (@charleskawczynski)
- Translate
rrtmgp_rfmip_sw(#44) (@charleskawczynski) - Mo rfmip io (#45) (@skandalaCLIMA)
- First pass at running the code (#46) (@charleskawczynski)
- Add mo_test_files_io (#47) (@charleskawczynski)
- Translated mo_simple_netcdf (#48) (@skandalaCLIMA)
- Add adding test (#49) (@charleskawczynski)
- add test datasets via DataDeps.jl (#50) (@simonbyrne)
- Converted remaining files to .jl (#51) (@charleskawczynski)
- Test util 09 26 2019 10 30, partially translated mo_test_files_io.jl (#52) (@skandalaCLIMA)
- Integration (#53) (@charleskawczynski)
- Integration (#54) (@charleskawczynski)
- Trying to fix build (#57) (@charleskawczynski)
- Fix readme (#58) (@charleskawczynski)
- Add original license (#60) (@charleskawczynski)
- Fix build (#61) (@charleskawczynski)
- Clean string util (#62) (@charleskawczynski)
- Longwave (#66) (@skandalaCLIMA)
- Use DataDeps in SW driver (#67) (@charleskawczynski)
- Fix driver sw (#68) (@charleskawczynski)
- Clean up unused files, remove nc files, rename drivers (#69) (@charleskawczynski)
- Add Allsky example (#70) (@charleskawczynski)
- Update reference data (#71) (@charleskawczynski)
- Adding documentation to RRTMGP modules (#72) (@skandalaCLIMA)
- Refactor fluxes (#73) (@charleskawczynski)
- Clean/update docs in mo_fluxes_byband (#74) (@charleskawczynski)
- Remove data files and unused fortran and python files (#75) (@charleskawczynski)
- References - pt 1 (#77) (@skandalaCLIMA)
- Refactor reorder (#78) (@charleskawczynski)
- Clean up mo_gas_optics.jl (#79) (@charleskawczynski)
- Cleanup mo_rte_sw (#80) (@charleskawczynski)
- refactor mo_source_functions (#81) (@charleskawczynski)
- Refactor mo_rte_lw (#82) (@charleskawczynski)
- Refactor mo_util_array (#83) (@charleskawczynski)
- Add longwave test, using different optical props (#85) (@charleskawczynski)
- Refactor mo_rrtmgp_constants (#86) (@charleskawczynski)
- Refactor mo_fluxes_broadband_kernels (#88) (@charleskawczynski)
- Add shortwave test with alternative optical props (#89) (@charleskawczynski)
- Remove reorder (#91) (@charleskawczynski)
- Refactor mo_rfmip_io (#93) (@charleskawczynski)
- Remove unused functions/convert to intrinsics (#94) (@charleskawczynski)
- Add test that uses Pade scheme (#95) (@charleskawczynski)
- Clean up cloud optics (#96) (@charleskawczynski)
- Move cloud sampling to test (#97) (@charleskawczynski)
- Move nstream kernels to test (#98) (@charleskawczynski)
- Move more n-stream to test folder (#99) (@charleskawczynski)
- Delete
mo_garand_atmos_io- since it's unused (#100) (@charleskawczynski) - Clean up mo_gas_concentrations (#101) (@charleskawczynski)
- Add Profile, type restriction, and @inbounds (#102) (@charleskawczynski)
- Add Benchmark suite (#103) (@charleskawczynski)
- Convert if->error to assertions (#104) (@charleskawczynski)
- Improve performance (#105) (@charleskawczynski)
- Organize folders (#107) (@charleskawczynski)
- Move subset functions to PartialImplementations (#108) (@charleskawczynski)
- Trim unused functions in FortranIntrinsics (#109) (@charleskawczynski)
- Change varname to not match func name (#110) (@charleskawczynski)
- Move remaining fortran code to separate folder (#111) (@charleskawczynski)
- Use @elapsed for timing (#114) (@charleskawczynski)
- Adds allsky and clearsky lw tests back to runtests (#115) (@charleskawczynski)
- Significant speed up, avoid copy array (#116) (@charleskawczynski)
- Simplify strings (#117) (@charleskawczynski)
- Make ty_optical_props_base immutable (#118) (@charleskawczynski)
- Remove partial init from single and 2-stream optical props (#119) (@charleskawczynski)
- Rename JRRTMGP -> RRTMGP.jl (#120) (@charleskawczynski)
- Fix AppVeyor badge (#121) (@charleskawczynski)
- Fix JRRTMGP -> RRTMGP in running original RRTMGP (#122) (@charleskawczynski)
- Remove partial initialization (#123) (@charleskawczynski)
- Simplify logic (#124) (@charleskawczynski)
- Make get_vmr non-allocating (#126) (@charleskawczynski)
- Remove unused funcs, simplify logic (#127) (@charleskawczynski)
- Replace loop transpose with transpose intrinsic (#128) (@charleskawczynski)
- Remove unnecessary colons (#129) (@charleskawczynski)
- Update docs (#130) (@charleskawczynski)
- Add structure to cloud_optics (#131) (@charleskawczynski)
- Make
ty_fluxes_broadbandimmutable (#132) (@charleskawczynski) - Decompose
ty_gas_optics_rrtmgp(#133) (@charleskawczynski) - Simplify interfaces (#134) (@charleskawczynski)
- Move towards immutable
ty_gas_optics_rrtmgp(#136) (@charleskawczynski) - Remove some indexes passed into funcs (#137) (@charleskawczynski)
- Remove
ty_gas_optics_rrtmgpmutability (#138) (@charleskawczynski) - Add docs and type restrictions (#139) (@charleskawczynski)
- Update docs (#140) (@charleskawczynski)
- Fix doc deployment (#141) (@charleskawczynski)
- Move kernels outside of modules (#142) (@charleskawczynski)
- Rename files to TitleCase (#143) (@charleskawczynski)
- Move
compress_targzoutside ofsrc(#144) (@charleskawczynski) - Rename structs and modules (#145) (@charleskawczynski)
- Rename
AtmosVarstoGasOpticsVars(#147) (@charleskawczynski) - Add InterpolationCoefficients struct (#149) (@charleskawczynski)
- Remove stale docs, add type restrictions (#150) (@charleskawczynski)
- Move data loading to its own folder (#151) (@charleskawczynski)
- Kaizen: Convert to unicode, remove indexes, add inbounds, use broadcast (#152) (@charleskawczynski)
- Refactor gas concs (#153) (@charleskawczynski)
- Refactor gas concs (#154) (@charleskawczynski)
- Refactor GasOptics (#155) (@charleskawczynski)
- Remove some passed indexes (#156) (@charleskawczynski)
- Remove temp array, simplify slicing (#157) (@charleskawczynski)
- Refactor GasOptics (#158) (@charleskawczynski)
- Add Gases, simplify management of gases/names (#160) (@charleskawczynski)
- Update docs, remove unused vars (#161) (@charleskawczynski)
- Add AtmosphericStates (#162) (@charleskawczynski)
- Move error checking to constructor (#163) (@charleskawczynski)
- Add viz env and heating rate plots (#164) (@charleskawczynski)
- Move some col_vars to
AtmosState(#165) (@charleskawczynski) - Adds zenith angle module (#166) (@charleskawczynski)
- Move
t_sfcintoAtmosState, andtoa_srcout ofGasOptics(#167) (@charleskawczynski) - Add RadiativeBCs, refactor/clean RTE (#168) (@charleskawczynski)
- Add
AngularDiscretizations(#169) (@charleskawczynski) - Split ReferenceState in k-dist, rename k-dists (#170) (@charleskawczynski)
- Rename Internal/External GasOptics (#171) (@charleskawczynski)
- Adds per-grid-point computations of spectral optical depth (#172) (@charleskawczynski)
- Add Bors (#173) (@charleskawczynski)
- Refactor CloudOptics and OpticalProps_kernels (#176) (@charleskawczynski)
- Add CloudOpticalProps type (#177) (@charleskawczynski)
- Clean up (#180) (@charleskawczynski)
- Add per grid point structures, and convert methods (#181) (@charleskawczynski)
- Simplify rrtmgp interfaces (#182) (@charleskawczynski)
- Remove OffsetArrays (#185) (@charleskawczynski)
- Add type restrictions, fix docs (#186) (@charleskawczynski)
- Move
tropoandtropo_limstoAtmosphericState(#187) (@charleskawczynski) - Add MeshOrientations (#188) (@charleskawczynski)
- Add per-grid-point capability (#189) (@charleskawczynski)
- General clean up (#190) (@charleskawczynski)
- Add and update docs (#193) (@charleskawczynski)
- Fix/clean some docs (#194) (@charleskawczynski)
- Add docs, fix some doc complaints (#195) (@charleskawczynski)
- Update / fix docs (#196) (@charleskawczynski)
- Update/fix docs (#197) (@charleskawczynski)
- Remove unused functions (#198) (@charleskawczynski)
- Remove kernels folder, clean up docs (#199) (@charleskawczynski)
- Refactor MeshOrientation (#200) (@charleskawczynski)
- Combine
top_at_1logic (#201) (@charleskawczynski) - Reshape README table (#202) (@charleskawczynski)
- Refactor RTE solver kernels (#203) (@charleskawczynski)
- Simplify/dispatch BCs, unpack some fields (#204) (@charleskawczynski)
- Add @inbounds, move var defs (#205) (@charleskawczynski)
- Update docs and README (#206) (@charleskawczynski)
- Add Julia 1.3, use 1.3 for docs (#207) (@charleskawczynski)
- Add RTE structure (#208) (@charleskawczynski)
- Remove point-wise wrapper functions (#210) (@charleskawczynski)
- Update docs, add links to README (#211) (@charleskawczynski)
- Make more point-wise ops (#212) (@charleskawczynski)
Atmosphere - Radiative Transfer
- Julia
Published by github-actions[bot] over 6 years ago