|
subroutine, public | mod_oasis_reprosum::oasis_reprosum_setopts (repro_sum_use_ddpdd_in, repro_sum_rel_diff_max_in, repro_sum_recompute_in, repro_sum_master, repro_sum_logunit) |
| Set runtime options. More...
|
|
subroutine, public | mod_oasis_reprosum::oasis_reprosum_calc (arr, arr_gsum, nsummands, dsummands, nflds, ddpdd_sum, arr_gbl_max, arr_gbl_max_out, arr_max_levels, arr_max_levels_out, gbl_max_nsummands, gbl_max_nsummands_out, gbl_count, repro_sum_validate, repro_sum_stats, rel_diff, commid) |
| Compute the global sum of each field in "arr" using the indicated communicator with a reproducible yet scalable implementation based on a fixed point algorithm. An alternative is to use an "almost
always reproducible" floating point algorithm. More...
|
|
subroutine | mod_oasis_reprosum::oasis_reprosum_int (arr, arr_gsum, nsummands, dsummands, nflds, arr_max_shift, arr_gmax_exp, max_levels, max_level, validate, recompute, omp_nthreads, mpi_comm) |
| Compute the global sum of each field in "arr" using the indicated communicator with a reproducible yet scalable implementation based on a fixed point algorithm. The accuracy of the fixed point algorithm is controlled by the number of "levels" of integer expansion, the maximum value of which is specified by max_level. More...
|
|
logical function, public | mod_oasis_reprosum::oasis_reprosum_tolexceeded (name, nflds, master, logunit, rel_diff) |
| Test whether distributed sum exceeds tolerance and print out a warning message. More...
|
|
subroutine | mod_oasis_reprosum::oasis_reprosum_ddpdd (arr, arr_gsum, nsummands, dsummands, nflds, mpi_comm) |
| Compute the global sum of each field in "arr" using the indicated communicator with a reproducible yet scalable implementation based on He and Ding's implementation of the double-double algorithm. More...
|
|
subroutine, private | mod_oasis_reprosum::ddpdd (dda, ddb, len, itype) |
|
subroutine, private | mod_oasis_reprosum::split_indices (total, num_pieces, ibeg, iend) |
|