|
real function | mom_coms::reproducing_sum_2d (array, isr, ier, jsr, jer, EFP_sum, reproducing, overflow_check, err) |
| 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 | mom_coms::reproducing_sum_3d (array, isr, ier, jsr, jer, sums, EFP_sum, err) |
| 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...
|
|
integer(kind=8) function, dimension(ni) | mom_coms::real_to_ints (r, prec_error, overflow) |
| Convert a real number into the array of integers constitute its extended-fixed-point representation. More...
|
|
real function | mom_coms::ints_to_real (ints) |
| Convert the array of integers that constitute an extended-fixed-point representation into a real number. More...
|
|
subroutine | mom_coms::increment_ints (int_sum, int2, prec_error) |
| Increment an array of integers that constitutes an extended-fixed-point representation with a another EFP number. More...
|
|
subroutine | mom_coms::increment_ints_faster (int_sum, r, max_mag_term) |
| Increment an EFP number with a real number without doing any carrying of of overflows and using only minimal error checking. More...
|
|
subroutine | mom_coms::carry_overflow (int_sum, prec_error) |
| This subroutine handles carrying of the overflow. More...
|
|
subroutine | mom_coms::regularize_ints (int_sum) |
| This subroutine carries the overflow, and then makes sure that all integers are of the same sign as the overall value. More...
|
|
logical function, public | mom_coms::query_efp_overflow_error () |
| Returns the status of the module's error flag. More...
|
|
subroutine, public | mom_coms::reset_efp_overflow_error () |
| Reset the module's error flag to false. More...
|
|
type(efp_type) function, public | mom_coms::efp_plus (EFP1, EFP2) |
| Add two extended-fixed-point numbers. More...
|
|
type(efp_type) function, public | mom_coms::efp_minus (EFP1, EFP2) |
| Subract one extended-fixed-point number from another. More...
|
|
subroutine | mom_coms::efp_assign (EFP1, EFP2) |
| Copy one extended-fixed-point number into another. More...
|
|
real function, public | mom_coms::efp_to_real (EFP1) |
| Return the real number that an extended-fixed-point number corresponds with. More...
|
|
real function, public | mom_coms::efp_real_diff (EFP1, EFP2) |
| Take the difference between two extended-fixed-point numbers (EFP1 - EFP2) and return the result as a real number. More...
|
|
type(efp_type) function, public | mom_coms::real_to_efp (val, overflow) |
| Return the extended-fixed-point number that a real number corresponds with. More...
|
|
subroutine, public | mom_coms::efp_list_sum_across_pes (EFPs, nval, errors) |
| This subroutine does a sum across PEs of a list of EFP variables, returning the sums in place, with all overflows carried. More...
|
|
subroutine, public | mom_coms::mom_infra_end |
| This subroutine carries out all of the calls required to close out the infrastructure cleanly. This should only be called in ocean-only runs, as the coupler takes care of this in coupled runs. More...
|
|