Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RFLO_ExchangeDnodeRecv.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: receive movement of interface nodes from adjacent region on
26 ! another processor.
27 !
28 ! Description: none.
29 !
30 ! Input: region = current region
31 ! regionSrc = source region
32 ! patch = current patch of region
33 ! patchSrc = source patch of regionSrc
34 ! average = average source and current node movement (true/false).
35 !
36 ! Output: dNode = grid movement of the interface.
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_ExchangeDnodeRecv.F90,v 1.4 2008/12/06 08:44:06 mtcampbe Exp $
46 !
47 ! Copyright: (c) 2003 by the University of Illinois
48 !
49 !******************************************************************************
50 
51 SUBROUTINE rflo_exchangednoderecv( region,regionSrc,patch,patchSrc, &
52  average,dnode )
53 
54  USE moddatatypes
55  USE modbndpatch, ONLY : t_patch
56  USE moddatastruct, ONLY : t_region
57  USE modglobal, ONLY : t_global
59  USE moderror
60  USE modmpi
61  USE modparameters
62  IMPLICIT NONE
63 
64 #include "Indexing.h"
65 
66 ! ... parameters
67  LOGICAL :: average
68 
69  REAL(RFREAL), POINTER :: dnode(:,:)
70 
71  TYPE(t_region) :: region, regionsrc
72  TYPE(t_patch) :: patch, patchsrc
73 
74 ! ... loop variables
75  INTEGER :: i, j, k, ijkbuff
76 
77 ! ... local variables
78 #ifdef MPI
79  INTEGER :: status(mpi_status_size)
80 #endif
81  INTEGER :: bctype, ibeg, iend, jbeg, jend, kbeg, kend, inoff, ijnoff, &
82  ijkn, ijknb, ibnd, jbnd, kbnd, n1, n2, ndim, lb, source, tag
83 
84  REAL(RFREAL) :: dx, dy, dz, dyr, dzr, cosa, sina
85  REAL(RFREAL), POINTER :: xyz(:,:), dold(:,:)
86 
87  TYPE(t_global), POINTER :: global
88 
89 !******************************************************************************
90 
91  global => region%global
92 
93  CALL registerfunction( global,'RFLO_ExchangeDnodeRecv',&
94  'RFLO_ExchangeDnodeRecv.F90' )
95 
96 ! check if the source region is active
97 
98  IF (regionsrc%active == off) THEN
99  CALL errorstop( global,err_srcregion_off,&
100  __line__ )
101  ENDIF
102 
103 ! get dimensions and pointers
104 
105  CALL rflo_getpatchindicesnodes( region,patch,1,ibeg,iend, &
106  jbeg,jend,kbeg,kend )
107  CALL rflo_getnodeoffset( region,1,inoff,ijnoff )
108 
109  xyz => region%levels(1)%gridOld%xyz
110  dold => region%levels(1)%grid%xyzOld
111 
112  n1 = abs(patch%l1end-patch%l1beg) + 2 ! here, dimensions of current
113  n2 = abs(patch%l2end-patch%l2beg) + 2 ! and source patch are identical
114  ndim = n1*n2
115 
116 ! receive data
117 
118 #ifdef MPI
119  source = regionsrc%procid
120  tag = region%localNumber + mpi_patchoff*patchsrc%srcPatch
121  CALL mpi_recv( patch%mixt%recvBuff,3*ndim,mpi_rfreal,source,tag, &
122  global%mpiComm,status,global%mpierr )
123  IF (global%mpierr /= 0) CALL errorstop( global,err_mpi_trouble,&
124  __line__ )
125 #endif
126 
127 ! copy from buffer to dummy nodes ---------------------------------------------
128 
129  lb = patch%lbound
130  bctype = patch%bcType
131  ijkbuff = 0
132 
133 ! face i=const.
134 
135  IF (lb==1 .OR. lb==2) THEN
136 
137  IF (lb == 1) THEN
138  i = ibeg
139  ibnd = ibeg
140  ELSE IF (lb == 2) THEN
141  i = iend
142  ibnd = iend
143  ENDIF
144 
145  IF ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
146  (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri +bc_range)) THEN
147  DO k=kbeg,kend
148  DO j=jbeg,jend
149  ijkn = indijk(i,j,k,inoff,ijnoff)
150  ijkbuff = ijkbuff + 1
151  dx = patch%mixt%recvBuff(ijkbuff )
152  dy = patch%mixt%recvBuff(ijkbuff+ ndim)
153  dz = patch%mixt%recvBuff(ijkbuff+2*ndim)
154  IF (average) THEN
155  IF (abs(dx-dold(xcoord,ijkn))<1.e-30_rfreal .OR. &
156  abs(dnode(xcoord,ijkn)-dold(xcoord,ijkn))<1.e-30_rfreal) THEN
157  dnode(xcoord,ijkn) = dold(xcoord,ijkn)
158  ELSE
159  dnode(xcoord,ijkn) = 0.5_rfreal*(dnode(xcoord,ijkn)+dx)
160  ENDIF
161  IF (abs(dy-dold(ycoord,ijkn))<1.e-30_rfreal .OR. &
162  abs(dnode(ycoord,ijkn)-dold(ycoord,ijkn))<1.e-30_rfreal) THEN
163  dnode(ycoord,ijkn) = dold(ycoord,ijkn)
164  ELSE
165  dnode(ycoord,ijkn) = 0.5_rfreal*(dnode(ycoord,ijkn)+dy)
166  ENDIF
167  IF (abs(dz-dold(zcoord,ijkn))<1.e-30_rfreal .OR. &
168  abs(dnode(zcoord,ijkn)-dold(zcoord,ijkn))<1.e-30_rfreal) THEN
169  dnode(zcoord,ijkn) = dold(zcoord,ijkn)
170  ELSE
171  dnode(zcoord,ijkn) = 0.5_rfreal*(dnode(zcoord,ijkn)+dz)
172  ENDIF
173  ELSE ! no average
174  IF (abs(dx) > abs(dnode(xcoord,ijkn))) THEN
175  region%levels(1)%grid%boundMoved(lb) = .true.
176  dnode(xcoord,ijkn) = dx
177  ENDIF
178  IF (abs(dy) > abs(dnode(ycoord,ijkn))) THEN
179  region%levels(1)%grid%boundMoved(lb) = .true.
180  dnode(ycoord,ijkn) = dy
181  ENDIF
182  IF (abs(dz) > abs(dnode(zcoord,ijkn))) THEN
183  region%levels(1)%grid%boundMoved(lb) = .true.
184  dnode(zcoord,ijkn) = dz
185  ENDIF
186  ENDIF
187  ENDDO
188  ENDDO
189  ELSE IF (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri+bc_range) THEN
190  cosa = cos(patch%periodAngle)
191  sina = sin(patch%periodAngle)
192  DO k=kbeg,kend
193  DO j=jbeg,jend
194  ijkn = indijk(i,j,k,inoff,ijnoff)
195  ijkbuff = ijkbuff + 1
196  dx = patch%mixt%recvBuff(ijkbuff )
197  dy = patch%mixt%recvBuff(ijkbuff+ ndim)
198  dz = patch%mixt%recvBuff(ijkbuff+2*ndim)
199  dyr = cosa*dy - sina*dz
200  dzr = sina*dy + cosa*dz
201  IF (average) THEN
202  dnode(xcoord,ijkn) = dold(xcoord,ijkn)
203  dnode(ycoord,ijkn) = dold(ycoord,ijkn)
204  dnode(zcoord,ijkn) = dold(zcoord,ijkn)
205  ELSE ! no average
206  IF (abs(dx ) > abs(dnode(xcoord,ijkn))) THEN
207  region%levels(1)%grid%boundMoved(lb) = .true.
208  dnode(xcoord,ijkn) = dx
209  ENDIF
210  IF (abs(dyr) > abs(dnode(ycoord,ijkn))) THEN
211  region%levels(1)%grid%boundMoved(lb) = .true.
212  dnode(ycoord,ijkn) = dyr
213  ENDIF
214  IF (abs(dzr) > abs(dnode(zcoord,ijkn))) THEN
215  region%levels(1)%grid%boundMoved(lb) = .true.
216  dnode(zcoord,ijkn) = dzr
217  ENDIF
218  ENDIF
219  ENDDO
220  ENDDO
221  ENDIF
222 
223 ! face j=const.
224 
225  ELSE IF (lb==3 .OR. lb==4) THEN
226 
227  IF (lb == 3) THEN
228  j = jbeg
229  jbnd = jbeg
230  ELSE IF (lb == 4) THEN
231  j = jend
232  jbnd = jend
233  ENDIF
234 
235  IF ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
236  (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri +bc_range)) THEN
237  DO i=ibeg,iend
238  DO k=kbeg,kend
239  ijkn = indijk(i,j,k,inoff,ijnoff)
240  ijkbuff = ijkbuff + 1
241  dx = patch%mixt%recvBuff(ijkbuff )
242  dy = patch%mixt%recvBuff(ijkbuff+ ndim)
243  dz = patch%mixt%recvBuff(ijkbuff+2*ndim)
244  IF (average) THEN
245  IF (abs(dx-dold(xcoord,ijkn))<1.e-30_rfreal .OR. &
246  abs(dnode(xcoord,ijkn)-dold(xcoord,ijkn))<1.e-30_rfreal) THEN
247  dnode(xcoord,ijkn) = dold(xcoord,ijkn)
248  ELSE
249  dnode(xcoord,ijkn) = 0.5_rfreal*(dnode(xcoord,ijkn)+dx)
250  ENDIF
251  IF (abs(dy-dold(ycoord,ijkn))<1.e-30_rfreal .OR. &
252  abs(dnode(ycoord,ijkn)-dold(ycoord,ijkn))<1.e-30_rfreal) THEN
253  dnode(ycoord,ijkn) = dold(ycoord,ijkn)
254  ELSE
255  dnode(ycoord,ijkn) = 0.5_rfreal*(dnode(ycoord,ijkn)+dy)
256  ENDIF
257  IF (abs(dz-dold(zcoord,ijkn))<1.e-30_rfreal .OR. &
258  abs(dnode(zcoord,ijkn)-dold(zcoord,ijkn))<1.e-30_rfreal) THEN
259  dnode(zcoord,ijkn) = dold(zcoord,ijkn)
260  ELSE
261  dnode(zcoord,ijkn) = 0.5_rfreal*(dnode(zcoord,ijkn)+dz)
262  ENDIF
263  ELSE ! no average
264  IF (abs(dx) > abs(dnode(xcoord,ijkn))) THEN
265  region%levels(1)%grid%boundMoved(lb) = .true.
266  dnode(xcoord,ijkn) = dx
267  ENDIF
268  IF (abs(dy) > abs(dnode(ycoord,ijkn))) THEN
269  region%levels(1)%grid%boundMoved(lb) = .true.
270  dnode(ycoord,ijkn) = dy
271  ENDIF
272  IF (abs(dz) > abs(dnode(zcoord,ijkn))) THEN
273  region%levels(1)%grid%boundMoved(lb) = .true.
274  dnode(zcoord,ijkn) = dz
275  ENDIF
276  ENDIF
277  ENDDO
278  ENDDO
279  ELSE IF (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri+bc_range) THEN
280  cosa = cos(patch%periodAngle)
281  sina = sin(patch%periodAngle)
282  DO i=ibeg,iend
283  DO k=kbeg,kend
284  ijkn = indijk(i,j,k,inoff,ijnoff)
285  ijkbuff = ijkbuff + 1
286  dx = patch%mixt%recvBuff(ijkbuff )
287  dy = patch%mixt%recvBuff(ijkbuff+ ndim)
288  dz = patch%mixt%recvBuff(ijkbuff+2*ndim)
289  dyr = cosa*dy - sina*dz
290  dzr = sina*dy + cosa*dz
291  IF (average) THEN
292  dnode(xcoord,ijkn) = dold(xcoord,ijkn)
293  dnode(ycoord,ijkn) = dold(ycoord,ijkn)
294  dnode(zcoord,ijkn) = dold(zcoord,ijkn)
295  ELSE ! no average
296  IF (abs(dx ) > abs(dnode(xcoord,ijkn))) THEN
297  region%levels(1)%grid%boundMoved(lb) = .true.
298  dnode(xcoord,ijkn) = dx
299  ENDIF
300  IF (abs(dyr) > abs(dnode(ycoord,ijkn))) THEN
301  region%levels(1)%grid%boundMoved(lb) = .true.
302  dnode(ycoord,ijkn) = dyr
303  ENDIF
304  IF (abs(dzr) > abs(dnode(zcoord,ijkn))) THEN
305  region%levels(1)%grid%boundMoved(lb) = .true.
306  dnode(zcoord,ijkn) = dzr
307  ENDIF
308  ENDIF
309  ENDDO
310  ENDDO
311  ENDIF
312 
313 ! face k=const.
314 
315  ELSE IF (lb==5 .OR. lb==6) THEN
316 
317  IF (lb == 5) THEN
318  k = kbeg
319  kbnd = kbeg
320  ELSE IF (lb == 6) THEN
321  k = kend
322  kbnd = kend
323  ENDIF
324 
325  IF ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
326  (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri +bc_range)) THEN
327  DO j=jbeg,jend
328  DO i=ibeg,iend
329  ijkn = indijk(i,j,k,inoff,ijnoff)
330  ijkbuff = ijkbuff + 1
331  dx = patch%mixt%recvBuff(ijkbuff )
332  dy = patch%mixt%recvBuff(ijkbuff+ ndim)
333  dz = patch%mixt%recvBuff(ijkbuff+2*ndim)
334  IF (average) THEN
335  IF (abs(dx-dold(xcoord,ijkn))<1.e-30_rfreal .OR. &
336  abs(dnode(xcoord,ijkn)-dold(xcoord,ijkn))<1.e-30_rfreal) THEN
337  dnode(xcoord,ijkn) = dold(xcoord,ijkn)
338  ELSE
339  dnode(xcoord,ijkn) = 0.5_rfreal*(dnode(xcoord,ijkn)+dx)
340  ENDIF
341  IF (abs(dy-dold(ycoord,ijkn))<1.e-30_rfreal .OR. &
342  abs(dnode(ycoord,ijkn)-dold(ycoord,ijkn))<1.e-30_rfreal) THEN
343  dnode(ycoord,ijkn) = dold(ycoord,ijkn)
344  ELSE
345  dnode(ycoord,ijkn) = 0.5_rfreal*(dnode(ycoord,ijkn)+dy)
346  ENDIF
347  IF (abs(dz-dold(zcoord,ijkn))<1.e-30_rfreal .OR. &
348  abs(dnode(zcoord,ijkn)-dold(zcoord,ijkn))<1.e-30_rfreal) THEN
349  dnode(zcoord,ijkn) = dold(zcoord,ijkn)
350  ELSE
351  dnode(zcoord,ijkn) = 0.5_rfreal*(dnode(zcoord,ijkn)+dz)
352  ENDIF
353  ELSE ! no average
354  IF (abs(dx) > abs(dnode(xcoord,ijkn))) THEN
355  region%levels(1)%grid%boundMoved(lb) = .true.
356  dnode(xcoord,ijkn) = dx
357  ENDIF
358  IF (abs(dy) > abs(dnode(ycoord,ijkn))) THEN
359  region%levels(1)%grid%boundMoved(lb) = .true.
360  dnode(ycoord,ijkn) = dy
361  ENDIF
362  IF (abs(dz) > abs(dnode(zcoord,ijkn))) THEN
363  region%levels(1)%grid%boundMoved(lb) = .true.
364  dnode(zcoord,ijkn) = dz
365  ENDIF
366  ENDIF
367  ENDDO
368  ENDDO
369  ELSE IF (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri+bc_range) THEN
370  cosa = cos(patch%periodAngle)
371  sina = sin(patch%periodAngle)
372  DO j=jbeg,jend
373  DO i=ibeg,iend
374  ijkn = indijk(i,j,k,inoff,ijnoff)
375  ijkbuff = ijkbuff + 1
376  dx = patch%mixt%recvBuff(ijkbuff )
377  dy = patch%mixt%recvBuff(ijkbuff+ ndim)
378  dz = patch%mixt%recvBuff(ijkbuff+2*ndim)
379  dyr = cosa*dy - sina*dz
380  dzr = sina*dy + cosa*dz
381  IF (average) THEN
382  dnode(xcoord,ijkn) = dold(xcoord,ijkn)
383  dnode(ycoord,ijkn) = dold(ycoord,ijkn)
384  dnode(zcoord,ijkn) = dold(zcoord,ijkn)
385  ELSE ! no average
386  IF (abs(dx ) > abs(dnode(xcoord,ijkn))) THEN
387  region%levels(1)%grid%boundMoved(lb) = .true.
388  dnode(xcoord,ijkn) = dx
389  ENDIF
390  IF (abs(dyr) > abs(dnode(ycoord,ijkn))) THEN
391  region%levels(1)%grid%boundMoved(lb) = .true.
392  dnode(ycoord,ijkn) = dyr
393  ENDIF
394  IF (abs(dzr) > abs(dnode(zcoord,ijkn))) THEN
395  region%levels(1)%grid%boundMoved(lb) = .true.
396  dnode(zcoord,ijkn) = dzr
397  ENDIF
398  ENDIF
399  ENDDO
400  ENDDO
401  ENDIF
402 
403  ENDIF ! lb
404 
405 ! finalize --------------------------------------------------------------------
406 
407  CALL deregisterfunction( global )
408 
409 END SUBROUTINE rflo_exchangednoderecv
410 
411 !******************************************************************************
412 !
413 ! RCS Revision history:
414 !
415 ! $Log: RFLO_ExchangeDnodeRecv.F90,v $
416 ! Revision 1.4 2008/12/06 08:44:06 mtcampbe
417 ! Updated license.
418 !
419 ! Revision 1.3 2008/11/19 22:17:20 mtcampbe
420 ! Added Illinois Open Source License/Copyright
421 !
422 ! Revision 1.2 2006/08/19 15:38:02 mparmar
423 ! Renamed patch variables
424 !
425 ! Revision 1.1 2004/11/29 21:25:16 wasistho
426 ! lower to upper case
427 !
428 ! Revision 1.8 2003/11/20 16:40:34 mdbrandy
429 ! Backing out RocfluidMP changes from 11-17-03
430 !
431 ! Revision 1.5 2003/08/25 21:51:23 jblazek
432 ! Full version of global grid motion scheme.
433 !
434 ! Revision 1.4 2003/05/15 02:57:01 jblazek
435 ! Inlined index function.
436 !
437 ! Revision 1.3 2003/05/06 20:05:38 jblazek
438 ! Corrected bug in grid motion (corner "averaging").
439 !
440 ! Revision 1.2 2003/03/17 23:48:47 jblazek
441 ! Fixed bug in exchange of node displacements.
442 !
443 ! Revision 1.1 2003/03/14 22:05:10 jblazek
444 ! Improved mesh motion algorithm - node movement exchaged between blocks.
445 !
446 !******************************************************************************
447 
448 
449 
450 
451 
452 
453 
**********************************************************************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
j indices k indices k
Definition: Indexing.h:6
NT dx
subroutine registerfunction(global, funName, fileName)
Definition: ModError.F90:449
int status() const
Obtain the status of the attribute.
Definition: Attribute.h:240
subroutine rflo_exchangednoderecv(region, regionSrc, patch, patchSrc, average, dNode)
subroutine rflo_getnodeoffset(region, iLev, iNodeOffset, ijNodeOffset)
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
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
CGAL::Point_2< R > source() const
Definition: Ray_2.h:128
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
**********************************************************************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