nompicomm

Module

Description

$Id$

Dummy module for MPI communication. This allows the code to run on a single CPU.

Quick access

Types:

foreign_setup

Variables:

bufsizes_yz, bufsizes_yz_corn, collect_from_pencil_xy, collect_from_pencil_xy_2d, collect_grid, collect_xy, collect_xy_0d, collect_xy_2d, collect_xy_3d, collect_xy_4d, collect_z, collect_z_3d, collect_z_4d, create_communicators, cyinyang, displs, distribute_to_pencil_xy, distribute_to_pencil_xy_2d, distribute_xy, distribute_xy_0d, distribute_xy_2d, distribute_xy_3d, distribute_xy_4d, distribute_yz, distribute_yz_3d, distribute_yz_4d, distribute_z, distribute_z_3d, distribute_z_4d, fahi, fahihi, fake_parallel_close, fake_parallel_open, falo, falolo, fao, fbhi, fbhihi, fblo, fblolo, fbo, fetch_to_process_masked, foreign_setup, get_foreign_snap_finalize, get_foreign_snap_initiate, get_limits, index_to_iproc_comm, initialize_foreign_comm, intcoeffs, io_perm, io_succ, iproc, ipx, ipx_partner, ipy, ipz, irecv_rq_fromlastlastya, irecv_rq_fromlastlastyb, irecv_rq_fromlastya, irecv_rq_fromlastyb, irecv_rq_fromnextnextya, irecv_rq_fromnextnextyb, irecv_rq_fromnextya, irecv_rq_fromnextyb, irecv_rq_npole, irecv_rq_spole, irecv_stat_fl, irecv_stat_fll, irecv_stat_flu, irecv_stat_fu, irecv_stat_ful, irecv_stat_fuu, irecv_stat_np, irecv_stat_npole, irecv_stat_sp, irecv_stat_spole, isend_rq_npole, isend_rq_spole, isend_rq_tolastlastya, isend_rq_tolastlastyb, isend_rq_tolastya, isend_rq_tolastyb, isend_rq_tonextnextya, isend_rq_tonextnextyb, isend_rq_tonextya, isend_rq_tonextyb, isend_stat_np, isend_stat_npole, isend_stat_sp, isend_stat_spole, isend_stat_tl, isend_stat_tll, isend_stat_tlu, isend_stat_tu, isend_stat_tul, isend_stat_tuu, isendrcv_bdry_npole, isendrcv_bdry_spole, ixbeam, ixyplane, ixzplane, iybeam, iyzplane, izbeam, lastlastya, lastlastyb, lastya, lastyb, lbufxi, lbufxo, lbufyi, lbufyo, lbufzi, lbufzo, lcommunicate_y, left, len_cornbuf, len_cornstrip_y, len_cornstrip_z, lfirst_proc_x, lfirst_proc_xy, lfirst_proc_xyz, lfirst_proc_xz, lfirst_proc_y, lfirst_proc_yz, lfirst_proc_z, llast_proc_x, llast_proc_xy, llast_proc_xyz, llast_proc_xz, llast_proc_y, llast_proc_yz, llast_proc_z, llbufi, llbufo, llcornr, llcorns, lroot, lubufi, lubufo, lucornr, lucorns, lyang, merge_1d, mid, midy, midz, mpi_2float, mpi_any_tag, mpi_cmplx, mpi_comm_grid, mpi_comm_pencil, mpi_comm_rslice, mpi_comm_universe, mpi_comm_world, mpi_comm_xbeam, mpi_comm_xyplane, mpi_comm_xzplane, mpi_comm_ybeam, mpi_comm_yzplane, mpi_comm_zbeam, mpi_info_null, mpi_precision, mpiabort, mpiallreduce_and, mpiallreduce_and_scl, mpiallreduce_max, mpiallreduce_max_arr, mpiallreduce_max_scl, mpiallreduce_max_scl_dbl, mpiallreduce_max_scl_int, mpiallreduce_max_scl_sgl, mpiallreduce_merge, mpiallreduce_min, mpiallreduce_min_dbl, mpiallreduce_min_scl_dbl, mpiallreduce_min_scl_int, mpiallreduce_min_scl_sgl, mpiallreduce_min_sgl, mpiallreduce_or, mpiallreduce_or_arr_inplace, mpiallreduce_or_scl, mpiallreduce_sum, mpiallreduce_sum_arr3, mpiallreduce_sum_arr4, mpiallreduce_sum_arr5, mpiallreduce_sum_arr_inplace, mpiallreduce_sum_int, mpiallreduce_sum_int_arr, mpiallreduce_sum_int_arr_inplace, mpiallreduce_sum_int_scl, mpiallreduce_sum_scl, mpibcast, mpibcast_char, mpibcast_char_arr, mpibcast_char_scl, mpibcast_cmplx, mpibcast_cmplx_arr, mpibcast_double, mpibcast_double_arr, mpibcast_double_scl, mpibcast_int, mpibcast_int_arr, mpibcast_int_arr2, mpibcast_int_scl, mpibcast_logical, mpibcast_logical_arr, mpibcast_logical_arr2, mpibcast_logical_scl, mpibcast_real, mpibcast_real_arr2, mpibcast_real_arr3, mpibcast_real_arr4, mpibcast_real_scl, mpicomm_init_min, mpierr, mpifinalize_min, mpigather_and_out_cmplx, mpigather_scl_str, mpigather_z_1d, mpigetcomm, mpirecv_char, mpirecv_char_scl, mpirecv_int, mpirecv_int_arr, mpirecv_int_arr2, mpirecv_int_scl, mpirecv_logical, mpirecv_logical_arr, mpirecv_logical_scl, mpirecv_nonblock_int, mpirecv_nonblock_int_arr, mpirecv_nonblock_int_arr2, mpirecv_nonblock_int_scl, mpirecv_nonblock_real, mpirecv_nonblock_real_arr, mpirecv_nonblock_real_arr2, mpirecv_nonblock_real_arr3, mpirecv_nonblock_real_arr4, mpirecv_nonblock_real_arr5, mpirecv_real, mpirecv_real_arr, mpirecv_real_arr2, mpirecv_real_arr3, mpirecv_real_arr4, mpirecv_real_arr5, mpirecv_real_scl, mpireduce_and, mpireduce_and_arr, mpireduce_and_scl, mpireduce_max, mpireduce_max_arr, mpireduce_max_arr2, mpireduce_max_arr_inplace, mpireduce_max_arr_int, mpireduce_max_int, mpireduce_max_scl, mpireduce_maxloc_arr, mpireduce_min, mpireduce_min_arr, mpireduce_min_scl, mpireduce_or, mpireduce_or_arr, mpireduce_or_scl, mpireduce_sum, mpireduce_sum_arr, mpireduce_sum_arr2, mpireduce_sum_arr3, mpireduce_sum_arr4, mpireduce_sum_arr_inplace, mpireduce_sum_int, mpireduce_sum_int_arr, mpireduce_sum_int_arr2, mpireduce_sum_int_arr3, mpireduce_sum_int_arr4, mpireduce_sum_int_scl, mpireduce_sum_scl, mpiscan_int, mpiscatter, mpiscatter_real_arr, mpiscatter_real_arr2, mpiscatterv, mpiscatterv_int, mpiscatterv_real, mpiscatterv_real_plain, mpisend_char, mpisend_char_scl, mpisend_int, mpisend_int_arr, mpisend_int_arr2, mpisend_int_scl, mpisend_logical, mpisend_logical_arr, mpisend_logical_scl, mpisend_nonblock_int, mpisend_nonblock_int_arr, mpisend_nonblock_int_arr2, mpisend_nonblock_int_scl, mpisend_nonblock_real, mpisend_nonblock_real_arr, mpisend_nonblock_real_arr2, mpisend_nonblock_real_arr3, mpisend_nonblock_real_arr4, mpisend_nonblock_real_arr5, mpisend_real, mpisend_real_arr, mpisend_real_arr2, mpisend_real_arr3, mpisend_real_arr4, mpisend_real_arr5, mpisend_real_scl, mpisendrecv_int, mpisendrecv_int_arr, mpisendrecv_real, mpisendrecv_real_arr, mpisendrecv_real_arr2, mpisendrecv_real_arr3, mpisendrecv_real_arr4, mpisendrecv_real_scl, nextnextya, nextnextyb, nextya, nextyb, nil, npbufyi, npbufyo, npole_tag, nprocs, parallel_close_ext, parallel_close_int, parallel_open_ext, parallel_open_int, periodic_bdry_x, periodic_bdry_y, periodic_bdry_z, pnbcrn, pnfcrn, psbcrn, psfcrn, qtag_xy, qtag_yz, qtag_zx, radboundary_yz_recv, radboundary_yz_send, read_infile, read_infile_root, real_arr_maxsize, remap_to_pencil_xy, remap_to_pencil_xy_2d, remap_to_pencil_xy_3d, remap_to_pencil_xy_4d, remap_to_pencil_y, remap_to_pencil_y_1d, remap_to_pencil_y_2d, remap_to_pencil_y_3d, remap_to_pencil_y_4d, remap_to_pencil_yz, remap_to_pencil_yz_3d, remap_to_pencil_yz_4d, remap_to_pencil_z, remap_to_pencil_z_1d, remap_to_pencil_z_2d, remap_to_pencil_z_3d, remap_to_pencil_z_4d, right, root_rslice, scatter_snapshot, serial_level, set_rslice_communicator, shiftn, shifts, size_of_double, size_of_int, size_of_real, spbufyi, spbufyo, spole_tag, tonb, tonf, tosb, tosf, transp_pencil_xy, transp_pencil_xy_2d, transp_pencil_xy_3d, transp_pencil_xy_4d, true_parallel_close, true_parallel_open, ubufxi, ubufxo, ubufyi, ubufyo, ubufzi, ubufzo, ulbufi, ulbufo, ulcornr, ulcorns, unmap_from_pencil_xy, unmap_from_pencil_xy_2d, unmap_from_pencil_xy_3d, unmap_from_pencil_xy_4d, unmap_from_pencil_y, unmap_from_pencil_y_1d, unmap_from_pencil_y_2d, unmap_from_pencil_y_3d, unmap_from_pencil_y_4d, unmap_from_pencil_yz, unmap_from_pencil_yz_3d, unmap_from_pencil_yz_4d, unmap_from_pencil_z, unmap_from_pencil_z_1d, unmap_from_pencil_z_2d, unmap_from_pencil_z_3d, unmap_from_pencil_z_4d, update_foreign_data, update_neighbors, uubufi, uubufo, uucornr, uucorns, ycornstart, yy_buflens, yyinit, zcornstart, zero_size

Routines:

check_emergency_brake(), collect_grid(), communicate_vect_field_ghosts(), communicate_xy_ghosts(), create_communicators(), die_gracefully(), die_immediately(), end_serialize(), fetch_to_process_masked(), fill_zghostzones_3vec(), finalize_isendrcv_bdry(), finalize_shearing(), get_foreign_snap_finalize(), get_foreign_snap_initiate(), globalize_xy(), globalize_z(), index_to_iproc_comm(), initialize_foreign_comm(), initialize_mpicomm(), initiate_isendrcv_bdry(), initiate_shearing(), isendrcv_bdry_x(), localize_xy(), localize_z(), mpiabort(), mpiallreduce_merge(), mpiallreduce_sum_arr(), mpiallreduce_sum_arr2(), mpibarrier(), mpibcast_cmplx_arr_dbl(), mpibcast_cmplx_arr_sgl(), mpibcast_real_arr(), mpicomm_init(), mpicomm_init_min(), mpifinalize(), mpifinalize_min(), mpigather(), mpigather_and_out_real(), mpigather_scl_str(), mpigather_xy(), mpigather_z(), mpigather_z_1d(), mpimerge_1d(), mpireduce_max_scl_int(), mpireduce_sum_double_arr(), mpireduce_sum_double_arr2(), mpireduce_sum_double_arr3(), mpireduce_sum_double_arr4(), mpireduce_sum_double_scl(), mpiscan_int(), mpiscatterv_real_plain(), mpiwait(), mpiwtick(), mpiwtime(), periodic_bdry_x(), periodic_bdry_y(), periodic_bdry_z(), radboundary_xy_recv(), radboundary_xy_send(), radboundary_yz_periodic_ray(), radboundary_yz_recv(), radboundary_yz_send(), radboundary_yz_sendrecv(), radboundary_zx_periodic_ray(), radboundary_zx_recv(), radboundary_zx_send(), radboundary_zx_sendrecv(), remap_to_pencil_x(), remap_to_pencil_xy_2d_other(), report_clean_output(), scatter_snapshot(), set_rslice_communicator(), start_serialize(), stop_it(), stop_it_if_any(), sum_xy(), transp(), transp_other(), transp_xy(), transp_xy_other(), transp_xz(), transp_zx(), unmap_from_pencil_x(), unmap_from_pencil_xy_2d_other(), update_foreign_data(), update_neighbors(), y2x(), yyinit(), z2x()

Needed modules

Variables

  • mpicomm/mpi_cmplx [integer]
  • mpicomm/mpi_precision [integer]

Subroutines and functions

subroutine  mpicomm/mpicomm_init()

29-jul-2010/anders: dummy

Call to:

stop_it(), mpiwtime(), mpiwtick(), mpifinalize(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/initialize_mpicomm()

Make a quick consistency check.

Call to:

stop_it(), mpiwtime(), mpiwtick(), mpifinalize(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/initiate_isendrcv_bdry(f[, ivar1_opt[, ivar2_opt]])

For one processor, use periodic boundary conditions. In this dummy routine this is done in finalize_isendrcv_bdry.

Parameters:
  • f (mx,my,mz,mfarray) [real]

  • ivar1_opt [integer]

  • ivar2_opt [integer]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/finalize_isendrcv_bdry(f[, ivar1_opt[, ivar2_opt]])

Apply boundary conditions.

Parameters:
  • f (mx,my,mz,mfarray) [real]

  • ivar1_opt [integer]

  • ivar2_opt [integer]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/isendrcv_bdry_x(f[, ivar1_opt[, ivar2_opt]])

Dummy

Parameters:
  • f (,,*,*) [real,in]

  • ivar1_opt [integer,in,]

  • ivar2_opt [integer,in,]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/initiate_shearing(f[, ivar1_opt[, ivar2_opt]])
Parameters:
  • f (mx,my,mz,mfarray) [real]

  • ivar1_opt [integer]

  • ivar2_opt [integer]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/finalize_shearing(f[, ivar1_opt[, ivar2_opt]])

Shear-periodic boundary conditions in x (using just one CPU).

Parameters:
  • f (mx,my,mz,mfarray) [real]

  • ivar1_opt [integer]

  • ivar2_opt [integer]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/radboundary_zx_recv(mrad, idir, qrecv_zx)
Parameters:
  • mrad [integer]

  • idir [integer]

  • qrecv_zx (mx,mz) [real]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/radboundary_xy_recv(nrad, idir, qrecv_xy)
Parameters:
  • nrad [integer]

  • idir [integer]

  • qrecv_xy (mx,my) [real]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/radboundary_zx_send(mrad, idir, qsend_zx)
Parameters:
  • mrad [integer]

  • idir [integer]

  • qsend_zx (mx,mz) [real]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/radboundary_xy_send(nrad, idir, qsend_xy)
Parameters:
  • nrad [integer]

  • idir [integer]

  • qsend_xy (mx,my) [real]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/radboundary_yz_sendrecv(lrad, idir, qsend_yz, qrecv_yz)
Parameters:
  • lrad [integer]

  • idir [integer]

  • qsend_yz (my,mz) [real]

  • qrecv_yz (my,mz) [real]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/radboundary_zx_sendrecv(mrad, idir, qsend_zx, qrecv_zx)
Parameters:
  • mrad [integer]

  • idir [integer]

  • qsend_zx (mx,mz) [real]

  • qrecv_zx (mx,mz) [real]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/radboundary_yz_periodic_ray(qrad_yz, tau_yz, qrad_yz_all, tau_yz_all)

Trivial counterpart of radboundary_yz_periodic_ray() from mpicomm.f90

17-nov-14/axel: adapted from radboundary_zx_periodic_ray

Parameters:
Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/radboundary_zx_periodic_ray(qrad_zx, tau_zx, qrad_zx_all, tau_zx_all)

Trivial counterpart of radboundary_zx_periodic_ray() from mpicomm.f90

19-jul-05/tobi: coded

Parameters:
Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/mpibcast_real_arr(bcast_array, nbcast_array[, proc])
Parameters:
  • bcast_array (nbcast_array) [real]

  • nbcast_array [integer]

  • proc [integer]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/mpibcast_cmplx_arr_dbl(bcast_array, nbcast_array[, proc])

Communicate real array between processors.

Parameters:
  • bcast_array (nbcast_array) [complex]

  • nbcast_array [integer]

  • proc [integer]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/mpibcast_cmplx_arr_sgl(bcast_array, nbcast_array[, proc])

Communicate real array between processors.

Parameters:
  • bcast_array (nbcast_array) [complex]

  • nbcast_array [integer]

  • proc [integer]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/mpiwait(bwait)
Parameters:

bwait [integer]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/mpiallreduce_sum_arr(fsum_tmp, fsum, nreduce[, idir])
Parameters:
  • fsum_tmp (nreduce) [real]

  • fsum (nreduce) [real]

  • nreduce [integer]

  • idir [integer]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/mpiallreduce_sum_arr2(fsum_tmp, fsum, nreduce[, idir])
Parameters:
  • fsum_tmp (nreduce(1,nreduce(2) [real]

  • fsum (nreduce(1,nreduce(2) [real]

  • nreduce (2) [integer,in,required]

  • idir [integer]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/mpireduce_max_scl_int(fmax_tmp, fmax)
Parameters:
  • fmax_tmp [integer]

  • fmax [integer]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/mpireduce_sum_double_scl(dsum_tmp, dsum)
Parameters:
  • precision [double]

  • precision

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/mpireduce_sum_double_arr(dsum_tmp, dsum, nreduce)
Parameters:
  • precision [double]

  • precision

  • nreduce [integer]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/mpireduce_sum_double_arr2(dsum_tmp, dsum, nreduce)
Parameters:
  • precision [double]

  • precision

  • nreduce (2) [integer,in,required]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/mpireduce_sum_double_arr3(dsum_tmp, dsum, nreduce)
Parameters:
  • precision [double]

  • precision

  • nreduce (3) [integer,in,required]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/mpireduce_sum_double_arr4(dsum_tmp, dsum, nreduce)
Parameters:
  • precision [double]

  • precision

  • nreduce (4) [integer,in,required]

Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/start_serialize()
Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/end_serialize()
Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/mpibarrier()
Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/mpifinalize()
Call to:

mpiwtime(), mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

function  mpicomm/mpiwtime()

Mimic the MPI_WTIME() timer function. On many machines, the implementation through system_clock() will overflow after about 50 minutes, so MPI_WTIME() is better.

5-oct-2002/wolf: coded

Return:

precision [double]

Call to:

mpiwtick(), mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

function  mpicomm/mpiwtick()

Mimic the MPI_WTICK() function for measuring timer resolution.

5-oct-2002/wolf: coded

Return:

precision [double]

Call to:

mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/die_gracefully()

Stop… perform any necessary shutdown stuff.

29-jun-05/tony: coded

Call to:

mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/die_immediately()

Stop… perform any necessary shutdown stuff.

29-jun-05/tony: coded

Call to:

mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/stop_it(msg[, code])

Print message and stop.

6-nov-01/wolf: coded 4-nov-11/MR: optional parameter for error code added

Parameters:
  • msg [character]

  • code [integer]

Use :

general (itoa())

Call to:

mpifinalize(), stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/stop_it_if_any(stop_flag, msg)

Conditionally print message and stop.

22-nov-04/wolf: coded

Parameters:
  • stop_flag [logical]

  • msg [character]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/check_emergency_brake()

Check the lemergency_brake flag and stop with any provided message if it is set.

29-jul-06/tony: coded

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/transp(a, var)

Doing a transpose (dummy version for single processor).

5-sep-02/axel: adapted from version in mpicomm.f90

Parameters:
  • a (nx,ny,nz) [real]

  • var [character]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/transp_xy(a)

Doing a transpose in x and y only (dummy version for single processor)

5-oct-02/tobi: adapted from transp

Parameters:

a (nx,ny) [real,inout]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/transp_xy_other(a)

Doing a transpose in x and y only (dummy version for single processor)

5-oct-02/tobi: adapted from transp

Parameters:

a (,) [real,inout]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/transp_other(a, var)

Doing a transpose in 3D (dummy version for single processor)

08-may-08/wlad: adapted from transp

Parameters:
  • a (,,*) [real,inout]

  • var [character]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/transp_xz(a, b)

Doing the transpose of information distributed on several processors. This routine transposes 2D arrays in x and z only.

19-dec-06/anders: Adapted from transp

Parameters:
  • a (,) [real,in]

  • b (,) [real,out]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/transp_zx(b, a)

Doing the transpose of information distributed on several processors. This routine transposes 2D arrays in x and z only.

19-dec-06/anders: Adapted from transp

Parameters:
  • b (,) [real,in]

  • a (,) [real,out]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/fill_zghostzones_3vec(vec, ivar)

Fills the upper and lower ghostzones for periodic BCs and a 3-vector vec. ivar, ivar+1, ivar+2 indices of the variables vec corresponds to

20-oct-09/MR: coded

Parameters:
  • vec (mz,3) [real,inout]

  • ivar [integer,in]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/communicate_vect_field_ghosts(f, topbot[, start_index])

Helper routine for communication of ghost cell values of a vector field. Needed by potential field extrapolations, which only compute nx*ny arrays. Can also be used for synchronization of changed uu values with ghost cells, if the start_index parameter set to iux (default is iax).

8-oct-2006/tobi: Coded

28-dec-2010/Bourdin.KIS: extended to work for any 3D vector field data.

Parameters:
  • f (mx,my,mz,mfarray) [real,inout]

  • topbot [integer,in]

  • start_index [integer,in,]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/communicate_xy_ghosts(data)

Helper routine for communication of ghost cells in horizontal direction.

11-apr-2011/Bourdin.KIS: adapted from communicate_vect_field_ghosts.

Parameters:

data (mx,my) [real,inout]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/sum_xy(in, out)

Sum up 0D data in the xy-plane and distribute back the sum.

19-jan-2011/Bourdin.KIS: coded

Parameters:
  • in [real,in]

  • out [real,out]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/globalize_xy(in[, out[, dest_proc[, source_pz]]])

Globalizes local 4D data first along the x, then along the y-direction to the destination processor. The local data is supposed to include the ghost cells. Inner ghost layers are cut away during the combination of the data. ‘dest_proc’ is the destination iproc number relative to the first processor in the corresponding xy-plane (Default: 0, equals lfirst_proc_xy).

23-Apr-2012/Bourdin.KIS: adapted from non-torus-type globalize_xy

Parameters:
  • in (,,*,*) [real,in]

  • out (,,*,*) [real,out,]

  • dest_proc [integer,in,]

  • source_pz [integer,in,]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/localize_xy(out[, in[, source_proc[, dest_pz]]])

Localizes global 4D data first along the y, then along the x-direction to the destination processor. The global data is supposed to include the outer ghost layers. The returned data will include inner ghost layers. Inner ghost layers are cut away during the combination of the data.

23-Apr-2012/Bourdin.KIS: adapted from non-torus-type localize_xy

Parameters:
  • out (,,*,*) [real,out]

  • in (,,*,*) [real,in,]

  • source_proc [integer,in,]

  • dest_pz [integer,in,]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/globalize_z(in[, out[, dest_proc]])

Globalizes local 1D data in the z-direction to the destination processor. The local data is supposed to include the ghost cells. Inner ghost layers are cut away during the combination of the data.

13-aug-2011/Bourdin.KIS: coded

Parameters:
  • in (*) [real,in]

  • out (*) [real,out,]

  • dest_proc [integer,in,]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/localize_z(out[, in[, source_proc]])

Localizes global 1D data to all processors along the z-direction. The global data is supposed to include the outer ghost layers. The returned data will include inner ghost layers.

13-aug-2011/Bourdin.KIS: coded

Parameters:
  • out (*) [real,out]

  • in (*) [real,in,]

  • source_proc [integer,in,]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/remap_to_pencil_x(in, out)

Remaps data distributed on several processors into pencil shape. This routine remaps 1D arrays in x only for nprocx>1.

08-dec-2010/Bourdin.KIS: coded

Parameters:
  • in (*) [real,in]

  • out (*) [real,out]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/unmap_from_pencil_x(in, out)

Unmaps pencil shaped 1D data distributed on several processors back to normal shape. This routine is the inverse of the remap function for nprocx>1.

08-dec-2010/Bourdin.KIS: coded

Parameters:
  • in (*) [real,in]

  • out (*) [real,out]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/remap_to_pencil_xy_2d_other(in, out)

Remaps data distributed on several processors into pencil shape. This routine remaps 2D arrays in x and y only for nprocx>1.

4-jul-2010/Bourdin.KIS: coded

Parameters:
  • in (,) [real,in]

  • out (,) [real,out]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/unmap_from_pencil_xy_2d_other(in, out)

Unmaps pencil shaped 2D data distributed on several processors back to normal shape. This routine is the inverse of the remap function for nprocx>1.

4-jul-2010/Bourdin.KIS: coded

Parameters:
  • in (,) [real,in]

  • out (,) [real,out]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/y2x(a, xi, zj, zproc_no, ay)

Load the y dimension of an array in a 1-d array.

21-mar-2011/axel: adapted from z2x

Parameters:
  • a (nx,ny,nz) [real,in]

  • xi [integer,in]

  • zj [integer,in]

  • zproc_no [integer,in]

  • ay (ny) [real,out]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/z2x(a, xi, yj, yproc_no, az)

Load the z dimension of an array in a 1-d array.

1-july-2008: dhruba

Parameters:
  • a (nx,ny,nz) [real,in]

  • xi [integer,in]

  • yj [integer,in]

  • yproc_no [integer,in]

  • az (nz) [real,out]

Call to:

stop_it(), stop_it_if_any(), report_clean_output()

subroutine  mpicomm/mpigather_xy(sendbuf, recvbuf, lpz)

21-dec-10/MR: coded

Parameters:
Call to:

report_clean_output()

subroutine  mpicomm/mpigather_z(sendbuf, recvbuf, n1[, lproc])

21-dec-10/MR: coded 20-apr-11/MR: buffer dimensions corrected

Parameters:
  • sendbuf (n1,nz) [real,in]

  • recvbuf (n1,nzgrid) [real,out]

  • n1 [integer,in,]

  • lproc [integer,in,]

Call to:

report_clean_output()

subroutine  mpicomm/mpigather_and_out_real(sendbuf, unit[, ltransp[, kxrange[, kyrange[, zrange]]]])

21-dec-10/MR: coded 06-apr-11/MR: optional parameters kxrange, kyrange, zrange for selective output added 10-may-11/MR: modified into real and complex flavors 20-mar-15/MR: made potentially big arrays sendbuf* assumed-shape

Parameters:
  • sendbuf (,,*) [real,in]

  • unit [integer,in]

  • ltransp [logical,in,]

  • kxrange (3,*) [integer,in,]

  • kyrange (3,*) [integer,in,]

  • zrange (3,*) [integer,in,]

  • sendbuf_cmplx (,,*,*) [complex,in]

Use :

general (write_by_ranges_2d_real(), write_by_ranges_2d_cmplx())

Call to:

report_clean_output()

subroutine  mpicomm/mpimerge_1d(vector, nk[, idir])

21-dec-10/MR: coded

Parameters:
  • vector (nk) [real,inout]

  • nk [integer,in,]

  • idir [integer,in,]

Call to:

report_clean_output()

function  mpicomm/report_clean_output(flag, message)
Parameters:
  • flag [logical,in]

  • message [character,out]

Return:

report_clean_output [logical]