Boole weights of the five sub-point density anomalies r5 (top
to bottom): dpa = g*dz*<rho'> and the first moment from the top.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | r5(N_BOOLE) |
Density anomaly at the five sub-points (kg/m^3). |
||
| real(kind=wp), | intent(in) | :: | dz |
Layer thickness (m). |
||
| real(kind=wp), | intent(out) | :: | dpa |
g * int rho’ dz over the layer (Pa). |
||
| real(kind=wp), | intent(out) | :: | intz_dpa |
0.5 * g * dz^2 * bracket (Pa*m), first moment from the top. |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=wp), | private | :: | rho_anom |
pure subroutine boole_layer_combine(r5, dz, dpa, intz_dpa) !$acc routine seq !! Boole weights of the five sub-point density anomalies `r5` (top !! to bottom): `dpa = g*dz*<rho'>` and the first moment from the top. real(wp), intent(in) :: r5(N_BOOLE) !! Density anomaly at the five sub-points (kg/m^3). real(wp), intent(in) :: dz !! Layer thickness (m). real(wp), intent(out) :: dpa !! g * int rho' dz over the layer (Pa). real(wp), intent(out) :: intz_dpa !! 0.5 * g * dz^2 * bracket (Pa*m), first moment from the top. real(wp) :: rho_anom rho_anom = (1.0_wp/90.0_wp)*(7.0_wp*(r5(1) + r5(5)) & + 32.0_wp*(r5(2) + r5(4)) + 12.0_wp*r5(3)) dpa = GRAVITY*dz*rho_anom intz_dpa = 0.5_wp*GRAVITY*dz*dz*(rho_anom & - (1.0_wp/90.0_wp)*(16.0_wp*(r5(4) - r5(2)) + 7.0_wp*(r5(5) - r5(1)))) end subroutine boole_layer_combine