Scrambler  1
communication_declarations.f90
Go to the documentation of this file.
00001 !#########################################################################
00002 !               
00003 !    Copyright (C) 2003-2012 Department of Physics and Astronomy,
00004 !                            University of Rochester,
00005 !                            Rochester, NY
00006 !
00007 !    communication_declarations.f90 is part of AstroBEAR.
00008 !
00009 !    AstroBEAR is free software: you can redistribute it and/or modify    
00010 !    it under the terms of the GNU General Public License as published by 
00011 !    the Free Software Foundation, either version 3 of the License, or    
00012 !    (at your option) any later version.
00013 !
00014 !    AstroBEAR is distributed in the hope that it will be useful, 
00015 !    but WITHOUT ANY WARRANTY; without even the implied warranty of
00016 !    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017 !    GNU General Public License for more details.
00018 !
00019 !    You should have received a copy of the GNU General Public License
00020 !    along with AstroBEAR.  If not, see <http://www.gnu.org/licenses/>.
00021 !
00022 !#########################################################################
00025 
00028 
00031 
00035 
00038 MODULE CommunicationDeclarations
00039 
00040    USE GlobalDeclarations
00041    USE MessageDeclarations
00042 !   USE MpiPacking
00043    IMPLICIT NONE
00044    SAVE
00045 
00046    PRIVATE
00047 
00048    !Use TAG_STAGE_MULTIPLIER to define stages
00049    INTEGER, PUBLIC, PARAMETER :: iRecvGridsFromParents=1, iSendGridsToChildren=2, TRANSMIT_CHILD_GRIDS=1, 
00050                                  iRecvParentsData=3, iSendChildrenData=4, TRANSMIT_CHILD_DATA=2, 
00051                                  iRecvOverlapsNeighbors=5, iSendOverlapsNeighbors=6, TRANSMIT_OVERLAPS_NEIGHBORS=3, 
00052                                  iRecvOldNodeOverlaps=7, iSendOverlapsToOldNodesChildren=8, 
00053                                     iSendOverlapsToNodesOldChildren=10, TRANSMIT_OLD_NODE_OVERLAPS=4, 
00054                                  iRecvOverlaps=11, iSendOverlaps=12, TRANSMIT_OVERLAP_DATA=5, 
00055                                  iRecvNeighboringChildren=13, iSendNeighboringChildren=14, TRANSMIT_NEIGHBORING_CHILDREN=6, 
00056                                  iRecvOverlappingChildrenFromNewNodes=15, iSendOverlappingChildrenToOldNodes=16, 
00057                                  TRANSMIT_OLC_TO_OLD_NODES=7, 
00058                                  iRecvOverlappingChildrenFromOldNodes=17, iSendOverlappingChildrenToNewNodes=18, 
00059                                  TRANSMIT_OLC_TO_NEW_NODES=8, 
00060                                  iRecvChildrenData=19, iSendParentsData=20, TRANSMIT_PARENT_DATA=9, 
00061                                  iRecvFluxes=21, iSendFluxes=22, TRANSMIT_FLUX_DATA=10, 
00062                                  iRecvGenericData=23, iSendGenericData=24, TRANSMIT_GENERIC_DATA=11
00063 
00064     INTEGER, PUBLIC, PARAMETER :: TRANSMIT_DOMAIN_DATA=12
00065     INTEGER, PUBLIC, PARAMETER :: TRANSMIT_FRAME_DATA=13
00066 
00067     INTEGER, PUBLIC, PARAMETER :: TRANSMIT_IO_WORKER_GRIDS = 14
00068     INTEGER, PUBLIC, PARAMETER :: TRANSMIT_IO_WORKER_DATA = 15
00069     INTEGER, PUBLIC, PARAMETER :: LAYOUT_TAG=16
00070 
00071    INTEGER, PUBLIC, PARAMETER :: nStages=24
00072    INTEGER, PUBLIC, PARAMETER :: N_TRANSMIT_FLAGS = 15   
00073 
00074    REAL(KIND=qPrec), PUBLIC, ALLOCATABLE, DIMENSION(:,:) :: stage_times
00075    REAL(KIND=qPrec), PUBLIC :: tcache
00076 
00077 !   INTEGER, PUBLIC, DIMENSION(N_TRANSMIT_FLAGS) :: packet_buffers
00078 
00079 !   NAMELIST /CommunicationData/ packet_buffers
00080 
00081  !  PUBLIC CommunicationData
00082    Type(pStageMessageGroup), PUBLIC, Dimension(:,:), Allocatable :: StageMessageGroups
00083    LOGICAL, PUBLIC :: STAGE_RECV=.FALSE., STAGE_SEND=.TRUE.
00084 
00085 
00086 !   INTEGER, PUBLIC :: MPI_NP=1
00087    INTEGER, PUBLIC, PARAMETER :: MASTER = 0
00088   
00089 !  INCLUDE 'mpif.h'
00090 END MODULE CommunicationDeclarations
 All Classes Files Functions Variables