{
  "_class" : "org.jenkinsci.plugins.workflow.job.WorkflowRun",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.SCMTrigger$SCMTriggerCause",
          "shortDescription" : "Started by an SCM change"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.workflow.libs.LibrariesAction"
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 108,
          "buildResult" : null,
          "marked" : {
            "SHA1" : "12407142b14155687d0d80b174796965d2793b12",
            "branch" : [
              {
                "SHA1" : "12407142b14155687d0d80b174796965d2793b12",
                "name" : "origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "12407142b14155687d0d80b174796965d2793b12",
            "branch" : [
              {
                "SHA1" : "12407142b14155687d0d80b174796965d2793b12",
                "name" : "origin/master"
              }
            ]
          }
        },
        "origin/grid_fixes" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 92,
          "buildResult" : null,
          "marked" : {
            "SHA1" : "b19b67713baf175f99baa0cb0bdde6e8c1fbc588",
            "branch" : [
              {
                "SHA1" : "b19b67713baf175f99baa0cb0bdde6e8c1fbc588",
                "name" : "origin/grid_fixes"
              }
            ]
          },
          "revision" : {
            "SHA1" : "b19b67713baf175f99baa0cb0bdde6e8c1fbc588",
            "branch" : [
              {
                "SHA1" : "b19b67713baf175f99baa0cb0bdde6e8c1fbc588",
                "name" : "origin/grid_fixes"
              }
            ]
          }
        },
        "origin/feeding_gr_to_host" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 87,
          "buildResult" : null,
          "marked" : {
            "SHA1" : "b928767c7238139d599dc55420d2a0956161726a",
            "branch" : [
              {
                "SHA1" : "b928767c7238139d599dc55420d2a0956161726a",
                "name" : "origin/feeding_gr_to_host"
              }
            ]
          },
          "revision" : {
            "SHA1" : "b928767c7238139d599dc55420d2a0956161726a",
            "branch" : [
              {
                "SHA1" : "b928767c7238139d599dc55420d2a0956161726a",
                "name" : "origin/feeding_gr_to_host"
              }
            ]
          }
        },
        "refs/remotes/origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 698,
          "buildResult" : null,
          "marked" : {
            "SHA1" : "17b29a7e938300692cec5c6c7e78aae7b9578568",
            "branch" : [
              {
                "SHA1" : "17b29a7e938300692cec5c6c7e78aae7b9578568",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "17b29a7e938300692cec5c6c7e78aae7b9578568",
            "branch" : [
              {
                "SHA1" : "17b29a7e938300692cec5c6c7e78aae7b9578568",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "17b29a7e938300692cec5c6c7e78aae7b9578568",
        "branch" : [
          {
            "SHA1" : "17b29a7e938300692cec5c6c7e78aae7b9578568",
            "name" : "refs/remotes/origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/larson-group/clubb.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.workflow.cps.EnvActionImpl"
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    },
    {
      "_class" : "org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction"
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.workflow.job.views.FlowGraphAction"
    },
    {
      
    },
    {
      
    },
    {
      
    }
  ],
  "artifacts" : [
    
  ],
  "building" : false,
  "description" : null,
  "displayName" : "#698",
  "duration" : 126761,
  "estimatedDuration" : 959240,
  "executor" : null,
  "fullDisplayName" : "clubb_silhs_convergence_gfortran #698",
  "id" : "698",
  "keepLog" : false,
  "number" : 698,
  "queueId" : 8534,
  "result" : "SUCCESS",
  "timestamp" : 1789719967579,
  "url" : "http://carson.math.uwm.edu/jenkins/view/all/job/clubb_silhs_convergence_gfortran/698/",
  "changeSets" : [
    {
      "_class" : "hudson.plugins.git.GitChangeSetList",
      "items" : [
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "clubb_jax/src/clubb_standalone.py",
            "dash_app/profile_tab/callbacks.py",
            "dash_app/pytests/test_jax_device.py",
            "clubb_jax/run_jax.py",
            "dash_app/assets/09_selected_build_badge.css",
            "dash_app/README.md",
            "dash_app/pytests/test_selected_build.py",
            "dash_app/compile_tab/callbacks.py",
            "dash_app/shared/actions.py",
            "dash_app/shared/jax_device.py",
            "clubb_jax/tests/test_radiation_module.py",
            "dash_app/run_tab/telemetry.py",
            "dash_app/assets/11_tab_run_theme.css",
            "dash_app/profile_tab/runtime.py",
            "tests/run_jax_vs_fortran_cases.py",
            "clubb_jax/runtime_info.py",
            "dash_app/run_tab/runtime.py",
            "clubb_jax/requirements-metal.txt",
            "dash_app/run_tab/layout.py",
            "clubb_jax/run_jax_wrapper.sh",
            "clubb_python_driver/advance_clubb_to_end.py",
            "run_scripts/run_scm.py",
            "dash_app/services/models.py",
            "dash_app/pytests/test_agent_services.py",
            "clubb_jax/tests/test_jax_cli_options.py",
            "dash_app/pytests/test_callbacks_runs.py",
            "dash_app/DEVELOPMENT.md",
            "clubb_jax/src/advance_clubb_to_end.py",
            "clubb_jax/tests/test_runtime_info.py",
            "dash_app/pytests/test_run_broker_simplification.py",
            "dash_app/run_tab/callbacks_runs.py",
            "dash_app/compile_tab/build_selector.py",
            "clubb_jax/README.md",
            "clubb_jax/src/Radiation/radiation_module.py",
            "dash_app/pytests/test_profile_tab.py"
          ],
          "commitId" : "17b29a7e938300692cec5c6c7e78aae7b9578568",
          "timestamp" : 1789714227000,
          "author" : {
            "absoluteUrl" : "http://carson.math.uwm.edu/jenkins/user/noreply",
            "fullName" : "noreply"
          },
          "authorEmail" : "noreply@github.com",
          "comment" : "Jax integration (#1356)\u000a\u000a* Starting to integrate jax with dash more and making the run_scm -jax flag a little more useful by being able to choose to run on the CPU or GPU via -jax=cpu or -jax=gpu rather than requireing environment variables\u000a\u000a* Making the jax option even fancier, dash runner chooser is better/smarter now too\u000a\u000a* Make CLUBB-JAX launcher portable across macOS and Linux\u000a\u000a* Making the jax device detection work without needing the venvs setup first.\u000a\u000a* Keep JAX radiation compiled with static timestep scheduling\u000a\u000aPreserve the host radiation flag as a static JIT argument and mirror the Fortran conditional directly. Remove the Metal-only eager execution path and redundant branch helpers.\u000a\u000aCover both schedule states, statistics cadence, soil update ordering, and alternating time-dependent radiation calls. Validated with CPU and Metal tests and three-step standalone runs.\u000a\u000a* Microphys loop push (#1355)\u000a\u000a* First set of loop pushes - feature addition to stats too to allow for calling stats_update multiple times in a timestep and averaging the results, which is quite nice for silhs and allows us to get rid of the special microphysics stats type\u000a\u000a* More loop pushes\u000a\u000a* Tiny changes to restore BFBness\u000a\u000a* Pushing loop into advance_microphys\u000a\u000a* Little more loop push\u000a\u000a* More basic loop pushing\u000a\u000a* More loop pushing, also found what seems to be a bug with additional columns, theres code that uses only the first one. Im leaving this in for now to maintain BFBness, but labeled the problem areas with TODOs\u000a\u000a* Potentially final batch of loop pushes\u000a\u000a* Adding acc fixes for microphys stuff - the 2D versions called are GPUized, so they need acc data statements surrounding them\u000a\u000a* Removing unneccesary single col versions of lots of things\u000a\u000a* Restoring some comments and formatting\u000a\u000a* A little more restoration, maybe unnecceary\u000a\u000a* Little OpenACC fixes for microphys code RESOLVED:900681c91bdbdf8d6cd069bab01663ebac1a3279\u000a\u000a* renamed jax jenkins test to clubb_jax_tests\u000a\u000a* Making column mirror test work by comparing two different output files rather than one. This test now runs once with 3 different columns in a certain order, say ABC, and again with reverse order CBA, then ensures that A=A B=B and C=C (bit-for-bit equivalence) in both files. This should fail now actually, as there is currently a bug, and this update is intented to improve this test so that it fails before we fix the bug\u000a\u000a* Making column mirror test use CPU. This makes it much faster and doesn't change the test at all - not sure why I made it use GPU originally.\u000a\u000a* Fixing microphys bug that has been around for quite a while. This happened when making clubb standalone use multiple columns, and only affects columns other than the first. This is BIT_CHANGING, but only for microphysics cases using multiple columns (#1358)\u000a\u000a* Test different f90 vs jax flags (#1357)\u000a\u000a* wip\u000a\u000a* wip\u000a\u000a* test is basically done -> find out why some jax runs fail, mabe also run fortran even if jax fails\u000a\u000a* fortran is tested regardless of whether jax fails\u000a\u000a* changed jenkinsfile + removed l_Lscale_plume_centered from flag file + flag_set readme + lil print F90 fix\u000a\u000a* added comments and a new flagset for jax tests\u000a\u000a* added new jax flag config file to Jenkinstest\u000a\u000a* Small UI fixes to make entry boxes refresh better\u000a\u000a* Making python/jax driver status prints happen right away\u000a\u000a* Removing accidentally added file\u000a\u000a* Improving readmes\u000a\u000a* Simpliciation cleanup\u000a\u000a---------\u000a\u000aCo-authored-by: Daniel Ebel <debel@uwm.edu>\u000aCo-authored-by: Daniel Ebel <124399436+shellwitz@users.noreply.github.com>\u000a",
          "date" : "2026-09-18 01:50:27 -0500",
          "id" : "17b29a7e938300692cec5c6c7e78aae7b9578568",
          "msg" : "Jax integration (#1356)",
          "paths" : [
            {
              "editType" : "edit",
              "file" : "dash_app/pytests/test_selected_build.py"
            },
            {
              "editType" : "add",
              "file" : "clubb_jax/tests/test_jax_cli_options.py"
            },
            {
              "editType" : "delete",
              "file" : "clubb_jax/run_jax_wrapper.sh"
            },
            {
              "editType" : "edit",
              "file" : "run_scripts/run_scm.py"
            },
            {
              "editType" : "add",
              "file" : "clubb_jax/runtime_info.py"
            },
            {
              "editType" : "add",
              "file" : "clubb_jax/requirements-metal.txt"
            },
            {
              "editType" : "edit",
              "file" : "tests/run_jax_vs_fortran_cases.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/compile_tab/callbacks.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/Radiation/radiation_module.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/pytests/test_callbacks_runs.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/profile_tab/callbacks.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/run_tab/callbacks_runs.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/compile_tab/build_selector.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/assets/11_tab_run_theme.css"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/advance_clubb_to_end.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/assets/09_selected_build_badge.css"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/DEVELOPMENT.md"
            },
            {
              "editType" : "add",
              "file" : "clubb_jax/run_jax.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/pytests/test_profile_tab.py"
            },
            {
              "editType" : "add",
              "file" : "dash_app/shared/jax_device.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/pytests/test_agent_services.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/README.md"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/clubb_standalone.py"
            },
            {
              "editType" : "add",
              "file" : "dash_app/pytests/test_jax_device.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/README.md"
            },
            {
              "editType" : "add",
              "file" : "clubb_jax/tests/test_runtime_info.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/tests/test_radiation_module.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/run_tab/runtime.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/pytests/test_run_broker_simplification.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/services/models.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/run_tab/layout.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/shared/actions.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/run_tab/telemetry.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/profile_tab/runtime.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_driver/advance_clubb_to_end.py"
            }
          ]
        }
      ],
      "kind" : "git"
    }
  ],
  "culprits" : [
    {
      "absoluteUrl" : "http://carson.math.uwm.edu/jenkins/user/noreply",
      "fullName" : "noreply"
    }
  ],
  "inProgress" : false,
  "nextBuild" : null,
  "previousBuild" : {
    "number" : 697,
    "url" : "http://carson.math.uwm.edu/jenkins/view/all/job/clubb_silhs_convergence_gfortran/697/"
  }
}