{
  "_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" : {
        "refs/remotes/origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 189,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "2a334f87922dfaceb7d3a37b1924d374f1b986d5",
            "branch" : [
              {
                "SHA1" : "2a334f87922dfaceb7d3a37b1924d374f1b986d5",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "2a334f87922dfaceb7d3a37b1924d374f1b986d5",
            "branch" : [
              {
                "SHA1" : "2a334f87922dfaceb7d3a37b1924d374f1b986d5",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "2a334f87922dfaceb7d3a37b1924d374f1b986d5",
        "branch" : [
          {
            "SHA1" : "2a334f87922dfaceb7d3a37b1924d374f1b986d5",
            "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" : None,
  "displayName" : "#189",
  "duration" : 2627898,
  "estimatedDuration" : 3073825,
  "executor" : None,
  "fullDisplayName" : "clubb_plot_nvhpc_gpu_vs_cpu #189",
  "id" : "189",
  "keepLog" : False,
  "number" : 189,
  "queueId" : 5018,
  "result" : "SUCCESS",
  "timestamp" : 1781769970202,
  "url" : "http://carson.math.uwm.edu/jenkins/job/clubb_plot_nvhpc_gpu_vs_cpu/189/",
  "changeSets" : [
    {
      "_class" : "hudson.plugins.git.GitChangeSetList",
      "items" : [
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "src/CLUBB_core/pdf_closure_module.F90",
            "clubb_python_api/clubb_python/clubb_api.py",
            "dash_app/assets/37_run_console_state.js",
            "clubb_python_api/f2py_fortran_wrappers/stats_netcdf_wrapper.F90",
            "dash_app/tune_tab/__init__.py",
            "dash_app/tune_tab/callbacks_display.py",
            "src/clubb_loss_driver_test.F90",
            "dash_app/assets/13_tab_tune_theme.css",
            "dash_app/run_tab/callbacks_console.py",
            "src/CLUBB_core/error_code.F90",
            "tuner/clubb_loss_driver.py",
            "dash_app/plot_tab/profile_loss.py",
            "tuner/taylor_metrics.py",
            "run_scripts/run_scm_loss.py",
            "src/clubb_driver_test.F90",
            "tuner/case_defaults.json",
            "run_scripts/run_benchmark_converter_test.py",
            "clubb_python_api/clubb_python/CLUBB_core/stats_netcdf.py",
            "dash_app/tune_tab/tab.py",
            "dash_app/tune_tab/runtime.py",
            "dash_app/plot_tab/plot_types/shared.py",
            "tuner/clubb_loss_driver_test.py",
            "tuner/tune_clubb.py",
            "tuner/tuning_worker.py",
            "utilities/loss_metrics.py",
            "run_scripts/create_case_namelist.py",
            "jenkins_tests/LLM_FAILURE_AUTOMATION_DESIGN.md",
            "tuner/paths.py",
            "src/SILHS/latin_hypercube_driver_module.F90",
            "tuner/status.py",
            "dash_app/run_tab/layout.py",
            "dash_app/plot_tab/benchmark_overlay.py",
            "clubb_python_driver/clubb_case_initalization.py",
            "run_scripts/create_multi_col_params.py",
            "run_scripts/run_loss_output_consistency.py",
            "dash_app/plot_tab/callbacks_grid.py",
            "src/CLUBB_core/clubb_api_module.F90",
            "dash_app/tune_tab/callbacks_runs.py",
            "dash_app/tune_tab/layout.py",
            "clubb_python_api/clubb_f2py.pyf",
            "dash_app/tune_tab/discovery.py",
            "dash_app/requirements.txt",
            "jenkins_tests/clubb_new_tuner_test/Jenkinsfile",
            "run_scripts/run_tuner_job.py",
            "tuner/case_defaults.py",
            "dash_app/plot_tab/plot_types/timeheight_plot.py",
            "dash_app/assets/36_tune_ui_resize.js",
            "dash_app/plot_tab/state.py",
            "tuner/job_runtime.py",
            "utilities/__init__.py",
            "tuner/test_tuning_strategy.py",
            "tuner/__init__.py",
            "src/CLUBB_core/stats_netcdf.F90",
            "dash_app/tune_tab/callbacks_settings.py",
            "dash_app/README.md",
            "tuner/tuning_strategy.py",
            "run_scripts/run_stats_output_consistency.py",
            "tuner/request.py",
            "utilities/benchmark_converter.py",
            "dash_app/plot_tab/plot_types/budget_plot.py",
            "clubb_python_api/clubb_python/_runtime_loader.py",
            "clubb_python_api/clubb_python/CLUBB_core/loss_driver.py",
            "dash_app/plot_tab/layout.py",
            "dash_app/plot_tab/callbacks_controls.py",
            "dash_app/plot_tab/callbacks_params.py",
            "clubb_python_api/f2py_fortran_wrappers/clubb_loss_driver_wrapper.F90",
            "dash_app/app.py",
            "jenkins_tests/clubb_stats_output_consistency_gfortran_test/Jenkinsfile",
            "clubb_python_api/clubb_python/__init__.py",
            "dash_app/plot_tab/plot_types/profile_plot.py",
            "clubb_python_driver/advance_clubb_to_end.py",
            "src/clubb_standalone_loss.F90",
            "run_scripts/run_scm.py",
            "dash_app/plot_tab/plot_types/subcolumn_plot.py",
            "run_scripts/run_bindiff_all.py",
            "src/clubb_driver.F90",
            "README",
            "tuner/tuning_scheduler.py",
            "src/CMakeLists.txt",
            "dash_app/assets/12_tab_plots_theme.css",
            "tuner/README.md",
            "dash_app/plot_tab/callbacks_case.py",
            "src/clubb_loss_driver.F90",
            "dash_app/tune_tab/state.py"
          ],
          "commitId" : "2a334f87922dfaceb7d3a37b1924d374f1b986d5",
          "timestamp" : 1781756186000,
          "author" : {
            "absoluteUrl" : "http://carson.math.uwm.edu/jenkins/user/noreply",
            "fullName" : "noreply"
          },
          "authorEmail" : "noreply@github.com",
          "comment" : "Clubb loss driver (#1303)\u000a\u000a* First set of commits for the new loss driver.\u000a\u000a* Improvements\u000a\u000a* Batching capabilities\u000a\u000a* Lot's of cleanup, simplifications, and consolidation\u000a\u000a* More testing\u000a\u000a* Python interfaces for the loss driver\u000a\u000a* Interface for tuner and tuner with modes.\u000a\u000a* Nice updates\u000a\u000a* Missed file\u000a\u000a* Little updates to fix inconsistencies in the plots and averaging ranges\u000a\u000a* Adding a script that converts sam and coamps netcdf files to a clubb named version, including things that need to be calculated. This fixes a bug where fields were being averaged before being calculated, see https://github.com/larson-group/clubb/issues/1284, but is currently only wired up in the new tuner and the dash app plotter\u000a\u000a* Making some things public for nvhpc\u000a\u000a* Organization and consistency test fix\u000a\u000a* Adding taylor diagram to tune tab, this needs taylor metrics to be computed so the loss driver needed to output this info.\u000a\u000a* Adding more fancy loss functions based on Taylor metrics and a way to switch how the loss is computed in the dash tuner\u000a\u000a* Making NaN in code not an issue\u000a\u000a* Mostly dash app improvements to plotting, also made subwindows for tuning\u000a\u000a* Tuner tracking by case\u000a\u000a* Removing stats time-variance code\u000a\u000a* Simplifying loss driver output - now loss metrics are output explicitly rather than as packaged taylor_metrics and having different versions for subwindows and such\u000a\u000a* Mainly ui updates and small simplifications\u000a\u000a* Improving comments and cleaning things up a bit\u000a\u000a* Removing strictness on stats window vs output interval, and adding a stats consistency test to tests for issues with batch size and output frequency and the windowing mode\u000a\u000a* Fixing openmp bug and making incomplete stats intervals not output, as it was before\u000a\u000a* Making jenkins test use standard stats, and fixing tiny bug that caused error running with debug+no rcp2 stats\u000a\u000a* Adding gate around bindiff, there's an edge case where a cosmetic diff can trigger a full-diff even in a failed case, which should otherwise be considered BFB and skipped.\u000a\u000a* Adding some README entries for the dash app and a python requirements file\u000a\u000a* Adding comments and little bug fix to dash app\u000a\u000a* Update to loss consistency test, making it simpler since stats consistency test covers most things. Also adding it to the stats consistency jenkins test since it is still similar\u000a\u000a* Cleanup and code consolidation, new jenkins test for tuner\u000a\u000a* Adding comments\u000a\u000a* Fixing little bugs\u000a\u000a* Slight improvement to stats_api\u000a\u000a* Small bug fix\u000a\u000a* Consolidating stats time setting\u000a",
          "date" : "2026-06-17 23:16:26 -0500",
          "id" : "2a334f87922dfaceb7d3a37b1924d374f1b986d5",
          "msg" : "Clubb loss driver (#1303)",
          "paths" : [
            {
              "editType" : "edit",
              "file" : "src/CLUBB_core/error_code.F90"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_api/clubb_python/CLUBB_core/stats_netcdf.py"
            },
            {
              "editType" : "add",
              "file" : "jenkins_tests/LLM_FAILURE_AUTOMATION_DESIGN.md"
            },
            {
              "editType" : "add",
              "file" : "clubb_python_api/clubb_python/CLUBB_core/loss_driver.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/plot_tab/plot_types/timeheight_plot.py"
            },
            {
              "editType" : "add",
              "file" : "dash_app/tune_tab/layout.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/plot_tab/callbacks_case.py"
            },
            {
              "editType" : "add",
              "file" : "src/clubb_loss_driver.F90"
            },
            {
              "editType" : "add",
              "file" : "run_scripts/run_scm_loss.py"
            },
            {
              "editType" : "add",
              "file" : "utilities/__init__.py"
            },
            {
              "editType" : "add",
              "file" : "dash_app/tune_tab/state.py"
            },
            {
              "editType" : "add",
              "file" : "run_scripts/create_case_namelist.py"
            },
            {
              "editType" : "add",
              "file" : "tuner/taylor_metrics.py"
            },
            {
              "editType" : "add",
              "file" : "tuner/tuning_worker.py"
            },
            {
              "editType" : "add",
              "file" : "run_scripts/run_tuner_job.py"
            },
            {
              "editType" : "add",
              "file" : "run_scripts/run_stats_output_consistency.py"
            },
            {
              "editType" : "add",
              "file" : "dash_app/tune_tab/callbacks_display.py"
            },
            {
              "editType" : "edit",
              "file" : "run_scripts/create_multi_col_params.py"
            },
            {
              "editType" : "add",
              "file" : "tuner/__init__.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/plot_tab/plot_types/subcolumn_plot.py"
            },
            {
              "editType" : "add",
              "file" : "tuner/request.py"
            },
            {
              "editType" : "add",
              "file" : "run_scripts/run_benchmark_converter_test.py"
            },
            {
              "editType" : "add",
              "file" : "jenkins_tests/clubb_stats_output_consistency_gfortran_test/Jenkinsfile"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_api/clubb_f2py.pyf"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_api/f2py_fortran_wrappers/stats_netcdf_wrapper.F90"
            },
            {
              "editType" : "add",
              "file" : "dash_app/tune_tab/__init__.py"
            },
            {
              "editType" : "edit",
              "file" : "src/SILHS/latin_hypercube_driver_module.F90"
            },
            {
              "editType" : "add",
              "file" : "utilities/benchmark_converter.py"
            },
            {
              "editType" : "add",
              "file" : "dash_app/tune_tab/tab.py"
            },
            {
              "editType" : "add",
              "file" : "tuner/tune_clubb.py"
            },
            {
              "editType" : "edit",
              "file" : "src/clubb_driver.F90"
            },
            {
              "editType" : "add",
              "file" : "run_scripts/run_loss_output_consistency.py"
            },
            {
              "editType" : "add",
              "file" : "clubb_python_api/clubb_python/_runtime_loader.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/app.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/plot_tab/plot_types/budget_plot.py"
            },
            {
              "editType" : "add",
              "file" : "clubb_python_api/f2py_fortran_wrappers/clubb_loss_driver_wrapper.F90"
            },
            {
              "editType" : "add",
              "file" : "tuner/paths.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/plot_tab/benchmark_overlay.py"
            },
            {
              "editType" : "add",
              "file" : "src/clubb_loss_driver_test.F90"
            },
            {
              "editType" : "add",
              "file" : "utilities/loss_metrics.py"
            },
            {
              "editType" : "add",
              "file" : "dash_app/tune_tab/runtime.py"
            },
            {
              "editType" : "edit",
              "file" : "src/CLUBB_core/pdf_closure_module.F90"
            },
            {
              "editType" : "add",
              "file" : "dash_app/tune_tab/discovery.py"
            },
            {
              "editType" : "edit",
              "file" : "src/clubb_driver_test.F90"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/run_tab/callbacks_console.py"
            },
            {
              "editType" : "add",
              "file" : "tuner/README.md"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/plot_tab/plot_types/shared.py"
            },
            {
              "editType" : "add",
              "file" : "dash_app/assets/37_run_console_state.js"
            },
            {
              "editType" : "add",
              "file" : "tuner/case_defaults.json"
            },
            {
              "editType" : "edit",
              "file" : "src/CMakeLists.txt"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_api/clubb_python/__init__.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/plot_tab/state.py"
            },
            {
              "editType" : "add",
              "file" : "dash_app/tune_tab/callbacks_runs.py"
            },
            {
              "editType" : "edit",
              "file" : "README"
            },
            {
              "editType" : "add",
              "file" : "tuner/tuning_strategy.py"
            },
            {
              "editType" : "add",
              "file" : "tuner/clubb_loss_driver.py"
            },
            {
              "editType" : "add",
              "file" : "jenkins_tests/clubb_new_tuner_test/Jenkinsfile"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_api/clubb_python/clubb_api.py"
            },
            {
              "editType" : "add",
              "file" : "dash_app/assets/36_tune_ui_resize.js"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/assets/12_tab_plots_theme.css"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/run_tab/layout.py"
            },
            {
              "editType" : "add",
              "file" : "tuner/case_defaults.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/plot_tab/callbacks_controls.py"
            },
            {
              "editType" : "add",
              "file" : "dash_app/requirements.txt"
            },
            {
              "editType" : "add",
              "file" : "dash_app/tune_tab/callbacks_settings.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_driver/advance_clubb_to_end.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_driver/clubb_case_initalization.py"
            },
            {
              "editType" : "add",
              "file" : "tuner/clubb_loss_driver_test.py"
            },
            {
              "editType" : "add",
              "file" : "tuner/status.py"
            },
            {
              "editType" : "add",
              "file" : "src/clubb_standalone_loss.F90"
            },
            {
              "editType" : "edit",
              "file" : "src/CLUBB_core/clubb_api_module.F90"
            },
            {
              "editType" : "add",
              "file" : "tuner/tuning_scheduler.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/plot_tab/plot_types/profile_plot.py"
            },
            {
              "editType" : "edit",
              "file" : "src/CLUBB_core/stats_netcdf.F90"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/plot_tab/callbacks_params.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/plot_tab/layout.py"
            },
            {
              "editType" : "edit",
              "file" : "run_scripts/run_bindiff_all.py"
            },
            {
              "editType" : "edit",
              "file" : "run_scripts/run_scm.py"
            },
            {
              "editType" : "add",
              "file" : "tuner/test_tuning_strategy.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/plot_tab/callbacks_grid.py"
            },
            {
              "editType" : "add",
              "file" : "dash_app/README.md"
            },
            {
              "editType" : "add",
              "file" : "dash_app/plot_tab/profile_loss.py"
            },
            {
              "editType" : "add",
              "file" : "dash_app/assets/13_tab_tune_theme.css"
            },
            {
              "editType" : "add",
              "file" : "tuner/job_runtime.py"
            }
          ]
        }
      ],
      "kind" : "git"
    }
  ],
  "culprits" : [
    {
      "absoluteUrl" : "http://carson.math.uwm.edu/jenkins/user/noreply",
      "fullName" : "noreply"
    }
  ],
  "inProgress" : False,
  "nextBuild" : None,
  "previousBuild" : {
    "number" : 188,
    "url" : "http://carson.math.uwm.edu/jenkins/job/clubb_plot_nvhpc_gpu_vs_cpu/188/"
  }
}