Wet/dry NOBUDGET twin — see apply_surface_src_2d_nobudget_impl
and apply_surface_src_2d_dyn_impl.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(inout) | :: | hTr(nx,ny,nz) | |||
| real(kind=wp), | intent(in) | :: | wet_mask(nx,ny) | |||
| real(kind=wp), | intent(in) | :: | wet_dyn(nx,ny) | |||
| real(kind=wp), | intent(in) | :: | Q_field(nx,ny) | |||
| real(kind=wp), | intent(in) | :: | inv_scale | |||
| integer, | intent(in) | :: | k_top(nx,ny) |
See |
||
| integer, | intent(in) | :: | nz | |||
| integer, | intent(in) | :: | nx | |||
| integer, | intent(in) | :: | ny |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=wp), | private | :: | cell | ||||
| integer, | private | :: | i | ||||
| integer, | private | :: | j |
pure subroutine apply_surface_src_2d_dyn_nobudget_impl(hTr, wet_mask, wet_dyn, & Q_field, inv_scale, k_top, nz, nx, ny) !! Wet/dry NOBUDGET twin — see `apply_surface_src_2d_nobudget_impl` !! and `apply_surface_src_2d_dyn_impl`. integer, intent(in) :: nz, nx, ny real(wp), intent(inout) :: hTr(nx, ny, nz) real(wp), intent(in) :: wet_mask(nx, ny) real(wp), intent(in) :: wet_dyn(nx, ny) real(wp), intent(in) :: Q_field(nx, ny) real(wp), intent(in) :: inv_scale integer, intent(in) :: k_top(nx, ny) !! See `apply_surface_src_2d_impl`. integer :: i, j real(wp) :: cell do concurrent(j=1:ny, i=1:nx) local(cell) cell = inv_scale*Q_field(i, j)*wet_mask(i, j)*wet_dyn(i, j) hTr(i, j, k_top(i, j)) = hTr(i, j, k_top(i, j)) + cell end do end subroutine apply_surface_src_2d_dyn_nobudget_impl