{"id":"f048910d-6515-47e6-8fdf-795dd7608f79","arxiv_id":"2608.01546","paper_version":1,"verdict":"CONDITIONAL","confidence":"MODERATE","novelty_score":7.0,"correctness_risk":"medium","formal_verification":"none","parameter_count":0,"one_line_summary":"A faithful JAX re-implementation of the FESOM2 ocean-sea-ice model that runs on GPUs and returns verified gradients through the full time loop.","lead":"FESOM2-JAX is a Python/JAX rewrite of the global ocean-sea-ice model FESOM2 that keeps the same physics, runs on GPUs, and provides automatic gradients through the full time loop. If accurate, it lowers the barrier for calibration, machine learning, and experimentation in a production-grade ocean model used for climate studies.","discovery_kind":"new_application","skeptic_critique":{"model":"deepseek-v4-flash","headline":"Indirect C-reference verification for z*, TKE, and mEVP is the weakest link; final Fortran comparison is statistical and could miss a small systematic translation error. A direct JAX-to-Fortran kernel gate would settle it.","rationale":"The reader's weakest_assumption identifies the same load-bearing concern: the fidelity chain passes through an instrumented C reference whose z*, cvmix-TKE, and mEVP extensions are validated by assertion rather than by documented, archived comparison. The final Fortran comparison is genuinely strong and makes a large translation error implausible, so I would not reject or move to a harsher verdict. But the concern is not fully closed: the submitted artifact lacks the C-vs-Fortran validation data and the exact code version (DOI:TODO), and the final comparison is deliberately statistical. I therefore keep the reader's CONDITIONAL verdict, with the added condition that the extended kernels be shown to match instrumented Fortran dumps directly. This is an addressable reproducibility/verification gap, not an indication that the model is unfaithful.","tokens_in":32684,"tokens_out":14636,"duration_ms":189830,"concrete_test":"Instrument the Fortran model to emit the same per-kernel dumps as the C reference for the three extended components (z*, cvmix-TKE, mEVP) at ~50 states drawn from the CORE2 hindcast (cold start and years 1/10/30/60; Arctic and Antarctic; summer and winter), and re-run the corresponding JAX kernels directly against those Fortran dumps using the paper's tolerances (1e-15 pointwise, 1e-12 accumulative). If any kernel fails, the C reference is not a faithful mirror and the fidelity chain is broken; if all pass, the indirect-C-reference objection is retired.","verdict_should_be":"UNCHANGED","load_bearing_attack":"Sect. 2.4 gates every JAX kernel against dumps from an instrumented serial C translation, not directly against Fortran. The paper states that the z*, cvmix-TKE, and mEVP extensions of the C reference were validated against instrumented Fortran output before adoption, but it shows no C-vs-Fortran comparison and archives no such dumps. A JAX-to-C match therefore inherits any C-reference translation error. The end-to-end 1958-2019 JAX-vs-Fortran hindcast (Sect. 4) is the real safety net, and it is strong evidence; but it is statistical (climatological RMS, annual integrals, seasonal ice cycle). A systematic error in an extended component that shifts an unplotted diagnostic, or one that cancels in 30-year means, could pass. The paper's own freshwater-budget defect (Sects. 2.4, 4.3) shows this class of slow systematic error is real and required a multi-decadal run to detect. The central 'faithful shadow' claim therefore rests on an asserted C-reference validation that is not independently checkable in the current artifact.","agreement_with_reader":"agree"},"referee_report":{"model":"deepseek-v4-flash","summary":"The manuscript presents FESOM2-JAX, a Python/JAX re-implementation of the unstructured-mesh ocean–sea-ice model FESOM2. The authors frame it as a 'code shadow': a projection of the Fortran model onto the JAX ecosystem, retaining the original's discretization, physics, and forcing, while gaining GPU portability and native reverse-mode differentiability. The port was performed with LLM-assisted translation and verified kernel-by-kernel against an instrumented serial C translation of FESOM2. The central fidelity evidence is a 1958–2019 CORE2 hindcast in which JAX and Fortran runs agree to roughly two orders of magnitude better than either agrees with observations, together with a FORCA20 eddying visual comparison. Performance is documented from one GPU to 256 GPUs on A100 and GH200 systems, including a claimed 112.8 simulated years per wall-clock day for CORE2 on four GH200s. The differentiability claim is supported by finite-difference gradient checks, a tangent-linear comparison, and sensitivity maps for two parameters. The paper claims this is the first CMIP-class global ocean–sea-ice model written natively in a differentiable framework and the first on an unstructured mesh.","tokens_in":32982,"tokens_out":9228,"duration_ms":84196,"significance":"If the fidelity, scalability, and differentiability claims survive scrutiny, this is a significant contribution to model infrastructure. A differentiable global ocean–sea-ice model of FESOM2's complexity, with verified reverse-mode through the full time loop, would enable new classes of adjoint sensitivity studies, gradient-based calibration, and hybrid physics–ML experiments. The verification effort is unusually thorough for a model port: roughly 640 tests in 78 modules, finite-difference gradient checks, a bit-reproducible continuous-integration gate, and a 62-year statistical comparison against the Fortran original. These are genuine strengths and set a high bar for comparable efforts. The main uncertainties are evidentiary rather than conceptual: the kernel-level verification chain rests partly on an unshown C-vs-Fortran link, and the code and verification artifacts are not yet archived.","major_comments":[{"comment":"The kernel-level verification gates every JAX kernel against an instrumented serial C translation, not directly against Fortran. For the z⋆ coordinate, cvmix-TKE, and mEVP rheology—the components used in the Sect. 4 hindcast—the paper states only that the C extensions were 'validated against instrumented Fortran output' before adoption, with no C-vs-Fortran comparison shown and no dumps archived. Any C-reference translation error is therefore inherited by all JAX kernels. The end-to-end comparison in Sect. 4 is statistical and can miss systematic errors, as the paper's own freshwater-budget episode (§2.4, §4.3) demonstrates. The present run still shows a consistent-sign salinity residual (Fig. 4b, growing to about +2.9×10^{-5}) that is not diagnosed. Please provide or archive the C-vs-Fortran validation for the extended components and add a direct, more sensitive JAX-vs-Fortran check, su","section":"§2.4"},{"comment":"The statement 'The Fortran original runs 512 ranks and reaches 87.8 SYPD on four CPU nodes, faster than any of our GPU configurations' is internally inconsistent with Table 3 and §5.2, where CORE2 on four GH200 GPUs delivers 112.8 SYPD and on four A100s 57.7 SYPD. This is a load-bearing performance comparison in the section that argues CPU production remains with Fortran. Please correct or qualify the sentence (e.g., 'faster than our A100 GPU configurations') so that the performance claims are mutually consistent.","section":"§5.10"},{"comment":"The verification artifacts are not yet available: the model version is to be tagged and archived 'on acceptance (DOI:TODO)', and the reduction scripts and derived arrays are promised later. For a code-shadow paper whose central evidence is kernel-level comparison against a non-public C reference, the C reference, its instrumented dumps, and the comparison outputs should be accessible at submission/review time. Without them, the key verification step cannot be independently checked.","section":"Code and data availability"}],"minor_comments":[{"comment":"The abstract says the model is 'verified kernel by kernel against the original'. This should be qualified: the kernels are gated against an instrumented C translation, with the original Fortran reached only indirectly. The present wording oversells the directness of the verification chain.","section":"Abstract and §2.4"},{"comment":"The phrase 'runs unchanged from a laptop CPU to 256 GPUs' is too unqualified: §5.10 states that NG5 does not run on CPU at all. Please qualify by configuration or explain the CPU memory constraint in the abstract claim.","section":"Abstract and §5.10"},{"comment":"PHC3.0 is used both as the initial condition and as the observational reference for the mean-state bias. The model-vs-observation RMS numbers are therefore not fully independent of the initialization. Consider adding an independent climatology (e.g., WOA) for at least one metric, or explicitly noting this dependence.","section":"§4.1/§4.2"},{"comment":"The FORCA20 comparison is visual and limited to one daily mean in year 2. The text already notes that quantitative eddying evaluation is future work, but the adjacent sentence that the JAX port 'runs the same physics on eddy-permitting meshes without modification' should be softened to reflect the qualitative nature of the evidence presented.","section":"§4.5"}],"recommendation":"major_revision","confidential_remarks":"The central concept is sound and the verification effort is impressive, but the evidence for the C-reference link is missing from the manuscript and from the archive. I see no fundamental flaw; the requested additions are specific and should be feasible. The §5.10 inconsistency with Table 3 is a straightforward correction that should be caught before publication."},"author_rebuttal":null,"desk_editor":{"model":"deepseek-v4-flash","letter":"FESOM2-JAX is the real thing. As far as I can tell from the cited literature — Veros (structured grid, ocean only), Veris (ice only), NeuralGCM (atmosphere), the Lahlou land model — this is genuinely the first native-JAX, CMIP-class, unstructured-mesh ocean-sea-ice model with a verified reverse-mode pass through the full time loop. The \"code shadow\" framing is well-defined and honest about scope: no tides, no biogeochemistry, no ice-shelf cavities, z-star only, JRA55-do only.\n\nThe verification is the strongest part of the paper, and the paper is unusually honest about its own failures. Kernel-by-kernel tolerance gating against an instrumented reference, 78 test modules with roughly 640 tests, 41 of them exercising gradients, a bit-reproducible CI gate, finite-difference gradient checks away from switching points, and sharded-vs-dense gradient agreement. The 62-year CORE2 hindcast against Fortran FESOM2 itself — not the C reference — is the right end-to-end test, and the numbers are strong: 0.004°C SST RMS between JAX and Fortran against a 0.61°C shared bias to observations, about two orders of magnitude. The freshwater-budget defect they describe cuts in their favor: a slow salinity drift visible only over decades, found and localized by that same machinery. They also report the XLA pathology at NG5/128 and the broken ragged-all-to-all reverse rule instead of hiding them. The performance analysis is careful; the single vertex-levels-per-second curve collapsing five meshes onto one line is a nice piece of quantitative thinking.\n\nSoft spots, in proportion. The real one: every JAX kernel is gated against the instrumented C translation, not against Fortran directly, and the paper asserts — but never shows — that the z-star, cvmix-TKE, and mEVP extensions of that C reference were validated against Fortran. No C-vs-Fortran comparison is shown and no such dumps are archived. The 62-year hindcast is a strong safety net, and I read the stress-test's framing as too strong when it says the central claim rests on the asserted C-validation — the hindcast carries a lot of that weight — but it is statistical, and a systematic error in an unplotted diagnostic could pass. This is an audibility gap, not a demonstrated error, and it is cheap to close: archive C-vs-Fortran dumps or add direct JAX-to-Fortran kernel gates.\n\nThree minor things. \"End-to-end differentiable\" in the abstract outruns the demonstrated envelope: the gradient applications are ocean-only six-hour windows with ice held fixed in the derivative, though the paper's own Section 6 caveats are frank about this. The FORCA20 eddying comparison is one qualitative snapshot, correctly labeled. And the DOI:TODO with raw output 'available on request' has to land — the pinned tagged release and derived-data archive are what make the reproducibility claims checkable.\n\nThis deserves a serious referee — send it out. My recommendation: accept pending the archived code version, the C-vs-Fortran evidence for the extended kernels, and an abstract aligned with the demonstrated gradient envelope.","headline":"A credible first: a differentiable, GPU-portable, unstructured-mesh ocean-sea-ice model with a genuinely strong verification chain — the weak point is an audibility gap in the kernel-level reference, not a load-bearing error.","tokens_in":33501,"tokens_out":8141,"would_cite":true,"duration_ms":71484,"reading_group":"yes","serious_thinker":"yes","would_accept_peer_review":true},"rs_alignment":null,"lean_confirmation":null,"pith_extraction":{"msc":[],"pacs":[],"model":"deepseek-v4-flash","headline":"A JAX rewrite of a global ocean-ice model tracks the Fortran original for 62 years and adds a full gradient.","keywords":["FESOM2","JAX","differentiable programming","ocean model","sea ice","GPU","code shadow","unstructured mesh"],"falsifier":"Run the same 1958-2019 configuration but compare JAX kernel outputs directly against instrumented Fortran output (bypassing the C mirror) for the z-star coordinate, cvmix-TKE, and mEVP subroutines; any disagreement beyond the stated round-off tolerances would falsify the kernel-level fidelity claim. Alternatively, re-initialize or extend the hindcast and check whether the JAX-Fortran salinity residual changes sign or continues to grow, which would indicate a systematic rather than chaotic difference.","tokens_in":2047,"feed_emoji":"🌊","tokens_out":2361,"duration_ms":72597,"temperature":0.7,"pith_summary":"This paper presents FESOM2-JAX, a re-implementation of the FESOM2 ocean and sea-ice model in JAX, kept as a faithful code shadow of the Fortran production model. The authors claim that in a 1958-2019 hindcast at one-degree equivalent resolution, the JAX and Fortran versions agree in mean state to about 0.004 degrees Celsius at the surface, two orders of magnitude smaller than either model's bias against observations, while tracking ocean heat content within one zettajoule and reproducing the sea-ice seasonal cycle. They also claim that a single reverse-mode pass through the entire time loop returns the sensitivity of a model diagnostic to a parameter at every mesh vertex, verified against finite differences. This matters because it gives a CMIP-class ocean model a maintainable, exact-for-the-discretization adjoint and tangent-linear model, opening the door to gradient-based calibration and to training hybrid machine-learning components through realistic ocean physics.","feed_headline":"JAX twin of ocean model matches 62-year Fortran run","feed_subtitle":"One backward pass returns per-vertex parameter sensitivities; the port runs on GPUs from laptop to 256 devices.","key_machinery":"The central mechanism is the code shadow verification method: the JAX port is not written from the Fortran directly but kernel by kernel against an instrumented serial C mirror of FESOM2, with each kernel required to match the C dumps to about 1e-15 (pointwise) or 1e-12 (reductions), and the whole assembled model then compared against Fortran itself in a multi-decadal hindcast. Differentiability is carried by making the timestep a pure, statically compiled function, replacing data-dependent loop stops with fixed iteration counts, giving finite gradients at non-smooth switches, and checkpointing the reverse sweep in nested blocks. The halo exchange, being linear, obtains an exact adjoint by c","core_discovery":"FESOM2-JAX is built as a code shadow: a kernel-by-kernel translation of FESOM2 from Fortran to JAX, where every kernel is verified against an instrumented serial C translation of the Fortran code. The full timestep is compiled as a pure function over the model state, run inside a single jax.lax.scan. Iterative solvers are either unrolled for a fixed number of iterations or, in the case of the free-surface conjugate-gradient solver, wrapped in a custom_linear_solve so the backward pass differentiates the linear system implicitly. The central experimental claim is that the assembled JAX model and the Fortran FESOM2, run with identical physics and forcing, produce statistically indistinguishabl","pith_inferences":["The paper's own data show a salinity residual that grows with a consistent sign over six decades; although the authors attribute the original drift to a fixed freshwater bug, the residual could signal small systematic conservation differences that a climatological RMS comparison may hide.","Because every JAX kernel is gated against an LLM-translated C mirror rather than directly against Fortran, a direct kernel-level dump comparison against Fortran would close the verification chain more tightly and would be a natural next check.","The authors note that gradients through chaotic dynamics are only informative over finite horizons, which likely limits adjoint-based calibration to short windows unless statistical sensitivities are used.","The communication-bound scaling and the observed transport ranking varying with machine imply that optimal partitions and exchange schemes will need to be re-tuned as GPU networks and on-node memory evolve."],"forward_implications":["Gradient-based calibration of ocean and sea-ice parameters becomes feasible through the full time loop at a cost independent of the number of parameters.","The same source provides a tangent-linear model, whose memory does not grow with the integration window, for studying the response of every field to a single parameter.","Hybrid physics-machine-learning components can be trained through the dynamical core, since gradients extend to any JAX code added to the model.","Developments made in the shadow, such as tuned parameters or trained components, can be carried back into the Fortran production model because the two remain statistically close.","The 1-degree configuration fits on a single GPU and a node of four GH200s integrates about 113 simulated years per wall-clock day, making decades-long experiments inexpensive."],"supporting_citations":[{"why":"Defines FESOM2's cell-vertex finite-volume discretization, unstructured mesh, and numerics that the JAX port reproduces.","marker":"Danilov et al., 2017"},{"why":"The LLM-assisted Fortran-to-C-to-Kokkos translation whose instrumented serial C serves as the reference for kernel-by-kernel verification.","marker":"Koldunov et al., 2026b"},{"why":"Establish the FESOM2 component set and its assessment against observations, grounding the claim of CMIP-class complexity.","marker":"Scholz et al., 2019, 2022"},{"why":"JAX, the differentiable array framework used to implement the shadow and derive gradients.","marker":"Bradbury et al., 2018"},{"why":"JRA55-do, the atmospheric forcing dataset used identically in both JAX and Fortran hindcasts.","marker":"Tsujino et al., 2018"},{"why":"The modified elastic-viscous-plastic (mEVP) sea-ice rheology that is ported, run at 120 iterations, and differentiated through.","marker":"Bouillon et al., 2013; Kimmritz et al., 2015"},{"why":"The cvmix-TKE vertical mixing closure, one of the extended components translated into the C reference and JAX.","marker":"Gaspar et al., 1990; Griffies et al., 2015"},{"why":"The z-star vertical coordinate whose freshwater budget closure is ported and whose initial defect produced the salinity drift discussed in the paper.","marker":"Adcroft and Campin, 2004"}],"fun_headline_variants":["Differentiable ocean model rivals Fortran twin","GPU ocean model returns gradients in one pass","JAX ocean model matches 62-year simulation","First differentiable CMIP-class ocean model","Ocean model's JAX shadow scales to 256 GPUs"],"cache_read_input_tokens":35328,"weakest_assumption_plain":"The fidelity claim rests on the instrumented serial C translation being an exact, literal mirror of Fortran FESOM2 for the extended components (z-star coordinate, cvmix-TKE, mEVP); since the final long comparison is statistical, a small systematic translation error that averages out over decades could survive undetected.","fun_headline_variants_meta":{"raw":{"variants":["Differentiable ocean model rivals Fortran twin","GPU ocean model returns gradients in one pass","JAX ocean model matches 62-year simulation","First differentiable CMIP-class ocean model","Ocean model's JAX shadow scales to 256 GPUs"]},"model":"deepseek-v4-flash","effort":"low","cost_usd":0.000878,"raw_usage":{"total_tokens":3719,"prompt_tokens":915,"completion_tokens":2804,"prompt_tokens_details":{"cached_tokens":256},"prompt_cache_hit_tokens":256,"prompt_cache_miss_tokens":659,"completion_tokens_details":{"reasoning_tokens":2734}},"tokens_in":659,"tokens_out":2804,"duration_ms":19933,"temperature":1.0,"reasoning_tokens":2734,"cache_read_input_tokens":256,"cache_creation_input_tokens":0},"cache_creation_input_tokens":0},"created_at":"2026-08-06T00:03:36.490039+00:00","model_set":{"reader":"deepseek-v4-flash"},"falsifier":"Run the same 1958-2019 configuration but compare JAX kernel outputs directly against instrumented Fortran output (bypassing the C mirror) for the z-star coordinate, cvmix-TKE, and mEVP subroutines; any disagreement beyond the stated round-off tolerances would falsify the kernel-level fidelity claim. Alternatively, re-initialize or extend the hindcast and check whether the JAX-Fortran salinity residual changes sign or continues to grow, which would indicate a systematic rather than chaotic difference.","supporting_citations":[{"cited_title":null,"cited_arxiv_id":null,"evidence_quote":"Defines FESOM2's cell-vertex finite-volume discretization, unstructured mesh, and numerics that the JAX port reproduces."},{"cited_title":null,"cited_arxiv_id":null,"evidence_quote":"Establish the FESOM2 component set and its assessment against observations, grounding the claim of CMIP-class complexity."},{"cited_title":null,"cited_arxiv_id":null,"evidence_quote":"JRA55-do, the atmospheric forcing dataset used identically in both JAX and Fortran hindcasts."},{"cited_title":null,"cited_arxiv_id":null,"evidence_quote":"The modified elastic-viscous-plastic (mEVP) sea-ice rheology that is ported, run at 120 iterations, and differentiated through."}],"review_version":1}