Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TURB_floExtrapolCellVec.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: Extrapolate vector variable defined at cells to outer dummy cells.
26 !
27 ! Description: The values are already available up to first dummy cells.
28 ! Here the values are extrapolated to second up to nDum cells.
29 !
30 ! Input: region = data of current region
31 ! idBeg,idEnd = begin and end variable index of the vector variable
32 ! fVec = vector variable to be extrapolated
33 !
34 ! Output: fVec = values of fVec at the remaining dummy cells are defined.
35 !
36 ! Notes: This routine is used by LesUniFiltCC and LesGenFiltCC.
37 !
38 !******************************************************************************
39 !
40 ! $Id: TURB_floExtrapolCellVec.F90,v 1.4 2008/12/06 08:44:43 mtcampbe Exp $
41 !
42 ! Copyright: (c) 2001 by the University of Illinois
43 !
44 !******************************************************************************
45 
46 SUBROUTINE turb_floextrapolcellvec( region,idBeg,idEnd,fVec )
47 
48  USE moddatatypes
49  USE moddatastruct, ONLY : t_region
50  USE modglobal, ONLY : t_global
52  USE modturbulence
53  USE moderror
54  IMPLICIT NONE
55 
56 #include "Indexing.h"
57 
58 ! ... parameters
59  TYPE(t_region) :: region
60  INTEGER :: idbeg,idend
61  REAL(RFREAL), POINTER :: fvec(:,:)
62 
63 ! ... loop variables
64  INTEGER :: i, j, k, l, m, ijkc, ijkc0, ijkc1, ijkc2
65  INTEGER :: indxc, indxc0, indxc1, indxc2
66 
67 ! ... local variables
68  CHARACTER(CHRLEN) :: rcsidentstring
69  TYPE(t_global), POINTER :: global
70 
71  INTEGER :: ibeg,iend,jbeg,jend,kbeg,kend
72  INTEGER :: idcbeg,idcend,jdcbeg,jdcend,kdcbeg,kdcend
73  INTEGER :: ilev,icoff,ijcoff,ndum,nadd,sign(2),indx(2)
74  INTEGER :: idum
75 
76 !******************************************************************************
77 
78  rcsidentstring = '$RCSfile: TURB_floExtrapolCellVec.F90,v $'
79 
80  global => region%global
81  CALL registerfunction( global,'TURB_FloExtrapolCellVec',&
82  'TURB_floExtrapolCellVec.F90' )
83 
84 ! get indices ---------------------------------------------------------------
85 
86  sign(1)= 1
87  sign(2)=-1
88  ndum = region%nDumCells
89  nadd = -ndum
90  ilev = region%currLevel
91 
92  CALL rflo_getdimensdummy( region,ilev,idcbeg,idcend, &
93  jdcbeg,jdcend,kdcbeg,kdcend )
94  CALL rflo_getcelloffset( region,ilev,icoff,ijcoff )
95 
96  ibeg = idcbeg
97  iend = idcend
98  jbeg = jdcbeg
99  jend = jdcend
100  kbeg = kdcbeg
101  kend = kdcend
102 
103 ! extrapolation to outerst layers, first in I direction
104 
105  indx(1)=ibeg
106  indx(2)=iend
107  DO m=1,2
108  DO idum=2,ndum
109  indxc2 = indx(m)-sign(m)*(nadd-idum+1)
110  indxc1 = indx(m)-sign(m)*nadd
111  indxc0 = indx(m)-sign(m)*nadd-sign(m)
112  indxc = indx(m)-sign(m)*(nadd+idum)
113  DO k=kbeg,kend
114  DO j=jbeg,jend
115  ijkc = indijk(indxc ,j ,k ,icoff,ijcoff)
116  ijkc0 = ijkc + indxc0-indxc
117  ijkc1 = ijkc + indxc1-indxc
118  ijkc2 = ijkc + indxc2-indxc
119 
120  DO l=idbeg,idend
121  fvec(l,ijkc)=fvec(l,ijkc0)+fvec(l,ijkc1)-fvec(l,ijkc2)
122  ENDDO ! l
123  ENDDO ! j
124  ENDDO ! k
125  ENDDO ! iDum
126  ENDDO ! m
127 
128 ! then in J direction
129 
130  indx(1)=jbeg
131  indx(2)=jend
132  DO m=1,2
133  DO idum=2,ndum
134  indxc2 = indx(m)-sign(m)*(nadd-idum+1)
135  indxc1 = indx(m)-sign(m)*nadd
136  indxc0 = indx(m)-sign(m)*nadd-sign(m)
137  indxc = indx(m)-sign(m)*(nadd+idum)
138  DO k=kbeg,kend
139  DO i=ibeg,iend
140  ijkc = indijk(i ,indxc ,k ,icoff,ijcoff)
141  ijkc0 = ijkc + (indxc0-indxc)*icoff
142  ijkc1 = ijkc + (indxc1-indxc)*icoff
143  ijkc2 = ijkc + (indxc2-indxc)*icoff
144 
145  DO l=idbeg,idend
146  fvec(l,ijkc)=fvec(l,ijkc0)+fvec(l,ijkc1)-fvec(l,ijkc2)
147  ENDDO ! l
148  ENDDO ! i
149  ENDDO ! k
150  ENDDO ! iDum
151  ENDDO ! m
152 
153 ! then in K direction
154 
155  indx(1)=kbeg
156  indx(2)=kend
157  DO m=1,2
158  DO idum=2,ndum
159  indxc2 = indx(m)-sign(m)*(nadd-idum+1)
160  indxc1 = indx(m)-sign(m)*nadd
161  indxc0 = indx(m)-sign(m)*nadd-sign(m)
162  indxc = indx(m)-sign(m)*(nadd+idum)
163  DO j=jbeg,jend
164  DO i=ibeg,iend
165  ijkc = indijk(i ,j ,indxc ,icoff,ijcoff)
166  ijkc0 = ijkc + (indxc0-indxc)*ijcoff
167  ijkc1 = ijkc + (indxc1-indxc)*ijcoff
168  ijkc2 = ijkc + (indxc2-indxc)*ijcoff
169 
170  DO l=idbeg,idend
171  fvec(l,ijkc)=fvec(l,ijkc0)+fvec(l,ijkc1)-fvec(l,ijkc2)
172  ENDDO ! l
173  ENDDO ! i
174  ENDDO ! j
175  ENDDO ! iDum
176  ENDDO ! m
177 
178 ! finalize --------------------------------------------------------------------
179 
180  CALL deregisterfunction( global )
181 
182 END SUBROUTINE turb_floextrapolcellvec
183 
184 !******************************************************************************
185 !
186 ! RCS Revision history:
187 !
188 ! $Log: TURB_floExtrapolCellVec.F90,v $
189 ! Revision 1.4 2008/12/06 08:44:43 mtcampbe
190 ! Updated license.
191 !
192 ! Revision 1.3 2008/11/19 22:17:55 mtcampbe
193 ! Added Illinois Open Source License/Copyright
194 !
195 ! Revision 1.2 2004/03/12 02:55:35 wasistho
196 ! changed rocturb routine names
197 !
198 ! Revision 1.1 2004/03/08 23:35:45 wasistho
199 ! changed turb nomenclature
200 !
201 ! Revision 1.2 2003/05/15 02:57:06 jblazek
202 ! Inlined index function.
203 !
204 ! Revision 1.1 2002/10/14 23:55:29 wasistho
205 ! Install Rocturb
206 !
207 !
208 !******************************************************************************
209 
210 
211 
212 
213 
214 
215 
**********************************************************************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 ibeg
FT m(int i, int j) const
**********************************************************************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 idcend
static SURF_BEGIN_NAMESPACE double sign(double x)
j indices k indices k
Definition: Indexing.h:6
subroutine registerfunction(global, funName, fileName)
Definition: ModError.F90:449
subroutine rflo_getdimensdummy(region, iLev, idcbeg, idcend, jdcbeg, jdcend, kdcbeg, kdcend)
**********************************************************************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
**********************************************************************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 kdcbeg
blockLoc i
Definition: read.cpp:79
subroutine rflo_getcelloffset(region, iLev, iCellOffset, ijCellOffset)
**********************************************************************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 idcbeg
**********************************************************************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 jdcend
j indices j
Definition: Indexing.h:6
subroutine turb_floextrapolcellvec(region, idBeg, idEnd, fVec)
**********************************************************************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 jend
**********************************************************************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 jdcbeg
**********************************************************************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 jbeg
**********************************************************************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 kbeg
subroutine deregisterfunction(global)
Definition: ModError.F90:469