<workflowRun _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>546</buildNumber><marked><SHA1>2ca3ddc3ece9ae81f9b9acc08d3be93c4aab01fb</SHA1><branch><SHA1>2ca3ddc3ece9ae81f9b9acc08d3be93c4aab01fb</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>2ca3ddc3ece9ae81f9b9acc08d3be93c4aab01fb</SHA1><branch><SHA1>2ca3ddc3ece9ae81f9b9acc08d3be93c4aab01fb</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>2ca3ddc3ece9ae81f9b9acc08d3be93c4aab01fb</SHA1><branch><SHA1>2ca3ddc3ece9ae81f9b9acc08d3be93c4aab01fb</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/larson-group/clubb.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'><environment></environment></action><action></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>http://carson.math.uwm.edu/jenkins/blue/organizations/jenkins/clubb_timestep_gfortran_tests/detail/clubb_timestep_gfortran_tests/546/artifacts</artifactsUrl><changesUrl>http://carson.math.uwm.edu/jenkins/blue/organizations/jenkins/clubb_timestep_gfortran_tests/detail/clubb_timestep_gfortran_tests/546/changes</changesUrl><displayUrl>http://carson.math.uwm.edu/jenkins/blue/organizations/jenkins/clubb_timestep_gfortran_tests/detail/clubb_timestep_gfortran_tests/546/</displayUrl><testsUrl>http://carson.math.uwm.edu/jenkins/blue/organizations/jenkins/clubb_timestep_gfortran_tests/detail/clubb_timestep_gfortran_tests/546/tests</testsUrl></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'><restartEnabled>false</restartEnabled><restartableStage>Compile</restartableStage><restartableStage>Run Timesteps Test</restartableStage></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'><node _class='org.jenkinsci.plugins.workflow.graph.FlowStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.graph.FlowEndNode'></node></action><action></action><action></action><action></action><building>false</building><displayName>#546</displayName><duration>613838</duration><estimatedDuration>605049</estimatedDuration><fullDisplayName>clubb_timestep_gfortran_tests #546</fullDisplayName><id>546</id><keepLog>false</keepLog><number>546</number><queueId>5144</queueId><result>SUCCESS</result><timestamp>1782288790386</timestamp><url>http://carson.math.uwm.edu/jenkins/view/all/job/clubb_timestep_gfortran_tests/546/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README</affectedPath><commitId>2ca3ddc3ece9ae81f9b9acc08d3be93c4aab01fb</commitId><timestamp>1782247864000</timestamp><author><absoluteUrl>http://carson.math.uwm.edu/jenkins/user/huebler</absoluteUrl><fullName>Gunther Huebler</fullName></author><authorEmail>huebler@uwm.edu</authorEmail><comment>Recently clubb_BFB_varying_flags_gfortran_test failed due to a script bug, dispite it being BFB. RESOLVED:2a334f87922dfaceb7d3a37b1924d374f1b986d5
</comment><date>2026-06-23 15:51:04 -0500</date><id>2ca3ddc3ece9ae81f9b9acc08d3be93c4aab01fb</id><msg>Recently clubb_BFB_varying_flags_gfortran_test failed due to a script bug, dispite it being BFB. RESOLVED:2a334f87922dfaceb7d3a37b1924d374f1b986d5</msg><path><editType>edit</editType><file>README</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>http://carson.math.uwm.edu/jenkins/user/huebler</absoluteUrl><fullName>Gunther Huebler</fullName><id>huebler</id></culprit><inProgress>false</inProgress><nextBuild><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>547</buildNumber><marked><SHA1>955aa780e3a47b6accf7af68d85f76ad53baff39</SHA1><branch><SHA1>955aa780e3a47b6accf7af68d85f76ad53baff39</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>955aa780e3a47b6accf7af68d85f76ad53baff39</SHA1><branch><SHA1>955aa780e3a47b6accf7af68d85f76ad53baff39</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>955aa780e3a47b6accf7af68d85f76ad53baff39</SHA1><branch><SHA1>955aa780e3a47b6accf7af68d85f76ad53baff39</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/larson-group/clubb.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><displayName>#547</displayName><duration>637442</duration><estimatedDuration>605049</estimatedDuration><fullDisplayName>clubb_timestep_gfortran_tests #547</fullDisplayName><id>547</id><keepLog>false</keepLog><number>547</number><queueId>5317</queueId><result>SUCCESS</result><timestamp>1782461589329</timestamp><url>http://carson.math.uwm.edu/jenkins/view/all/job/clubb_timestep_gfortran_tests/547/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>run_scripts/run_clubb_w_varying_flags.py</affectedPath><affectedPath>jenkins_tests/clubb_restart_silhs_gfortran_test/Jenkinsfile</affectedPath><affectedPath>run_scripts/run_tuner.py</affectedPath><affectedPath>clubb_python_driver/README.md</affectedPath><affectedPath>run_scripts/time_scm_all.bash</affectedPath><affectedPath>tests/test_monoflux_limiter_GPU.py</affectedPath><affectedPath>input/flag_sets/run_bindiff_w_flags_config_core_flags.json</affectedPath><affectedPath>input/flag_sets/run_bindiff_w_flags_config_example.json</affectedPath><affectedPath>run_scripts/generate_seed.bash</affectedPath><affectedPath>jenkins_tests/clubb_timestep_convergence_gfortran_test/Jenkinsfile</affectedPath><affectedPath>run_scripts/run_scm_loss.py</affectedPath><affectedPath>run_scripts/run_G_unit_tests.bash</affectedPath><affectedPath>clubb_jax/JAX_CONVERSION_PLAN.md</affectedPath><affectedPath>jenkins_tests/clubb_monoflux_CPU_vs_GPU_diff/Jenkinsfile</affectedPath><affectedPath>src/generalized_grid_test.F90</affectedPath><affectedPath>run_scripts/create_case_namelist.py</affectedPath><affectedPath>run_scripts/ensemble_run/ensembles/.gitignore</affectedPath><affectedPath>tuner/paths.py</affectedPath><affectedPath>tests/run_thread_test.py</affectedPath><affectedPath>jenkins_tests/clubb_generalized_vertical_grid_test/Jenkinsfile</affectedPath><affectedPath>run_scripts/run_scm.bash</affectedPath><affectedPath>run_scripts/check_budget_balance.py</affectedPath><affectedPath>jenkins_tests/clubb_restart_gfortran_test/Jenkinsfile</affectedPath><affectedPath>run_scripts/run_scm_collect_suite.bash</affectedPath><affectedPath>clubb_jax/README.md</affectedPath><affectedPath>jenkins_tests/clubb_nvhpc_gpu_column_mirror_test/Jenkinsfile</affectedPath><affectedPath>run_scripts/run_scm_collect.bash</affectedPath><affectedPath>run_scripts/run_silhs_test.bash</affectedPath><affectedPath>tests/run_restart_test.py</affectedPath><affectedPath>tests/run_loss_output_consistency.py</affectedPath><affectedPath>run_scripts/ensemble_run/create_output.bash</affectedPath><affectedPath>run_scripts/run_bindiff_w_flags_config_core_flags.json</affectedPath><affectedPath>tuner/test_tuning_strategy.py</affectedPath><affectedPath>run_scripts/run_scm_debug.bash</affectedPath><affectedPath>run_scripts/test_fatal_error_handling.bash</affectedPath><affectedPath>run_scripts/run_stats_output_consistency.py</affectedPath><affectedPath>run_scripts/run_python_vs_fortran_cases.py</affectedPath><affectedPath>tests/run_benchmark_converter_test.py</affectedPath><affectedPath>run_scripts/run_bindiff_w_flags.py</affectedPath><affectedPath>run_scripts/run_clubb_and_pyplotgen.py</affectedPath><affectedPath>run_scripts/run_clubb_conv_test.bash</affectedPath><affectedPath>tests/run_stats_output_consistency.py</affectedPath><affectedPath>jenkins_tests/clubb_silhs_convergence_gfortran/Jenkinsfile</affectedPath><affectedPath>jenkins_tests/clubb_stats_output_consistency_gfortran_test/Jenkinsfile</affectedPath><affectedPath>run_scripts/run_G_unit_tests.py</affectedPath><affectedPath>jenkins_tests/clubb_error_handling_gfortran_test/Jenkinsfile</affectedPath><affectedPath>jenkins_tests/clubb_nvhpc_gpu_vs_cpu_diffness/Jenkinsfile</affectedPath><affectedPath>src/clubb_driver.F90</affectedPath><affectedPath>run_scripts/test_fatal_error_handling.py</affectedPath><affectedPath>README</affectedPath><affectedPath>tuner/README.md</affectedPath><affectedPath>run_scripts/run_silhs_test.py</affectedPath><affectedPath>postprocessing/timestep_convergence_test.bash</affectedPath><affectedPath>tests/test_fatal_error_handling.py</affectedPath><affectedPath>jenkins_tests/clubb_G_unit_gfortran_tests/Jenkinsfile</affectedPath><affectedPath>jenkins_tests/clubb_cmake_output_matching/Jenkinsfile</affectedPath><affectedPath>tests/run_timestep_tests.py</affectedPath><affectedPath>tests/run_clubb_conv_test.py</affectedPath><affectedPath>run_scripts/run_bindiff_all.bash</affectedPath><affectedPath>postprocessing/latin_hypercube_plotting/variance_analysis_scripts/rms_vs_sample_points/silhs_varying_sp_output.sh</affectedPath><affectedPath>tests/check_budget_balance.py</affectedPath><affectedPath>run_scripts/ensemble_run/README</affectedPath><affectedPath>run_scripts/ensemble_run/ensemble_run.bash</affectedPath><affectedPath>run_scripts/ensemble_run/submission/.gitignore</affectedPath><affectedPath>run_scripts/README</affectedPath><affectedPath>jenkins_tests/clubb_openmp_gfortran_test/Jenkinsfile</affectedPath><affectedPath>utilities/create_case_namelist.py</affectedPath><affectedPath>run_scripts/run_benchmark_converter_test.py</affectedPath><affectedPath>tests/run_jax_vs_fortran_cases.py</affectedPath><affectedPath>tests/README</affectedPath><affectedPath>tests/test_fire_tuner.py</affectedPath><affectedPath>tuner/tuning_worker.py</affectedPath><affectedPath>run_scripts/run_scm_all.bash</affectedPath><affectedPath>jenkins_tests/clubb_python_test/Jenkinsfile</affectedPath><affectedPath>run_scripts/run_bindiff_w_flags_config_host_flags.json</affectedPath><affectedPath>tests/check_mirrored_multi_col_output.py</affectedPath><affectedPath>run_scripts/run_bindiff_w_flags_requirements.txt</affectedPath><affectedPath>run_scripts/run_loss_output_consistency.py</affectedPath><affectedPath>run_scripts/create_multi_col_params.py</affectedPath><affectedPath>jenkins_tests/clubb_generalized_vert_grid_host_flags/Jenkinsfile</affectedPath><affectedPath>tests/run_G_unit_tests.py</affectedPath><affectedPath>run_scripts/fire_tuner.py</affectedPath><affectedPath>postprocessing/pyplotgen/pyplotgen.py</affectedPath><affectedPath>src/int2txt.F90</affectedPath><affectedPath>tests/run_python_vs_fortran_cases.py</affectedPath><affectedPath>run_scripts/run_bindiff_w_flags_config_example.json</affectedPath><affectedPath>run_scripts/run_clubb_conv_test.py</affectedPath><affectedPath>run_scripts/run_thread_test.bash</affectedPath><affectedPath>run_scripts/fill_holes.py</affectedPath><affectedPath>run_scripts/ensemble_run/input/.gitignore</affectedPath><affectedPath>run_scripts/check_mirrored_multi_col_output.py</affectedPath><affectedPath>run_scripts/RUN_CASES</affectedPath><affectedPath>jenkins_tests/clubb_fire_tuning_gfortran_test/Jenkinsfile</affectedPath><affectedPath>tests/run_bindiff_w_flags.py</affectedPath><affectedPath>run_scripts/run_clubb_and_pyplotgen.bash</affectedPath><affectedPath>jenkins_tests/run_bindiff_w_varying_flags_against_master/Jenkinsfile</affectedPath><affectedPath>jenkins_tests/clubb_G_unit_reverse_dir_grid_test/Jenkinsfile</affectedPath><affectedPath>run_scripts/run_timestep_tests.bash</affectedPath><affectedPath>input/flag_sets/run_bindiff_w_flags_config_host_flags.json</affectedPath><affectedPath>jenkins_tests/clubb_uninit_var_oracle_test/Jenkinsfile</affectedPath><affectedPath>jenkins_tests/clubb_check_budget_balance_gfortran/Jenkinsfile</affectedPath><affectedPath>run_scripts/run_timestep_tests.py</affectedPath><affectedPath>jenkins_tests/clubb_timestep_gfortran_tests/Jenkinsfile</affectedPath><affectedPath>run_scripts/ensemble_run/output/.gitignore</affectedPath><affectedPath>run_scripts/run_tuner.bash</affectedPath><affectedPath>LLM_prompts/update_python_api_and_drivers.md</affectedPath><affectedPath>tests/run_silhs_test.py</affectedPath><affectedPath>run_scripts/diff_netcdf_outputs.py</affectedPath><affectedPath>dash_app/fill_holes.py</affectedPath><affectedPath>run_scripts/run_jax_vs_fortran_cases.py</affectedPath><affectedPath>run_scripts/run_restart_test.py</affectedPath><affectedPath>run_scripts/ensemble_run/ensemble_setup.bash</affectedPath><affectedPath>run_scripts/run_bindiff_varying_flags_output.py</affectedPath><affectedPath>run_scripts/run_scm.py</affectedPath><affectedPath>run_scripts/run_bindiff_all.py</affectedPath><affectedPath>utilities/create_multi_col_params.py</affectedPath><affectedPath>run_scripts/run_thread_test.py</affectedPath><affectedPath>run_scripts/test_monoflux_limiter_GPU.py</affectedPath><affectedPath>src/CMakeLists.txt</affectedPath><affectedPath>src/error.F90</affectedPath><affectedPath>run_scripts/check_multi_col_error.py</affectedPath><commitId>e04956358685c2869358db8b6d46d16cf9744b03</commitId><timestamp>1782439617000</timestamp><author><absoluteUrl>http://carson.math.uwm.edu/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Cleaning up run_scripts (#1320)

* Cleaning up run_scripts by removing old bash files, also moving many scripts into a new tests/ directory, since those are tests. Fixing a small bug in clubb_driver as well, just needed to move a print statement, otherwise it tries writing to a closed file.

* A little cleanup and better READMEs for run_scripts and tests
</comment><date>2026-06-25 21:06:57 -0500</date><id>e04956358685c2869358db8b6d46d16cf9744b03</id><msg>Cleaning up run_scripts (#1320)</msg><path><editType>delete</editType><file>run_scripts/run_scm_all.bash</file></path><path><editType>delete</editType><file>run_scripts/run_thread_test.py</file></path><path><editType>delete</editType><file>run_scripts/ensemble_run/input/.gitignore</file></path><path><editType>edit</editType><file>jenkins_tests/clubb_monoflux_CPU_vs_GPU_diff/Jenkinsfile</file></path><path><editType>delete</editType><file>run_scripts/run_timestep_tests.bash</file></path><path><editType>delete</editType><file>run_scripts/check_mirrored_multi_col_output.py</file></path><path><editType>add</editType><file>run_scripts/run_clubb_and_pyplotgen.py</file></path><path><editType>edit</editType><file>run_scripts/run_scm_loss.py</file></path><path><editType>edit</editType><file>run_scripts/README</file></path><path><editType>add</editType><file>tests/README</file></path><path><editType>edit</editType><file>jenkins_tests/clubb_generalized_vertical_grid_test/Jenkinsfile</file></path><path><editType>delete</editType><file>run_scripts/run_scm_collect.bash</file></path><path><editType>edit</editType><file>postprocessing/pyplotgen/pyplotgen.py</file></path><path><editType>edit</editType><file>src/error.F90</file></path><path><editType>delete</editType><file>run_scripts/run_timestep_tests.py</file></path><path><editType>edit</editType><file>src/clubb_driver.F90</file></path><path><editType>add</editType><file>tests/test_fatal_error_handling.py</file></path><path><editType>delete</editType><file>run_scripts/test_fatal_error_handling.bash</file></path><path><editType>add</editType><file>tests/run_silhs_test.py</file></path><path><editType>delete</editType><file>run_scripts/run_scm_debug.bash</file></path><path><editType>edit</editType><file>jenkins_tests/clubb_python_test/Jenkinsfile</file></path><path><editType>edit</editType><file>run_scripts/run_clubb_w_varying_flags.py</file></path><path><editType>delete</editType><file>run_scripts/check_budget_balance.py</file></path><path><editType>edit</editType><file>postprocessing/latin_hypercube_plotting/variance_analysis_scripts/rms_vs_sample_points/silhs_varying_sp_output.sh</file></path><path><editType>delete</editType><file>run_scripts/ensemble_run/ensembles/.gitignore</file></path><path><editType>delete</editType><file>run_scripts/run_bindiff_w_flags_requirements.txt</file></path><path><editType>delete</editType><file>run_scripts/run_python_vs_fortran_cases.py</file></path><path><editType>delete</editType><file>run_scripts/fire_tuner.py</file></path><path><editType>delete</editType><file>run_scripts/run_G_unit_tests.bash</file></path><path><editType>delete</editType><file>jenkins_tests/clubb_uninit_var_oracle_test/Jenkinsfile</file></path><path><editType>add</editType><file>tests/test_fire_tuner.py</file></path><path><editType>delete</editType><file>run_scripts/run_bindiff_w_flags_config_core_flags.json</file></path><path><editType>delete</editType><file>run_scripts/generate_seed.bash</file></path><path><editType>add</editType><file>utilities/create_case_namelist.py</file></path><path><editType>edit</editType><file>jenkins_tests/clubb_G_unit_gfortran_tests/Jenkinsfile</file></path><path><editType>edit</editType><file>jenkins_tests/clubb_generalized_vert_grid_host_flags/Jenkinsfile</file></path><path><editType>add</editType><file>tests/check_mirrored_multi_col_output.py</file></path><path><editType>add</editType><file>tests/run_loss_output_consistency.py</file></path><path><editType>edit</editType><file>README</file></path><path><editType>edit</editType><file>jenkins_tests/clubb_openmp_gfortran_test/Jenkinsfile</file></path><path><editType>delete</editType><file>run_scripts/ensemble_run/create_output.bash</file></path><path><editType>edit</editType><file>run_scripts/run_scm.py</file></path><path><editType>add</editType><file>tests/run_python_vs_fortran_cases.py</file></path><path><editType>add</editType><file>tests/run_bindiff_w_flags.py</file></path><path><editType>delete</editType><file>run_scripts/run_clubb_and_pyplotgen.bash</file></path><path><editType>delete</editType><file>run_scripts/run_stats_output_consistency.py</file></path><path><editType>edit</editType><file>jenkins_tests/clubb_G_unit_reverse_dir_grid_test/Jenkinsfile</file></path><path><editType>delete</editType><file>run_scripts/run_scm_collect_suite.bash</file></path><path><editType>add</editType><file>tests/run_thread_test.py</file></path><path><editType>add</editType><file>tests/run_jax_vs_fortran_cases.py</file></path><path><editType>delete</editType><file>run_scripts/run_bindiff_w_flags_config_host_flags.json</file></path><path><editType>delete</editType><file>run_scripts/time_scm_all.bash</file></path><path><editType>add</editType><file>tests/run_timestep_tests.py</file></path><path><editType>add</editType><file>tests/check_budget_balance.py</file></path><path><editType>edit</editType><file>run_scripts/run_bindiff_all.py</file></path><path><editType>delete</editType><file>run_scripts/run_jax_vs_fortran_cases.py</file></path><path><editType>delete</editType><file>run_scripts/test_monoflux_limiter_GPU.py</file></path><path><editType>edit</editType><file>jenkins_tests/clubb_stats_output_consistency_gfortran_test/Jenkinsfile</file></path><path><editType>delete</editType><file>run_scripts/test_fatal_error_handling.py</file></path><path><editType>delete</editType><file>run_scripts/ensemble_run/README</file></path><path><editType>edit</editType><file>jenkins_tests/clubb_restart_silhs_gfortran_test/Jenkinsfile</file></path><path><editType>delete</editType><file>run_scripts/check_multi_col_error.py</file></path><path><editType>add</editType><file>input/flag_sets/run_bindiff_w_flags_config_core_flags.json</file></path><path><editType>add</editType><file>tests/run_clubb_conv_test.py</file></path><path><editType>edit</editType><file>clubb_python_driver/README.md</file></path><path><editType>delete</editType><file>run_scripts/fill_holes.py</file></path><path><editType>edit</editType><file>jenkins_tests/clubb_silhs_convergence_gfortran/Jenkinsfile</file></path><path><editType>delete</editType><file>run_scripts/ensemble_run/ensemble_run.bash</file></path><path><editType>edit</editType><file>tuner/tuning_worker.py</file></path><path><editType>add</editType><file>input/flag_sets/run_bindiff_w_flags_config_host_flags.json</file></path><path><editType>edit</editType><file>src/CMakeLists.txt</file></path><path><editType>add</editType><file>tests/run_benchmark_converter_test.py</file></path><path><editType>edit</editType><file>jenkins_tests/clubb_check_budget_balance_gfortran/Jenkinsfile</file></path><path><editType>edit</editType><file>jenkins_tests/clubb_error_handling_gfortran_test/Jenkinsfile</file></path><path><editType>add</editType><file>tests/run_stats_output_consistency.py</file></path><path><editType>delete</editType><file>jenkins_tests/clubb_cmake_output_matching/Jenkinsfile</file></path><path><editType>delete</editType><file>run_scripts/ensemble_run/submission/.gitignore</file></path><path><editType>delete</editType><file>run_scripts/run_silhs_test.bash</file></path><path><editType>add</editType><file>tests/run_restart_test.py</file></path><path><editType>edit</editType><file>jenkins_tests/clubb_timestep_convergence_gfortran_test/Jenkinsfile</file></path><path><editType>delete</editType><file>run_scripts/ensemble_run/output/.gitignore</file></path><path><editType>delete</editType><file>run_scripts/run_tuner.bash</file></path><path><editType>delete</editType><file>run_scripts/run_thread_test.bash</file></path><path><editType>add</editType><file>utilities/create_multi_col_params.py</file></path><path><editType>add</editType><file>input/flag_sets/run_bindiff_w_flags_config_example.json</file></path><path><editType>edit</editType><file>clubb_jax/README.md</file></path><path><editType>delete</editType><file>run_scripts/run_bindiff_varying_flags_output.py</file></path><path><editType>delete</editType><file>run_scripts/run_loss_output_consistency.py</file></path><path><editType>delete</editType><file>run_scripts/run_bindiff_w_flags_config_example.json</file></path><path><editType>delete</editType><file>run_scripts/run_bindiff_w_flags.py</file></path><path><editType>edit</editType><file>postprocessing/timestep_convergence_test.bash</file></path><path><editType>delete</editType><file>run_scripts/run_silhs_test.py</file></path><path><editType>edit</editType><file>jenkins_tests/clubb_restart_gfortran_test/Jenkinsfile</file></path><path><editType>delete</editType><file>run_scripts/diff_netcdf_outputs.py</file></path><path><editType>add</editType><file>dash_app/fill_holes.py</file></path><path><editType>edit</editType><file>tuner/test_tuning_strategy.py</file></path><path><editType>edit</editType><file>tuner/README.md</file></path><path><editType>delete</editType><file>run_scripts/create_case_namelist.py</file></path><path><editType>edit</editType><file>clubb_jax/JAX_CONVERSION_PLAN.md</file></path><path><editType>edit</editType><file>jenkins_tests/clubb_timestep_gfortran_tests/Jenkinsfile</file></path><path><editType>edit</editType><file>jenkins_tests/clubb_nvhpc_gpu_vs_cpu_diffness/Jenkinsfile</file></path><path><editType>edit</editType><file>jenkins_tests/run_bindiff_w_varying_flags_against_master/Jenkinsfile</file></path><path><editType>delete</editType><file>run_scripts/RUN_CASES</file></path><path><editType>delete</editType><file>run_scripts/run_bindiff_all.bash</file></path><path><editType>add</editType><file>tests/run_G_unit_tests.py</file></path><path><editType>edit</editType><file>jenkins_tests/clubb_nvhpc_gpu_column_mirror_test/Jenkinsfile</file></path><path><editType>delete</editType><file>run_scripts/create_multi_col_params.py</file></path><path><editType>edit</editType><file>src/generalized_grid_test.F90</file></path><path><editType>edit</editType><file>jenkins_tests/clubb_fire_tuning_gfortran_test/Jenkinsfile</file></path><path><editType>delete</editType><file>run_scripts/run_restart_test.py</file></path><path><editType>delete</editType><file>run_scripts/run_clubb_conv_test.py</file></path><path><editType>delete</editType><file>run_scripts/run_scm.bash</file></path><path><editType>edit</editType><file>LLM_prompts/update_python_api_and_drivers.md</file></path><path><editType>delete</editType><file>src/int2txt.F90</file></path><path><editType>delete</editType><file>run_scripts/run_clubb_conv_test.bash</file></path><path><editType>delete</editType><file>run_scripts/run_benchmark_converter_test.py</file></path><path><editType>edit</editType><file>tuner/paths.py</file></path><path><editType>delete</editType><file>run_scripts/run_G_unit_tests.py</file></path><path><editType>edit</editType><file>run_scripts/run_tuner.py</file></path><path><editType>delete</editType><file>run_scripts/ensemble_run/ensemble_setup.bash</file></path><path><editType>add</editType><file>tests/test_monoflux_limiter_GPU.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/CMakeLists.txt</affectedPath><affectedPath>run_scripts/README</affectedPath><affectedPath>src/jacobian.F90</affectedPath><affectedPath>README</affectedPath><affectedPath>input_misc/jacobian.in</affectedPath><affectedPath>run_scripts/run_jacobian.bash</affectedPath><commitId>5512bff0caa1b179b2a03a5512fc3de2c866b0cb</commitId><timestamp>1782441296000</timestamp><author><absoluteUrl>http://carson.math.uwm.edu/jenkins/user/huebler</absoluteUrl><fullName>Gunther Huebler</fullName></author><authorEmail>huebler@uwm.edu</authorEmail><comment>Removing jacobian code - it has not worked in a long time
</comment><date>2026-06-25 21:34:56 -0500</date><id>5512bff0caa1b179b2a03a5512fc3de2c866b0cb</id><msg>Removing jacobian code - it has not worked in a long time</msg><path><editType>edit</editType><file>src/CMakeLists.txt</file></path><path><editType>edit</editType><file>README</file></path><path><editType>delete</editType><file>src/jacobian.F90</file></path><path><editType>delete</editType><file>input_misc/jacobian.in</file></path><path><editType>delete</editType><file>run_scripts/run_jacobian.bash</file></path><path><editType>edit</editType><file>run_scripts/README</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/Input_fields/recl.inc</affectedPath><commitId>e1ca53920f7095d09c5dde5b9502f4056c481b48</commitId><timestamp>1782441838000</timestamp><author><absoluteUrl>http://carson.math.uwm.edu/jenkins/user/huebler</absoluteUrl><fullName>Gunther Huebler</fullName></author><authorEmail>huebler@uwm.edu</authorEmail><comment>Removing recl.inc, just dead code for an outdated issue
</comment><date>2026-06-25 21:43:58 -0500</date><id>e1ca53920f7095d09c5dde5b9502f4056c481b48</id><msg>Removing recl.inc, just dead code for an outdated issue</msg><path><editType>delete</editType><file>src/Input_fields/recl.inc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/CLUBB_core/lapack_wrap.F90</affectedPath><commitId>0ed15803474cd7d3d8228a642e9e2599a840707d</commitId><timestamp>1782442179000</timestamp><author><absoluteUrl>http://carson.math.uwm.edu/jenkins/user/huebler</absoluteUrl><fullName>Gunther Huebler</fullName></author><authorEmail>huebler@uwm.edu</authorEmail><comment>Removing ifdefs that are only for E3SM and only on a specific machine
</comment><date>2026-06-25 21:49:39 -0500</date><id>0ed15803474cd7d3d8228a642e9e2599a840707d</id><msg>Removing ifdefs that are only for E3SM and only on a specific machine</msg><path><editType>edit</editType><file>src/CLUBB_core/lapack_wrap.F90</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/CLUBB_core/advance_clubb_core_module.F90</affectedPath><affectedPath>src/generalized_grid_test.F90</affectedPath><affectedPath>src/CLUBB_core/clubb_api_module.F90</affectedPath><affectedPath>src/CLUBB_core/mixing_length.F90</affectedPath><commitId>86f7a6081cc525e6d953cebc42d4e5962d7e24f2</commitId><timestamp>1782443428000</timestamp><author><absoluteUrl>http://carson.math.uwm.edu/jenkins/user/huebler</absoluteUrl><fullName>Gunther Huebler</fullName></author><authorEmail>huebler@uwm.edu</authorEmail><comment>Removing the CLUBBND_CAM option, not sure what it was for, it's not defined in this repo or any of our host model repos
</comment><date>2026-06-25 22:10:28 -0500</date><id>86f7a6081cc525e6d953cebc42d4e5962d7e24f2</id><msg>Removing the CLUBBND_CAM option, not sure what it was for, it's not defined in this repo or any of our host model repos</msg><path><editType>edit</editType><file>src/CLUBB_core/clubb_api_module.F90</file></path><path><editType>edit</editType><file>src/generalized_grid_test.F90</file></path><path><editType>edit</editType><file>src/CLUBB_core/advance_clubb_core_module.F90</file></path><path><editType>edit</editType><file>src/CLUBB_core/mixing_length.F90</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/generalized_grid_test.F90</affectedPath><affectedPath>src/CLUBB_core/pdf_closure_module.F90</affectedPath><affectedPath>clubb_python_api/f2py_fortran_wrappers/pdf_closure_module_wrapper.F90</affectedPath><affectedPath>src/Input_fields/input_fields.F90</affectedPath><affectedPath>clubb_python_api/clubb_python/CLUBB_core/pdf_closure.py</affectedPath><affectedPath>clubb_python_api/tests/test_call_tree_pdf_closure_driver.py</affectedPath><affectedPath>src/Microphys/pdf_hydromet_microphys_wrapper.F90</affectedPath><affectedPath>src/CLUBB_core/advance_clubb_core_module.F90</affectedPath><affectedPath>src/CLUBB_core/advance_windm_edsclrm_module.F90</affectedPath><affectedPath>src/clubb_driver.F90</affectedPath><affectedPath>clubb_python_driver/advance_clubb_core.py</affectedPath><affectedPath>clubb_python_api/f2py_fortran_wrappers/advance_windm_edsclrm_module_wrapper.F90</affectedPath><affectedPath>clubb_python_api/clubb_f2py.pyf</affectedPath><affectedPath>clubb_python_api/tests/test_call_tree_advance_windm_edsclrm.py</affectedPath><affectedPath>clubb_python_api/clubb_python/CLUBB_core/advance_windm_edsclrm.py</affectedPath><commitId>955aa780e3a47b6accf7af68d85f76ad53baff39</commitId><timestamp>1782445585000</timestamp><author><absoluteUrl>http://carson.math.uwm.edu/jenkins/user/huebler</absoluteUrl><fullName>Gunther Huebler</fullName></author><authorEmail>huebler@uwm.edu</authorEmail><comment>Removing unused variables
</comment><date>2026-06-25 22:46:25 -0500</date><id>955aa780e3a47b6accf7af68d85f76ad53baff39</id><msg>Removing unused variables</msg><path><editType>edit</editType><file>clubb_python_api/clubb_python/CLUBB_core/pdf_closure.py</file></path><path><editType>edit</editType><file>src/generalized_grid_test.F90</file></path><path><editType>edit</editType><file>clubb_python_api/clubb_python/CLUBB_core/advance_windm_edsclrm.py</file></path><path><editType>edit</editType><file>clubb_python_api/tests/test_call_tree_advance_windm_edsclrm.py</file></path><path><editType>edit</editType><file>src/Input_fields/input_fields.F90</file></path><path><editType>edit</editType><file>clubb_python_api/f2py_fortran_wrappers/advance_windm_edsclrm_module_wrapper.F90</file></path><path><editType>edit</editType><file>src/CLUBB_core/advance_clubb_core_module.F90</file></path><path><editType>edit</editType><file>src/CLUBB_core/pdf_closure_module.F90</file></path><path><editType>edit</editType><file>clubb_python_api/f2py_fortran_wrappers/pdf_closure_module_wrapper.F90</file></path><path><editType>edit</editType><file>clubb_python_api/tests/test_call_tree_pdf_closure_driver.py</file></path><path><editType>edit</editType><file>clubb_python_driver/advance_clubb_core.py</file></path><path><editType>edit</editType><file>src/clubb_driver.F90</file></path><path><editType>edit</editType><file>src/Microphys/pdf_hydromet_microphys_wrapper.F90</file></path><path><editType>edit</editType><file>src/CLUBB_core/advance_windm_edsclrm_module.F90</file></path><path><editType>edit</editType><file>clubb_python_api/clubb_f2py.pyf</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>http://carson.math.uwm.edu/jenkins/user/huebler</absoluteUrl><fullName>Gunther Huebler</fullName></culprit><culprit><absoluteUrl>http://carson.math.uwm.edu/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit><inProgress>false</inProgress><nextBuild><number>548</number><url>http://carson.math.uwm.edu/jenkins/view/all/job/clubb_timestep_gfortran_tests/548/</url></nextBuild><previousBuild><number>546</number><url>http://carson.math.uwm.edu/jenkins/view/all/job/clubb_timestep_gfortran_tests/546/</url></previousBuild></nextBuild><previousBuild><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>545</buildNumber><marked><SHA1>2a334f87922dfaceb7d3a37b1924d374f1b986d5</SHA1><branch><SHA1>2a334f87922dfaceb7d3a37b1924d374f1b986d5</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>2a334f87922dfaceb7d3a37b1924d374f1b986d5</SHA1><branch><SHA1>2a334f87922dfaceb7d3a37b1924d374f1b986d5</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>2a334f87922dfaceb7d3a37b1924d374f1b986d5</SHA1><branch><SHA1>2a334f87922dfaceb7d3a37b1924d374f1b986d5</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/larson-group/clubb.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><displayName>#545</displayName><duration>529872</duration><estimatedDuration>605049</estimatedDuration><fullDisplayName>clubb_timestep_gfortran_tests #545</fullDisplayName><id>545</id><keepLog>false</keepLog><number>545</number><queueId>5025</queueId><result>SUCCESS</result><timestamp>1781770390225</timestamp><url>http://carson.math.uwm.edu/jenkins/view/all/job/clubb_timestep_gfortran_tests/545/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>clubb_python_api/clubb_python/clubb_api.py</affectedPath><affectedPath>src/CLUBB_core/pdf_closure_module.F90</affectedPath><affectedPath>dash_app/assets/37_run_console_state.js</affectedPath><affectedPath>dash_app/tune_tab/__init__.py</affectedPath><affectedPath>clubb_python_api/f2py_fortran_wrappers/stats_netcdf_wrapper.F90</affectedPath><affectedPath>dash_app/assets/13_tab_tune_theme.css</affectedPath><affectedPath>src/clubb_loss_driver_test.F90</affectedPath><affectedPath>dash_app/tune_tab/callbacks_display.py</affectedPath><affectedPath>dash_app/run_tab/callbacks_console.py</affectedPath><affectedPath>src/CLUBB_core/error_code.F90</affectedPath><affectedPath>dash_app/plot_tab/profile_loss.py</affectedPath><affectedPath>tuner/clubb_loss_driver.py</affectedPath><affectedPath>tuner/taylor_metrics.py</affectedPath><affectedPath>run_scripts/run_scm_loss.py</affectedPath><affectedPath>src/clubb_driver_test.F90</affectedPath><affectedPath>tuner/case_defaults.json</affectedPath><affectedPath>run_scripts/run_benchmark_converter_test.py</affectedPath><affectedPath>dash_app/tune_tab/tab.py</affectedPath><affectedPath>clubb_python_api/clubb_python/CLUBB_core/stats_netcdf.py</affectedPath><affectedPath>dash_app/plot_tab/plot_types/shared.py</affectedPath><affectedPath>dash_app/tune_tab/runtime.py</affectedPath><affectedPath>tuner/clubb_loss_driver_test.py</affectedPath><affectedPath>tuner/tune_clubb.py</affectedPath><affectedPath>utilities/loss_metrics.py</affectedPath><affectedPath>tuner/tuning_worker.py</affectedPath><affectedPath>run_scripts/create_case_namelist.py</affectedPath><affectedPath>jenkins_tests/LLM_FAILURE_AUTOMATION_DESIGN.md</affectedPath><affectedPath>tuner/paths.py</affectedPath><affectedPath>src/SILHS/latin_hypercube_driver_module.F90</affectedPath><affectedPath>tuner/status.py</affectedPath><affectedPath>dash_app/run_tab/layout.py</affectedPath><affectedPath>dash_app/plot_tab/benchmark_overlay.py</affectedPath><affectedPath>clubb_python_driver/clubb_case_initalization.py</affectedPath><affectedPath>run_scripts/run_loss_output_consistency.py</affectedPath><affectedPath>run_scripts/create_multi_col_params.py</affectedPath><affectedPath>dash_app/plot_tab/callbacks_grid.py</affectedPath><affectedPath>src/CLUBB_core/clubb_api_module.F90</affectedPath><affectedPath>dash_app/tune_tab/callbacks_runs.py</affectedPath><affectedPath>clubb_python_api/clubb_f2py.pyf</affectedPath><affectedPath>dash_app/tune_tab/layout.py</affectedPath><affectedPath>dash_app/requirements.txt</affectedPath><affectedPath>dash_app/tune_tab/discovery.py</affectedPath><affectedPath>jenkins_tests/clubb_new_tuner_test/Jenkinsfile</affectedPath><affectedPath>tuner/case_defaults.py</affectedPath><affectedPath>run_scripts/run_tuner_job.py</affectedPath><affectedPath>dash_app/plot_tab/plot_types/timeheight_plot.py</affectedPath><affectedPath>dash_app/assets/36_tune_ui_resize.js</affectedPath><affectedPath>dash_app/plot_tab/state.py</affectedPath><affectedPath>tuner/job_runtime.py</affectedPath><affectedPath>utilities/__init__.py</affectedPath><affectedPath>tuner/test_tuning_strategy.py</affectedPath><affectedPath>src/CLUBB_core/stats_netcdf.F90</affectedPath><affectedPath>tuner/__init__.py</affectedPath><affectedPath>dash_app/tune_tab/callbacks_settings.py</affectedPath><affectedPath>dash_app/README.md</affectedPath><affectedPath>tuner/tuning_strategy.py</affectedPath><affectedPath>run_scripts/run_stats_output_consistency.py</affectedPath><affectedPath>tuner/request.py</affectedPath><affectedPath>utilities/benchmark_converter.py</affectedPath><affectedPath>dash_app/plot_tab/plot_types/budget_plot.py</affectedPath><affectedPath>clubb_python_api/clubb_python/_runtime_loader.py</affectedPath><affectedPath>dash_app/plot_tab/layout.py</affectedPath><affectedPath>clubb_python_api/clubb_python/CLUBB_core/loss_driver.py</affectedPath><affectedPath>dash_app/plot_tab/callbacks_controls.py</affectedPath><affectedPath>dash_app/plot_tab/callbacks_params.py</affectedPath><affectedPath>clubb_python_api/f2py_fortran_wrappers/clubb_loss_driver_wrapper.F90</affectedPath><affectedPath>dash_app/app.py</affectedPath><affectedPath>jenkins_tests/clubb_stats_output_consistency_gfortran_test/Jenkinsfile</affectedPath><affectedPath>clubb_python_api/clubb_python/__init__.py</affectedPath><affectedPath>dash_app/plot_tab/plot_types/profile_plot.py</affectedPath><affectedPath>clubb_python_driver/advance_clubb_to_end.py</affectedPath><affectedPath>run_scripts/run_scm.py</affectedPath><affectedPath>src/clubb_standalone_loss.F90</affectedPath><affectedPath>run_scripts/run_bindiff_all.py</affectedPath><affectedPath>dash_app/plot_tab/plot_types/subcolumn_plot.py</affectedPath><affectedPath>src/clubb_driver.F90</affectedPath><affectedPath>README</affectedPath><affectedPath>tuner/tuning_scheduler.py</affectedPath><affectedPath>dash_app/assets/12_tab_plots_theme.css</affectedPath><affectedPath>src/CMakeLists.txt</affectedPath><affectedPath>tuner/README.md</affectedPath><affectedPath>dash_app/plot_tab/callbacks_case.py</affectedPath><affectedPath>src/clubb_loss_driver.F90</affectedPath><affectedPath>dash_app/tune_tab/state.py</affectedPath><commitId>2a334f87922dfaceb7d3a37b1924d374f1b986d5</commitId><timestamp>1781756186000</timestamp><author><absoluteUrl>http://carson.math.uwm.edu/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Clubb loss driver (#1303)

* First set of commits for the new loss driver.

* Improvements

* Batching capabilities

* Lot's of cleanup, simplifications, and consolidation

* More testing

* Python interfaces for the loss driver

* Interface for tuner and tuner with modes.

* Nice updates

* Missed file

* Little updates to fix inconsistencies in the plots and averaging ranges

* 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

* Making some things public for nvhpc

* Organization and consistency test fix

* Adding taylor diagram to tune tab, this needs taylor metrics to be computed so the loss driver needed to output this info.

* Adding more fancy loss functions based on Taylor metrics and a way to switch how the loss is computed in the dash tuner

* Making NaN in code not an issue

* Mostly dash app improvements to plotting, also made subwindows for tuning

* Tuner tracking by case

* Removing stats time-variance code

* Simplifying loss driver output - now loss metrics are output explicitly rather than as packaged taylor_metrics and having different versions for subwindows and such

* Mainly ui updates and small simplifications

* Improving comments and cleaning things up a bit

* 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

* Fixing openmp bug and making incomplete stats intervals not output, as it was before

* Making jenkins test use standard stats, and fixing tiny bug that caused error running with debug+no rcp2 stats

* 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.

* Adding some README entries for the dash app and a python requirements file

* Adding comments and little bug fix to dash app

* 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

* Cleanup and code consolidation, new jenkins test for tuner

* Adding comments

* Fixing little bugs

* Slight improvement to stats_api

* Small bug fix

* Consolidating stats time setting
</comment><date>2026-06-17 23:16:26 -0500</date><id>2a334f87922dfaceb7d3a37b1924d374f1b986d5</id><msg>Clubb loss driver (#1303)</msg><path><editType>add</editType><file>dash_app/plot_tab/profile_loss.py</file></path><path><editType>add</editType><file>run_scripts/create_case_namelist.py</file></path><path><editType>add</editType><file>utilities/loss_metrics.py</file></path><path><editType>add</editType><file>run_scripts/run_loss_output_consistency.py</file></path><path><editType>edit</editType><file>dash_app/assets/12_tab_plots_theme.css</file></path><path><editType>add</editType><file>dash_app/requirements.txt</file></path><path><editType>edit</editType><file>dash_app/plot_tab/layout.py</file></path><path><editType>edit</editType><file>dash_app/plot_tab/state.py</file></path><path><editType>edit</editType><file>dash_app/plot_tab/plot_types/shared.py</file></path><path><editType>edit</editType><file>clubb_python_api/clubb_python/clubb_api.py</file></path><path><editType>edit</editType><file>src/SILHS/latin_hypercube_driver_module.F90</file></path><path><editType>edit</editType><file>README</file></path><path><editType>add</editType><file>tuner/taylor_metrics.py</file></path><path><editType>edit</editType><file>dash_app/plot_tab/plot_types/timeheight_plot.py</file></path><path><editType>edit</editType><file>dash_app/plot_tab/callbacks_grid.py</file></path><path><editType>add</editType><file>tuner/job_runtime.py</file></path><path><editType>add</editType><file>dash_app/tune_tab/__init__.py</file></path><path><editType>add</editType><file>dash_app/tune_tab/tab.py</file></path><path><editType>edit</editType><file>src/clubb_driver_test.F90</file></path><path><editType>add</editType><file>tuner/tuning_strategy.py</file></path><path><editType>edit</editType><file>dash_app/plot_tab/callbacks_controls.py</file></path><path><editType>edit</editType><file>dash_app/plot_tab/plot_types/profile_plot.py</file></path><path><editType>edit</editType><file>src/CLUBB_core/pdf_closure_module.F90</file></path><path><editType>add</editType><file>utilities/__init__.py</file></path><path><editType>edit</editType><file>dash_app/run_tab/layout.py</file></path><path><editType>add</editType><file>dash_app/assets/13_tab_tune_theme.css</file></path><path><editType>edit</editType><file>src/CLUBB_core/stats_netcdf.F90</file></path><path><editType>add</editType><file>dash_app/assets/37_run_console_state.js</file></path><path><editType>edit</editType><file>clubb_python_driver/advance_clubb_to_end.py</file></path><path><editType>edit</editType><file>run_scripts/run_scm.py</file></path><path><editType>add</editType><file>clubb_python_api/clubb_python/_runtime_loader.py</file></path><path><editType>add</editType><file>dash_app/tune_tab/callbacks_settings.py</file></path><path><editType>add</editType><file>jenkins_tests/clubb_stats_output_consistency_gfortran_test/Jenkinsfile</file></path><path><editType>edit</editType><file>src/CLUBB_core/clubb_api_module.F90</file></path><path><editType>edit</editType><file>dash_app/plot_tab/benchmark_overlay.py</file></path><path><editType>edit</editType><file>dash_app/plot_tab/plot_types/budget_plot.py</file></path><path><editType>add</editType><file>dash_app/tune_tab/runtime.py</file></path><path><editType>add</editType><file>tuner/README.md</file></path><path><editType>add</editType><file>run_scripts/run_scm_loss.py</file></path><path><editType>edit</editType><file>dash_app/app.py</file></path><path><editType>add</editType><file>src/clubb_loss_driver.F90</file></path><path><editType>edit</editType><file>src/CMakeLists.txt</file></path><path><editType>edit</editType><file>clubb_python_api/clubb_python/__init__.py</file></path><path><editType>add</editType><file>tuner/__init__.py</file></path><path><editType>edit</editType><file>run_scripts/run_bindiff_all.py</file></path><path><editType>edit</editType><file>run_scripts/create_multi_col_params.py</file></path><path><editType>edit</editType><file>dash_app/plot_tab/plot_types/subcolumn_plot.py</file></path><path><editType>edit</editType><file>clubb_python_api/f2py_fortran_wrappers/stats_netcdf_wrapper.F90</file></path><path><editType>add</editType><file>src/clubb_loss_driver_test.F90</file></path><path><editType>edit</editType><file>clubb_python_api/clubb_python/CLUBB_core/stats_netcdf.py</file></path><path><editType>add</editType><file>clubb_python_api/f2py_fortran_wrappers/clubb_loss_driver_wrapper.F90</file></path><path><editType>edit</editType><file>dash_app/plot_tab/callbacks_case.py</file></path><path><editType>add</editType><file>tuner/case_defaults.json</file></path><path><editType>edit</editType><file>src/CLUBB_core/error_code.F90</file></path><path><editType>edit</editType><file>clubb_python_driver/clubb_case_initalization.py</file></path><path><editType>add</editType><file>jenkins_tests/clubb_new_tuner_test/Jenkinsfile</file></path><path><editType>add</editType><file>dash_app/tune_tab/state.py</file></path><path><editType>add</editType><file>src/clubb_standalone_loss.F90</file></path><path><editType>add</editType><file>tuner/tuning_scheduler.py</file></path><path><editType>add</editType><file>jenkins_tests/LLM_FAILURE_AUTOMATION_DESIGN.md</file></path><path><editType>add</editType><file>tuner/clubb_loss_driver.py</file></path><path><editType>edit</editType><file>dash_app/run_tab/callbacks_console.py</file></path><path><editType>add</editType><file>dash_app/tune_tab/discovery.py</file></path><path><editType>add</editType><file>tuner/case_defaults.py</file></path><path><editType>add</editType><file>dash_app/tune_tab/callbacks_display.py</file></path><path><editType>add</editType><file>tuner/clubb_loss_driver_test.py</file></path><path><editType>add</editType><file>run_scripts/run_stats_output_consistency.py</file></path><path><editType>add</editType><file>dash_app/README.md</file></path><path><editType>edit</editType><file>src/clubb_driver.F90</file></path><path><editType>add</editType><file>utilities/benchmark_converter.py</file></path><path><editType>add</editType><file>clubb_python_api/clubb_python/CLUBB_core/loss_driver.py</file></path><path><editType>add</editType><file>tuner/status.py</file></path><path><editType>add</editType><file>tuner/paths.py</file></path><path><editType>add</editType><file>tuner/tune_clubb.py</file></path><path><editType>add</editType><file>run_scripts/run_benchmark_converter_test.py</file></path><path><editType>add</editType><file>dash_app/assets/36_tune_ui_resize.js</file></path><path><editType>add</editType><file>tuner/request.py</file></path><path><editType>edit</editType><file>clubb_python_api/clubb_f2py.pyf</file></path><path><editType>add</editType><file>tuner/tuning_worker.py</file></path><path><editType>edit</editType><file>dash_app/plot_tab/callbacks_params.py</file></path><path><editType>add</editType><file>tuner/test_tuning_strategy.py</file></path><path><editType>add</editType><file>dash_app/tune_tab/layout.py</file></path><path><editType>add</editType><file>run_scripts/run_tuner_job.py</file></path><path><editType>add</editType><file>dash_app/tune_tab/callbacks_runs.py</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>http://carson.math.uwm.edu/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit><inProgress>false</inProgress><nextBuild><number>546</number><url>http://carson.math.uwm.edu/jenkins/view/all/job/clubb_timestep_gfortran_tests/546/</url></nextBuild><previousBuild><number>544</number><url>http://carson.math.uwm.edu/jenkins/view/all/job/clubb_timestep_gfortran_tests/544/</url></previousBuild></previousBuild></workflowRun>