Documentation for module tmc_messages

set up the different message for different tasks A TMC message consists of 3 parts (messages) 1: first a message with task type (STATUS) and SIZES of submessages 2: (if existing) a message with INTEGER values 3: (if existing) a message with REAL values submessages 2 and 3 include relevant data, e.g. positions, box sizes...

source: tmc_messages.F
Loading...

public Subroutines/Functions:

FUNCTION
LOGICAL
check_if_group_master (para_env)
checks if the core is the group master
routines send atom names to the global master (using broadcast in a specialized group consisting of the master and the first energy worker master)
send stop command to all group participants
tmc message handling, packing messages with integer and real data type. Send first info message with task type and message sizes and then the int and real messages. The same for receiving

Parameters:

INTEGER
:: bcast_group = -1
INTEGER
:: master_comm_id = 0
LOGICAL
:: recv_msg = .false.
LOGICAL
:: send_msg = .true.

FUNCTIONcheck_if_group_master(para_env)

checks if the core is the group master

Return Value ::
LOGICAL
return value, logical
Arguments:
POINTER
:: para_env defines the mpi communicator

SUBROUTINEcommunicate_atom_types(atoms, source, para_env)

routines send atom names to the global master (using broadcast in a specialized group consisting of the master and the first energy worker master)

Arguments:
POINTER
:: atoms(:) ...
INTEGER
:: source ...
POINTER
:: para_env the communicator environment

SUBROUTINEstop_whole_group(para_env, worker_info, tmc_params)

send stop command to all group participants

Arguments:
POINTER
:: para_env ...
OPTIONAL, POINTER
:: worker_info(:) ...
POINTER
:: tmc_params ...

SUBROUTINEtmc_message(msg_type, send_recv, dest, para_env, tmc_params, elem, elem_array, list_elem, result_count, wait_for_message, success)

tmc message handling, packing messages with integer and real data type. Send first info message with task type and message sizes and then the int and real messages. The same for receiving

Arguments:
INTEGER
:: msg_type defines the message types, see message tags definition
LOGICAL
:: send_recv 1= send, 0= receive
INTEGER
:: dest defines the target or source of message (-1=braodcast, 0= master, 1... working group)
POINTER
:: para_env defines the mpi communicator
POINTER
:: tmc_params stuct with parameters (global settings)
TYPE(tree_type),
OPTIONAL, POINTER
:: elem a subtree element from which info are readed or written in
OPTIONAL
:: elem_array(:) ...
OPTIONAL, POINTER
:: list_elem ...
INTEGER,
OPTIONAL, POINTER
:: result_count(:) ...
LOGICAL,
OPTIONAL
:: wait_for_message ...
LOGICAL,
OPTIONAL
:: success ...