interp_temperature_w Function

public function interp_temperature_w(i, j, k)

Uses

  • proc~~interp_temperature_w~~UsesGraph proc~interp_temperature_w interp_temperature_w module~modfields modfields proc~interp_temperature_w->module~modfields module~modglobal modglobal proc~interp_temperature_w->module~modglobal decomp_2d decomp_2d module~modfields->decomp_2d

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: i
integer, intent(in) :: j
integer, intent(in) :: k

Return Value real


Source Code

   real function interp_temperature_w(i, j, k)
     ! interpolates the temperature at w-grid location i,j,k
     use modglobal, only :  dzf, dzh
     use modfields, only :  thl0
     integer, intent(in) :: i, j, k
     real :: wk, wkm

     ! linear interpolation between zf(k-1) and zf(k) to zh(k) weights level k by
     ! dzf(k-1) and level k-1 by dzf(k); a solid neighbour (mask_c = 0) drops out and
     ! the fluid value is used on its own, as before
     wk  = dzf(k-1)*mask_c(i,j,k  )
     wkm = dzf(k  )*mask_c(i,j,k-1)
     if (wk + wkm > 0.) then
       interp_temperature_w = (thl0(i,j,k)*wk + thl0(i,j,k-1)*wkm) / (wk + wkm)
     else
       interp_temperature_w = 0.
     end if

     return
   end function interp_temperature_w