Started by user Gunther Huebler Obtained jenkins_tests/clubb_release_diff_test/Jenkinsfile from git https://github.com/larson-group/clubb.git [Pipeline] Start of Pipeline [Pipeline] node Running on Jenkins in /home/jenkins/workspace/clubb_release_diff_test [Pipeline] { [Pipeline] stage [Pipeline] { (Declarative: Checkout SCM) [Pipeline] checkout The recommended git tool is: git Cloning the remote Git repository Cloning repository https://github.com/larson-group/clubb.git > git init /home/jenkins/workspace/clubb_release_diff_test # timeout=10 Fetching upstream changes from https://github.com/larson-group/clubb.git > git --version # timeout=10 > git --version # 'git version 2.34.1' using GIT_ASKPASS to set credentials A token based key used by Jenkins to preform Github actions, created 6/21/2021 > git fetch --tags --force --progress -- https://github.com/larson-group/clubb.git +refs/heads/*:refs/remotes/origin/* # timeout=10 > git config remote.origin.url https://github.com/larson-group/clubb.git # timeout=10 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 Avoid second fetch > git rev-parse refs/remotes/origin/master^{commit} # timeout=10 Checking out Revision 3abb325943da1a557e1213b2908ead3c828aff16 (refs/remotes/origin/master) > git config core.sparsecheckout # timeout=10 > git checkout -f 3abb325943da1a557e1213b2908ead3c828aff16 # timeout=10 Commit message: "Making num_draw_points in fill_holes a constant. We were already using this value as a constant everywhere, but passing a constant by argument list makes it difficult/impossible for a compiler to optimize using that constant, unless it does inlining. Now, rather than passing the constant num_hf_draw_points (or sometimes a hardcoded 2) we just use num_hf_draw_points directly from constants_clubb. This massively improves the performance of a loop in fill holes when using nvhpc+omp, which was the motivation for this, but should also improve the performance on CPUs. Everything is BFB." > git rev-list --no-walk e904e3ffbf83888681ba64f9008890329bd18631 # timeout=10 [Pipeline] } [Pipeline] // stage [Pipeline] withEnv [Pipeline] { [Pipeline] stage [Pipeline] { (Checkout Clubb and Clubb_Release) [Pipeline] sh + git clone https://github.com/larson-group/clubb.git Cloning into 'clubb'... + git clone https://github.com/larson-group/clubb_release.git Cloning into 'clubb_release'... [Pipeline] } [Pipeline] // stage [Pipeline] stage [Pipeline] { (Diff) [Pipeline] sh + diff --exclude=.git --exclude=version_clubb_core.txt --exclude=version_silhs.txt -r clubb clubb_release diff '--exclude=.git' '--exclude=version_clubb_core.txt' '--exclude=version_silhs.txt' -r clubb/src/CLUBB_core/advance_clubb_core_module.F90 clubb_release/src/CLUBB_core/advance_clubb_core_module.F90 2150,2152c2150,2152 < call fill_holes_vertical( nz, ngrdcol, zero_threshold, nz, & ! In < gr%dzt, rho_ds_zt, & ! In < edsclrm(:,:,ixind) ) ! InOut --- > call fill_holes_vertical( nz, ngrdcol, num_hf_draw_points, zero_threshold, nz, & ! In > gr%dzt, rho_ds_zt, & ! In > edsclrm(:,:,ixind) ) ! InOut 3297,3298c3297,3298 < vp2_zt(:,:) = zm2zt( nz, ngrdcol, gr, vp2(:,:), w_tol_sqd ) ! Positive definite quantity < vp3_zm(:,:) = zt2zm( nz, ngrdcol, gr, vp3(:,:) ) --- > vp2_zt(:,:) = zm2zt( nz, ngrdcol, gr, vp2(:,:) ) ! Positive definite quantity > vp3_zm(:,:) = zt2zm( nz, ngrdcol, gr, vp3(:,:), w_tol_sqd ) diff '--exclude=.git' '--exclude=version_clubb_core.txt' '--exclude=version_silhs.txt' -r clubb/src/CLUBB_core/advance_wp2_wp3_module.F90 clubb_release/src/CLUBB_core/advance_wp2_wp3_module.F90 1675,1677c1675,1677 < call fill_holes_vertical( nz, ngrdcol, w_tol_sqd, nz-1, & ! In < gr%dzm, rho_ds_zm, & ! In < wp2 ) ! InOut --- > call fill_holes_vertical( nz, ngrdcol, num_hf_draw_points, w_tol_sqd, nz-1, & ! In > gr%dzm, rho_ds_zm, & ! In > wp2 ) ! InOut diff '--exclude=.git' '--exclude=version_clubb_core.txt' '--exclude=version_silhs.txt' -r clubb/src/CLUBB_core/advance_xm_wpxp_module.F90 clubb_release/src/CLUBB_core/advance_xm_wpxp_module.F90 4811,4813c4811,4813 < call fill_holes_vertical( nz, ngrdcol, xm_threshold, nz, & ! In < gr%dzt, rho_ds_zt, & ! In < xm ) ! InOut --- > call fill_holes_vertical( nz, ngrdcol, num_hf_draw_points, xm_threshold, nz, & ! In > gr%dzt, rho_ds_zt, & ! In > xm ) ! InOut diff '--exclude=.git' '--exclude=version_clubb_core.txt' '--exclude=version_silhs.txt' -r clubb/src/CLUBB_core/advance_xp2_xpyp_module.F90 clubb_release/src/CLUBB_core/advance_xp2_xpyp_module.F90 5925,5927c5925,5927 < call fill_holes_vertical( nz, ngrdcol, tolerance, nz-1, & ! In < gr%dzm, rho_ds_zm, & ! In < xp2_np1 ) ! InOut --- > call fill_holes_vertical( nz, ngrdcol, num_hf_draw_points, tolerance, nz-1, & ! In > gr%dzm, rho_ds_zm, & ! In > xp2_np1 ) ! InOut diff '--exclude=.git' '--exclude=version_clubb_core.txt' '--exclude=version_silhs.txt' -r clubb/src/CLUBB_core/clubb_api_module.F90 clubb_release/src/CLUBB_core/clubb_api_module.F90 206,207c206 < fill_holes_hydromet_api => fill_holes_hydromet, & < fill_holes_vertical_api => fill_holes_vertical --- > fill_holes_hydromet_api => fill_holes_hydromet 2035a2035,2082 > > !================================================================================================ > ! fill_holes_vertical - clips values of 'field' that are below 'threshold' as much as possible. > !================================================================================================ > > subroutine fill_holes_vertical_api( nz, ngrdcol, num_draw_pts, threshold, upper_hf_level, & > dz, rho_ds, & > field ) > > use fill_holes, only : fill_holes_vertical > > ! Type > > implicit none > > ! --------------------- Input variables --------------------- > integer, intent(in) :: & > nz, & > ngrdcol > > real( kind = core_rknd ), dimension(ngrdcol,nz) :: & > dz ! Spacing between thermodynamic grid levels; centered over > ! momentum grid levels > ! OR > ! Spcaing between momentum grid levels; centered over > ! thermodynamic grid levels > > integer, intent(in) :: & > num_draw_pts, & ! The number of points on either side of the hole; > ! Mass is drawn from these points to fill the hole. [] > upper_hf_level ! Upper grid level of global hole-filling range [] > > real( kind = core_rknd ), intent(in) :: & > threshold ! A threshold (e.g. w_tol*w_tol) below which field must not > ! fall [Units vary; same as field] > > real( kind = core_rknd ), dimension(ngrdcol,nz), intent(in) :: & > rho_ds ! Dry, static density on thermodynamic or momentum levels [kg/m^3] > > ! --------------------- Input/Output variable --------------------- > real( kind = core_rknd ), dimension(ngrdcol,nz), intent(inout) :: & > field ! The field (e.g. wp2) that contains holes [Units same as threshold] > > call fill_holes_vertical( nz, ngrdcol, num_draw_pts, threshold, upper_hf_level, & ! intent(in) > dz, rho_ds, & ! intent(in) > field ) ! intent(inout) > > end subroutine fill_holes_vertical_api diff '--exclude=.git' '--exclude=version_clubb_core.txt' '--exclude=version_silhs.txt' -r clubb/src/CLUBB_core/fill_holes.F90 clubb_release/src/CLUBB_core/fill_holes.F90 21c21 < subroutine fill_holes_vertical( nz, ngrdcol, threshold, upper_hf_level, & --- > subroutine fill_holes_vertical( nz, ngrdcol, num_draw_pts, threshold, upper_hf_level, & 59,61c59 < one, & < num_hf_draw_points ! The number of points on either side of the hole; < ! Mass is drawn from these points to fill the hole --- > one 77a76,77 > num_draw_pts, & ! The number of points on either side of the hole; > ! Mass is drawn from these points to fill the hole. [] 161c161 < do k = 2+num_hf_draw_points, upper_hf_level-num_hf_draw_points --- > do k = 2+num_draw_pts, upper_hf_level-num_draw_pts 164c164 < ! invrs_denom_integral(i,k) = one / sum(rho_ds_dz(i,k-num_hf_draw_points:k+num_hf_draw_points)) --- > ! invrs_denom_integral(i,k) = one / sum(rho_ds_dz(i,k-num_draw_pts:k+num_draw_pts)) 170c170 < do j = k - num_hf_draw_points, k + num_hf_draw_points --- > do j = k - num_draw_pts, k + num_draw_pts 189c189 < do k = 2+num_hf_draw_points, upper_hf_level-num_hf_draw_points --- > do k = 2+num_draw_pts, upper_hf_level-num_draw_pts 191,192c191,192 < k_start = k - num_hf_draw_points < k_end = k + num_hf_draw_points --- > k_start = k - num_draw_pts > k_end = k + num_draw_pts 849,851c849,851 < call fill_holes_vertical( gr%nz, 1, zero_threshold, gr%nz, & ! In < gr%dzt, rho_ds_zt, & ! In < hydromet(:,i) ) ! InOut --- > call fill_holes_vertical( gr%nz, 1, num_hf_draw_points, zero_threshold, gr%nz, & ! In > gr%dzt, rho_ds_zt, & ! In > hydromet(:,i) ) ! InOut diff '--exclude=.git' '--exclude=version_clubb_core.txt' '--exclude=version_silhs.txt' -r clubb/src/Morrison_microphys/microphysics.F90 clubb_release/src/Morrison_microphys/microphysics.F90 876,877c876 < grid, & < zero_threshold --- > grid 1389,1390c1388,1389 < call fill_holes_vertical_api( gr%nz, 1, zero_threshold, nz, & ! In < gr%dzt, rho_ds_zt_col, & ! In --- > call fill_holes_vertical_api( gr%nz, 1, 2, 0._core_rknd, nz, & ! In > gr%dzt, rho_ds_zt_col, & ! In 1405,1406c1404,1405 < call fill_holes_vertical_api( gr%nz, 1, zero_threshold, nz, & ! In < gr%dzt, rho_ds_zt_col, & ! In --- > call fill_holes_vertical_api( gr%nz, 1, 2, 0._core_rknd, nz, & ! In > gr%dzt, rho_ds_zt_col, & ! In 1472,1473c1471,1472 < call fill_holes_vertical_api( gr%nz, 1, zero_threshold, nz, & ! In < gr%dzt, rho_ds_zt_col, & ! In --- > call fill_holes_vertical_api( gr%nz, 1, 2, 0._core_rknd, nz, & ! In > gr%dzt, rho_ds_zt_col, & ! In 1488,1489c1487,1488 < call fill_holes_vertical_api( gr%nz, 1, zero_threshold, nz, & ! In < gr%dzt, rho_ds_zt_col, & ! In --- > call fill_holes_vertical_api( gr%nz, 1, 2, 0._core_rknd, nz, & ! In > gr%dzt, rho_ds_zt_col, & ! In [Pipeline] } [Pipeline] // stage [Pipeline] stage [Pipeline] { (Declarative: Post Actions) [Pipeline] script [Pipeline] { [Pipeline] cleanWs [WS-CLEANUP] Deleting project workspace... [WS-CLEANUP] Deferred wipeout is used... [WS-CLEANUP] done [Pipeline] } [Pipeline] // script [Pipeline] script [Pipeline] { [Pipeline] emailext Sending email to: messnermet@uwm.edu [Pipeline] } [Pipeline] // script [Pipeline] } [Pipeline] // stage [Pipeline] } [Pipeline] // withEnv [Pipeline] } [Pipeline] // node [Pipeline] End of Pipeline ERROR: script returned exit code 1 Finished: FAILURE