<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='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>402014</buildableTimeMillis><buildingDurationMillis>531949</buildingDurationMillis><executingTimeMillis>127681</executingTimeMillis><executorUtilization>0.24</executorUtilization><queuingDurationMillis>7476</queuingDurationMillis><queuingTimeMillis>409491</queuingTimeMillis><subTaskCount>1</subTaskCount><totalDurationMillis>539425</totalDurationMillis><waitingDurationMillis>7452</waitingDurationMillis><waitingTimeMillis>7452</waitingTimeMillis></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>219</buildNumber><marked><SHA1>82c8fdb39580f015d26f9cb021b8376696d96b7f</SHA1><branch><SHA1>82c8fdb39580f015d26f9cb021b8376696d96b7f</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>82c8fdb39580f015d26f9cb021b8376696d96b7f</SHA1><branch><SHA1>82c8fdb39580f015d26f9cb021b8376696d96b7f</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>82c8fdb39580f015d26f9cb021b8376696d96b7f</SHA1><branch><SHA1>82c8fdb39580f015d26f9cb021b8376696d96b7f</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></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://carson.math.uwm.edu/jenkins/job/clubb_monoflux_CPU_vs_GPU_diff/lastCompletedBuild/artifact</artifactsUrl><changesUrl>https://carson.math.uwm.edu/jenkins/job/clubb_monoflux_CPU_vs_GPU_diff/changes</changesUrl><displayUrl>https://carson.math.uwm.edu/jenkins/job/clubb_monoflux_CPU_vs_GPU_diff/lastCompletedBuild/stages</displayUrl><testsUrl>https://carson.math.uwm.edu/jenkins/job/clubb_monoflux_CPU_vs_GPU_diff/lastCompletedBuild/testReport</testsUrl></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'><restartEnabled>false</restartEnabled><restartableStage>Run test_monoflux_limiter_GPU.py</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.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><building>false</building><displayName>#219</displayName><duration>531949</duration><estimatedDuration>1383028</estimatedDuration><fullDisplayName>clubb_monoflux_CPU_vs_GPU_diff #219</fullDisplayName><id>219</id><keepLog>false</keepLog><number>219</number><queueId>11343</queueId><result>SUCCESS</result><timestamp>1792572668058</timestamp><url>https://carson.math.uwm.edu/jenkins/job/clubb_monoflux_CPU_vs_GPU_diff/219/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>clubb_python_api/clubb_python/microphys.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_diagnose_correlations_vs_fortran.py</affectedPath><affectedPath>clubb_python_api/clubb_python/clubb_api.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_clip_covar_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_adg2_driver_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_close_luhar_pdf_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_xpyp_term_ta_godunov_vs_fortran.py</affectedPath><affectedPath>tests/README.md</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_calc_roots_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_calc_comp_corrs_binormal_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_calendar_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_compute_gamma_skw_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_calc_wp3_on_wp2_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_calc_ddzt_umvm_sqd_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_pdf_utilities_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_compute_sigma_sqd_w_vs_fortran.py</affectedPath><affectedPath>clubb_python_api/f2py_fortran_wrappers/interpolation_wrapper.F90</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_fill_holes_mean_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_hydrostatic_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_pos_definite_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_Nc_Ncn_eqns_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_new_hybrid_pdf_main_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_luhar_params_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_limits_f_x_responder_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_remapping_ppm_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_mono_flux_limiter_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_interpolation_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_spurious_source_vs_fortran.py</affectedPath><affectedPath>jenkins_tests/clubb_jax/Jenkinsfile</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_cloud_drop_sed_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_w_up_in_cloud_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_cos_solar_zen_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_sfc_varnce_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_ly93_pdf_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_sponge_damp_xp23_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_sunray_sw_vs_fortran.py</affectedPath><affectedPath>clubb_python_api/clubb_f2py.pyf</affectedPath><affectedPath>.agents/skills/clubb-pytests/SKILL.md</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_diagnose_upxp_vs_fortran.py</affectedPath><affectedPath>clubb_python_api/f2py_fortran_wrappers/cloud_sed_module_wrapper.F90</affectedPath><affectedPath>clubb_jax/README.md</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_mirror_lower_triangular_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_cholesky_factor_vs_fortran.py</affectedPath><affectedPath>clubb_jax/src/CLUBB_core/advance_helper_module.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_binormal_moments_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_skx_func_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_new_pdf_main_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_pvertinterp_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_calculate_thvm_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_clip_variance_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_advance_helper_extras_vs_fortran.py</affectedPath><affectedPath>clubb_python_api/f2py_fortran_wrappers/skx_module_wrapper.F90</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_cholesky_corr_mtx_approx_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_rcm_sat_adj_vs_fortran.py</affectedPath><affectedPath>tests/run_pytests.sh</affectedPath><affectedPath>clubb_jax/pytests/f2py_unit_test_helpers.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_T_in_K_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/conftest.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_setter_var_params_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_grid_operators_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_advance_xp3_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_diffusion_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_solver_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_config_flags_complete_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_smooth_heaviside_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_mixing_length_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_calculate_w_responder_params_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_remapping_module_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_saturation_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_new_tsdadg_pdf_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_clip_skewness_vs_fortran.py</affectedPath><affectedPath>clubb_python_api/clubb_python/CLUBB_core/interpolation.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_mean_adv_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_luhar_3d_driver_vs_fortran.py</affectedPath><affectedPath>clubb_jax/src/Radiation/BUGSrad/gases_ckd_data.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_responder_params_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_coefs_semiimpl_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_diagnose_xp3_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_xpyp_term_ta_pdf_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_param_names_vs_fortran.py</affectedPath><affectedPath>clubb_python_api/clubb_python/CLUBB_core/skx_module.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_pdf_moment_integrals_vs_fortran.py</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_new_pdf_vs_fortran.py</affectedPath><commitId>bb08268b3348ef71f7eec35eb0fb5ee4eb10197d</commitId><timestamp>1792526227000</timestamp><author><absoluteUrl>https://carson.math.uwm.edu/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Restore jax fortran oracle tests (#1404)

Restored clubb_jax vs clubb_f2py fortran bindings tests that compare the outputs of clubb_jax functions directly to their compiled fortran counterparts.

clubb_jax changes are minimal:

Use hardcoded pi that matches the pi used in fortran instead of jnp.pi
remove the clubb_release hardcoded path from the gases_ckd_data.py parser.
</comment><date>2026-10-20 14:57:07 -0500</date><id>bb08268b3348ef71f7eec35eb0fb5ee4eb10197d</id><msg>Restore jax fortran oracle tests (#1404)</msg><path><editType>edit</editType><file>clubb_python_api/clubb_python/CLUBB_core/interpolation.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_new_hybrid_pdf_main_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_sunray_sw_vs_fortran.py</file></path><path><editType>edit</editType><file>clubb_jax/README.md</file></path><path><editType>edit</editType><file>clubb_python_api/f2py_fortran_wrappers/interpolation_wrapper.F90</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_mean_adv_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_spurious_source_vs_fortran.py</file></path><path><editType>edit</editType><file>tests/README.md</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_T_in_K_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_ly93_pdf_vs_fortran.py</file></path><path><editType>edit</editType><file>clubb_jax/src/CLUBB_core/advance_helper_module.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_skx_func_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/conftest.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_luhar_3d_driver_vs_fortran.py</file></path><path><editType>edit</editType><file>clubb_python_api/clubb_python/CLUBB_core/skx_module.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_luhar_params_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_pos_definite_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_cholesky_corr_mtx_approx_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_clip_covar_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_diagnose_xp3_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_python_api/clubb_python/microphys.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_remapping_module_vs_fortran.py</file></path><path><editType>edit</editType><file>clubb_python_api/clubb_f2py.pyf</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_advance_helper_extras_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_solver_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_adg2_driver_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_calculate_w_responder_params_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_compute_gamma_skw_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_limits_f_x_responder_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_mixing_length_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_mono_flux_limiter_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_diagnose_upxp_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_pdf_moment_integrals_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_cos_solar_zen_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_Nc_Ncn_eqns_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_clip_skewness_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_mirror_lower_triangular_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_config_flags_complete_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_setter_var_params_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_cholesky_factor_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_pvertinterp_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_calc_roots_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_smooth_heaviside_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_xpyp_term_ta_pdf_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/f2py_unit_test_helpers.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_binormal_moments_vs_fortran.py</file></path><path><editType>edit</editType><file>clubb_jax/src/Radiation/BUGSrad/gases_ckd_data.py</file></path><path><editType>edit</editType><file>tests/run_pytests.sh</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_param_names_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_calc_comp_corrs_binormal_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_calculate_thvm_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_hydrostatic_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_new_tsdadg_pdf_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_new_pdf_main_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_rcm_sat_adj_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_diagnose_correlations_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_sponge_damp_xp23_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_new_pdf_vs_fortran.py</file></path><path><editType>edit</editType><file>jenkins_tests/clubb_jax/Jenkinsfile</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_saturation_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_xpyp_term_ta_godunov_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_cloud_drop_sed_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_compute_sigma_sqd_w_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_calc_ddzt_umvm_sqd_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_interpolation_vs_fortran.py</file></path><path><editType>edit</editType><file>clubb_python_api/f2py_fortran_wrappers/skx_module_wrapper.F90</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_calendar_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_clip_variance_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_pdf_utilities_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_python_api/f2py_fortran_wrappers/cloud_sed_module_wrapper.F90</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_calc_wp3_on_wp2_vs_fortran.py</file></path><path><editType>edit</editType><file>.agents/skills/clubb-pytests/SKILL.md</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_sfc_varnce_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_close_luhar_pdf_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_fill_holes_mean_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_grid_operators_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_diffusion_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_coefs_semiimpl_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_responder_params_vs_fortran.py</file></path><path><editType>edit</editType><file>clubb_python_api/clubb_python/clubb_api.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_advance_xp3_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_remapping_ppm_vs_fortran.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_w_up_in_cloud_vs_fortran.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>clubb_jax/src/CLUBB_core/fill_holes.py</affectedPath><affectedPath>.agents/skills/clubb-documentation/language/SKILL.md</affectedPath><affectedPath>clubb_jax/pytests/auto_llm_generated_pytests/test_multicolumn_microphys_adapters.py</affectedPath><affectedPath>clubb_jax/src/Microphys/pdf_hydromet_microphys_wrapper.py</affectedPath><affectedPath>.agents/skills/clubb-documentation/change-messages/SKILL.md</affectedPath><commitId>82c8fdb39580f015d26f9cb021b8376696d96b7f</commitId><timestamp>1792549343000</timestamp><author><absoluteUrl>https://carson.math.uwm.edu/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Fix per-column inputs in JAX microphysics (#1407)

* Align JAX microphysics with per-column Fortran inputs

Pass each column’s parameters into PDF preparation and its own grid spacing into hydrometeor hole filling after the master multi-column fix. The previous scalar remapping disagreed with current Fortran from step 2.

Six focused eager/JIT checks pass, covering column independence, conserved mass and derivatives. Both regressions detect the retained pre-fix adapters; full case comparisons are in progress.

(cherry picked from commit 7fc8280d9ce3fe0ec51bf5e7f3cfd3a0e7c8838a)

* Explain PR problems before describing their solutions

Change-first PR openings make their motivation harder to follow. Use
Motivation and Change to describe the problem first, then its cause and
the proposed solution; align the language guidance with that order.

Both documentation skills validate, and relative-link checks pass.
</comment><date>2026-10-20 21:22:23 -0500</date><id>82c8fdb39580f015d26f9cb021b8376696d96b7f</id><msg>Fix per-column inputs in JAX microphysics (#1407)</msg><path><editType>edit</editType><file>.agents/skills/clubb-documentation/change-messages/SKILL.md</file></path><path><editType>edit</editType><file>clubb_jax/src/CLUBB_core/fill_holes.py</file></path><path><editType>add</editType><file>clubb_jax/pytests/auto_llm_generated_pytests/test_multicolumn_microphys_adapters.py</file></path><path><editType>edit</editType><file>clubb_jax/src/Microphys/pdf_hydromet_microphys_wrapper.py</file></path><path><editType>edit</editType><file>.agents/skills/clubb-documentation/language/SKILL.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://carson.math.uwm.edu/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName><id>noreply</id></culprit><inProgress>false</inProgress><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='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>2709381</buildableTimeMillis><buildingDurationMillis>2828170</buildingDurationMillis><executingTimeMillis>117529</executingTimeMillis><executorUtilization>0.04</executorUtilization><subTaskCount>1</subTaskCount><waitingDurationMillis>9641</waitingDurationMillis><waitingTimeMillis>9641</waitingTimeMillis></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>218</buildNumber><marked><SHA1>8369512fcc6487603491e12ac13376de2aec2a0b</SHA1><branch><SHA1>8369512fcc6487603491e12ac13376de2aec2a0b</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>8369512fcc6487603491e12ac13376de2aec2a0b</SHA1><branch><SHA1>8369512fcc6487603491e12ac13376de2aec2a0b</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>8369512fcc6487603491e12ac13376de2aec2a0b</SHA1><branch><SHA1>8369512fcc6487603491e12ac13376de2aec2a0b</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></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><building>false</building><displayName>#218</displayName><duration>2828170</duration><estimatedDuration>1383028</estimatedDuration><fullDisplayName>clubb_monoflux_CPU_vs_GPU_diff #218</fullDisplayName><id>218</id><keepLog>false</keepLog><number>218</number><queueId>11190</queueId><result>SUCCESS</result><timestamp>1792486270503</timestamp><url>https://carson.math.uwm.edu/jenkins/job/clubb_monoflux_CPU_vs_GPU_diff/218/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/generalized_grid_test.F90</affectedPath><affectedPath>src/CLUBB_core/setup_clubb_pdf_params.F90</affectedPath><affectedPath>clubb_python_api/clubb_f2py.pyf</affectedPath><affectedPath>src/CLUBB_core/fill_holes.F90</affectedPath><affectedPath>clubb_python_api/pytests/auto_llm_generated_pytests/test_call_tree_precipitation_fraction.py</affectedPath><affectedPath>clubb_python_api/f2py_fortran_wrappers/precipitation_fraction_wrapper.F90</affectedPath><affectedPath>src/G_unit_test_types/mu_sigma_hm_tests.F90</affectedPath><affectedPath>src/Microphys/pdf_hydromet_microphys_wrapper.F90</affectedPath><affectedPath>clubb_python_api/clubb_python/CLUBB_core/precipitation_fraction.py</affectedPath><affectedPath>src/CLUBB_core/precipitation_fraction.F90</affectedPath><commitId>8369512fcc6487603491e12ac13376de2aec2a0b</commitId><timestamp>1792463005000</timestamp><author><absoluteUrl>https://carson.math.uwm.edu/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Clubb params 1d to 2d fix (#1392)

* Fix: clubb params is a shape (ngrdcol,nparams) that is passed into subroutines that expect a 1d array

Also fixed dependent other places in code and changed the python api. This is BIT_CHANGING for multicol.
If a 2d array is passed into a function that expects the arr to be 1d fortran just passes the first col of the arr.
Therefore the changes dont affect single col runs. For multicol runs other indexing is needed

* fill_holes_vertical_api expects the passed gr%dzt to have shape(ngrdcol,nz) but the code passes the whole gr%dzt array although each column is traversed one by one.
So ngrdcol=1 is passed each time.

No effect on single col, as with ngrdcol = 1, gr%dzt and gr%dzt(1:1,:) are the same.
Affects multicol if l_hole_fill = .true. and the hydrometeor is a mixing ratio (name starts with r) and
some value is actually negative

Therefore BIT_CHANGING
</comment><date>2026-10-19 21:23:25 -0500</date><id>8369512fcc6487603491e12ac13376de2aec2a0b</id><msg>Clubb params 1d to 2d fix (#1392)</msg><path><editType>edit</editType><file>src/CLUBB_core/setup_clubb_pdf_params.F90</file></path><path><editType>edit</editType><file>clubb_python_api/pytests/auto_llm_generated_pytests/test_call_tree_precipitation_fraction.py</file></path><path><editType>edit</editType><file>src/generalized_grid_test.F90</file></path><path><editType>edit</editType><file>clubb_python_api/clubb_f2py.pyf</file></path><path><editType>edit</editType><file>src/Microphys/pdf_hydromet_microphys_wrapper.F90</file></path><path><editType>edit</editType><file>clubb_python_api/f2py_fortran_wrappers/precipitation_fraction_wrapper.F90</file></path><path><editType>edit</editType><file>clubb_python_api/clubb_python/CLUBB_core/precipitation_fraction.py</file></path><path><editType>edit</editType><file>src/CLUBB_core/precipitation_fraction.F90</file></path><path><editType>edit</editType><file>src/G_unit_test_types/mu_sigma_hm_tests.F90</file></path><path><editType>edit</editType><file>src/CLUBB_core/fill_holes.F90</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://carson.math.uwm.edu/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit><inProgress>false</inProgress><nextBuild><number>219</number><url>https://carson.math.uwm.edu/jenkins/job/clubb_monoflux_CPU_vs_GPU_diff/219/</url></nextBuild><previousBuild><number>217</number><url>https://carson.math.uwm.edu/jenkins/job/clubb_monoflux_CPU_vs_GPU_diff/217/</url></previousBuild></previousBuild></workflowRun>