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
Subroutines and functions
- subroutine mpicomm/mpicomm_init()
29-jul-2010/anders: dummy
- subroutine mpicomm/initialize_mpicomm()
Make a quick consistency check.
- 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:
- 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:
- 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:
- 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:
- Call to:
mpiwtime(),mpiwtick(),mpifinalize(),stop_it(),stop_it_if_any(),report_clean_output()
- subroutine mpicomm/radboundary_zx_recv(mrad, idir, qrecv_zx)
- Parameters:
- Call to:
mpiwtime(),mpiwtick(),mpifinalize(),stop_it(),stop_it_if_any(),report_clean_output()
- subroutine mpicomm/radboundary_xy_recv(nrad, idir, qrecv_xy)
- Parameters:
- Call to:
mpiwtime(),mpiwtick(),mpifinalize(),stop_it(),stop_it_if_any(),report_clean_output()
- subroutine mpicomm/radboundary_zx_send(mrad, idir, qsend_zx)
- Parameters:
- Call to:
mpiwtime(),mpiwtick(),mpifinalize(),stop_it(),stop_it_if_any(),report_clean_output()
- subroutine mpicomm/radboundary_xy_send(nrad, idir, qsend_xy)
- Parameters:
- 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:
- 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:
- 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()
- subroutine mpicomm/end_serialize()
- subroutine mpicomm/mpibarrier()
- subroutine mpicomm/mpifinalize()
- 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 :
- 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:
- 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:
- subroutine mpicomm/transp(a, var)
Doing a transpose (dummy version for single processor).
5-sep-02/axel: adapted from version in mpicomm.f90
- Parameters:
- Call to:
- 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:
- Call to:
- 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:
- 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:
- 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:
- 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:
- 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:
- 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:
- Call to:
- 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:
- Call to:
- 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:
- 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:
- 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:
- 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:
- 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:
- 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:
- 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:
- 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:
- 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:
- 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:
- Call to:
- 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:
- Call to:
- subroutine mpicomm/mpigather_xy(sendbuf, recvbuf, lpz)
21-dec-10/MR: coded
- Parameters:
- Call to:
- subroutine mpicomm/mpigather_z(sendbuf, recvbuf, n1, lproc)
21-dec-10/MR: coded 20-apr-11/MR: buffer dimensions corrected
- Parameters:
- Call to:
- 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:
- 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:
- function mpicomm/report_clean_output(flag, message)
- Parameters:
flag [logical,in]
message [character,out]
- Return:
report_clean_output [logical]