Recast WOOF (distribution "recast-woof", Python package "woof", preprocessor "rw-wps")
Copyright 2026 Recast WOOF contributors

WOOF derives from ArWen, Apache-2.0 code Copyright 2026 ArWen contributors.

The native regular-grid Zarr reader's locked dependencies, including codec
and TLS libraries, are inventoried with their licence texts in
licenses/THIRD-PARTY-LICENSES-zarr-binary.txt. That notice also accompanies
the bridge bundle's map-asset tree.

Licensed under the Apache License, Version 2.0. Third-party datasets,
tables, vendored components, and dependencies retain their own licenses
and notices. Per-asset provenance (sources, generation recipes, SHA-256
pins) is recorded in PROVENANCE.md and in the woof/data/*/PROVENANCE.md
files beside each packaged asset.

Where a licence requires its text to be reproduced rather than merely
named, this file reproduces it. Short texts appear in the sections
below; longer ones are in the licenses/ directory, which ships in every
source and binary distribution through the license-files declaration in
pyproject.toml and lands in an installed wheel at
recast_woof-<version>.dist-info/licenses/licenses/ (PEP 639 keeps the source
path, hence the doubled component). Every section below names the file
that carries its text.

Notices also sit beside the code they belong to, which is what several of
these licences ask for and what a reader looking at one file rather than
at the whole distribution will find first. Each shipped Python module
that carries transcribed work opens with the notice for what it carries;
so do woof/core/kernels/glibc_flt32.cuh and
woof/core/kernels/thompson_aerosol_common.cuh. Other CUDA translation
units and prepended headers are covered by the source-freeze manifests
checked by tests/test_mp8_frozen.py and
tests/test_kernel_source_freeze_per_module.py; adding a notice comment
would change their pinned source bytes. Their adjacent notice is
woof/core/kernels/LICENSE-third-party.txt, which sits in the same
directory, covers all five grants present there, and is named explicitly
in pyproject.toml's package-data so that it ships with the code it
belongs to. Packaged data assets carry theirs the same way, in
LICENSE*.txt files beside them.

One carve-out, stated at the top because a blanket claim would be wrong:
the two Source Sans 3 font files embedded in the renderer binaries are
under the SIL Open Font License 1.1 and are NOT offered under Apache-2.0.
See "Source Sans 3" below.

--------------------------------------------------------------------------

WRF / NCAR / UCAR

WOOF is an independent implementation. It is not affiliated with or
endorsed by the National Center for Atmospheric Research (NCAR) or the
University Corporation for Atmospheric Research (UCAR). The Weather
Research and Forecasting (WRF) model, developed at NCAR, is the
transcription and verification authority for WOOF's WRF-derived
mechanisms (WRF v4.6.1, https://github.com/wrf-model/WRF). 167 of the
shipped source files under woof/ cite a WRF Fortran path by name and
line.

WRF is not released under an open-source licence: UCAR places it in the
public domain and requests a notice. That request is honoured here by
reproduction rather than paraphrase. WRF v4.6.1 LICENSE.txt, in full:

    WRF was developed at the National Center for Atmospheric Research
    (NCAR) which is operated by the University Corporation for
    Atmospheric Research (UCAR). NCAR and UCAR make no proprietary
    claims, either statutory or otherwise, to this version and release
    of WRF and consider WRF to be in the public domain for use by any
    person or entity for any purpose without any fee or charge. UCAR
    requests that any WRF user include this notice on any partial or
    full copies of WRF. WRF is provided on an "AS IS" basis and any
    warranties, either express or implied, including but not limited to
    implied warranties of non-infringement, originality, merchantability
    and fitness for a particular purpose, are disclaimed. In no event
    shall UCAR be liable for any damages, whatsoever, whether direct,
    indirect, consequential or special, that arise out of or in
    connection with the access, use or performance of WRF, including
    infringement actions.

    WRF(R) is a registered trademark of the University Corporation for
    Atmospheric Research (UCAR).

The unwrapped text, byte-identical to WRF v4.6.1's own LICENSE.txt
(md5 ea0d72123846bafa972b29ca41f89b1a) and carrying the registered
trademark symbol as UCAR writes it, is at
licenses/LICENSE-WRF-public-domain.txt and beside each packaged
WRF-derived asset directory.

UCAR's declaration disclaims UCAR's own claims. It cannot and does not
dispose of anyone else's, and WRF says so itself by preserving foreign
notices inside phys/. WOOF transcribes two of those bodies of code and
reproduces both notices below: AER's RRTMG, and Numerical Recipes'
GAMMLN. It transcribes neither of the other two -- the Mersenne Twister
in module_ra_rrtmg_lw.F (WOOF's McICA implements the kissvec path only;
a repository-wide search for the Mersenne Twister constant 0x9908b0df
finds it nowhere but in this sentence) nor Ooura's derf in
module_cu_mskf.F (the MSKF cumulus scheme is not ported, and the string
"mskf" appears nowhere under woof/).

The WRF Preprocessing System (WPS) is the transcription authority for the
preprocessing half in the same way, and is named here so that a reader who
greps for it finds an answer rather than a silence. WPS ships no LICENSE
file; its sources carry no copyright line, no licence statement and no
author attribution. UCAR distributes it as part of the WRF modelling
system, and the declaration above is the only statement either half of that
system carries.

Nine WPS sources with no WRF counterpart -- rrpr.F, gribcode.F, output.F,
rd_grib1.F, rd_grib2.F, new_storage.F, process_tile_module.F,
interp_module.F and read_met_module.F90 -- are cited 48 times across four
first-party Rust crates, 42 of those in tools/grib1_bridge. Its
met_intermediate reimplements ungrib: it decodes GRIB by the user's own
Vtable, applies ungrib's repairs, derives the fields ungrib derives, and
writes the version-5 intermediate format. The projection math in
tools/rustwx/crates/static-fields and tools/rw_wps/crates/mapped-engine is a
separate case: it comes from module_llxy.F, which is a WRF file --
share/module_llxy.F -- so it sits inside the declaration above, and its own
header records that it was adapted from NCEP's w3 library, a work of the
United States Government.

This distribution packages certain data assets generated with or copied
from the WRF v4.6.1 distribution, including: Thompson microphysics
lookup tables (generated with WRF's own table generator and
SHA-256-pinned), Noah and Noah-MP land-surface parameter tables
(VEGPARM.TBL, SOILPARM.TBL, GENPARM.TBL, LANDUSE.TBL, MPTABLE.TBL;
byte-identical to WRF's run directory), the Kain-Fritsch lookup table,
the P3 lookup table, an ERA5 Vtable, two WRF Fortran radiation sources
kept as transcription authorities, and the RRTMG radiation data files
named below.

--------------------------------------------------------------------------

RRTMG (Atmospheric and Environmental Research, Inc.)

The legacy-RRTMG radiation option transcribes WRF v4.6.1's RRTMG
longwave and shortwave schemes -- about 18,800 lines across thirteen
shipped files, beginning with woof/core/rrtmg_lw.py, whose docstring
names phys/module_ra_rrtmg_lw.F and its source SHA-256 -- and packages
the RRTMG_LW_DATA and RRTMG_SW_DATA coefficient files and the ozone
climatology files distributed with WRF.

RRTMG is the work of Atmospheric and Environmental Research, Inc.
(AER), not of UCAR. WRF's copy carries AER's own notice: "Copyright
2002-2008, Atmospheric & Environmental Research, Inc. (AER). This
software may be used, copied, or redistributed as long as it is not
sold and this copyright notice is reproduced on each copy made." That
notice appears seven times in module_ra_rrtmg_lw.F and nine times in
module_ra_rrtmg_sw.F, in three copyright-year spans. All three spans
are reproduced verbatim in
licenses/NOTICE-AER-RRTMG-as-distributed-with-WRF.txt and beside the
packaged data in woof/data/wrf_radiation/.

WOOF takes this material under AER's own current grant instead. AER
publishes RRTMG_LW and RRTMG_SW at https://github.com/AER-RC under the
BSD 3-Clause licence, "Copyright (c) 2020, Atmospheric and
Environmental Research"; that offer is public, current and
unconditional, and a copyright holder may licence its own work on any
terms it chooses. The BSD-3-Clause text is reproduced in full at
licenses/LICENSE-AER-RRTMG-BSD-3-Clause.txt, which is how its clause 1
(source) and clause 2 (binary) notice conditions are performed.

The four legacy non-RRTMG files (woof/core/rrtm_lw.py, rrtm_taumol.py,
rrtm_tables.py, rrtm.py) transcribe WRF's phys/module_ra_rrtm.F, and
the packaged RRTM_DATA belongs with them. That WRF file carries AER
banner blocks and author names -- Eli J. Mlawer, Steven J. Taubman,
Shepard A. Clough -- but no copyright line and no
licence clause, so it falls under WRF's public-domain declaration. AER
is credited here as a matter of accuracy rather than of condition.

An earlier version of this file said that AER's "code and data carry
AER's copyright and license notices, which are retained with the
assets". That was not true: RRTMG_LW_DATA and RRTMG_SW_DATA are
unformatted Fortran binaries that carry no notice, and no AER notice
existed anywhere in the distribution. The sentence is withdrawn and
replaced by the reproductions named above.

--------------------------------------------------------------------------

RTE+RRTMGP

Two separate works, with two different copyright lines, are involved
and both are reproduced.

The software: about 5,700 lines in woof/core/rrtmgp.py and the
rrtmgp_*.cu / rrtmgp_planck_common.cuh kernels transcribe
earth-system-radiation/rte-rrtmgp at the commit their headers cite.
That project is BSD 3-Clause, "Copyright (c) 2015-2025, Atmospheric and
Environmental Research, Regents of the University of Colorado, Trustees
of Columbia University in the City of New York". Its text is at
licenses/LICENSE-RTE-RRTMGP-BSD-3-Clause.txt.

The data: the k-distribution files packaged by the companion recast-woof-data
distribution come from the rrtmgp-data repository and are BSD 3-Clause
under a different copyright line, "Copyright (c) 2015-2018, Atmospheric
and Environmental Research and Regents of the University of Colorado".
That text ships beside the data at woof_data/data/rrtmgp/LICENSE with
a per-file PROVENANCE.md giving URLs, tag, commit and SHA-256.

--------------------------------------------------------------------------

Numerical Recipes Software

WRF's phys/module_mp_thompson.F carries "(C) Copr. 1986-92 Numerical
Recipes Software 2.02" immediately above and below its REAL FUNCTION
GAMMLN(XX). WOOF transcribes that routine's Lanczos coefficients and
evaluation in three shipped files -- thompson_aerosol_contract.py and
milbrandt2_constants.py under woof/core/, and
woof/core/kernels/nssl2_fused_gs.cu -- and bakes its values into the
tables in woof/core/kernels/thompson_aerosol_common.cuh.

The notice is reproduced, and WOOF's position on it is stated rather
than left silent, at licenses/NOTICE-Numerical-Recipes.txt.

--------------------------------------------------------------------------

FP32 libm transcriptions -- Arm optimized-routines

Several schemes are graded bitwise against a gfortran/glibc reference,
so WOOF carries hand transcriptions of the standard single-precision
libm routines rather than calling CUDA's, whose expf, powf and tgammaf
are measurably different functions. The transcriptions live in
woof/core/noahmp_libm.py, woof/core/mynn_pbl.py, woof/core/ruc.py,
in woof/core/kernels/glibc_flt32.cuh, and -- duplicated per kernel,
because CUDA translation units do not share device code -- in the .cu
files under woof/core/kernels/.
tests/test_cuda_libm_table_copies.py enumerates the table copies and
holds them to one spelling, so the scope of this section is
machine-checkable rather than prose.

The logf, expf, exp2f and powf cores, and their data tables, are Arm's
work. They were written by Szabolcs Nagy and published at
https://github.com/ARM-software/optimized-routines (math/logf.c,
math/expf.c, math/exp2f.c, math/powf.c and the corresponding
math/*_data.c) in August 2017, then imported into glibc for 2.27/2.28
by their own author. WOOF transcribed them from glibc's copy at
sysdeps/ieee754/flt-32/, which reproduces Arm's text unchanged apart
from symbol renaming, branch-hint and cast macro spellings, and
symbol-versioning declarations -- none of which WOOF reproduces. Those
transcriptions appear in fourteen files under woof/core/kernels/ --
glibc_flt32.cuh,
mynn_dmp_sibling.cu, mynn_pbl.cu, noahmp_bareflux.cu,
noahmp_fluxprep.cu, noahmp_leaves.cu, noahmp_radiation.cu,
noahmp_snow.cu, noahmp_soilwater.cu, noahmp_vegeflux.cu,
noahmp_vegprecip.cu, noahmp_water.cu, rrtmg_lw.cu and rrtmg_sw.cu -- and
once more, in Python, in woof/core/noahmp_libm.py. Fifteen files, and the
count is machine-derived: those are exactly the files that reproduce Arm's
coefficient tables.

The grant WOOF elects is Arm's MIT, and the sequence matters enough to
state exactly rather than compress. At the vintage glibc imported -- Arm
86067a740541, 2017-08-11, taken into glibc at 4ea49f4c08ee on 2017-09-04
-- those files read "Copyright (C) 2017, ARM Limited" under Apache-2.0.
Arm relicensed the same work to MIT fifteen months later, at 11253b0b9d6b
on 2018-11-12, and from there each file carries

    Copyright (c) 2017-2018, Arm Limited.
    SPDX-License-Identifier: MIT

A copyright holder may licence its own work on any terms it chooses, and
Arm's MIT offer over this code is public, current, and made by the
retained copyright holder; that is the offer WOOF takes. (Current Arm
upstream offers it under MIT OR Apache-2.0 WITH LLVM-exception. MIT is
elected over the Apache branch because the LLVM exception waives
Apache-2.0's notice duties only for object code, whereas WOOF ships
these transcriptions as source. The Apache-2.0 the 2017 files carried
would also have been compatible with this distribution, so nothing turns
on the election except which text this file has to reproduce.) Arm's
LICENSE, reproduced in full as MIT requires -- the same text is at
licenses/LICENSE-Arm-optimized-routines-MIT.txt and beside the code at
woof/core/kernels/LICENSE-third-party.txt:

    MIT License

    Copyright (c) 1999-2019, Arm Limited.

    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.

--------------------------------------------------------------------------

FP32 libm transcriptions -- FDLIBM (Sun Microsystems, Inc.)

The expm1f, tanhf, atanf and log10f reductions descend from FDLIBM,
developed at SunPro, a Sun Microsystems, Inc. business, and converted to
single precision at Cygnus Support by Ian Lance Taylor; glibc carries them
substantially unmodified and presents them, in its own LICENSES file, as
Sun's code. They appear in twelve shipped files: nine under
woof/core/kernels/ -- mynn_dmp_sibling.cu, mynn_pbl.cu,
noahmp_bareflux.cu, noahmp_energy.cu, noahmp_fluxprep.cu,
noahmp_glacier.cu, noahmp_leaves.cu, noahmp_vegeflux.cu and ruc.cu -- and
three in Python: woof/core/noahmp_libm.py, woof/core/mynn_pbl.py and
woof/core/ruc.py.

Two entries left that list during the engine's 2.6.6 development, included in
2.7.0, and the reason is recorded here rather than left as a silent
shrinkage. woof/core/kernels/glibc_flt32.cuh carried FDLIBM's expm1f
(s_expm1f.c) and lgammaf reduction (e_lgammaf_r.c) as helper routines of
the engine's earlier Grell-Freitas gamma. When that gamma was replaced at 2.6.6
nothing called them any more, and they were removed. That removal took out
the only transcription of e_lgammaf_r.c anywhere in this repository, which
is why lgammaf no longer appears in the list of routines above. The notice
below is unchanged and still required by, and reproduced for, the twelve
files that remain.

FDLIBM's notice, preserved here as its sole condition requires, and
also at licenses/LICENSE-FDLIBM-SunPro.txt and beside the code at
woof/core/kernels/LICENSE-third-party.txt:

    Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.

    Developed at SunPro, a Sun Microsystems, Inc. business.
    Permission to use, copy, modify, and distribute this
    software is freely granted, provided that this notice
    is preserved.

Where WOOF must match a glibc 2.39 reference bit for bit, these
transcriptions follow glibc's versions of these files, which differ from
other FDLIBM descendants at a small number of points. Through 2.6.5 there
were three: atanf's 2**25 large-argument threshold, the fabsf spelling in
log10f's zero path, and a redundant zero guard in tanhf. Two of the three
are gone at 2.6.6, because neither did any work. tanhf's guard is
unreachable -- the |x| < 2**-55 branch below it returns x*(1+x), which is x
for both signed zeros -- and log10f's zero path divided -2**25 by |x| only
to raise divide-by-zero on the way to -inf, where WOOF now returns the -inf.
Both forms were compiled side by side against the shipped kernel bodies and
compared on all 4,294,967,296 float32 bit patterns: zero differ. Nothing in
this distribution reproduces either spelling any more.

atanf's threshold stays, and the reason is the opposite one: it is a fact a
black-box measurement recovers, not a spelling read from a source. It was
measured from the running library, and woof/core/noahmp_libm.py records the
measurement at the point of use. lgammaf's 2**26 and 2**-30 thresholds were
on the list until 2.6.6 as well; the lgammaf transcription is deleted, so
nothing reproduces them either.

The two grants above are scoped by function name on purpose. They
cover the routines named in them and nothing else; no other code in
those files takes anything from Arm or from Sun, and none of it is
offered to a reader on the strength of these two notices.

--------------------------------------------------------------------------

Material removed during 2.6.6 development and included in 2.7.0

Through engine release 2.6.5, woof/core/kernels/glibc_flt32.cuh carried
the engine's earlier float32 gamma for Grell-Freitas, together with three helper
routines that nothing else called: expm1f and lgammaf (FDLIBM, above) and
exp2f (Arm, above). At 2.6.6 that gamma was replaced by the current one,
which is correctly rounded on every float32 argument the scheme can reach,
where the reference it is measured against is not, and the three helpers
were removed because nothing called them any more. The gamma in
glibc_flt32.cuh, the earlier one and the current one alike, is WOOF's own
work under this distribution's licence, and no third-party notice in this
file applies to it. Earlier releases of this file described the earlier
gamma as derived from glibc and advised against redistributing 2.6.5 and
earlier; that description was wrong, and the advice built on it is
withdrawn. The replacement, and the deliberate divergence from WRF it
creates, are documented in docs/gf_gamma_known_delta.md.

--------------------------------------------------------------------------

Py-ART (UChicago Argonne, LLC)

tools/region_global_dealias/ is a Rust port of Py-ART's
dealias_region_based, driven from woof/obs/dealias_region.py and
shipped as a compiled library in the release bridge bundles and in
platform wheels. Py-ART is "Copyright (c) 2013, UChicago Argonne, LLC",
produced under U.S. Government contract DE-AC02-06CH11357 for Argonne
National Laboratory, and is BSD 3-Clause with an added government-rights
paragraph requiring that modified derivatives be clearly marked so as
not to be confused with the version available from ANL. WOOF's port is
a modified derivative and is named accordingly: it is
region_global_dealias, not Py-ART.

The full text is at licenses/LICENSE-PyART-Argonne-BSD-3-Clause.txt and
in the port's own tree at tools/region_global_dealias/PYART-LICENSE.txt.
Because the library ships COMPILED, and BSD-3-Clause clause 2 attaches to
that form separately, the same text is reproduced in the binary-form
notice described under "Compiled artifacts" below -- which is what the
port's own THIRD-PARTY-NOTICES.md asks for in terms. The port is offered
under (MIT OR Apache-2.0) AND BSD-3-Clause; its LICENSE-MIT,
LICENSE-APACHE, THIRD-PARTY-NOTICES.md and VENDORED.md sit beside it.

--------------------------------------------------------------------------

MPAS (Los Alamos National Security, LLC and UCAR)

tools/rustwx/crates/rw-mpas is a Rust port of parts of MPAS-Atmosphere
v8.4.1. It is 44,768 lines and it names what it takes: init_atm_case_lbc
from core_init_atmosphere/mpas_init_atm_cases.F, the vertical
interpolation of mpas_init_atm_vinterp.F, the horizontal interpolation and
latlon_to_ij of mpas_init_atm_hinterp.F and mpas_init_atm_llxy.F, the
gravity-wave-drag fields of mpas_init_atm_gwd.F, the deformation and
advection weights of mpas_atm_advection.F and core_sw/mpas_sw_advection.F,
mpas_in_cell from mpas_geometry_utils.F, the constants of mpas_constants.F,
and the soil and surface companions of
core_atmosphere/physics/mpas_atmphys_initialize_real.F. It builds the five
rw_mpas_* executables -- mesh, static, init, convert, lbc -- which are
distributed COMPILED, in the release bridge bundles and in platform wheels
at woof/libexec/bridges/.

MPAS-Model is BSD 3-Clause, "Copyright (c) 2013-2019, Los Alamos National
Security, LLC (LANS) ... and the University Corporation for Atmospheric
Research (UCAR)", with a U.S. Government rights paragraph that additionally
requires a modified derivative to be clearly marked so as not to be
confused with the version available from LANS and UCAR. WOOF's port is
such a derivative and is named accordingly: it is rw_mpas, not MPAS, and
the binaries, the crate and the CLI all carry that name. Clause 3 forbids
using the names of LANS, UCAR or their contributors to endorse or promote;
MPAS is named here only to say what was transcribed, and the WRF section
above already records that WOOF is not affiliated with or endorsed by
UCAR.

The full text is at licenses/LICENSE-MPAS-BSD-3-Clause.txt and beside the
code at tools/rustwx/crates/rw-mpas/LICENSE-MPAS-BSD-3-Clause.txt. Because
the port ships compiled and clause 2 attaches to that form separately, the
same text is reproduced in the binary-form notice described under
"Compiled artifacts" below.

Two neighbours are NOT covered by this and the difference is worth stating.
The MPAS column-batch physics seam -- woof/core/mpas_column_batch.py,
mpas_cycle_bridge/ and MPAS-SEAM-CONTRACT.md -- transcribes no MPAS code
at all: it presents an MPAS-shaped interface onto WOOF's own physics, and
its only references to the MPAS sources are three citations of file and
line for behavioural facts (mpas_atmphys_vars.F:340,
mpas_atmphys_driver_convection.F:718, mpas_atmphys_interface.F:653-702).
And WOOF writes MPAS-format NetCDF files and reads MPAS meshes; a file
format is not expression and no notice is owed for speaking one.

--------------------------------------------------------------------------

NumPy

tools/rustwx/crates/static-fields/src/projection/npmath.rs ports four of
NumPy's own float32 SIMD kernels -- sin, cos, exp and log. The static-field
builder's contract is byte parity with NumPy on the deployment platform,
and NumPy does not route those four through libm; it routes them through
its own kernels, so parity means porting them. The port is deliberate
reproduction and says so: same constants, same fused-multiply-add
sequence, from numpy/_core/src/umath/loops_trigonometric.dispatch.cpp and
numpy/_core/src/umath/loops_exponent_log.dispatch.c.src at v2.2.6, with
coefficients from npy_simd_data.h. Verbatim reference copies of those
three upstream files, 1,973 lines, are kept at
tools/static_rust_port/numpy_src/.

NumPy is BSD 3-Clause, "Copyright (c) 2005-2024, NumPy Developers" at
v2.2.6. Both notice clauses attach and both are performed. Clause 1,
source form: the text is at licenses/LICENSE-NumPy-BSD-3-Clause.txt and
beside the code at tools/static_rust_port/numpy_src/ and
tools/rustwx/crates/static-fields/. Clause 2, binary form: static_fields
is one of the artifacts named in woof.bridge_assets.BUNDLED_ARTIFACTS and
the rw_mpas_* executables link it, so it reaches users compiled, in the
release bridge bundles and in platform wheels; the same text is reproduced
in the binary-form notice described under "Compiled artifacts" below.

This entry arrived late and the reason is recorded because it is the shape
of gap a licence census misses. The census sorted third-party code into
vendored crates and pip dependencies. NumPy is a pip dependency, so it was
classified as installed rather than redistributed -- true of the Python
package, false of a first-party crate that ports NumPy's kernels into
itself. A file carrying third-party expression while belonging to no
dependency tree is in neither bucket. MPAS above was found the same way and
in the same pass.

--------------------------------------------------------------------------

WMO BUFR master tables, as distributed by ECMWF ecCodes

tools/rustwx/crates/rw-obs/tables/bufr/element.table and sequence.def are
Table B and Table D of the WMO FM 94 BUFR master tables, version 46, as
distributed in ECMWF's ecCodes (definitions/bufr/tables/0/wmo/46/), which
is licensed under the Apache License, Version 2.0, Copyright 2005- ECMWF.
They are compiled into the rw-obs
library, and the rw_wis2 decoder reads WIS2 BUFR messages through them. The provenance
note beside them, tools/rustwx/crates/rw-obs/tables/bufr/NOTICE.md, says the
same and travels with the tables; the Apache-2.0 text is this distribution's
own LICENSE.

--------------------------------------------------------------------------

Source Sans 3 (Adobe) -- SIL Open Font License 1.1

tools/rustwx/crates/rustwx-render/assets/fonts/SourceSans3-Regular.ttf
and SourceSans3-Semibold.ttf are compiled into the renderer binaries
with include_bytes!, so every distributed renderer contains them.
They are "Copyright 2010-2024 Adobe (http://www.adobe.com/), with
Reserved Font Name 'Source'", licensed under the SIL Open Font License,
Version 1.1.

The OFL requires its notice and licence to accompany every copy, source
or binary, and clause 5 forbids releasing the Font Software under any
other licence. The Apache-2.0 grant this distribution makes over its own
work therefore does not extend to these two files: they remain under the
OFL alone. Their text is at
licenses/LICENSE-SIL-OFL-1.1-SourceSans3.txt and beside the fonts at
tools/rustwx/crates/rustwx-render/assets/fonts/SourceSans3-LICENSE.md.
Because the fonts travel inside a compiled binary, the same text is also
reproduced in the binary-form notice described under "Compiled artifacts"
below; a renderer shipped without it would satisfy clause 2 nowhere.

--------------------------------------------------------------------------

Compiled artifacts (release bridge bundles and platform wheels)

Thirty-four Rust executables and libraries (woof.bridge_assets
.BUNDLED_ARTIFACTS) are distributed in compiled form: as GitHub release
bridge bundles, and staged into platform wheels at woof/libexec/bridges/.
They are built from the three bridge dependency trees below, and from
first-party crates that carry ported third-party expression of their own:
they statically link the Py-ART-derived dealiaser, the rw_mpas_* five are
built from the MPAS port, static_fields carries the NumPy kernel port, and
the renderer among them embeds two Source Sans 3 fonts with include_bytes!.
The vendored trees are not the whole of what a binary here contains, and
reading them as if they were is what left MPAS and NumPy unnotified until
the 2.6.6 development lane, included in 2.7.0.

Every licence involved conditions redistribution IN BINARY FORM on the
notice accompanying the distribution -- BSD-3-Clause clause 2, Apache-2.0
section 4, MIT, ISC, Zlib, the Unicode licence, SIL OFL 1.1 clause 2. That
is a separate condition from the source-form one, and until now nothing
performed it: the bundles carried no licence text at all.

They do now. licenses/THIRD-PARTY-LICENSES-bridge-binaries.txt reproduces,
in one file, the licence texts of the 264 original bridge dependencies (179 distinct
texts, deduplicated by SHA-256 so that no copyright line is lost), the
Py-ART/Argonne notice, the MPAS and NumPy notices for the first-party
ports, and the SIL OFL. The inventory says which text belongs to which crate.
The same bytes reach a bundle consumer at
assets/basemap/THIRD-PARTY-LICENSES.txt inside the archive -- that
directory is what tools/build_bridge_bundle.py walks, so the notice
travels with the binaries -- and a wheel consumer at
recast_woof-<version>.dist-info/licenses/licenses/, under the same file name.
The two copies are generated together and are byte-identical; the file
carries its own regeneration recipe.

--------------------------------------------------------------------------

Vendored Rust crates

Three Rust workspaces vendor their dependency sources for offline,
locked builds: tools/rustwx/vendor, tools/grib1_bridge/vendor and
tools/rw_wps/vendor. Together they hold 348 crate directories, 264
distinct name-and-version pairs. Each vendored crate retains its own
licence and, where upstream shipped a licence file, that file. Those
files are also reproduced, deduplicated and indexed by crate, in the
binary-form notice described under "Compiled artifacts" above, because a
compiled consumer never sees the vendor tree.

The census contains no GPL, LGPL, AGPL, SSPL, CDDL, EPL or MPL grant.
The single copyleft token anywhere in it is r-efi's disjunctive
"MIT OR Apache-2.0 OR LGPL-2.1-or-later"; WOOF elects MIT and the
copyleft branch is not taken.

Two facts are recorded here because they are gaps rather than
performances, and a notice that omitted them would be worth less:

  * Twenty of the 348 crate directories carry no licence text file.
    Twelve of those directories hold the project's own crates
    (metrust x2, wx-core x2, wx-field x2, wx-math x2, wx-radar x2,
    wrf-core, grib-core), where the only obligation is to ourselves.
    The other eight hold four genuine third-party upstreams, and their
    text is therefore not being reproduced in the vendored tree:
    puffin (Embark Studios, MIT OR Apache-2.0), r-efi (MIT elected from
    its disjunction), and netcdf-reader and hdf5-reader (roteiro-gis,
    https://github.com/roteiro-gis/netcdf-rust, MIT OR Apache-2.0).
    Their grants are stated here, which is the substance of what those
    grants ask for; restoring the files themselves is a re-vendor
    operation rather than an edit, because six of those eight
    directories carry a .cargo-checksum.json that writing into them
    would invalidate, breaking the locked offline build.
  * wrf-core 0.1.0 and grib-core 0.1.0 declare no licence field. Both
    are Fahrenheit Research's own work. grib-core is an export of
    https://github.com/FahrenheitResearch/rusty-weather, MIT as
    declared by that workspace's Cargo.toml at the pinned revision
    recorded in tools/grib1_bridge/vendor/VENDOR.md; wrf-core is the
    core of wrf-rust, MIT as published on PyPI. Those declarations are
    reproduced rather than invented here, and the crate metadata is
    deliberately left as vendored so that the vendored tree stays a
    faithful copy of what was vendored.

tools/rustwx and tools/rw_wps declare license = "MIT" in their own
Cargo.toml files, with the text at tools/rustwx/LICENSE. Those subtrees
are MIT-licensed inside an Apache-2.0 repository; MIT permits that, and
this sentence is here so the root LICENSE is not read as overriding
them. tools/grib1_bridge declares no licence field of its own and takes
the repository's Apache-2.0 grant, as any subtree that declares nothing
does.

--------------------------------------------------------------------------

wrf-rust and wrf-core

Product rendering (woof render) uses the "wrf-rust" Python package
(imported as "wrf") as its diagnostic core. wrf-rust is a separate
project with its own MIT licence and is installed via the optional
[render] extra; the Python package is not vendored.

An earlier version of this file said wrf-rust "is not vendored in this
distribution" without qualification. That was inaccurate: the Rust
crate wrf-core 0.1.0, the library underneath it, IS vendored, at
tools/rustwx/vendor/crates-io/wrf-core. See "Vendored Rust crates".

--------------------------------------------------------------------------

Observation network and radar site tables

woof/obs/data/surface_networks.json is frozen from the Iowa
Environmental Mesonet's networks feed at Iowa State University
(https://mesonet.agron.iastate.edu/geojson/networks.geojson), with the
source URL, byte count and SHA-256 recorded in the file itself. IEM
data are made freely available and attribution is requested; this is
that attribution.

woof/obs/data/radar_sites_odim.json is frozen from the EUMETNET
weather-radar locations collection served by MeteoGate
(https://api.meteogate.eu/), with the same provenance fields. The
elevations were harvested separately from ODIM polar volumes, as the
file records. EUMETNET and MeteoGate are credited as the source; the
terms of the underlying feed are between the user and the provider for
any further retrieval.

--------------------------------------------------------------------------

GRIB parameter tables

The vendored grib-core decoder carries ECMWF GRIB1 local table 128
parameter rows and NCEP GRIB2 Code Table 4.2 entries in
src/grib1/tables.rs and src/grib2/tables.rs. The ECMWF parameter
database is published by the European Centre for Medium-Range Weather
Forecasts under CC-BY-4.0 and is credited here; the NCEP and WMO tables
are United States Government work. Parameter names, abbreviations and
units are facts about a published standard rather than expression, but
the attribution costs nothing and its absence would be noticed.

--------------------------------------------------------------------------

Map and boundary data

The renderer's basemap assets, carried in the release bridge bundles,
are Natural Earth 110m and 10m vector layers (public domain,
https://www.naturalearthdata.com/) and the U.S. Census Bureau
cartographic boundary file cb_2023_us_county_5m (a work of the United
States Government, not subject to copyright under 17 U.S.C. 105).
Neither carries a redistribution condition. Source URLs and status are
recorded in the asset directories' README files.

--------------------------------------------------------------------------

RFMIP data

No RFMIP file is in this repository or in any recast-woof or
recast-woof-data artifact. The four RFMIP clear-sky reference results are CC-BY-NC-SA-4.0
(non-commercial) and the input file's embedded licence attribute names
CC-BY-SA-4.0 while linking CC-BY-4.0; the tests that read them fetch them
at test time from rrtmgp-data v1.9, SHA-256 verified
(woof/core/rfmip_upstream.py).

RRTMGP reads 136 numbers derived from that input file (produced by the
University of Colorado for RFMIP, CMIP6 input4MIPs UColorado-RFMIP-1-2):
woof_data/data/rrtmgp/rrtmgp-trace-gas-climatology.json in recast-woof-data,
offered under CC-BY-SA-4.0, the stricter of the two readings, with its
text beside it. The Apache-2.0 grant in the root LICENSE does not extend
to that table.

--------------------------------------------------------------------------

Optional NVIDIA components

The gpu, gpu-cu12 and gpu-cu13 extras install CuPy (MIT) with its
[ctk] marker, which pulls the NVIDIA CUDA redistributable wheels
(nvidia-*) as dependencies. Those NVIDIA components are
proprietary and are governed by the NVIDIA Software License Agreement,
not by this distribution's Apache-2.0 grant. They are installed by the
user's package manager and are not redistributed here; the extra is
named so that "open licence" is not read as covering the whole install.

--------------------------------------------------------------------------

Data services (not redistributed)

WOOF downloads or templates requests for data from NOAA (GFS via the
NOMADS filter service and AWS Open Data; HRRR via AWS Open Data), from
the Copernicus Climate Data Store (ERA5; use is subject to the
Copernicus license and requires the user's own account), and relies on
the user-staged NCAR WPS geographical dataset (WPS_GEOG) for static
fields. None of these datasets are redistributed by this repository;
their terms are between the user and the provider.

`woof fetch-geog` downloads WPS_GEOG by default from NCAR's own server
(`--source hf` takes a byte-for-byte mirror of the same tarballs). Two of
its sources carry terms of their own:

  * soilgrids.tar.bz2 (the Noah-MP soil archive, `woof mesh` only) is
    derived from SoilGrids250m by ISRIC -- World Soil Information (Hengl
    T. et al. 2017, "SoilGrids250m: Global gridded soil information based
    on machine learning", PLOS ONE 12(2): e0169748), licensed CC BY 4.0
    (https://creativecommons.org/licenses/by/4.0/); NCAR generated the
    WPS tiles and the mirror does not modify them.
  * soiltype_top_30s and soiltype_bot_30s use the FAO-UNESCO Soil Map of
    the World outside the United States (STATSGO, USDA public domain,
    inside it). FAO applies CC BY 4.0 to its datasets unless their own
    metadata says otherwise; the Digital Soil Map of the World catalogue
    record states no licence. Credit: FAO/UNESCO Soil Map of the World.

With `[static.highres]` enabled, WOOF downloads high-resolution static
sources into the user's own cache_root; none is redistributed here and
each run's receipt carries its source's attribution. The default land
cover carries terms of its own:

  * CGLC-MODIS-LCZ, the 100 m global land cover WRF and WPS ship from
    version 4.5:
    Demuzere M., He C., Martilli A. and Zonato A. (2023),
    doi:10.5281/zenodo.7670653, licensed CC BY 4.0
    (https://creativecommons.org/licenses/by/4.0/). It is built from the
    Copernicus Global Land Service LC100 v3 (Buchhorn et al. 2020) and
    the global Local Climate Zone map (Demuzere et al. 2022, Earth Syst.
    Sci. Data 14, 3835). WOOF fetches the published GeoTIFF whole from
    Zenodo, unmodified, and maps its classes into WRF's MODIS categories
    at preparation time.


========================================================================
The hex model (woof.hex)
========================================================================

woof hex (GPU-native variable-resolution atmospheric model core)
Copyright 2026 Recast WOOF contributors

Licensed under the Apache License, Version 2.0. Vendored components and
upstream works from which this distribution derives retain their own
licenses and notices, reproduced below.

--------------------------------------------------------------------------

MPAS-Atmosphere (LANL / UCAR)

The hex model reimplements the dynamical core of MPAS-Atmosphere (Model for
Prediction Across Scales) version 8.4.1 for CUDA devices, with pinned
source-line citations. The earlier v8.2.3 lane it grew from is still
carried and selectable, and the standalone Fortran oracles under
tools/mpas_operator_oracle/ and tools/mpas_step_oracle/ transcribe loop
bodies of MPAS-Atmosphere v8.2.3 (cited by file and line in each source);
those transcriptions are MPAS-derived portions under the same terms. MPAS-Atmosphere is developed by the Los Alamos
National Laboratory and the University Corporation for Atmospheric
Research / National Center for Atmospheric Research, and is distributed
under the BSD-3-Clause terms reproduced at the end of this section. Those
terms govern the MPAS-derived portions of this distribution and travel
with every copy of it.

That license separately requires that derivative works be clearly marked
so as not to be confused with the version available from LANS and UCAR.
This is that marking:

  - It ships inside the recast-woof distribution as the command
    `woof hex` and the namespace woof.hex.
    The MPAS name is used only to state what this software derives from
    and what it is measured against.
  - Neither LANS, UCAR, NCAR nor their contributors endorse this
    software.
  - Results from woof hex are not results from MPAS-Atmosphere. Where
    the two are known to differ, the differences are measured, and the
    quantities are stated in README.md.

The cumulus scheme is a different generation from the reference:
the hex model carries the 2018 Grell-Freitas formulation, MPAS-A v8.4.1
carries the 2013 ensemble fork. They differ in closure membership, in the
rain conversion coefficient and its temperature dependence, and in
whether shallow convection precipitates. Three further differences are
measured and declared as divergences, judged against observations: an
upper-band potential-temperature drift, a convective rainfall deficit,
and a downstream condensate surplus.

Two of the MPAS-derived operators carry a further upstream lineage, which
MPAS-Model distributes inside its own tree under the terms reproduced
below. The orographic gravity-wave-drag operator in
woof/hex/cuda_gwdo_v841.py is a reimplementation of MPAS-Model's
physics_wrf/module_bl_gwdo.F, which is WRF-derived, and of
physics_mmm/bl_gwdo.F90, the Kim/YSU orographic gravity-wave-drag and
flow-blocking scheme from NCAR/MMM. Those files are cited by path and line
in the module that reimplements them. No source from either upstream is
copied into this distribution; the citations record what the CUDA operator
was written against. WRF itself is a public-domain work of NCAR/MMM; this
distribution states that lineage here rather than relying on the engine's
NOTICE to carry it.

The longitude arithmetic in woof/hex/mesh.py
(_grid_rotate_convert_xl_longitude and reconcile_grid_rotate_longitudes)
reproduces the convert_xl formula of MPAS-Tools grid_rotate.f90, pinned by
source digest in that module, so that a rotated mesh's stored longitudes
can be checked to the producer's own rounding. MPAS-Tools is distributed
by LANS under the same BSD-3-Clause terms as MPAS-Atmosphere, reproduced
below; no MPAS-Tools source file is copied into this distribution.

MPAS-Atmosphere license text, retained in full:

Copyright (c) 2013-2019,  Los Alamos National Security, LLC (LANS) (Ocean: LA-CC-13-047;
Land Ice: LA-CC-13-117) and the University Corporation for Atmospheric Research (UCAR).

All rights reserved. 

LANS is the operator of the Los Alamos National Laboratory under Contract No.
DE-AC52-06NA25396 with the U.S. Department of Energy.  UCAR manages the National
Center for Atmospheric Research under Cooperative Agreement ATM-0753581 with the
National Science Foundation.  The U.S. Government has rights to use, reproduce,
and distribute this software.  NO WARRANTY, EXPRESS OR IMPLIED IS OFFERED BY
LANS, UCAR OR THE GOVERNMENT AND NONE OF THEM ASSUME ANY LIABILITY FOR THE USE
OF THIS SOFTWARE.  If software is modified to produce derivative works, such
modified software should be clearly marked, so as not to confuse it with the
version available from LANS and UCAR.

Additionally, redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1) Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

2) Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.

3) None of the names of LANS, UCAR or the names of its contributors, if any, may
be used to endorse or promote products derived from this software without
specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

--------------------------------------------------------------------------

The regional engine (woof)

Every physics column in the hex forecast runs through the regional
engine's column-batch seam. The engine ships in this same distribution
under the Apache License, Version 2.0; the first part of this file
covers the WRF-, RRTMG- and RRTMGP-derived assets its physics carries.

--------------------------------------------------------------------------

Data services (not redistributed)

Meshes, static geographical fields and initial conditions are staged by
the user from their providers. None of those datasets are redistributed
by this project; their terms are between the user and the provider.


========================================================================
The global model (woof.globe)
========================================================================

woof global (Python package "woof.globe")
Copyright 2026 Recast WOOF contributors

Licensed under the Apache License, Version 2.0. This distribution is an
independent implementation. The upstream works, datasets and services it
derives from, reads, or is verified against retain their own licences and
notices, and the ones that place an obligation on a derivative are recorded
below.

This file travels with every copy of this distribution, in the source
distribution and inside the wheel, under Apache-2.0 section 4(c).

Where a licence requires its text to be reproduced rather than merely
named, it is reproduced. The short notices are in the sections below; the
full texts are in the licenses/ directory, which ships in the source
distribution and, through pyproject.toml's license-files declaration, in
the wheel at recast_woof-<version>.dist-info/licenses/licenses/ (PEP 639
keeps each file's source path, hence the doubled component). Every section
below names the file that carries its text.

Notices also sit beside the code they belong to, which is what several of
these licences ask for and what a reader looking at one file rather than at
the whole distribution finds first. woof/globe/core/rrtmgp.py and
woof/globe/core/npref.py open with the notice for what they transcribe.
The CUDA sources cannot: their bytes are the source_sha256 a run receipt
records, and a comment in one would move that digest without moving a
compiled image, so their notice is
woof/globe/core/kernels/LICENSE-third-party.txt, in the same directory.
The four WRF parameter tables ship with
woof/globe/data/noah_tables/LICENSE-WRF.txt beside them.

--------------------------------------------------------------------------

Relationship to the regional engine

The global model runs on the regional engine, which ships in this same
distribution: the GRIB2 source engine, the observation front doors, the
static-field builder, the NetCDF bridge, the LETKF filter core, the wrfout
writer and the product renderer are all the engine's, and the first part
of this file covers them. Both parts apply.

The physics is the exception, and it is carried rather than depended on.
The scheme modules this model was graded with, their CUDA device sources
and the Noah parameter tables travel inside this distribution, as
woof.globe.core and woof/globe/data/noah_tables, cut from the source
revision SOURCE.md names. They carry the same Apache-2.0 terms they carry
there, and the third-party notices below cover the references they are
written from.

Two modules that were part of the engine's source tree moved here when this
package was carved out of it, because each had exactly one consumer and that
consumer is this model: the global physics registry (now
woof.globe.physics.registry) and the rows-grid helper (now
woof.globe.statics_rows). They carry the same Apache-2.0 terms they carried
there.

--------------------------------------------------------------------------

WRF / NCAR / UCAR

This software is not affiliated with, endorsed by, or sponsored by the
National Center for Atmospheric Research (NCAR) or the University Corporation
for Atmospheric Research (UCAR). The Weather Research and Forecasting (WRF)
model, developed at NCAR, is the reference for the physics parameterizations
this model runs through its native adapters, and "WRF", "WPS" and "wrfout"
are used nominatively to name that reference and the file format it defined.

The parameterization schemes named in this model's configuration surface,
the Noah land-surface model, the YSU planetary boundary layer, Morrison
microphysics, Grell-Freitas and New Tiedtke convection, RRTMG and RTE+RRTMGP
radiation, are published schemes with their own authors and their own
notices. This distribution carries its own transcriptions of those schemes
in woof.globe.core, written from the published descriptions and the
reference sources rather than copied from them, and it carries four WRF
parameter tables verbatim from WRF's run/ directory: LANDUSE.TBL,
VEGPARM.TBL, SOILPARM.TBL and GENPARM.TBL, in
woof/globe/data/noah_tables, with a provenance note beside them. UCAR
asks that its notice travel with any copy of WRF, so that notice is
reproduced here in full:

  WRF was developed at the National Center for Atmospheric Research (NCAR)
  which is operated by the University Corporation for Atmospheric Research
  (UCAR). NCAR and UCAR make no proprietary claims, either statutory or
  otherwise, to this version and release of WRF and consider WRF to be in
  the public domain for use by any person or entity for any purpose
  without any fee or charge. UCAR requests that any WRF user include this
  notice on any partial or full copies of WRF. WRF is provided on an "AS
  IS" basis and any warranties, either express or implied, including but
  not limited to implied warranties of non-infringement, originality,
  merchantability and fitness for a particular purpose, are disclaimed. In
  no event shall UCAR be liable for any damages, whatsoever, whether
  direct, indirect, consequential or special, that arise out of or in
  connection with the access, use or performance of WRF, including
  infringement actions.

  WRF is a registered trademark of the University Corporation for
  Atmospheric Research (UCAR).

That notice is also reproduced at licenses/LICENSE-WRF-public-domain.txt
and beside the tables at woof/globe/data/noah_tables/LICENSE-WRF.txt.

--------------------------------------------------------------------------

RRTMG (Atmospheric and Environmental Research, Inc.)

UCAR's declaration above disclaims UCAR's own claims. It cannot and does
not dispose of anyone else's, and WRF says so itself by preserving foreign
notices inside phys/. One body of code this distribution carries is one of
those, and its filename does not say so: the McICA subcolumn cloud
generator the radiation is driven with is WRF's RRTMG generator, not
rte-rrtmgp's.

woof/globe/core/kernels/rrtmgp_mcica.cu transcribes module
mcica_subcol_gen_sw in WRF v4.6.1 phys/module_ra_rrtmg_sw.F: the kissvec
generator at lines 2008-2040 and the maximum-random overlap walk at
1778-1813, as its own header says. Its host driver in
woof/globe/core/rrtmgp.py and its float64 mirror in
woof/globe/core/npref.py mirror the same routine, and both open with this
notice. Nothing else here transcribes RRTMG: the eight legacy RRTMG
translation units and the RRTMG coefficient files stay with the engine.

RRTMG is the work of Atmospheric and Environmental Research, Inc. (AER),
not of UCAR. WRF's copy carries AER's own notice, seven times in
module_ra_rrtmg_lw.F and nine times in module_ra_rrtmg_sw.F, in three
copyright-year spans:

  Copyright 2002-2008, Atmospheric & Environmental Research, Inc. (AER).
  This software may be used, copied, or redistributed as long as it is
  not sold and this copyright notice is reproduced on each copy made.
  This model is provided as is without any express or implied warranties.
                        (http://www.rtweb.aer.com/)

All three spans are reproduced at
licenses/NOTICE-AER-RRTMG-as-distributed-with-WRF.txt.

This distribution takes the material under AER's own current grant
instead. AER publishes RRTMG_LW and RRTMG_SW at https://github.com/AER-RC
under the BSD 3-Clause licence, "Copyright (c) 2020, Atmospheric and
Environmental Research"; that offer is public, current and unconditional,
and a copyright holder may licence its own work on any terms it chooses.
The BSD-3-Clause text is reproduced in full at
licenses/LICENSE-AER-RRTMG-BSD-3-Clause.txt, which is how its clause 1
(source) and clause 2 (binary) notice conditions are performed.

Version 0.1.0 filed this kernel under the RTE+RRTMGP section below, on the
strength of its name, and shipped neither AER text. That is the error this
section corrects.

--------------------------------------------------------------------------

RTE+RRTMGP

The radiation this model runs is a transcription of
earth-system-radiation/rte-rrtmgp. Three carried files hold the
transcription itself: the device kernels
woof/globe/core/kernels/rrtmgp_gas.cu, rrtmgp_cloud.cu and rrtmgp_rte.cu,
each of which cites upstream commit
fa107a16120051c4124305c6b3d4c87059119f58 in its own header
(rrtmgp_gas.cu line 3, rrtmgp_cloud.cu line 3, rrtmgp_rte.cu line 14). The
GPU scheme woof/globe/core/rrtmgp.py drives them and the float64 mirror
in woof/globe/core/npref.py mirrors them, and both open with this notice.

Three more files share the rrtmgp_ prefix and are NOT this work, named
here so the prefix is not read as the scope. rrtmgp_mcica.cu transcribes
WRF's RRTMG McICA generator and is covered by the section above.
rrtmgp_validation.cu is this project's own input validation, written
against the host validators in woof/globe/core/rrtmgp.py rather than
transcribed from anything. rrtmgp_planck_common.cuh is this project's own
in-kernel Planck derivation, pinned bitwise to rrtmgp_gas.cu.

rte-rrtmgp is BSD 3-Clause:

  Copyright (c) 2015-2025, Atmospheric and Environmental Research,
    Regents of the University of Colorado,
    Trustees of Columbia University in the City of New York.
  All rights reserved.

Clause 1 requires a source redistribution to retain that notice, the list
of conditions and the disclaimer. The full text is at
licenses/LICENSE-RTE-RRTMGP-BSD-3-Clause.txt.

The k-distribution DATA is a different work with an earlier copyright
line. It is not in this distribution: it arrives with the engine's
companion data package, which carries its own copy of that licence beside
the files. So does the trace-gas and ozone climatology RRTMGP reads, the
136 numbers derived from the RFMIP clear-sky inputs, with its CC-BY-SA-4.0
notice; no RFMIP file is in this distribution.

--------------------------------------------------------------------------

FP32 libm transcriptions -- Arm optimized-routines

The schemes carried here are graded bitwise against a gfortran/glibc
reference, so they call hand transcriptions of the standard
single-precision libm routines rather than CUDA's, whose expf, powf and
tgammaf are measurably different functions. In this distribution those
transcriptions are in one file,
woof/globe/core/kernels/glibc_flt32.cuh, which the kernel loader
prepends to the Grell-Freitas and New Tiedtke translation units.

The logf, expf, exp2f and powf cores, and their data tables, are Arm's
work. They were written by Szabolcs Nagy and published at
https://github.com/ARM-software/optimized-routines (math/logf.c,
math/expf.c, math/exp2f.c, math/powf.c and the corresponding
math/*_data.c) in August 2017, then imported into glibc for 2.27/2.28 by
their own author, and transcribed here from glibc's copy at
sysdeps/ieee754/flt-32/.

The grant elected is Arm's MIT. At the vintage glibc imported (Arm
86067a740541, 2017-08-11, taken into glibc at 4ea49f4c08ee on 2017-09-04)
those files read "Copyright (C) 2017, ARM Limited" under Apache-2.0; Arm
relicensed the same work to MIT fifteen months later, at 11253b0b9d6b on
2018-11-12, and from there each file carries

    Copyright (c) 2017-2018, Arm Limited.
    SPDX-License-Identifier: MIT

A copyright holder may licence its own work on any terms it chooses, and
Arm's MIT offer over this code is public, current, and made by the
retained copyright holder. MIT requires its copyright notice and its
permission notice to travel with every copy; Arm's LICENSE is reproduced
in full at licenses/LICENSE-Arm-optimized-routines-MIT.txt and beside the
code at woof/globe/core/kernels/LICENSE-third-party.txt.

--------------------------------------------------------------------------

FP32 libm transcriptions -- FDLIBM (Sun Microsystems, Inc.)

The same header carries expm1f and the positive arm of the lgammaf
reduction, which descend from FDLIBM, developed at SunPro, a Sun
Microsystems, Inc. business, and converted to single precision at Cygnus
Support. glibc carries them substantially unmodified and presents them,
in its own LICENSES file, as Sun's code. The notice below is the whole of
that licence: its single condition is that it be preserved, and this is
that preservation. It is also at licenses/LICENSE-FDLIBM-SunPro.txt and
beside the code at
woof/globe/core/kernels/LICENSE-third-party.txt.

    Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.

    Developed at SunPro, a Sun Microsystems, Inc. business.
    Permission to use, copy, modify, and distribute this
    software is freely granted, provided that this notice
    is preserved.

The two grants above are scoped by routine name on purpose. They cover
the routines named in them and nothing else; no other code in that file
takes anything from Arm or from Sun, and none of it is offered to a
reader on the strength of these two notices.

--------------------------------------------------------------------------

The gamma in the device sources

gfk_gamma_product, gfk_gammaf_positive and gfk_tgamma in
woof/globe/core/kernels/glibc_flt32.cuh are this project's own work
under this distribution's Apache-2.0 licence. They are
not a transcription of any C library. Nothing in that block needs a
third-party notice.

--------------------------------------------------------------------------

CRTM (Community Radiative Transfer Model)

The satellite radiance legs of this model are verified against the Community
Radiative Transfer Model, developed by the Joint Center for Satellite Data
Assimilation (JCSDA). No CRTM source file and no CRTM coefficient file is
copied into this distribution. What does ship is derived from CRTM's output
and its tables, and it is stated here so nobody has to infer it:

  - woof/globe/radiance_tables/abi-fast-model.json is a regression fitted
    to layer optical depths CRTM v3.1.1 computed on this model's own
    analysed columns. It records the CRTM version and commit, the build, the
    URL, size and SHA-256 of the coefficient archive the reference read, and
    the size and SHA-256 of each coefficient file used (digests only, not
    the files). Its per-class infrared land emissivities are means taken
    from CRTM's IGBP.IRland.EmisCoeff.bin table for the model's land classes.
  - tools/crtm_reference/abi_crtm_reference.f90 is this project's driver
    that calls an installed CRTM library through CRTM's public module
    interface. It contains no CRTM code; the reader builds CRTM from JCSDA.

CRTM v3.1.1 (JCSDA's public CRTMv3 repository, tag v3.1.1) carries a CC0 1.0
Universal public-domain dedication in its LICENSE file, read online on
2026-09-26: "the author(s) have dedicated all copyright and related and
neighboring rights to this software to the public domain worldwide. This
software is distributed without any warranty." CC0 places no condition on
this use; the credit above is given because it is owed as a courtesy and as
provenance, not because the dedication asks for it.

--------------------------------------------------------------------------

ITU-R Recommendation P.676-13

The clear-air microwave absorption in woof/globe/microwave/absorption.py
is Annex 1 of Recommendation ITU-R P.676-13 (08/2022), "Attenuation by
atmospheric gases and related effects", International Telecommunication
Union, Geneva. The oxygen (44 lines) and water-vapour (35 lines)
spectroscopic line tables in that module are Tables 1 and 2 of the
Recommendation, transcribed from the edition published at itu.int; the
module's docstring records the SHA-256 of the documents they were read
from. The Recommendation text is the ITU's; this distribution carries the
numerical line parameters and an implementation written from the published
formulation, and names the source here and in the module.

--------------------------------------------------------------------------

Test cases from the published literature

The dry dynamical-core cases this model is verified on are standard published
test problems, implemented from their published descriptions rather than from
anyone's code:

  - the Williamson et al. (1992) shallow-water test suite;
  - the Held and Suarez (1994) idealized forcing.

--------------------------------------------------------------------------

Data services (not redistributed)

This software fetches data at the user's request from third-party services
and redistributes none of it. Each service carries its own terms and the user
is subject to them:

  - NOAA: the GDAS and GFS analyses and forecasts, GOES-R ABI Level 1b
    radiances, NDBC marine observations, and the IGRA2 radiosonde archive;
  - NASA and NOAA jointly: ATMS microwave radiances from the JPSS series;
  - ECMWF: the open-data global forecast set, under ECMWF's own open licence;
  - Iowa State University Environmental Mesonet: the surface station archive;
  - the WMO Information System 2 (WIS2) global brokers;
  - UCAR COSMIC: GNSS radio-occultation profiles.

The geography archive this model builds its static surface fields from is
fetched through the engine and is not part of this distribution.

--------------------------------------------------------------------------

Rust components (not redistributed in this artefact)

Every data path in this software is Rust, and none of those binaries are
inside this wheel. They are built from the engine's own workspace and
delivered as release assets. Their sources, and the crates they vendor,
carry their own licences in the trees that hold them.
