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.

ler os capítuloso livro (PDF)o repositório

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

  1. 00Orientation: what WW3 actually computes
  2. 01Getting it built
  3. 02Anatomy of a run
  4. 03Grids, bathymetry, masks
  5. 04Forcing: winds, currents, ice, water levels
  6. 05Nesting and multi-grid
  7. 06Output and post-processing
  8. 07Physics choices: which source terms, and why it matters
  9. 08The Python ecosystem, and why this repo does not depend on it
  10. 09Measure first: benchmark, profile, compile options, run configuration
  11. 10Modern Fortran refactoring: the step before any port
  12. 11Kokkos and modern C++ for Fortran people
  13. 12Porting a kernel: W3SNL1
  14. 13Bulk porting with agents
  15. 14WW4: what's coming, and how mature it is
  16. 15SWAN: the other one you should know
  17. 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.

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.

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.

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)

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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.

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.

10.5281/zenodo.23221351

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