budget_area_field Subroutine

private subroutine budget_area_field(this, areaT)

Per-cell T-area (m²) for physical integrals: cached metrics areaT once set_area has run, else uniform grid%dx·grid%dy.

Arguments

Type IntentOptional Attributes Name
type(ocean_budgets_t), intent(in) :: this
real(kind=wp), intent(out), allocatable :: areaT(:,:)

Called by

proc~~budget_area_field~~CalledByGraph proc~budget_area_field budget_area_field proc~ocean_budgets_drain_contributors ocean_budgets_t%ocean_budgets_drain_contributors proc~ocean_budgets_drain_contributors->proc~budget_area_field proc~ocean_budgets_evaluate ocean_budgets_t%ocean_budgets_evaluate proc~ocean_budgets_evaluate->proc~budget_area_field proc~ocean_budgets_init_snapshot ocean_budgets_t%ocean_budgets_init_snapshot proc~ocean_budgets_init_snapshot->proc~ocean_budgets_evaluate

Source Code

   subroutine budget_area_field(this, areaT)
      !! Per-cell T-area (m²) for physical integrals: cached metrics `areaT`
      !! once `set_area` has run, else uniform `grid%dx·grid%dy`.
      type(ocean_budgets_t), intent(in) :: this
      real(wp), allocatable, intent(out) :: areaT(:, :)
      if (allocated(this%areaT)) then
         areaT = this%areaT
      else
         allocate (areaT(this%grid%nx_total, this%grid%ny_total), &
                   source=this%grid%dx*this%grid%dy)
      end if
   end subroutine budget_area_field