h0ffmann / ww3-gpu
ww3-gpu
without changing the answer
um livro em construção sobre programação com agentes e pesquisa com agentes, compilado a partir do seu próprio repositório, em torno de um problema: levar os trechos mais caros do WAVEWATCH III para a GPU sem mudar a resposta.
o livro
Without Changing the Answer
Agentic coding and agentic research on a GPU port of WAVEWATCH III. A book in progress, compiled from github.com/h0ffmann/ww3-gpu
o repositório é a fonte do livro e a sua evidência: 17 capítulos, gerados em PDF a cada merge, e ao lado deles o código que descrevem. cada afirmação traz (v) quando foi conferida e ⚠ quando não foi, e cada número vem com o comando que o reproduz.
os capítulos na web · o PDF · andamento · registros de decisão
os capítulos
- 00Orientation: what WW3 actually computes
- 01Getting it built
- 02Anatomy of a run
- 03Grids, bathymetry, masks
- 04Forcing: winds, currents, ice, water levels
- 05Nesting and multi-grid
- 06Output and post-processing
- 07Physics choices: which source terms, and why it matters
- 08The Python ecosystem, and why this repo does not depend on it
- 09Measure first: benchmark, profile, compile options, run configuration
- 10Modern Fortran refactoring: the step before any port
- 11Kokkos and modern C++ for Fortran people
- 12Porting a kernel: W3SNL1
- 13Bulk porting with agents
- 14WW4: what's coming, and how mature it is
- 15SWAN: the other one you should know
- 19Two agents, one issue tracker (A2A)
as decisões
cada uma é uma escolha que o laboratório fez, com o contexto que a impôs e o que vem dela. um registro aceito nunca é editado; um novo o substitui.
- ADR-0001No proof language for the GPU port; SMT queries and exhaustive sweeps insteadaccepted2026-10-08
- ADR-0002Port order is measured wall time, most expensive firstaccepted2026-10-08
- ADR-0003The repository is a book in progress on agentic coding and agentic researchaccepted2026-10-08
- ADR-0004The book's channels: GitHub as the source, a PDF per release on Zenodo, a free Leanpub edition generated by CIaccepted2026-10-08
- ADR-0005The Claude project's settings are snapshotted in the repository, dated, except memory, connectors and secretsaccepted2026-10-09
- ADR-0007Graphify is adopted as an offline locator of WW3 module dependencies, built on preprocessed sources at the pin; it is never cited and never answers who calls whatproposed2026-10-11
- ADR-0008O trabalho passa do projeto pessoal (Max) para a organização Team da colaboração com o LOSUFBA pelo repositório; threads, memória e rotinas não migram, e o projeto só muda de conta quando o Team tiver Projectsproposed2026-10-11
- ADR-0009ww3-gpu adopts ai-memory from Fabio Akita, and with it the citation discipline, the second brain and the Gleam website of its sister repositoriesproposed2026-10-14
- ADR-0010The Kokkos port has no tests of its own; WW3's regtests are its only testsaccepted2026-10-14
- ADR-0011The port moves in large units, with discipline; WW3's regtests run at checkpoints, not after each routinesuperseded2026-10-15
- ADR-0012Translate and wire now, with static parity and one review; the full WW3 regtest matrix of the translated units runs on the UFSC H100 nodeproposed2026-10-16
- ADR-0013The parts of GFS-Wave's physics default to Kokkos once their checkpoint and a timing with parity passaccepted2026-10-16
- ADR-0014A GPU run is judged by nccmp-tol's tolerances; the CPU backend stays bit for bitaccepted2026-10-17
- ADR-0015Triton kernels are allowed as an exception to "no Python in lab code", under three conditionsaccepted2026-10-17
- ADR-0016The goal is WW3's run time on Kokkos and CUDA; WW3's regtests move to a later validation phase; one person works in a short compound loopaccepted2026-10-17
- ADR-0017The Kokkos port is single node; an MPI build of WW3 keeps the Fortran pathaccepted2026-10-18
- ADR-0018Where ww_kokkos lives if WW3 upstream takes the Kokkos runtimeproposed2026-10-18
- ADR-0019GoogleTest for the runtime infrastructure that ports no WW3 routineproposed2026-10-18
os desenhos
uma mudança é desenhada antes de ser construída, ligada a um entregável da proposta do projeto, com o seu critério de pronto.
- WFIP-0001WW3 samples driven by WeatherNext 3 wind on an RTX 4090 boxpostponed2026-10-08
- WFIP-0002The lab as a book: compiled from the repository, built in CI, released with each versionpartially2026-10-08
- WFIP-0003The Kokkos DIA through WW3's own regtest harness, on the h0ffmann/WW3 forkimplemented2026-10-14
- WFIP-0005The device-resident time step: VA lives on the GPU, only forcing in and output outdraft2026-10-17
- WFIP-0006The device computes glibc's libm bits: routing the port's per-point math through ww::libmpartially2026-10-17
o port, medido
quanto do WW3 já roda em Kokkos e, depois, cada número de cada relatório de port, passo a passo. uma barra é o ganho de velocidade sobre a sua própria referência, em escala logarítmica; quanto mais intenso o verde, maior o ganho. um passo mais lento que a sua referência fica cinza e diz isso.
- 99.3 %of the run time, translated316 of 1 023 routinesa Kokkos translation exists in kokkos/src; the profile's self time, full (bench_small, 120 x 80, 9 520 sea points, 12 h)
- 99.3 %of the run time, ported72 of 1 023 routinesWW3 at the WW3/ pin calls the Kokkos code, behind its run-time flag; the profile's self time, full (bench_small, 120 x 80, 9 520 sea points, 12 h)
- 48.6 %of the run time, regtested14 of 1 023 routinesWW3's regtests ran with it on Kokkos and agreed with the Fortran; the profile's self time, full (bench_small, 120 x 80, 9 520 sea points, 12 h)
- 26.21 %of the lines of code, translated69 024 of 263 375Fortran lines of the translated routines, of every line in WW3's model/src, in 65 of 147 files
- 7.24 %of the lines of code, ported19 059 of 263 375Fortran lines of the ported routines, of every line in WW3's model/src, in 28 of 147 files
- 1.20 %of the lines of code, regtested3 151 of 263 375Fortran lines of the regtested routines, of every line in WW3's model/src, in 7 of 147 files
- 62 257lines of Kokkos C++in 355 filesunder kokkos/src: the port itself
AMUXD_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
AMUXE_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
AMUXJ_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
AMUXMS_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
AMUX_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
APPENDTAIL_KOKKOS ported, phase 1 (translated); called by W3FLD2 ([report](W3FLD2_KOKKOS.md)) inside the batched
regtests no: postponed (ADR-0016); the CPU replay ran it on 2026-10-19: scripts/ww3-gpu.sh --ww3-gpu smoke and full --cpu --kokkos SRCE with WW_KOKKOS_STRICT=1, switch_lab_gfs (lab_ompg with SEED FLD2 in place of LN1), every model file byte-identical to the Fortran of the same executable and the NetCDF/field to --ww3 in nccmp-tol, zero fallbacks
sem benchmark: o relatório diz por quê.
APPLY_BOUNDARY_CONDITION_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim with the MPI hooks
sem benchmark: o relatório diz por quê.
APPLY_BOUNDARY_CONDITION_VA_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim, the MPI callables and the PDLIB_W3XYPUG hunk
sem benchmark: o relatório diz por quê.
ASTR_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
ASYMSMATTIMVEC_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
ATMUXR_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
ATMUX_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
BALANCING_MATRIX_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
BIINTERPWT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
BISINIT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
BLOCK_SOLVER_INIT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs a shim with the JACOBI_INIT hook and the W3INIT hunk
sem benchmark: o relatório diz por quê.
BRKDN_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
BSDET_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
CALCARRAY_JACOBI_SPECTRAL_1_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and the PDLIB implicit solver wired
sem benchmark: o relatório diz por quê.
CALCARRAY_JACOBI_VEC_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and the PDLIB implicit solver wired
sem benchmark: o relatório diz por quê.
CALC_FPI_KOKKOS ported, phase 1 (translated)
regtests no: postponed (ADR-0016); the CPU replay ran it on 2026-10-19: scripts/ww3-gpu.sh --ww3-gpu smoke and full --cpu --kokkos SRCE with WW_KOKKOS_STRICT=1, switch_lab_gfs (lab_ompg with SEED FLD2 in place of LN1), every model file byte-identical to the Fortran of the same executable and the NetCDF/field to --ww3 in nccmp-tol, zero fallbacks
sem benchmark: o relatório diz por quê.
CALC_INTERP_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
CALC_ND_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
CALC_USTAR_KOKKOS ported, phase 1 (translated)
regtests no: the ST4 checkpoint (ADR-0011) is under way: smoke-ww3-gpu on ww3_ts1 and full-ww3-gpu on bench_small byte-identical to the Fortran with each flag and all together, 2026-10-15 (docs/log/2026-10-15-st4-checkpoint.md); the WW3 regtest matrix is not yet recorded
sem benchmark: o relatório diz por quê.
CALC_WBTV2_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
CALDATT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
CCOSH_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
CGFNC_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
CGINIC3_CHENG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
CMPLX_COSH_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
CMPLX_ROOT_MULLER_CHENG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
CMPLX_ROOT_MULLER_V1_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
CMPLX_SINH_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
CMPLX_TANH2_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
COMPUTE_ACTIVE_NODE_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
COMPUTE_REDUCTION_PSI_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
COOCSRIND_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
COUPLE_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
CSINH_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
DAXPY_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
DDOT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
DEALLOCATE_PDLIB_GLOBAL_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs a shim with one per-grid context and the W3INIT hunk
sem benchmark: o relatório diz por quê.
DELTA_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
DF1F2THETA_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
DIFFERENTIATE_XYDIR_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
DIFFERENTIATE_XYDIR_MAPSTA_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
DIFFERENTIATE_XYDIR_NATIVE_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
DISTAB_KOKKOS ported, phase 1, wired and regtested on the CPU (2026-10-16)
regtests yes: scripts/ww3-gpu.sh --ww3-gpu smoke (ww3_ts1) --cpu on 2026-10-16 (OpenMP backend, gfortran/g++ 16.2.0), with WW_KOKKOS_ALL=1 and with the W3WAVE support parts alone: out_grd.ww3, out_pnt.ww3, restart.ww3 and the NetCDF field byte-identical (cmp) to the Fortran of the same executable, the binary files byte-identical to --ww3, 1 call; 0 of the 246 EWN1, ECG1 values and neither DSIE nor N1MAX differ from the Fortran DISTAB's (kokkos/src/fortran_iface/PATCH.md, section 8)
sem benchmark: o relatório diz por quê.
DLASSQ_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
DNRM2_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
DO_OUTPUT_EXCHANGES_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs a shim filling OutputExchangeHooks (MPI, GET_ARRAY_SIZE, W3XDMA/W3XETA/W3SETA) and the W3WAVE wiring
sem benchmark: o relatório diz por quê.
DPYTHAG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
DRFUN_DBLE_CHENG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
DRFUN_QUAD_CHENG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
DSVBKSB_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
EXPND2_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
F1F1F1_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
FD_COMPUTE_DIFF_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
FD_COMPUTE_LH_STRESS_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
FD_SET_MEANVALUE_TO_ZERO_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
FD_WAVE_SETUP_APPLY_FCT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
FD_WAVE_SETUP_APPLY_PRECOND_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
FD_WAVE_SETUP_COMPUTE_SYSTEM_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
FD_WAVE_SETUP_SCALAR_PROD_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
FD_WAVE_SETUP_SOLVE_POISSON_NEUMANN_DIR_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
FIFO_ADD_KOKKOS ported, phase 1 (translated)
regtests no: regtest matrix pending; run inside WW3 through W3KOKKOS_CPRT (W3CPRT on the resident VA) on 2026-10-18, every model file and partition.ww3 byte-identical to the Fortran of the same executable and to --ww3 on two partition variants of bench_small (kokkos/port_report/W3CPRT_KOKKOS.md)
sem benchmark: o relatório diz por quê.
FIFO_EMPTY_KOKKOS ported, phase 1 (translated)
regtests no: regtest matrix pending; run inside WW3 through W3KOKKOS_CPRT (W3CPRT on the resident VA) on 2026-10-18, every model file and partition.ww3 byte-identical to the Fortran of the same executable and to --ww3 on two partition variants of bench_small (kokkos/port_report/W3CPRT_KOKKOS.md)
sem benchmark: o relatório diz por quê.
FIFO_FIRST_KOKKOS ported, phase 1 (translated)
regtests no: regtest matrix pending; run inside WW3 through W3KOKKOS_CPRT (W3CPRT on the resident VA) on 2026-10-18, every model file and partition.ww3 byte-identical to the Fortran of the same executable and to --ww3 on two partition variants of bench_small (kokkos/port_report/W3CPRT_KOKKOS.md)
sem benchmark: o relatório diz por quê.
FINDQUARTETCONFIG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
FINDROOTS_NR_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
FUNC0_ZHAO_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
FUNC1_ZHAO_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
FUNCD_FDERIV_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
FUNCD_FVAL_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
F_ZHAO_CHENG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
F_ZHAO_V1_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
GAULEG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
GET_ARRAY_SIZE_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs a shim and DO_OUTPUT_EXCHANGES wired
sem benchmark: o relatório diz por quê.
GET_JSEA_IBELONG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
GIVENS_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
GSU_CREATE_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); the checkpoint (ADR-0011) runs it once a shim, the W3GNTX hunk and the W3NNSC hook exist; every matrix.base entry with a structured grid exercises it through W3IOGR
sem benchmark: o relatório diz por quê.
HASNAN_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
IC3PRECALC_CHENG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
IC3TABLE_CHENG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
ILU0_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
IMPLU_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
INFLD_KOKKOS ported, phase 1 (translated)
regtests no: postponed (ADR-0016); the CPU replay ran it on 2026-10-19: scripts/ww3-gpu.sh --ww3-gpu smoke and full --cpu --kokkos SRCE with WW_KOKKOS_STRICT=1, switch_lab_gfs (lab_ompg with SEED FLD2 in place of LN1), every model file byte-identical to the Fortran of the same executable and the NetCDF/field to --ww3 in nccmp-tol, zero fallbacks
sem benchmark: o relatório diz por quê.
INIT_GET_ISEA_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
INIT_GET_JSEA_ISPROC_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
INPTAB_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
INSBT4_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and the W3SRCE hunk
sem benchmark: o relatório diz por quê.
INSIN3_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
INSIN4_KOKKOS ported, phase 1 (translated)
regtests no: the ST4 checkpoint (ADR-0011) is under way: smoke-ww3-gpu on ww3_ts1 and full-ww3-gpu on bench_small byte-identical to the Fortran with each flag and all together, 2026-10-15 (docs/log/2026-10-15-st4-checkpoint.md); the WW3 regtest matrix is not yet recorded
sem benchmark: o relatório diz por quê.
INSNL1_KOKKOS L2 (inside WW3, on the CPU), with W3SNL1
regtests yes: through the DIA's L2, which reads these tables in every --ww3-gpu run (health h1); byte-identical on the 100-entry matrix (docs/data/hoff_matrix_2026-10-15.tsv)
sem benchmark: o relatório diz por quê.
INSNL3_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and the W3IOGR hunk
sem benchmark: o relatório diz por quê.
INSNL5_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
JACOBI_INIT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs a shim and the BLOCK_SOLVER_INIT caller wired
sem benchmark: o relatório diz por quê.
JULDAYT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
LDSOLC_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
LDSOLL_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
LDSOL_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
LFACTOR_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
LSOLC_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
LSOL_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
LUSOL_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
LUTSOL_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
MAPSTA_SMC_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
MAXLAM_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
MGSRO_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
MINLAM_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
NG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
NR_CORR_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
NR_ROOT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
PDLIB_EXPLICIT_BLOCK_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim with the MPI hooks
sem benchmark: o relatório diz por quê.
PDLIB_INIT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs a shim filling the PDLIB, MPI and write hooks and the W3INIT hunk
sem benchmark: o relatório diz por quê.
PDLIB_IOBP_INIT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs a shim with the SET_IOBPA_PDLIB hook and the W3INIT hunk
sem benchmark: o relatório diz por quê.
PDLIB_JACOBI_GAUSS_SEIDEL_BLOCK_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim with the MPI hooks and the U_JAC contract, and the W3WAVE hunk
sem benchmark: o relatório diz por quê.
PDLIB_MAPSTA_INIT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs a shim and the W3INIT hunk
sem benchmark: o relatório diz por quê.
PDLIB_W3XYPFSFCT2_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); no regtest selects EXPFSFCT
sem benchmark: o relatório diz por quê.
PDLIB_W3XYPFSN2_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim, the MPI callables and the PDLIB_W3XYPUG hunk
sem benchmark: o relatório diz por quê.
PDLIB_W3XYPFSPSI2_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim, the MPI callables and the PDLIB_W3XYPUG hunk
sem benchmark: o relatório diz por quê.
PDLIB_W3XYPUG_BLOCK_IMPLICIT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs a shim with the solver's hooks and the W3WAVE hunk
sem benchmark: o relatório diz por quê.
PDLIB_W3XYPUG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and the W3WAVE hunk
sem benchmark: o relatório diz por quê.
POLYROOTS_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
PREPARATION_FD_SCHEME_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
PREPKGRID_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
PROP_FREQ_SHIFT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and the PDLIB implicit solver wired
sem benchmark: o relatório diz por quê.
PROP_FREQ_SHIFT_M2_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and the PDLIB implicit solver wired
sem benchmark: o relatório diz por quê.
PROP_REFRACTION_PR1_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
PROP_REFRACTION_PR3_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and the PDLIB implicit solver wired
sem benchmark: o relatório diz por quê.
PTMEAN_KOKKOS ported, phase 1 (translated)
regtests no: regtest matrix pending; run inside WW3 through W3KOKKOS_CPRT (W3CPRT on the resident VA) on 2026-10-18, every model file and partition.ww3 byte-identical to the Fortran of the same executable and to --ww3 on two partition variants of bench_small (kokkos/port_report/W3CPRT_KOKKOS.md)
sem benchmark: o relatório diz por quê.
PTNGHB_KOKKOS ported, phase 1 (translated)
regtests no: regtest matrix pending; run inside WW3 through W3KOKKOS_CPRT (W3CPRT on the resident VA) on 2026-10-18, every model file and partition.ww3 byte-identical to the Fortran of the same executable and to --ww3 on two partition variants of bench_small (kokkos/port_report/W3CPRT_KOKKOS.md)
sem benchmark: o relatório diz por quê.
PTSORT_KOKKOS ported, phase 1 (translated)
regtests no: regtest matrix pending; run inside WW3 through W3KOKKOS_CPRT (W3CPRT on the resident VA) on 2026-10-18, every model file and partition.ww3 byte-identical to the Fortran of the same executable and to --ww3 on two partition variants of bench_small (kokkos/port_report/W3CPRT_KOKKOS.md)
sem benchmark: o relatório diz por quê.
PT_FLD_KOKKOS ported, phase 1 (translated)
regtests no: regtest matrix pending; run inside WW3 through W3KOKKOS_CPRT (W3CPRT on the resident VA) on 2026-10-18, every model file and partition.ww3 byte-identical to the Fortran of the same executable and to --ww3 on two partition variants of bench_small (kokkos/port_report/W3CPRT_KOKKOS.md)
sem benchmark: o relatório diz por quê.
QFUNC_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
QSPLIT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
RRANGE_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
RUNRC_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SETDEPTH_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SETVUF_FAST_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SETVUF_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SET_IOBDP_PDLIB_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs a shim and the W3INIT/W3ULEV hunks
sem benchmark: o relatório diz por quê.
SET_IOBPA_PDLIB_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs a shim behind PDLIB_IOBP_INIT's set_iobpa_pdlib hook and the W3INIT hunk
sem benchmark: o relatório diz por quê.
SET_UP_NSEAL_NSEALM_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SIG2WN_KOKKOS ported, phase 1 (translated)
regtests no: postponed (ADR-0016); the CPU replay ran it on 2026-10-19: scripts/ww3-gpu.sh --ww3-gpu smoke and full --cpu --kokkos SRCE with WW_KOKKOS_STRICT=1, switch_lab_gfs (lab_ompg with SEED FLD2 in place of LN1), every model file byte-identical to the Fortran of the same executable and the NetCDF/field to --ww3 in nccmp-tol, zero fallbacks
sem benchmark: o relatório diz por quê.
SIGN_VSD_PATANKAR_WW3_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SIGN_VSD_SEMI_IMPLICIT_WW3_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SKEWNESS_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SMCAVERG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SMCDCXY_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SMCDHXY_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SMCGTCRFR_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SMCKUNO2_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SMCXUNO2R_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SMCXUNO2_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SMCXUNO3R_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SMCXUNO3_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SMCYUNO2R_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SMCYUNO2_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SMCYUNO3R_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SMCYUNO3_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SMOOTH_K_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
STOPBIS_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
SVD_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
TABU_ERF_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and the W3SRCE hunk
sem benchmark: o relatório diz por quê.
TABU_STRESS_KOKKOS ported, phase 1 (translated)
regtests no: the ST4 checkpoint (ADR-0011) is under way: smoke-ww3-gpu on ww3_ts1 and full-ww3-gpu on bench_small byte-identical to the Fortran with each flag and all together, 2026-10-15 (docs/log/2026-10-15-st4-checkpoint.md); the WW3 regtest matrix is not yet recorded
sem benchmark: o relatório diz por quê.
TABU_TAUHF2_KOKKOS ported, phase 1 (translated)
regtests no: the ST4 checkpoint (ADR-0011) is under way: smoke-ww3-gpu on ww3_ts1 and full-ww3-gpu on bench_small byte-identical to the Fortran with each flag and all together, 2026-10-15 (docs/log/2026-10-15-st4-checkpoint.md); the WW3 regtest matrix is not yet recorded
sem benchmark: o relatório diz por quê.
TABU_TAUHF_KOKKOS ported, phase 1 (translated)
regtests no: the ST4 checkpoint (ADR-0011) is under way: smoke-ww3-gpu on ww3_ts1 and full-ww3-gpu on bench_small byte-identical to the Fortran with each flag and all together, 2026-10-15 (docs/log/2026-10-15-st4-checkpoint.md); the WW3 regtest matrix is not yet recorded
sem benchmark: o relatório diz por quê.
TAUWINDS_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
TAU_WAVE_ATMOS_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
TFUNC_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
TIDE_FIND_INDICES_ANALYSIS_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
TIDE_FIND_INDICES_PREDICTION_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
TIDE_PREDICT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
TIDE_PREDICT_ONLY_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
TIDE_SET_INDICES_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
TIDYCG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
TRIG_COMPUTE_DIFF_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
TRIG_COMPUTE_LH_STRESS_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
TRIG_WAVE_SETUP_APPLY_FCT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
TRIG_WAVE_SETUP_APPLY_PRECOND_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
UDSOLC_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
UDSOL_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
UFUNC_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
UOST_SETGRID_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
UOST_SOURCETERM_COMPUTE_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
UOST_SOURCETERM_COMPUTE_LD_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
UOST_SOURCETERM_COMPUTE_SE_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
UOST_SOURCETERM_SETGRID_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
UOST_SRCTRMCOMPUTE_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
UPPDIR_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
USOLC_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
USOL_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
VBRMV_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
VMFUNC_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
VMIN_D_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
VPFUNC_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
VPLUS_D_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
VUF_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3BETA_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3CFLXY_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3CPRT_KOKKOS ported, phase 2 (on the resident spectrum), wired on the fork branch
regtests no: the owner decides whether lab-switch evidence counts (plan 2026-10-18-002); the WW3 regtest matrix ran it on 2026-10-18 at WW3 50a10730 with WW3GPU_LAB_SWITCH=ON and WW_KOKKOS_VA_POISON=1: ww3_tnc1 (SRCE,OUTG,IOPE,UPDV,CPRT) test.comp 0/30, 3 Kokkos calls; mww3_test_03 grdset_a (resident) 0/34, 219 calls; the five mww3_test_05 ST4 OMPG entries (SRCE,OUTG,IOPE,UPDV,CPRT) 0/27 each, 39 calls each (docs/log/2026-10-18-u3-regtests-v2.md, docs/data/ww3gpu_matrix_*_pin-50a10730_2026-10-18.tsv); before that the CPU replay ran it on 2026-10-18: scripts/ww3-gpu.sh --ww3-gpu full --cpu --kokkos SRCE,XYP3,KTP3,OUTG,IOPE,UPDV,CPRT on two partition variants of bench_small (switch_lab_shrd, and switch_lab_ompg for the fields variant), WW_KOKKOS_VA_POISON=1: every model file and partition.ww3 byte-identical to the Fortran of the same executable and to --ww3 (docs/log/2026-10-18-cprt-resident.md)
sem benchmark: o relatório diz por quê.
W3DIMA_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); the W3WAVE support checkpoint (ADR-0011) runs it once a shim and the W3INIT/W3IOGO wiring exist
sem benchmark: o relatório diz por quê.
W3DIMS_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs a shim and the W3IOGR wiring
sem benchmark: o relatório diz por quê.
W3DMNL_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); the W3WAVE support checkpoint (ADR-0011) runs it once a shim and the INSNL1 wiring exist
sem benchmark: o relatório diz por quê.
W3DZXY_KOKKOS ported, phase 1, wired and regtested on the CPU (2026-10-16)
regtests yes: scripts/ww3-gpu.sh --ww3-gpu full (bench_small) --cpu on 2026-10-16 (OpenMP backend, gfortran/g++ 16.2.0), with WW_KOKKOS_ALL=1 and with the W3WAVE support parts alone: out_grd.ww3 and the NetCDF field byte-identical (cmp) to the Fortran of the same executable, the binary files byte-identical to --ww3, 1 call (the depth gradient; no current in the case) (kokkos/src/fortran_iface/PATCH.md, section 8)
sem benchmark: o relatório diz por quê.
W3FLD1MD_WND2SAT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3FLD2MD_WND2SAT_KOKKOS ported, phase 1 (translated)
regtests no: postponed (ADR-0016); the CPU replay ran it on 2026-10-19: scripts/ww3-gpu.sh --ww3-gpu smoke and full --cpu --kokkos SRCE with WW_KOKKOS_STRICT=1, switch_lab_gfs (lab_ompg with SEED FLD2 in place of LN1), every model file byte-identical to the Fortran of the same executable and the NetCDF/field to --ww3 in nccmp-tol, zero fallbacks
sem benchmark: o relatório diz por quê.
W3FLD2_KOKKOS ported, phase 1 (translated); wired into the batched W3SRCE under W3_FLD2
regtests no: postponed (ADR-0016); the CPU replay ran it on 2026-10-19: scripts/ww3-gpu.sh --ww3-gpu smoke and full --cpu --kokkos SRCE with WW_KOKKOS_STRICT=1, switch_lab_gfs (lab_ompg with SEED FLD2 in place of LN1), every model file byte-identical to the Fortran of the same executable and the NetCDF/field to --ww3 in nccmp-tol, zero fallbacks
sem benchmark: o relatório diz por quê.
W3FLDG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); the W3WAVE support checkpoint (ADR-0011) runs it once a shim, W3FLDO and the ww3_shel wiring exist
sem benchmark: o relatório diz por quê.
W3FLDH_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); the W3WAVE support checkpoint (ADR-0011) runs it once a shim and the ww3_shel wiring exist
sem benchmark: o relatório diz por quê.
W3FLDO_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); the W3WAVE support checkpoint (ADR-0011) runs it with W3FLDG once a shim and the ww3_shel wiring exist
sem benchmark: o relatório diz por quê.
W3FLDTOIJ_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs the W3FLGRDFLAG shim that binds it into the fldtoij hook
sem benchmark: o relatório diz por quê.
W3FLGRDFLAG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3FLGRDUPDT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3FLX1_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3FLX2_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3FLX3_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3FLX4_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3FLX5_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3FSD_DAVE_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3GATH_KOKKOS ported, phase 1, wired and regtested on the CPU (2026-10-16)
regtests yes: scripts/ww3-gpu.sh --ww3-gpu full (bench_small) --cpu on 2026-10-16 (OpenMP backend, gfortran/g++ 16.2.0), with WW_KOKKOS_ALL=1 and with the W3WAVE support parts alone: out_grd.ww3 and the NetCDF field byte-identical (cmp) to the Fortran of the same executable, the binary files byte-identical to --ww3, 13 824 calls (kokkos/src/fortran_iface/PATCH.md, section 8)
sem benchmark: o relatório diz por quê.
W3IC3WNCG_CHENG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3IC5WNCG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3INIT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs a shim that fills InitHooks and owns the per-grid state, and a W3INIT hunk on the fork
sem benchmark: o relatório diz por quê.
W3IOBC_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs a shim filling the W3DMO5, W3NESTUG, W3GFPT and W3CSPC hooks and the W3IOBC hooks of the Kokkos W3WAVE, and the W3WAVE hunk
sem benchmark: o relatório diz por quê.
W3IOGO_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs a shim, the W3SETO/W3SETG/W3SETW/W3DIMW hooks filled and the W3WAVE wiring
sem benchmark: o relatório diz por quê.
W3IOGR_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs the hooks filled, a shim and the W3IOGR hunk
sem benchmark: o relatório diz por quê.
W3IOPE_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs a shim passing the module arrays and OUTPTS(IMOD)%OUT2, and the W3IOPE hook of the Kokkos W3WAVE or a W3WAVE hunk
sem benchmark: o relatório diz por quê.
W3IOPO_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs a shim filling the W3SETO/W3SETG/W3SETW and W3DMO2 hooks and a W3IOPO hook of the Kokkos W3WAVE, and the W3WAVE hunk
sem benchmark: o relatório diz por quê.
W3IOPP_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs a shim filling the W3DMO2, W3GRMP, IS_IN_UNGRID and NetCDF hooks and the w3iopp hook of the Kokkos W3INIT, and the W3INIT hunk
sem benchmark: o relatório diz por quê.
W3IORS_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its checkpoint (ADR-0011) needs the W3DIMW hook filled, a shim and the W3INIT/W3WAVE hunks
sem benchmark: o relatório diz por quê.
W3KTP1_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); the propagation checkpoint (ADR-0011) runs it once a shim and the W3WAVE wiring exist
sem benchmark: o relatório diz por quê.
W3KTP2_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); the propagation checkpoint (ADR-0011) runs it once a shim and the W3WAVE wiring exist
sem benchmark: o relatório diz por quê.
W3KTP3_KOKKOS ported, phase 1, wired, opt-in (WW_KOKKOS_KTP3=1), batched: every sea point of an intra-spectral part in one call (2026-10-17)
regtests no: no regtest matrix yet; the CPU replay ran it: scripts/ww3-gpu.sh --ww3-gpu full --cpu --kokkos XYP3,KTP3,SRCE on 2026-10-17 (OpenMP backend, gfortran/g++ 16.2.0), switch_lab_ompg and switch_lab_shrd, and WW_KOKKOS_PROP3_BATCH_MIB=64: out_grd.ww3 and the NetCDF field byte-identical (cmp) to the Fortran of the same executable, out_grd.ww3 byte-identical to --ww3, nccmp-tol PASS, 441 792 point calls in 48 calls, refraction only: FLCK and FLCUR are false in bench_small, so the wavenumber shift (W3QCK2) never ran; on the resident VA (ww_ktp3_batch_va, fork 90631fad, WFIP-0005 unit 3b, PATCH.md section 13) the same replay byte-identical on 2026-10-17 on switch_lab_ompg and switch_lab_shrd, with and without WW_KOKKOS_VA_RESIDENT=1, VA traffic H2D 1 / D2H 13 per full run
sem benchmark: o relatório diz por quê.
W3MAP3_KOKKOS ported, phase 1, wired and regtested on the CPU (2026-10-16)
regtests yes: scripts/ww3-gpu.sh --ww3-gpu full (bench_small) --cpu on 2026-10-16 (OpenMP backend, gfortran/g++ 16.2.0), with WW_KOKKOS_ALL=1 and with the W3WAVE support parts alone: out_grd.ww3 and the NetCDF field byte-identical (cmp) to the Fortran of the same executable, the binary files byte-identical to --ww3, 1 call on the 120 x 80 grid (kokkos/src/fortran_iface/PATCH.md, section 8)
sem benchmark: o relatório diz por quê.
W3MAPT_KOKKOS ported, phase 1, wired and regtested on the CPU (2026-10-16)
regtests yes: scripts/ww3-gpu.sh --ww3-gpu full (bench_small) --cpu on 2026-10-16 (OpenMP backend, gfortran/g++ 16.2.0), with WW_KOKKOS_ALL=1 and with the W3WAVE support parts alone: out_grd.ww3 and the NetCDF field byte-identical (cmp) to the Fortran of the same executable, the binary files byte-identical to --ww3, 1 call on the 120 x 80 grid (kokkos/src/fortran_iface/PATCH.md, section 8)
sem benchmark: o relatório diz por quê.
W3MPIO_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); its only caller, W3INIT (w3initmd.F90:1559-1563), is under W3_MPI, so no lab-switch regtest reaches it and its checkpoint (ADR-0011) needs the W3_MPI body ported and an MPI regtest
sem benchmark: o relatório diz por quê.
W3NAUX_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); the W3WAVE support checkpoint (ADR-0011) runs it once a shim and the ww3_shel/W3INIT wiring exist
sem benchmark: o relatório diz por quê.
W3OUTG_KOKKOS ported, phase 2 (on the resident spectrum), wired (WFIP-0005 unit 5, 2026-10-17):
regtests no: no regtest matrix yet; the CPU replay ran it: scripts/ww3-gpu.sh --ww3-gpu full --cpu --kokkos SRCE,XYP3,KTP3,OUTG on 2026-10-17 (OpenMP backend, gfortran/g++ 16.2.0, fork e0cc8ee9), switch_lab_ompg and switch_lab_shrd, with and without WW_KOKKOS_VA_RESIDENT=1: out_grd.ww3 and the ww3_ounf NetCDF byte-identical (cmp) to the Fortran of the same executable and to --ww3 (the NetCDF differs from --ww3 only in WAVEWATCH_III_switches), 13 Kokkos calls per run, HS only; the coast case (HS FP DIR DP T0M1, currents, levels, ice, boundary) the same on both switches, with and without WW_KOKKOS_VA_RESIDENT=1; a diagnostic bench_small with every field the port computes (36 output names, the 3-D fields, the space-time extremes in their three modes and none) byte-identical in out_grd.ww3 on switch_lab_ompg and switch_lab_shrd; the smoke (ww3_ts1) requests WBT and SKW, so it ran the Fortran fallback (0 Kokkos calls), byte-identical; the device copy-back never ran
sem benchmark: o relatório diz por quê.
W3PART_KOKKOS ported, phase 1 (translated)
regtests no: regtest matrix pending; run inside WW3 through W3KOKKOS_CPRT (W3CPRT on the resident VA) on 2026-10-18, every model file and partition.ww3 byte-identical to the Fortran of the same executable and to --ww3 on two partition variants of bench_small (kokkos/port_report/W3CPRT_KOKKOS.md)
sem benchmark: o relatório diz por quê.
W3QCK1_KOKKOS ported, phase 1, wired inside the Kokkos W3KTP3 (WW_KOKKOS_KTP3=1) (2026-10-17)
regtests no: no regtest matrix yet; the CPU replay ran it inside W3KTP3 (refraction on): scripts/ww3-gpu.sh --ww3-gpu full --cpu --kokkos XYP3,KTP3,SRCE on 2026-10-17 (OpenMP backend, gfortran/g++ 16.2.0), switch_lab_ompg and switch_lab_shrd, and WW_KOKKOS_PROP3_BATCH_MIB=64: out_grd.ww3 and the NetCDF field byte-identical (cmp) to the Fortran of the same executable, out_grd.ww3 byte-identical to --ww3, nccmp-tol PASS
sem benchmark: o relatório diz por quê.
W3QCK2_KOKKOS ported, phase 1, wired inside the Kokkos W3KTP3 (WW_KOKKOS_KTP3=1) (2026-10-17)
regtests no: never run: W3KTP3 calls it only when FLCK is true, and the full and smoke cases have no current-induced wavenumber shift
sem benchmark: o relatório diz por quê.
W3QCK3_KOKKOS ported, phase 1, wired inside the Kokkos W3XYP3 (WW_KOKKOS_XYP3=1) (2026-10-17)
regtests no: no regtest matrix yet; the CPU replay ran it inside W3XYP3: scripts/ww3-gpu.sh --ww3-gpu full --cpu --kokkos XYP3,KTP3,SRCE on 2026-10-17 (OpenMP backend, gfortran/g++ 16.2.0), switch_lab_ompg and switch_lab_shrd, and WW_KOKKOS_PROP3_BATCH_MIB=64: out_grd.ww3 and the NetCDF field byte-identical (cmp) to the Fortran of the same executable, out_grd.ww3 byte-identical to --ww3, nccmp-tol PASS; the transparency branches with obstructions were not checked for coverage
sem benchmark: o relatório diz por quê.
W3RPWNICE_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3S2XY_SMCNN_INT_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3S2XY_SMCNN_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3S2XY_SMCRG_DIR_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3S2XY_SMCRG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3S2XY_SMC_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3SBT1_KOKKOS ported, phase 1 (translated)
regtests no: waiting for the checkpoint of W3SRCE (ADR-0011); built on serial-debug, openmp-release and cuda-release only
sem benchmark: o relatório diz por quê.
W3SBT4_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and the W3SRCE hunk
sem benchmark: o relatório diz por quê.
W3SCAT_KOKKOS ported, phase 1, wired and regtested on the CPU (2026-10-16)
regtests yes: scripts/ww3-gpu.sh --ww3-gpu full (bench_small) --cpu on 2026-10-16 (OpenMP backend, gfortran/g++ 16.2.0), with WW_KOKKOS_ALL=1 and with the W3WAVE support parts alone: out_grd.ww3 and the NetCDF field byte-identical (cmp) to the Fortran of the same executable, the binary files byte-identical to --ww3, 13 824 calls (kokkos/src/fortran_iface/PATCH.md, section 8)
sem benchmark: o relatório diz por quê.
W3SDB1_KOKKOS ported, phase 1 (translated)
regtests no: waiting for the checkpoint of W3SRCE (ADR-0011); built on serial-debug, openmp-release and cuda-release only
sem benchmark: o relatório diz por quê.
W3SDS1_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3SDS2_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3SDS3_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3SDS4_KOKKOS ported, phase 1 (translated)
regtests no: the ST4 checkpoint (ADR-0011) is under way: smoke-ww3-gpu on ww3_ts1 and full-ww3-gpu on bench_small byte-identical to the Fortran with each flag and all together, 2026-10-15 (docs/log/2026-10-15-st4-checkpoint.md); the WW3 regtest matrix is not yet recorded
sem benchmark: o relatório diz por quê.
W3SDS6_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3SETA_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); the W3WAVE support checkpoint (ADR-0011) runs it once a shim and the W3INIT/W3IOGO wiring exist
sem benchmark: o relatório diz por quê.
W3SETG_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); the W3WAVE support checkpoint (ADR-0011) runs it once a shim and the W3INIT/W3IOGR/W3WAVE wiring exist
sem benchmark: o relatório diz por quê.
W3SIC1_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and the W3SRCE hunk
sem benchmark: o relatório diz por quê.
W3SIC4_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and the W3SRCE hunk
sem benchmark: o relatório diz por quê.
W3SIN1_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3SIN2_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3SIN3_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3SIN4_KOKKOS ported, phase 1 (translated)
regtests no: the ST4 checkpoint (ADR-0011) is under way: smoke-ww3-gpu on ww3_ts1 and full-ww3-gpu on bench_small byte-identical to the Fortran with each flag and all together, 2026-10-15 (docs/log/2026-10-15-st4-checkpoint.md); the WW3 regtest matrix is not yet recorded
sem benchmark: o relatório diz por quê.
W3SIN6_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3SIS1_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and the W3SRCE hunk
sem benchmark: o relatório diz por quê.
W3SLN1_KOKKOS ported, phase 1 (translated)
regtests no: waiting for the checkpoint of W3SRCE (ADR-0011); built on serial-debug, openmp-release and cuda-release only
sem benchmark: o relatório diz por quê.
W3SMCELL_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3SMCGMP_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3SNL1_KOKKOS L2 (inside WW3, on the CPU), byte-identical to the Fortran DIA on all 100 serial NL1 entries of WW3's regtest matrix (2026-10-15)
regtests yes: L2 on the CPU, ww3_ts1 and bench_small, against the Fortran DIA and pair to pair against --ww3; ww3_ts1 in CI (health h1); WW3 regtest matrix of 100 entries, byte-identical on all 100 (test.comp), nccmp-tol 71 PASS, 29 n/a, 0 FAIL, after AF11 took gfortran's -O3 chain for x**11 (docs/data/hoff_matrix_2026-10-15.tsv); the 25 shared-memory OpenMP (OMPG) NL1 entries, byte-identical on all 25 (test.comp), nccmp-tol 25 PASS, with OMP_MAX_ACTIVE_LEVELS=2, without which Kokkos aborts inside W3WAVE's parallel region (docs/data/hoff_matrix_omp_2026-10-15.tsv)
- 1the shim, 1 000 points · Serial (1 thread)2026-09-151.0x25.88 ms contra 25.88 ms · bench/results/snl1-i9-14900-rtx4090-2026-09-15.json
- 2the shim, 1 000 points · OpenMP, 32 threads2026-09-154.35x5.95 ms contra 25.88 ms · bench/results/snl1-i9-14900-rtx4090-2026-09-15.json
- 3the shim, 1 000 points · CUDA, RTX 40902026-09-1534.5x0.75 ms contra 25.88 ms · bench/results/snl1-i9-14900-rtx4090-2026-09-15.json
- 4the kernel alone, 1 000 points · CUDA, RTX 40902026-09-15531x0.047 ms contra 24.96 ms · bench/results/snl1-i9-14900-rtx4090-2026-09-15.json
- 5ww3_shel, ww3_ts1 (one point) · OpenMP, 1 thread, in WW32026-10-140.95x · mais lento2.81 s contra 2.67 s · just smoke-ww3-gpu
- 6ww3_shel, bench_small (9 520 points) · OpenMP, 1 thread, in WW32026-10-140.7x · mais lento217.9 s contra 152.7 s · just full-ww3-gpu
- 7the kernel alone, 1 000 points, direction halo · OpenMP, 1 thread2026-10-181.93x6.39 ms contra 12.31 ms · docs/log/2026-10-18-resident-five-speedups.md
- 8the kernel alone, 1 000 points, direction halo · OpenMP, 32 threads2026-10-181.18x2.11 ms contra 2.50 ms · docs/log/2026-10-18-resident-five-speedups.md
W3SNL3MD_EXPAND_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3SNL3_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and the W3SRCE hunk
sem benchmark: o relatório diz por quê.
W3SNLSMD_EXPAND_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3SPR0_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3SPR1_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3SPR2_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3SPR3_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3SPR4_KOKKOS ported, phase 1 (translated)
regtests no: the ST4 checkpoint (ADR-0011) is under way: smoke-ww3-gpu on ww3_ts1 and full-ww3-gpu on bench_small byte-identical to the Fortran with each flag and all together, 2026-10-15 (docs/log/2026-10-15-st4-checkpoint.md); the WW3 regtest matrix is not yet recorded
sem benchmark: o relatório diz por quê.
W3SPR6_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3SRC3MD_CALC_USTAR_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3SRC3MD_TABU_STRESS_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3SRC3MD_TABU_TAUHF_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3SRC6MD_IRANGE_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3SRCE_KOKKOS ported, phase 1 (translated)
regtests no: postponed (ADR-0016); the CPU replay ran it on 2026-10-19: scripts/ww3-gpu.sh --ww3-gpu smoke and full --cpu --kokkos SRCE with WW_KOKKOS_STRICT=1, switch_lab_gfs (lab_ompg with SEED FLD2 in place of LN1), every model file byte-identical to the Fortran of the same executable and the NetCDF/field to --ww3 in nccmp-tol, zero fallbacks | earlier: no: no regtest matrix yet; the CPU replay ran it: scripts/ww3-gpu.sh --ww3-gpu smoke and full --cpu --kokkos SRCE on 2026-10-17 (OpenMP backend, gfortran/g++ 16.2.0), switch_lab_ompg and switch_lab_shrd, batched on the resident VA (WFIP-0005 unit 2, with and without WW_KOKKOS_VA_RESIDENT=1): the NetCDF field and out_grd.ww3 byte-identical (cmp) to the Fortran of the same executable and to --ww3, nccmp-tol PASS, 230 100 spectra in 25 calls in the full; again 2026-10-17 with --kokkos resident, the inputs kept on the device (WFIP-0005 unit 4), plain, with WW_KOKKOS_VA_RESIDENT=1 and with WW_KOKKOS_SRCE_STAGED=1, on both switches: byte-identical the same way
sem benchmark: o relatório diz por quê.
W3SREF_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and the W3SRCE hunk
sem benchmark: o relatório diz por quê.
W3STR1_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and the W3SRCE hunk
sem benchmark: o relatório diz por quê.
W3SWL4_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3SWL6_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3SWLDMD_IRANGE_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs the fork branch pinned and WW3's regtests
sem benchmark: o relatório diz por quê.
W3UIC1_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3UIC5_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3ULEV_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); the W3WAVE support checkpoint (ADR-0011) runs it once a shim and the W3WAVE wiring exist
sem benchmark: o relatório diz por quê.
W3URHO_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
W3UTRN_KOKKOS ported, phase 1, wired (2026-10-16): WW3 calls it under WW_KOKKOS_UTRN=1 (or WW_KOKKOS_ALL=1) at h0ffmann/WW3 357f575c (ww3-gpu/kokkos-wave-support)
regtests no: wired and run (1 call in smoke and full, byte-identical, 2026-10-16), but both cases have TRFLAG = 0, so only the ATRNX = ATRNY = 1 initialisation ran; the obstruction and ice branches need a case with FLAGTR above 0
sem benchmark: o relatório diz por quê.
W3UWND_KOKKOS ported, phase 1, wired and regtested on the CPU (2026-10-16)
regtests yes: scripts/ww3-gpu.sh --ww3-gpu smoke (ww3_ts1) and full (bench_small) --cpu on 2026-10-16 (OpenMP backend, gfortran/g++ 16.2.0), with WW_KOKKOS_ALL=1 and with the W3WAVE support parts alone: out_grd.ww3 (and out_pnt.ww3, restart.ww3 in the smoke) and the NetCDF field byte-identical (cmp) to the Fortran of the same executable, the binary files byte-identical to --ww3, 2 161 calls (smoke) and 25 (full); just smoke-ww3-gpu and the full case (kokkos/src/fortran_iface/PATCH.md, section 8)
sem benchmark: o relatório diz por quê.
W3WAVE_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); the W3WAVE checkpoint (ADR-0011) runs it once a shim fills the hook table and the Views
sem benchmark: o relatório diz por quê.
W3XDMA_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); the W3WAVE support checkpoint (ADR-0011) runs it once a shim and the W3INIT/DO_OUTPUT_EXCHANGES wiring exist
sem benchmark: o relatório diz por quê.
W3XETA_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); every caller at the pin is under W3_MPI or PDLIB, so its checkpoint (ADR-0011) needs an MPI regtest once a shim and the W3IOGO/W3MPIO wiring exist
sem benchmark: o relatório diz por quê.
W3XYP1_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); the propagation checkpoint (ADR-0011) runs it once a shim and the W3WAVE wiring exist
sem benchmark: o relatório diz por quê.
W3XYP2_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run in this round); the propagation checkpoint (ADR-0011) runs it once a shim and the W3WAVE wiring exist
sem benchmark: o relatório diz por quê.
W3XYP3_KOKKOS ported, phase 1, wired, opt-in (WW_KOKKOS_XYP3=1), batched: every spectral component of a step in one call (2026-10-17)
regtests no: no regtest matrix yet; the CPU replay ran it: scripts/ww3-gpu.sh --ww3-gpu full --cpu --kokkos XYP3,KTP3,SRCE on 2026-10-17 (OpenMP backend, gfortran/g++ 16.2.0), switch_lab_ompg and switch_lab_shrd, and WW_KOKKOS_PROP3_BATCH_MIB=64: out_grd.ww3 and the NetCDF field byte-identical (cmp) to the Fortran of the same executable, out_grd.ww3 byte-identical to --ww3, nccmp-tol PASS, 13 824 spectra in 24 calls; the FLCUR, global-closure and boundary-input branches never ran (bench_small has none); on the resident VA (ww_xyp3_batch_va, fork 90631fad, WFIP-0005 unit 3b, PATCH.md section 13) the same replay byte-identical on 2026-10-17 on switch_lab_ompg and switch_lab_shrd, with and without WW_KOKKOS_VA_RESIDENT=1, VA traffic H2D 1 / D2H 13 per full run
sem benchmark: o relatório diz por quê.
W3XYPFSN2_KOKKOS ported and wired, 2026-10-18 (issue #196), inside the batched W3XYPUG kernel
regtests yes: WW3GPU_KOKKOS=resident WW3GPU_LAB_SWITCH=ON just ww3-gpu-matrix 4 serial -R '^00[12]:' on 2026-10-19 (ww3-gpu 94b3118, WW3 aa382393 rebased pin, OpenMP backend, gfortran/g++ 16.2.0): ww3_tp2.6 ST4 and ST4_ASCII, test.comp 0/36 and 0/38, nccmp-tol PASS, 777600 components on Kokkos (docs/data/ww3gpu_matrix_xypug_tp2.6_2026-10-19.tsv, docs/log/2026-10-19-xypug-tp2.6-rebased.md; first run 2026-10-18 at WW3 84df86e0, docs/log/2026-10-18-xypug-tp2.6.md)
sem benchmark: o relatório diz por quê.
W3XYPUG_KOKKOS ported and wired, 2026-10-18 (issue #196): a batched device kernel with the FSN
regtests yes: WW3GPU_KOKKOS=resident WW3GPU_LAB_SWITCH=ON just ww3-gpu-matrix 4 serial -R '^00[12]:' on 2026-10-19 (ww3-gpu 94b3118, WW3 aa382393 rebased pin, OpenMP backend, gfortran/g++ 16.2.0): ww3_tp2.6 ST4 and ST4_ASCII, test.comp 0/36 and 0/38, nccmp-tol PASS, 777600 components on Kokkos (docs/data/ww3gpu_matrix_xypug_tp2.6_2026-10-19.tsv, docs/log/2026-10-19-xypug-tp2.6-rebased.md; first run 2026-10-18 at WW3 84df86e0, docs/log/2026-10-18-xypug-tp2.6.md)
sem benchmark: o relatório diz por quê.
WAVNU1_KOKKOS ported, phase 1 (translated)
regtests no: regtest matrix pending; run inside WW3 through W3KOKKOS_CPRT (W3CPRT on the resident VA) on 2026-10-18, every model file and partition.ww3 byte-identical to the Fortran of the same executable and to --ww3 on two partition variants of bench_small (kokkos/port_report/W3CPRT_KOKKOS.md); only PTMEAN's call, not W3INIT's or W3ULEV's
sem benchmark: o relatório diz por quê.
WAVNU2_KOKKOS ported, phase 1, wired and regtested on the CPU (2026-10-16)
regtests yes: through DISTAB (121 calls per DISTAB call), scripts/ww3-gpu.sh --ww3-gpu smoke (ww3_ts1) --cpu on 2026-10-16 (OpenMP backend, gfortran/g++ 16.2.0), with WW_KOKKOS_ALL=1 and with the W3WAVE support parts alone: out_grd.ww3, out_pnt.ww3, restart.ww3 and the NetCDF field byte-identical (cmp) to the Fortran of the same executable, the binary files byte-identical to --ww3, 0 of the 246 table values differ from the Fortran's (kokkos/src/fortran_iface/PATCH.md, section 8)
sem benchmark: o relatório diz por quê.
WAVNU3_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its PDLIB callers wired
sem benchmark: o relatório diz por quê.
WAVNU_LOCAL_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its PDLIB callers wired
sem benchmark: o relatório diz por quê.
WKFNC_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
WMIOEG_KOKKOS ported, the stores of VA only, wired and regtested on the CPU (2026-10-18) on the
regtests yes: on the fork branch ww3-gpu/u1-multi-va (f330dc53), the entries of WMIOHG, test.comp 0 files different; whether they reach 2.b was not checked
sem benchmark: o relatório diz por quê.
WMIOHG_KOKKOS ported, the store of VA only, wired and regtested on the CPU (2026-10-18) on the
regtests yes: on the fork branch ww3-gpu/u1-multi-va (f330dc53), WW3GPU_LAB_SWITCH=ON matrix entries mww3_test_01 to _04 (resident) and mww3_test_05 (SRCE,OUTG,IOPE,UPDV), test.comp 0 files different, plain and with WW_KOKKOS_VA_POISON=1 (docs/log/2026-10-18-ww3-multi-resident-va.md)
sem benchmark: o relatório diz por quê.
WND2Z0M_KOKKOS ported, phase 1 (translated)
regtests no: postponed (ADR-0016); the CPU replay ran it on 2026-10-19: scripts/ww3-gpu.sh --ww3-gpu smoke and full --cpu --kokkos SRCE with WW_KOKKOS_STRICT=1, switch_lab_gfs (lab_ompg with SEED FLD2 in place of LN1), every model file byte-identical to the Fortran of the same executable and the NetCDF/field to --ww3 in nccmp-tol, zero fallbacks
sem benchmark: o relatório diz por quê.
WN_CMPLX_HF_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
WN_CMPLX_V1_KOKKOS ported, phase 1 (translated)
regtests no: translated only, as the owner asked on 2026-10-16 (no test run); its checkpoint (ADR-0011) needs a shim and its caller's hunk
sem benchmark: o relatório diz por quê.
o segundo cérebro
uma ideia por nota, com um id permanente, links entre as notas e um status que fica unverified até uma fonte ser citada. os capítulos são escritos a partir das notas.
- 202610170112FESOM2 went through C; WW3 goes straight to Kokkospartialliterature
- 202610150226A partial distillation of WW3, on my ownpartialpermanent
- 202610141907The long-term memory is ai-memorypartialpermanent
- 202610141906WW3 has a scheduled endpartialliterature
- 202610141905Phase one copies per callverifiedpermanent
- 202610141904WW3 is read-onlyverifiedpermanent
- 202610141903No timing without parityverifiedpermanent
- 202610141902The repository is a bookverifiedpermanent
- 202610141901Port order is measured wall timeverifiedpermanent
- 202610141900Bit-for-bit is the gateverifiedpermanent
como citar
para citar o trabalho como um todo, use o DOI conceitual: ele sempre aponta para a edição mais recente. para fixar exatamente o código que você rodou, cite o DOI daquela versão.
WW3 GPU Lab: agentic coding and agentic research on a bit-for-bit GPU port of WAVEWATCH III
versão mais recente: v0.1.3: four decisions accepted
- Hoffmann, MatheuscreatorEscola Politécnica, Universidade Federal do Rio de Janeiro · ORCID 0009-0009-1056-7661
- Guimarães, P.V.contributor, supervisorLabECO, Departamento de Engenharia Mecânica, Universidade Federal de Santa Catarina · ORCID 0000-0002-1686-4722
- Caminha, Pedro Henrique Cruzcontributor, otherGrupo de Teleinformática e Automação (GTA), Departamento de Engenharia Eletrônica e de Computação (DEL), Escola Politécnica, Universidade Federal do Rio de Janeiro · ORCID 0000-0002-2019-133X