Non-polymorphic copy_out body. X(i,j) = w_X(i+off, j+off) over the full normal index range. Outputs: time-mean eta/ubt/vbt, uhbt/vhbt, *_end snapshots.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(bt_wide_t), | intent(in) | :: | this | |||
| type(hgrid_t), | intent(in) | :: | grid |
Normal-width grid. |
||
| real(kind=wp), | intent(out) | :: | bt_eta(grid%nx_total,grid%ny_total) |
Time-mean barotropic SSH (output). |
||
| real(kind=wp), | intent(out) | :: | bt_ubt(grid%nx_total+1,grid%ny_total) |
Time-mean BT u (output). |
||
| real(kind=wp), | intent(out) | :: | bt_vbt(grid%nx_total,grid%ny_total+1) |
Time-mean BT v (output). |
||
| real(kind=wp), | intent(out) | :: | bt_uhbt(grid%nx_total+1,grid%ny_total) |
Time-mean depth-integrated u transport (output). |
||
| real(kind=wp), | intent(out) | :: | bt_vhbt(grid%nx_total,grid%ny_total+1) |
Time-mean depth-integrated v transport (output). |
||
| real(kind=wp), | intent(out) | :: | bt_eta_end(grid%nx_total,grid%ny_total) |
End-of-loop eta snapshot (output). |
||
| real(kind=wp), | intent(out) | :: | bt_ubt_end(grid%nx_total+1,grid%ny_total) |
End-of-loop u snapshot (output). |
||
| real(kind=wp), | intent(out) | :: | bt_vbt_end(grid%nx_total,grid%ny_total+1) |
End-of-loop v snapshot (output). |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | private | :: | i | ||||
| integer, | private | :: | j | ||||
| integer, | private | :: | nx | ||||
| integer, | private | :: | ny | ||||
| integer, | private | :: | off |
subroutine bt_wide_copy_out_impl(this, grid, & bt_eta, bt_ubt, bt_vbt, & bt_uhbt, bt_vhbt, & bt_eta_end, bt_ubt_end, bt_vbt_end) !! Non-polymorphic copy_out body. X(i,j) = w_X(i+off, j+off) !! over the full normal index range. Outputs: time-mean eta/ubt/vbt, !! uhbt/vhbt, *_end snapshots. type(bt_wide_t), intent(in) :: this type(hgrid_t), intent(in) :: grid !! Normal-width grid. real(wp), intent(out) :: bt_eta(grid%nx_total, grid%ny_total) !! Time-mean barotropic SSH (output). real(wp), intent(out) :: bt_ubt(grid%nx_total + 1, grid%ny_total) !! Time-mean BT u (output). real(wp), intent(out) :: bt_vbt(grid%nx_total, grid%ny_total + 1) !! Time-mean BT v (output). real(wp), intent(out) :: bt_uhbt(grid%nx_total + 1, grid%ny_total) !! Time-mean depth-integrated u transport (output). real(wp), intent(out) :: bt_vhbt(grid%nx_total, grid%ny_total + 1) !! Time-mean depth-integrated v transport (output). real(wp), intent(out) :: bt_eta_end(grid%nx_total, grid%ny_total) !! End-of-loop eta snapshot (output). real(wp), intent(out) :: bt_ubt_end(grid%nx_total + 1, grid%ny_total) !! End-of-loop u snapshot (output). real(wp), intent(out) :: bt_vbt_end(grid%nx_total, grid%ny_total + 1) !! End-of-loop v snapshot (output). integer :: i, j, nx, ny, off off = this%bt_halo nx = grid%nx_total ny = grid%ny_total do concurrent(j=1:ny, i=1:nx) bt_eta(i, j) = this%w_eta(i + off, j + off) bt_eta_end(i, j) = this%w_eta_end(i + off, j + off) end do do concurrent(j=1:ny, i=1:nx + 1) bt_ubt(i, j) = this%w_ubt(i + off, j + off) bt_uhbt(i, j) = this%w_uhbt(i + off, j + off) bt_ubt_end(i, j) = this%w_ubt_end(i + off, j + off) end do do concurrent(j=1:ny + 1, i=1:nx) bt_vbt(i, j) = this%w_vbt(i + off, j + off) bt_vhbt(i, j) = this%w_vhbt(i + off, j + off) bt_vbt_end(i, j) = this%w_vbt_end(i + off, j + off) end do end subroutine bt_wide_copy_out_impl