In the module, "physpkg.F90" modify 2 routines:
subroutine tphysac:
move the code block:
! store dse after tphysac in buffer
do k = 1,pver
dtcore(:ncol,k) = state%s(:ncol,k)
end do
to just below the line:
state%t(:ncol,:pver) = tini(:ncol,:pver) + ztodt*tend%dtdt(:ncol,:pver)
and change:
dtcore(:ncol,k) = state%s(:ncol,k)
to
dtcore(:ncol,k) = state%t(:ncol,k)
subroutine tphysbc:
change the line:
dtcore(:ncol,k) = (state%s(:ncol,k) - dtcore(:ncol,k))/(cpair*ztodt)
to
dtcore(:ncol,k) = (tini(:ncol,k) - dtcore(:ncol,k))/(ztodt) + tend%dTdt(:ncol,k)
... that should do it.
subroutine tphysac:
move the code block:
! store dse after tphysac in buffer
do k = 1,pver
dtcore(:ncol,k) = state%s(:ncol,k)
end do
to just below the line:
state%t(:ncol,:pver) = tini(:ncol,:pver) + ztodt*tend%dtdt(:ncol,:pver)
and change:
dtcore(:ncol,k) = state%s(:ncol,k)
to
dtcore(:ncol,k) = state%t(:ncol,k)
subroutine tphysbc:
change the line:
dtcore(:ncol,k) = (state%s(:ncol,k) - dtcore(:ncol,k))/(cpair*ztodt)
to
dtcore(:ncol,k) = (tini(:ncol,k) - dtcore(:ncol,k))/(ztodt) + tend%dTdt(:ncol,k)
... that should do it.