@@ -300,9 +300,9 @@ subroutine diabatic(u, v, h, tv, Hml, fluxes, visc, ADp, CDp, dt, Time_end, &
300300
301301 ! save copy of the date for SPPT
302302 if (CS% do_sppt) then
303- h_in= h
304- t_in= tv% T
305- s_in= tv% S
303+ h_in(:,:,:) = h(:,:,:)
304+ t_in(:,:,:) = tv% T(:,:,:)
305+ s_in(:,:,:) = tv% S(:,:,:)
306306
307307 if (CS% id_sppt_wts > 0 ) then
308308 call post_data(CS% id_sppt_wts, stochastics% sppt_wts, CS% diag)
@@ -456,23 +456,24 @@ subroutine diabatic(u, v, h, tv, Hml, fluxes, visc, ADp, CDp, dt, Time_end, &
456456 if (CS% debugConservation) call MOM_state_stats(' leaving diabatic' , u, v, h, tv% T, tv% S, G, GV, US)
457457
458458 if (CS% do_sppt) then
459+ ! perturb diabatic tendecies
459460 do k= 1 ,nz
460461 do j= js,je
461462 do i= is,ie
462- h_tend = (h(i,j,k)- h_in(i,j,k))* stochastics% sppt_wts(i,j)
463- t_tend = (tv% T(i,j,k)- t_in(i,j,k))* stochastics% sppt_wts(i,j)
464- s_tend = (tv% S(i,j,k)- s_in(i,j,k))* stochastics% sppt_wts(i,j)
465- h_pert= h_tend+ h_in(i,j,k)
466- t_pert= t_tend+ t_in(i,j,k)
467- s_pert= s_tend+ s_in(i,j,k)
463+ h_tend = (h(i,j,k) - h_in(i,j,k)) * stochastics% sppt_wts(i,j)
464+ t_tend = (tv% T(i,j,k) - t_in(i,j,k)) * stochastics% sppt_wts(i,j)
465+ s_tend = (tv% S(i,j,k) - s_in(i,j,k)) * stochastics% sppt_wts(i,j)
466+ h_pert = h_tend + h_in(i,j,k)
467+ t_pert = t_tend + t_in(i,j,k)
468+ s_pert = s_tend + s_in(i,j,k)
468469 if (h_pert > GV% Angstrom_H) then
469- h(i,j,k)= h_pert
470+ h(i,j,k) = h_pert
470471 else
471- h(i,j,k)= GV% Angstrom_H
472+ h(i,j,k) = GV% Angstrom_H
472473 endif
473- tv% T(i,j,k)= t_pert
474+ tv% T(i,j,k) = t_pert
474475 if (s_pert > 0.0 ) then
475- tv% S(i,j,k)= s_pert
476+ tv% S(i,j,k) = s_pert
476477 endif
477478 enddo
478479 enddo
0 commit comments