Zonal mass transport through a u-face given face velocity u.
C¹ continuous in u (cubic near zero, linear saturation beyond).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | u | |||
| type(local_BT_cont_u_type), | intent(in) | :: | BTC |
pure function find_uhbt(u, BTC) result(uhbt) !! Zonal mass transport through a u-face given face velocity `u`. !! C¹ continuous in `u` (cubic near zero, linear saturation beyond). !$acc routine seq real(wp), intent(in) :: u type(local_BT_cont_u_type), intent(in) :: BTC real(wp) :: uhbt if (u == 0.0_wp) then uhbt = 0.0_wp else if (u < BTC%uBT_EE) then uhbt = (u - BTC%uBT_EE)*BTC%FA_u_EE + BTC%uh_EE else if (u < 0.0_wp) then uhbt = u*(BTC%FA_u_E0 + BTC%uh_crvE*u**2) else if (u <= BTC%uBT_WW) then uhbt = u*(BTC%FA_u_W0 + BTC%uh_crvW*u**2) else uhbt = (u - BTC%uBT_WW)*BTC%FA_u_WW + BTC%uh_WW end if end function find_uhbt