Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
INRT_FinishMomentumEdge.F90
Go to the documentation of this file.
1 ! *********************************************************************
2 ! * Rocstar Simulation Suite *
3 ! * Copyright@2015, Illinois Rocstar LLC. All rights reserved. *
4 ! * *
5 ! * Illinois Rocstar LLC *
6 ! * Champaign, IL *
7 ! * www.illinoisrocstar.com *
8 ! * sales@illinoisrocstar.com *
9 ! * *
10 ! * License: See LICENSE file in top level of distribution package or *
11 ! * http://opensource.org/licenses/NCSA *
12 ! *********************************************************************
13 ! *********************************************************************
14 ! * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
15 ! * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES *
16 ! * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND *
17 ! * NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR *
18 ! * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
19 ! * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
20 ! * Arising FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
21 ! * USE OR OTHER DEALINGS WITH THE SOFTWARE. *
22 ! *********************************************************************
23 !******************************************************************************
24 !
25 ! Purpose: Finishes definition for the special case of a momentum Edge.
26 !
27 ! Description: none.
28 !
29 ! Input: iXEdge: index of the momentum Edge (which is its x-component)
30 ! iEnd: end of Edge to place an Insulate Token on (iEnd = 1 or 2)
31 !
32 ! Output: inrt: pointer to the updated interaction data structure
33 !
34 ! Notes:
35 !
36 ! Defining an Edge requires that two things be specified:
37 ! the type of Edge (mass, momentum, or energy), and
38 ! the indices of the Nodes on both ends.
39 !
40 ! Momentum Edges require additional set-up, which this routine provides.
41 ! First, they require that two dummy momentum Edges be created (because
42 ! routines that store primary source terms can only store scalar quantities,
43 ! so there needs to be extra room to send the vector momentum). Second,
44 ! they require that an Insulate Token be placed at one end as part of the
45 ! definition of the interaction.
46 !
47 !******************************************************************************
48 !
49 ! $Id: INRT_FinishMomentumEdge.F90,v 1.3 2008/12/06 08:44:31 mtcampbe Exp $
50 !
51 ! Copyright: (c) 2003 by the University of Illinois
52 !
53 !******************************************************************************
54 
55 SUBROUTINE inrt_finishmomentumedge(global,inrt,iXEdge,iEnd)
56 
57  USE moddatatypes
58  USE modglobal, ONLY : t_global
59  USE modinteract, ONLY : t_inrt_interact
60  USE moderror
62 
63  IMPLICIT NONE
64 
65 ! ... parameters
66  TYPE(t_global), POINTER :: global
67  TYPE(t_inrt_interact), POINTER :: inrt
68  INTEGER, INTENT(IN) :: ixedge,iend
69 
70 ! ... local variables
71  CHARACTER(CHRLEN) :: rcsidentstring
72 
73 !******************************************************************************
74 
75  rcsidentstring = &
76  '$RCSfile: INRT_FinishMomentumEdge.F90,v $ $Revision: 1.3 $'
77 
78  CALL registerfunction( global,'INRT_FinishMomentumEdge',&
79  'INRT_FinishMomentumEdge.F90' )
80 
81 ! begin -----------------------------------------------------------------------
82 
83 ! set permission Token (Permit Mass and Momemtum) on specified end
84 
85  inrt%edges(ixedge)%token(iend) = inrt_perm_pmome
86 
87 ! fill in data for dummy Edges
88 
89  inrt%edges(ixedge+1)%tEdge = inrt_edge_mome_dum
90  inrt%edges(ixedge+1)%iNode = inrt%edges(ixedge)%iNode
91  inrt%edges(ixedge+1)%token = inrt_perm_block
92 
93  inrt%edges(ixedge+2)%tEdge = inrt_edge_mome_dum
94  inrt%edges(ixedge+2)%iNode = inrt%edges(ixedge)%iNode
95  inrt%edges(ixedge+2)%token = inrt_perm_block
96 
97 ! finalize --------------------------------------------------------------------
98 
99  CALL deregisterfunction( global )
100 
101 END SUBROUTINE inrt_finishmomentumedge
102 
103 !******************************************************************************
104 !
105 ! RCS Revision history:
106 !
107 ! $Log: INRT_FinishMomentumEdge.F90,v $
108 ! Revision 1.3 2008/12/06 08:44:31 mtcampbe
109 ! Updated license.
110 !
111 ! Revision 1.2 2008/11/19 22:17:44 mtcampbe
112 ! Added Illinois Open Source License/Copyright
113 !
114 ! Revision 1.1 2004/12/01 21:56:27 fnajjar
115 ! Initial revision after changing case
116 !
117 ! Revision 1.3 2003/04/02 22:32:04 jferry
118 ! codified Activeness and Permission structures for rocinteract
119 !
120 ! Revision 1.2 2003/03/11 16:09:39 jferry
121 ! Added comments
122 !
123 ! Revision 1.1 2003/03/04 22:12:35 jferry
124 ! Initial import of Rocinteract
125 !
126 !******************************************************************************
127 
128 
129 
130 
131 
132 
133 
subroutine inrt_finishmomentumedge(global, inrt, iXEdge, iEnd)
subroutine registerfunction(global, funName, fileName)
Definition: ModError.F90:449
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE knode iend
subroutine deregisterfunction(global)
Definition: ModError.F90:469