Scrambler
1
|
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