Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RFLO_ExchangeGeometryCopy.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: copy geometry from a patch of the source region to dummy nodes
26 ! of the current region`s patch (both regions are on the same
27 ! processor).
28 !
29 ! Description: none.
30 !
31 ! Input: region = current region
32 ! regionSrc = source region
33 ! patch = current patch of region
34 ! patchSrc = source patch of regionSrc.
35 !
36 ! Output: region%levels(1)%grid%xyz = grid coordinates.
37 !
38 ! Notes: operation carried out for the finest grid only. Intended for
39 ! conforming grid boundaries (also periodic) only. In the case
40 ! of rotationally periodic boundary, it is assumed that the
41 ! axis of rotation coincides with the x-axis.
42 !
43 !******************************************************************************
44 !
45 ! $Id: RFLO_ExchangeGeometryCopy.F90,v 1.3 2008/12/06 08:44:26 mtcampbe Exp $
46 !
47 ! Copyright: (c) 2001 by the University of Illinois
48 !
49 !******************************************************************************
50 
51 SUBROUTINE rflo_exchangegeometrycopy( region,regionSrc,patch,patchSrc )
52 
53  USE moddatatypes
54  USE modbndpatch, ONLY : t_patch
55  USE moddatastruct, ONLY : t_region
56  USE modindexing, ONLY : indijkmap
59  USE moderror
60  USE modparameters
61  IMPLICIT NONE
62 
63 #include "Indexing.h"
64 
65 ! ... parameters
66  TYPE(t_region) :: region, regionsrc
67  TYPE(t_patch) :: patch, patchsrc
68 
69 ! ... loop variables
70  INTEGER :: idum, i, j, k, ii, jj, kk
71 
72 ! ... local variables
73  INTEGER :: bctype, ibeg, iend, jbeg, jend, kbeg, kend, idir, jdir, kdir, &
74  inoff, ijnoff, ijkn, ijknb
75  INTEGER :: ibegsrc, iendsrc, jbegsrc, jendsrc, kbegsrc, kendsrc, &
76  idirsrc, jdirsrc, kdirsrc, inoffsrc, ijnoffsrc, ijknsrc, ijknbsrc
77  INTEGER :: lb, lbs, l1srcdir, l2srcdir, mapmat(3,4)
78 
79  LOGICAL :: align
80 
81  REAL(RFREAL) :: dx, dy, dz, sina, cosa, v1(3), v2(3)
82  REAL(RFREAL), POINTER :: xyz(:,:), xyzsrc(:,:)
83 
84 !******************************************************************************
85 
86  CALL registerfunction( region%global,'RFLO_ExchangeGeometryCopy',&
87  'RFLO_ExchangeGeometryCopy.F90' )
88 
89 ! check if the source region is active
90 
91  IF (regionsrc%active == off) THEN
92  CALL errorstop( region%global,err_srcregion_off,__line__ )
93  ENDIF
94 
95 ! get dimensions and pointers
96 
97  CALL rflo_getpatchindicesnodes( region,patch,1,ibeg,iend, &
98  jbeg,jend,kbeg,kend )
99  CALL rflo_getpatchindicesnodes( regionsrc,patchsrc,1,ibegsrc,iendsrc, &
100  jbegsrc,jendsrc,kbegsrc,kendsrc )
102  CALL rflo_getpatchdirection( patchsrc,idirsrc,jdirsrc,kdirsrc )
103  CALL rflo_getnodeoffset( region ,1,inoff ,ijnoff )
104  CALL rflo_getnodeoffset( regionsrc,1,inoffsrc,ijnoffsrc )
105 
106  xyz => region%levels(1)%grid%xyz
107  xyzsrc => regionsrc%levels(1)%grid%xyz
108 
109  lb = patch%lbound
110  lbs = patch%srcLbound
111  align = patch%align
112  bctype = patch%bcType
113 
114 ! mapping between patches
115 
116  l1srcdir = 1
117  IF (patch%srcL1beg > patch%srcL1end) THEN
118  l1srcdir = -1
119  ELSE IF (patch%srcL1beg == patch%srcL1end) THEN
120  IF (lbs==1 .OR. lbs==2) THEN
121  v1(:) = xyzsrc(:,indijk(ibegsrc,jendsrc,kbegsrc,inoffsrc,ijnoffsrc)) - &
122  xyzsrc(:,indijk(ibegsrc,jbegsrc,kbegsrc,inoffsrc,ijnoffsrc))
123  ELSE IF (lbs==3 .OR. lbs==4) THEN
124  v1(:) = xyzsrc(:,indijk(ibegsrc,jbegsrc,kendsrc,inoffsrc,ijnoffsrc)) - &
125  xyzsrc(:,indijk(ibegsrc,jbegsrc,kbegsrc,inoffsrc,ijnoffsrc))
126  ELSE IF (lbs==5 .OR. lbs==6) THEN
127  v1(:) = xyzsrc(:,indijk(iendsrc,jbegsrc,kbegsrc,inoffsrc,ijnoffsrc)) - &
128  xyzsrc(:,indijk(ibegsrc,jbegsrc,kbegsrc,inoffsrc,ijnoffsrc))
129  ENDIF
130  IF (lb==1 .OR. lb==2) THEN
131  IF (align) THEN
132  v2(:) = xyz(:,indijk(ibeg,jend,kbeg,inoff,ijnoff)) - &
133  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
134  ELSE
135  v2(:) = xyz(:,indijk(ibeg,jbeg,kend,inoff,ijnoff)) - &
136  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
137  ENDIF
138  ELSE IF (lb==3 .OR. lb==4) THEN
139  IF (align) THEN
140  v2(:) = xyz(:,indijk(ibeg,jbeg,kend,inoff,ijnoff)) - &
141  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
142  ELSE
143  v2(:) = xyz(:,indijk(iend,jbeg,kbeg,inoff,ijnoff)) - &
144  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
145  ENDIF
146  ELSE IF (lb==5 .OR. lb==6) THEN
147  IF (align) THEN
148  v2(:) = xyz(:,indijk(iend,jbeg,kbeg,inoff,ijnoff)) - &
149  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
150  ELSE
151  v2(:) = xyz(:,indijk(ibeg,jend,kbeg,inoff,ijnoff)) - &
152  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
153  ENDIF
154  ENDIF
155  IF (dot_product(v1,v2) < 0._rfreal) l1srcdir = -1
156  ENDIF
157 
158  l2srcdir = 1
159  IF (patch%srcL2beg > patch%srcL2end) THEN
160  l2srcdir = -1
161  ELSE IF (patch%srcL2beg == patch%srcL2end) THEN
162  IF (lbs==1 .OR. lbs==2) THEN
163  v1(:) = xyzsrc(:,indijk(ibegsrc,jbegsrc,kendsrc,inoffsrc,ijnoffsrc)) - &
164  xyzsrc(:,indijk(ibegsrc,jbegsrc,kbegsrc,inoffsrc,ijnoffsrc))
165  ELSE IF (lbs==3 .OR. lbs==4) THEN
166  v1(:) = xyzsrc(:,indijk(iendsrc,jbegsrc,kbegsrc,inoffsrc,ijnoffsrc)) - &
167  xyzsrc(:,indijk(ibegsrc,jbegsrc,kbegsrc,inoffsrc,ijnoffsrc))
168  ELSE IF (lbs==5 .OR. lbs==6) THEN
169  v1(:) = xyzsrc(:,indijk(ibegsrc,jendsrc,kbegsrc,inoffsrc,ijnoffsrc)) - &
170  xyzsrc(:,indijk(ibegsrc,jbegsrc,kbegsrc,inoffsrc,ijnoffsrc))
171  ENDIF
172  IF (lb==1 .OR. lb==2) THEN
173  IF (align) THEN
174  v2(:) = xyz(:,indijk(ibeg,jbeg,kend,inoff,ijnoff)) - &
175  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
176  ELSE
177  v2(:) = xyz(:,indijk(ibeg,jend,kbeg,inoff,ijnoff)) - &
178  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
179  ENDIF
180  ELSE IF (lb==3 .OR. lb==4) THEN
181  IF (align) THEN
182  v2(:) = xyz(:,indijk(iend,jbeg,kbeg,inoff,ijnoff)) - &
183  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
184  ELSE
185  v2(:) = xyz(:,indijk(ibeg,jbeg,kend,inoff,ijnoff)) - &
186  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
187  ENDIF
188  ELSE IF (lb==5 .OR. lb==6) THEN
189  IF (align) THEN
190  v2(:) = xyz(:,indijk(ibeg,jend,kbeg,inoff,ijnoff)) - &
191  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
192  ELSE
193  v2(:) = xyz(:,indijk(iend,jbeg,kbeg,inoff,ijnoff)) - &
194  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
195  ENDIF
196  ENDIF
197  IF (dot_product(v1,v2) < 0._rfreal) l2srcdir = -1
198  ENDIF
199 
200  ibegsrc = ibegsrc + idirsrc ! shift by one node into the interior
201  iendsrc = iendsrc + idirsrc ! (otherwise would start at the boundary)
202  jbegsrc = jbegsrc + jdirsrc
203  jendsrc = jendsrc + jdirsrc
204  kbegsrc = kbegsrc + kdirsrc
205  kendsrc = kendsrc + kdirsrc
206 
207  CALL rflo_getpatchmapping( lb,lbs,l1srcdir,l2srcdir,align, &
208  idir,jdir,kdir,idirsrc,jdirsrc,kdirsrc, &
209  ibeg,iend,jbeg,jend,kbeg,kend, &
210  ibegsrc,iendsrc,jbegsrc,jendsrc,kbegsrc,kendsrc, &
211  mapmat )
212 
213 ! loop over dummy nodes of current patch
214 
215  DO idum=1,region%nDumCells
216 
217 ! - inter-region boundary
218 
219  IF (bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) THEN
220  DO k=kbeg,kend
221  DO j=jbeg,jend
222  DO i=ibeg,iend
223  ii = i - idum*idir
224  jj = j - idum*jdir
225  kk = k - idum*kdir
226  ijkn = indijk(ii,jj,kk,inoff,ijnoff)
227  ijknsrc = indijkmap(ii,jj,kk,mapmat,inoffsrc,ijnoffsrc)
228  xyz(xcoord,ijkn) = xyzsrc(xcoord,ijknsrc)
229  xyz(ycoord,ijkn) = xyzsrc(ycoord,ijknsrc)
230  xyz(zcoord,ijkn) = xyzsrc(zcoord,ijknsrc)
231  ENDDO ! i
232  ENDDO ! j
233  ENDDO ! k
234 
235 ! - translational periodicity
236 
237  ELSE IF (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri+bc_range) THEN
238  DO k=kbeg,kend
239  DO j=jbeg,jend
240  DO i=ibeg,iend
241  ii = i - idum*idir
242  jj = j - idum*jdir
243  kk = k - idum*kdir
244  ijkn = indijk(ii,jj,kk,inoff,ijnoff)
245  ijknb = indijk(i ,j ,k ,inoff,ijnoff)
246  ijknsrc = indijkmap(ii,jj,kk,mapmat,inoffsrc,ijnoffsrc)
247  ijknbsrc = indijkmap(i ,j ,k ,mapmat,inoffsrc,ijnoffsrc)
248  dx = xyzsrc(xcoord,ijknsrc) - xyzsrc(xcoord,ijknbsrc)
249  dy = xyzsrc(ycoord,ijknsrc) - xyzsrc(ycoord,ijknbsrc)
250  dz = xyzsrc(zcoord,ijknsrc) - xyzsrc(zcoord,ijknbsrc)
251  xyz(xcoord,ijkn) = xyz(xcoord,ijknb) + dx
252  xyz(ycoord,ijkn) = xyz(ycoord,ijknb) + dy
253  xyz(zcoord,ijkn) = xyz(zcoord,ijknb) + dz
254  ENDDO ! i
255  ENDDO ! j
256  ENDDO ! k
257 
258 ! - rotational periodicity (around x-axis)
259 
260  ELSE IF (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri+bc_range) THEN
261  cosa = cos(patch%periodAngle)
262  sina = sin(patch%periodAngle)
263  DO k=kbeg,kend
264  DO j=jbeg,jend
265  DO i=ibeg,iend
266  ii = i - idum*idir
267  jj = j - idum*jdir
268  kk = k - idum*kdir
269  ijkn = indijk(ii,jj,kk,inoff,ijnoff)
270  ijknsrc = indijkmap(ii,jj,kk,mapmat,inoffsrc,ijnoffsrc)
271  xyz(xcoord,ijkn) = xyzsrc(xcoord,ijknsrc)
272  xyz(ycoord,ijkn) = cosa*xyzsrc(ycoord,ijknsrc) - &
273  sina*xyzsrc(zcoord,ijknsrc)
274  xyz(zcoord,ijkn) = sina*xyzsrc(ycoord,ijknsrc) + &
275  cosa*xyzsrc(zcoord,ijknsrc)
276  ENDDO ! i
277  ENDDO ! j
278  ENDDO ! k
279  ENDIF
280 
281  ENDDO ! idum
282 
283 ! finalize
284 
285  CALL deregisterfunction( region%global )
286 
287 END SUBROUTINE rflo_exchangegeometrycopy
288 
289 !******************************************************************************
290 !
291 ! RCS Revision history:
292 !
293 ! $Log: RFLO_ExchangeGeometryCopy.F90,v $
294 ! Revision 1.3 2008/12/06 08:44:26 mtcampbe
295 ! Updated license.
296 !
297 ! Revision 1.2 2008/11/19 22:17:37 mtcampbe
298 ! Added Illinois Open Source License/Copyright
299 !
300 ! Revision 1.1 2004/11/29 20:51:39 wasistho
301 ! lower to upper case
302 !
303 ! Revision 1.11 2003/11/20 16:40:39 mdbrandy
304 ! Backing out RocfluidMP changes from 11-17-03
305 !
306 ! Revision 1.7 2003/05/15 02:57:04 jblazek
307 ! Inlined index function.
308 !
309 ! Revision 1.6 2002/12/06 22:29:26 jblazek
310 ! Corrected bug for geometry exchange between minimal patches.
311 !
312 ! Revision 1.5 2002/09/27 00:57:10 jblazek
313 ! Changed makefiles - no makelinks needed.
314 !
315 ! Revision 1.4 2002/09/05 17:40:21 jblazek
316 ! Variable global moved into regions().
317 !
318 ! Revision 1.3 2002/07/12 21:50:07 jblazek
319 ! Added tool to split single grid into multiple regions.
320 !
321 ! Revision 1.2 2002/06/22 01:13:38 jblazek
322 ! Modified interfaces to BC routines.
323 !
324 ! Revision 1.1 2002/03/18 23:11:33 jblazek
325 ! Finished multiblock and MPI.
326 !
327 !******************************************************************************
328 
329 
330 
331 
332 
333 
334 
subroutine rflo_exchangegeometrycopy(region, regionSrc, patch, patchSrc)
**********************************************************************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
subroutine rflo_getpatchdirection(patch, idir, jdir, kdir)
j indices k indices k
Definition: Indexing.h:6
NT dx
INTEGER function indijkmap(i, j, k, mapMat, iOffset, ijOffset)
Definition: ModIndexing.F90:67
subroutine registerfunction(global, funName, fileName)
Definition: ModError.F90:449
subroutine rflo_getnodeoffset(region, iLev, iNodeOffset, ijNodeOffset)
**********************************************************************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 jdir
Definition: patch.h:74
**********************************************************************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
NT & sin
subroutine rflo_getpatchindicesnodes(region, patch, iLev, ibeg, iend, jbeg, jend, kbeg, kend)
blockLoc i
Definition: read.cpp:79
**********************************************************************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 idir
RT dz() const
Definition: Direction_3.h:133
j indices j
Definition: Indexing.h:6
NT dy
**********************************************************************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 kdir
subroutine errorstop(global, errorCode, errorLine, addMessage)
Definition: ModError.F90:483
**********************************************************************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
long double dot_product(pnt vec1, pnt vec2)
subroutine rflo_getpatchmapping(lb, lbs, l1SrcDir, l2SrcDir, align, idir, jdir, kdir, idirSrc, jdirSrc, kdirSrc, ibeg, iend, jbeg, jend, kbeg, kend, ibegSrc, iendSrc, jbegSrc, jendSrc, kbegSrc, kendSrc, mapMat)
**********************************************************************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
NT & cos