@@ -415,7 +415,7 @@ subroutine GFS_MP_generic_post_run(
415415 idtend_mp = dtidx(index_of_temperature,index_of_process_mp)
416416 if (idtend_radar> 0 .or. idtend_mp> 0 ) then
417417 if (idtend_mp> 0 ) then
418- dtend(:,1 :2 ,idtend_mp) = dtend(:,1 :2 ,idtend_mp) + (gt0( :,1 :2 )- save_t(:, 1 : 2 )) * frain
418+ dtend(:,1 :2 ,idtend_mp) = dtend(:,1 :2 ,idtend_mp) + ten_t( :,1 :2 )* dtp * frain
419419 endif
420420 do k= 3 ,levs-2 ! Avoid model top and bottom in case DA forgets to
421421 do i= 1 ,im
@@ -425,12 +425,12 @@ subroutine GFS_MP_generic_post_run(
425425 dtend(i,k,idtend_radar) = dtend(i,k,idtend_radar) + (gt0(i,k)- save_t(i,k)) * frain
426426 endif
427427 else if (idtend_mp> 0 ) then
428- dtend(i,k,idtend_mp) = dtend(i,k,idtend_mp) + (gt0( i,k)- save_t(i,k)) * frain
428+ dtend(i,k,idtend_mp) = dtend(i,k,idtend_mp) + ten_t( i,k)* dtp * frain
429429 endif
430430 enddo
431431 enddo
432432 if (idtend_mp> 0 ) then
433- dtend(:,levs-1 :levs,idtend_mp) = dtend(:,levs-1 :levs,idtend_mp) + (gt0( :,levs-1 :levs)- save_t(:,levs -1 :levs)) * frain
433+ dtend(:,levs-1 :levs,idtend_mp) = dtend(:,levs-1 :levs,idtend_mp) + ten_t( :,levs-1 :levs)* dtp * frain
434434 endif
435435 endif
436436 endif
@@ -539,11 +539,14 @@ subroutine GFS_MP_generic_post_run(
539539 if_tendency_diagnostics: if (ldiag3d) then
540540 idtend = dtidx(index_of_temperature,index_of_process_mp)
541541 if (idtend>= 1 ) then
542- do k= 1 ,levs
543- do i= 1 ,im
544- dtend(i,k,idtend) = dtend(i,k,idtend) + (gt0(i,k)- save_t(i,k)) * frain
545- enddo
546- enddo
542+ ! don't overwrite radar tendencies calculated above when radar temperature tendencies are active
543+ if (itime> num_dfi_radar) then
544+ do k= 1 ,levs
545+ do i= 1 ,im
546+ dtend(i,k,idtend) = dtend(i,k,idtend) + ten_t(i,k)* dtp* frain
547+ enddo
548+ enddo
549+ endif
547550 endif
548551 if_tracer_diagnostics: if (qdiag3d) then
549552 dtend_q: do itrac= 1 ,ntrac
0 commit comments