|
MOM6
|
Find an accurate and order-invariant sum of a distributed 2d or 3d field.
Definition at line 53 of file MOM_coms.F90.
Private functions | |
| real function | reproducing_sum_2d (array, isr, ier, jsr, jer, EFP_sum, reproducing, overflow_check, err, only_on_PE) |
| This subroutine uses a conversion to an integer representation of real numbers to give an order-invariant sum of distributed 2-D arrays that reproduces across domain decomposition. This technique is described in Hallberg & Adcroft, 2014, Parallel Computing, doi:10.1016/j.parco.2014.04.007. More... | |
| real function | reproducing_sum_3d (array, isr, ier, jsr, jer, sums, EFP_sum, EFP_lay_sums, err, only_on_PE) |
| This subroutine uses a conversion to an integer representation of real numbers to give an order-invariant sum of distributed 3-D arrays that reproduces across domain decomposition. This technique is described in Hallberg & Adcroft, 2014, Parallel Computing, doi:10.1016/j.parco.2014.04.007. More... | |
Find an accurate and order-invariant sum of a distributed 2d or 3d field.
Definition at line 53 of file MOM_coms.F90.
|
private |
This subroutine uses a conversion to an integer representation of real numbers to give an order-invariant sum of distributed 2-D arrays that reproduces across domain decomposition. This technique is described in Hallberg & Adcroft, 2014, Parallel Computing, doi:10.1016/j.parco.2014.04.007.
| [in] | array | The array to be summed |
| [in] | isr | The starting i-index of the sum, noting that the array indices starts at 1 |
| [in] | ier | The ending i-index of the sum, noting that the array indices starts at 1 |
| [in] | jsr | The starting j-index of the sum, noting that the array indices starts at 1 |
| [in] | jer | The ending j-index of the sum, noting that the array indices starts at 1 |
| [out] | efp_sum | The result in extended fixed point format |
| [in] | reproducing | If present and false, do the sum using the naive non-reproducing approach |
| [in] | overflow_check | If present and false, disable checking for overflows in incremental results. This can speed up calculations if the number of values being summed is small enough |
| [out] | err | If present, return an error code instead of triggering any fatal errors directly from this routine. |
| [in] | only_on_pe | If present and true, do not do the sum across processors, only reporting the local sum |
Definition at line 220 of file MOM_coms.F90.
|
private |
This subroutine uses a conversion to an integer representation of real numbers to give an order-invariant sum of distributed 3-D arrays that reproduces across domain decomposition. This technique is described in Hallberg & Adcroft, 2014, Parallel Computing, doi:10.1016/j.parco.2014.04.007.
| [in] | array | The array to be summed |
| [in] | isr | The starting i-index of the sum, noting that the array indices starts at 1 |
| [in] | ier | The ending i-index of the sum, noting that the array indices starts at 1 |
| [in] | jsr | The starting j-index of the sum, noting that the array indices starts at 1 |
| [in] | jer | The ending j-index of the sum, noting that the array indices starts at 1 |
| [out] | sums | The sums by vertical layer |
| [out] | efp_sum | The result in extended fixed point format |
| [out] | efp_lay_sums | The sums by vertical layer in EFP format |
| [out] | err | If present, return an error code instead of triggering any fatal errors directly from this routine. |
| [in] | only_on_pe | If present and true, do not do the sum across processors, only reporting the local sum |
Definition at line 325 of file MOM_coms.F90.