Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TURB_floWlmUpdateLoglay.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: Model wall stresses based on logarithmic assumption at constant p.
26 !
27 ! Description: Wall stresses are derived from modeling terms in BL equations.
28 ! Only viscous term is modeled based on log layer assumption at
29 ! zero pressure gradient. BL convective term, pressure gradient
30 ! and time derivative term are not considered. Surface roughnes
31 ! is however taken into account. The method is inspired by paper
32 ! of Hoffman and Benocci, "Approximate wall BC for LES", 5th
33 ! Advances in Turbulence, Siena, Italy 1994. Surface roughness
34 ! were not considered in their model.
35 !
36 ! Input: region = data of current region.
37 ! patch = current patch.
38 !
39 ! Output: total and wall parallel components of wall stresses in body fitted
40 ! coordinate.
41 !
42 ! Notes: the pressure gradient and unsteady terms are modeled if BNDLAY
43 ! (boundary layer) model is selected and added to the model viscous
44 ! term computed here.
45 !
46 !******************************************************************************
47 !
48 ! $Id: TURB_floWlmUpdateLoglay.F90,v 1.5 2008/12/06 08:44:44 mtcampbe Exp $
49 !
50 ! Copyright: (c) 2001 by the University of Illinois
51 !
52 !******************************************************************************
53 
54 SUBROUTINE turb_flowlmupdateloglay( region,patch )
55 
56  USE moddatatypes
57  USE modbndpatch, ONLY : t_patch
58  USE moddatastruct, ONLY : t_region
59  USE modglobal, ONLY : t_global
62  USE moderror
63  USE modparameters
65  IMPLICIT NONE
66 
67 #include "Indexing.h"
68 
69 ! ... parameters
70  TYPE(t_region) :: region
71  TYPE(t_patch) :: patch
72 
73 ! ... loop variables
74  INTEGER :: i, j, k
75 
76 ! ... local variables
77  CHARACTER(CHRLEN) :: rcsidentstring
78  TYPE(t_global), POINTER :: global
79 
80  INTEGER :: ilev, lbound, idir, jdir, kdir, iref, jref, kref, nref
81  INTEGER :: ibeg, iend, jbeg, jend, kbeg, kend, icoff, ijcoff
82  INTEGER :: n1, n2, ioff, ijbeg, ijend, errorflag
83  INTEGER :: ijkc, ijkcip, ijkcim,ijkcjp, ijkcjm,ijkckp, ijkckm, ijkval
84 
85  REAL(RFREAL) :: dens, wdist, rvonk, consb, ksize, abvel, utau
86  REAL(RFREAL) :: ypls, kspls, ksplsmax, func, dfunc, tauwall
87  REAL(RFREAL) :: minut, maxut, relaxcoef
88  REAL(RFREAL), POINTER :: cv(:,:), dv(:,:), tv(:,:), vals(:,:)
89  REAL(RFREAL), ALLOCATABLE :: mul(:)
90 
91 !******************************************************************************
92 
93  rcsidentstring = '$RCSfile: TURB_floWlmUpdateLoglay.F90,v $ $Revision: 1.5 $'
94 
95  global => region%global
96  CALL registerfunction( global,'TURB_FloWlmUpdateLoglay',&
97  'TURB_floWlmUpdateLoglay.F90' )
98 
99 ! get dimensions and parameters -----------------------------------------------
100 
101  ilev = region%currLevel
102  lbound = patch%lbound
103  nref = patch%valBola%switches(wlm_input_refpoint) - 1
104 
105  CALL rflo_getpatchindices( region,patch,ilev,ibeg,iend,jbeg,jend,kbeg,kend )
107  CALL rflo_getcelloffset( region,ilev,icoff,ijcoff )
108 
109  relaxcoef = 0.2_rfreal ! coef. for utau iterat. in log-law (usr inp. later)
110 
111 ! get pointers and allocate temporary workspace -------------------------------
112 
113  cv => region%levels(ilev)%mixt%cv
114  dv => region%levels(ilev)%mixt%dv
115  tv => region%levels(ilev)%mixt%tv
116  vals => patch%valBola%vals
117 
118  n1 = abs(patch%l1end-patch%l1beg)
119  n2 = abs(patch%l2end-patch%l2beg)
120  ioff = n1 + 1
121  ijbeg = indij( 0, 0,ioff)
122  ijend = indij(n1,n2,ioff)
123 
124  ALLOCATE( mul(ijbeg:ijend) )
125 
126 ! begin and end indices for i, j and k directions
127 
128 ! IF (lbound==1 .OR. lbound==2) THEN
129 ! indxb = jbeg
130 ! indxe = jend
131 ! jndxb = kbeg
132 ! jndxe = kend
133 ! ELSEIF (lbound==3 .OR. lbound==4) THEN
134 ! indxb = kbeg
135 ! indxe = kend
136 ! jndxb = ibeg
137 ! jndxe = iend
138 ! ELSE
139 ! indxb = ibeg
140 ! indxe = iend
141 ! jndxb = jbeg
142 ! jndxe = jend
143 ! ENDIF
144 
145 ! Note that indx correspond to zeta-coordinate and jndx to xi.
146 ! Get p gradient in xi and zeta direction and velocities depending on lbound.
147 
148  IF (lbound==1 .OR. lbound==2) THEN
149 
150 ! - j-dir == indx-dir == zeta-dir; k-dir == jndx-dir == xi-dir
151  DO k=kbeg,kend
152  DO j=jbeg,jend
153  DO i=ibeg,iend
154 
155  iref = i+idir*nref
156  ijkc = indijk(iref ,j ,k ,icoff,ijcoff)
157  ijkcjp= indijk(iref ,j+1 ,k ,icoff,ijcoff)
158  ijkcjm= indijk(iref ,j-1 ,k ,icoff,ijcoff)
159  ijkckp= indijk(iref ,j ,k+1 ,icoff,ijcoff)
160  ijkckm= indijk(iref ,j ,k-1 ,icoff,ijcoff)
161  ijkval= indij(j-jbeg ,k-kbeg ,jend-jbeg+1)
162 
163  vals(ijkval,wlm_vals_dpdxi) = &
164  (dv(dv_mixt_pres,ijkckp)-dv(dv_mixt_pres,ijkckm))* &
165  0.5_rfreal/vals(ijkval,wlm_vals_dxi)
166  vals(ijkval,wlm_vals_dpdzt) = &
167  (dv(dv_mixt_pres,ijkcjp)-dv(dv_mixt_pres,ijkcjm))* &
168  0.5_rfreal/vals(ijkval,wlm_vals_dzt)
169  vals(ijkval,wlm_vals_xiv) = &
170  dv(dv_mixt_uvel,ijkc)*vals(ijkval,wlm_vals_xix) + &
171  dv(dv_mixt_vvel,ijkc)*vals(ijkval,wlm_vals_xiy) + &
172  dv(dv_mixt_wvel,ijkc)*vals(ijkval,wlm_vals_xiz)
173  vals(ijkval,wlm_vals_etv) = &
174  dv(dv_mixt_uvel,ijkc)*vals(ijkval,wlm_vals_etx) + &
175  dv(dv_mixt_vvel,ijkc)*vals(ijkval,wlm_vals_ety) + &
176  dv(dv_mixt_wvel,ijkc)*vals(ijkval,wlm_vals_etz)
177  vals(ijkval,wlm_vals_ztv) = &
178  dv(dv_mixt_uvel,ijkc)*vals(ijkval,wlm_vals_ztx) + &
179  dv(dv_mixt_vvel,ijkc)*vals(ijkval,wlm_vals_zty) + &
180  dv(dv_mixt_wvel,ijkc)*vals(ijkval,wlm_vals_ztz)
181  vals(ijkval,wlm_vals_dens) = cv(cv_mixt_dens,ijkc)
182  mul(ijkval) = tv(tv_mixt_muel,ijkc)
183  ENDDO
184  ENDDO
185  ENDDO
186 
187  ELSEIF (lbound==3 .OR. lbound==4) THEN
188 
189 ! - k-dir == indx-dir == zeta-dir; i-dir == jndx-dir == xi-dir
190  DO k=kbeg,kend
191  DO j=jbeg,jend
192  DO i=ibeg,iend
193 
194  jref = j+jdir*nref
195  ijkc = indijk(i ,jref ,k ,icoff,ijcoff)
196  ijkcip= indijk(i+1 ,jref ,k ,icoff,ijcoff)
197  ijkcim= indijk(i-1 ,jref ,k ,icoff,ijcoff)
198  ijkckp= indijk(i ,jref ,k+1 ,icoff,ijcoff)
199  ijkckm= indijk(i ,jref ,k-1 ,icoff,ijcoff)
200  ijkval= indij(k-kbeg ,i-ibeg ,kend-kbeg+1)
201 
202  vals(ijkval,wlm_vals_dpdxi) = &
203  (dv(dv_mixt_pres,ijkcip)-dv(dv_mixt_pres,ijkcim))* &
204  0.5_rfreal/vals(ijkval,wlm_vals_dxi)
205  vals(ijkval,wlm_vals_dpdzt) = &
206  (dv(dv_mixt_pres,ijkckp)-dv(dv_mixt_pres,ijkckm))* &
207  0.5_rfreal/vals(ijkval,wlm_vals_dzt)
208  vals(ijkval,wlm_vals_xiv) = &
209  dv(dv_mixt_uvel,ijkc)*vals(ijkval,wlm_vals_xix) + &
210  dv(dv_mixt_vvel,ijkc)*vals(ijkval,wlm_vals_xiy) + &
211  dv(dv_mixt_wvel,ijkc)*vals(ijkval,wlm_vals_xiz)
212  vals(ijkval,wlm_vals_etv) = &
213  dv(dv_mixt_uvel,ijkc)*vals(ijkval,wlm_vals_etx) + &
214  dv(dv_mixt_vvel,ijkc)*vals(ijkval,wlm_vals_ety) + &
215  dv(dv_mixt_wvel,ijkc)*vals(ijkval,wlm_vals_etz)
216  vals(ijkval,wlm_vals_ztv) = &
217  dv(dv_mixt_uvel,ijkc)*vals(ijkval,wlm_vals_ztx) + &
218  dv(dv_mixt_vvel,ijkc)*vals(ijkval,wlm_vals_zty) + &
219  dv(dv_mixt_wvel,ijkc)*vals(ijkval,wlm_vals_ztz)
220  vals(ijkval,wlm_vals_dens) = cv(cv_mixt_dens,ijkc)
221  mul(ijkval) = tv(tv_mixt_muel,ijkc)
222  ENDDO
223  ENDDO
224  ENDDO
225 
226  ELSE
227 
228 ! - i-dir == indx-dir == zeta-dir; j-dir == jndx-dir == xi-dir
229  DO k=kbeg,kend
230  DO j=jbeg,jend
231  DO i=ibeg,iend
232 
233  kref = k+kdir*nref
234  ijkc = indijk(i ,j ,kref ,icoff,ijcoff)
235  ijkcip= indijk(i+1 ,j ,kref ,icoff,ijcoff)
236  ijkcim= indijk(i-1 ,j ,kref ,icoff,ijcoff)
237  ijkcjp= indijk(i ,j+1 ,kref ,icoff,ijcoff)
238  ijkcjm= indijk(i ,j-1 ,kref ,icoff,ijcoff)
239  ijkval= indij(i-ibeg ,j-jbeg ,iend-ibeg+1)
240 
241  vals(ijkval,wlm_vals_dpdxi) = &
242  (dv(dv_mixt_pres,ijkcjp)-dv(dv_mixt_pres,ijkcjm))* &
243  0.5_rfreal/vals(ijkval,wlm_vals_dxi)
244  vals(ijkval,wlm_vals_dpdzt) = &
245  (dv(dv_mixt_pres,ijkcip)-dv(dv_mixt_pres,ijkcim))* &
246  0.5_rfreal/vals(ijkval,wlm_vals_dzt)
247  vals(ijkval,wlm_vals_xiv) = &
248  dv(dv_mixt_uvel,ijkc)*vals(ijkval,wlm_vals_xix) + &
249  dv(dv_mixt_vvel,ijkc)*vals(ijkval,wlm_vals_xiy) + &
250  dv(dv_mixt_wvel,ijkc)*vals(ijkval,wlm_vals_xiz)
251  vals(ijkval,wlm_vals_etv) = &
252  dv(dv_mixt_uvel,ijkc)*vals(ijkval,wlm_vals_etx) + &
253  dv(dv_mixt_vvel,ijkc)*vals(ijkval,wlm_vals_ety) + &
254  dv(dv_mixt_wvel,ijkc)*vals(ijkval,wlm_vals_etz)
255  vals(ijkval,wlm_vals_ztv) = &
256  dv(dv_mixt_uvel,ijkc)*vals(ijkval,wlm_vals_ztx) + &
257  dv(dv_mixt_vvel,ijkc)*vals(ijkval,wlm_vals_zty) + &
258  dv(dv_mixt_wvel,ijkc)*vals(ijkval,wlm_vals_ztz)
259  vals(ijkval,wlm_vals_dens) = cv(cv_mixt_dens,ijkc)
260  mul(ijkval) = tv(tv_mixt_muel,ijkc)
261  ENDDO
262  ENDDO
263  ENDDO
264 
265  ENDIF
266 
267 ! compute tau-wall from total contributions
268 
269  rvonk = 2.5_rfreal
270  consb = 8.5_rfreal
271  ksplsmax = 70._rfreal
272  vals(:,wlm_vals_tauux:wlm_vals_tauwz) = 0._rfreal
273 
274  DO ijkval=ijbeg,ijend
275 
276  wdist = vals(ijkval,wlm_vals_wdist)
277  ksize = vals(ijkval,wlm_vals_rough)
278  dens = vals(ijkval,wlm_vals_dens)
279  abvel = sqrt( vals(ijkval,wlm_vals_xiv)**2+vals(ijkval,wlm_vals_ztv)**2 )
280 
281  IF (ksize > real_small) THEN
282 
283 ! --- surface roughness may be large enough to be taken into account
284 
285  utau = rvonk*log( wdist/ksize ) + consb
286  utau = abvel/utau
287 
288 ! --- utau at LHS above is large for high ksize, but turns to negative when
289 ! ksize becomes even larger. Theoretically there is maximum value of utau,
290 ! i.e. when ksPls reaches value 70. This contrain is applied here.
291 
292  maxut = ksplsmax*mul(ijkval)/(ksize*dens)
293  utau = min( utau, maxut ) ! for large ks but utau still > 0.
294  IF (utau < 0._rfreal) utau = maxut ! for large ks that utau < 0.
295 
296  kspls = utau*ksize*dens/mul(ijkval)
297  IF (kspls >= 5._rfreal) THEN
298 !wlmCheckprobe-----------------------------------------
299 ! yPls = ksPls*wdist/ksize
300 ! write(*,*)1,ijkVal,ksPls,yPls,utau,utau/abVel
301 !------------------------------------------------------
302  goto 30
303  ELSE
304  goto 20
305  ENDIF
306  ENDIF
307 
308 20 CONTINUE
309 
310 ! - surface hidraulically smooth, find utau using Newton-Raphson iteration
311 
312 ! minUt = 1.E-8_RFREAL*abVel ! constrain for low utau (near separation)
313 ! utau = MAX( minUt,vals(ijkVal,WLM_VALS_UTAU) ) ! initial estimate
314 
315 ! func = 1._RFREAL
316 ! DO WHILE (ABS( func ) > STOP_VALUE )
317 ! yPls = utau*wdist*dens/mul(ijkVal)
318 ! func = rVonk*LOG( yPls ) + 5.5_RFREAL - abVel/utau
319 ! dfunc = (rVonk*yPls + abVel)/(utau*utau)
320 ! utau = MAX( minUt , (utau - relaxCoef*func/dfunc) )
321 !wlmCheckprobe---------------------
322 ! write(*,*) ijkVal,func,yPls
323 !----------------------------------
324 ! ENDDO
325 
326 ! - or using rough estimate (replaced by Dean`s correlation later)
327 
328  utau = 0.05_rfreal*abvel
329  ypls = utau*wdist*dens/mul(ijkval)
330 !wlmCheckprobe---------------------
331 ! write(*,*) ijkVal,utau,wdist,dens,mul(ijkVal),yPls
332 !----------------------------------
333 
334 ! - check roughness height in wall unit
335 
336  kspls = utau*ksize*dens/mul(ijkval)
337 !wlmCheckprobe-------------------------------------
338 ! write(*,*)2,ijkVal,ksPls,yPls,utau,utau/abVel
339 !--------------------------------------------------
340 30 CONTINUE
341 
342 ! - wall stress in xi and zeta direction and store utau for next stage
343 
344  tauwall = dens*utau*utau
345  vals(ijkval,wlm_vals_tauuy) = vals(ijkval,wlm_vals_xiv)/abvel*tauwall
346  vals(ijkval,wlm_vals_tauwy) = vals(ijkval,wlm_vals_ztv)/abvel*tauwall
347 
348  vals(ijkval,wlm_vals_tauvx) = vals(ijkval,wlm_vals_tauuy)
349  vals(ijkval,wlm_vals_tauvz) = vals(ijkval,wlm_vals_tauwy)
350 
351  vals(ijkval,wlm_vals_utau) = utau
352 
353 ! - store total wall stress in heat-flux array for heat transfer comp. later
354  vals(ijkval,wlm_vals_hflux) = tauwall
355 !checkprobe--------------------------------------------------------------------
356 ! write(*,*) region%procId,patch%lbound,ijkVal,vals(ijkVal,WLM_VALS_TAUUY), &
357 ! vals(ijkVal,WLM_VALS_TAUWY),utau/abVel
358 !------------------------------------------------------------------------------
359 
360  ENDDO ! ijkVal
361 
362 ! deallocate temporary arrays
363 
364  DEALLOCATE( mul )
365 
366 ! finalize --------------------------------------------------------------------
367 
368  CALL deregisterfunction( global )
369 
370 END SUBROUTINE turb_flowlmupdateloglay
371 
372 !******************************************************************************
373 !
374 ! RCS Revision history:
375 !
376 ! $Log: TURB_floWlmUpdateLoglay.F90,v $
377 ! Revision 1.5 2008/12/06 08:44:44 mtcampbe
378 ! Updated license.
379 !
380 ! Revision 1.4 2008/11/19 22:17:56 mtcampbe
381 ! Added Illinois Open Source License/Copyright
382 !
383 ! Revision 1.3 2004/03/19 02:53:24 wasistho
384 ! prepared for RFLU
385 !
386 ! Revision 1.2 2004/03/12 02:55:36 wasistho
387 ! changed rocturb routine names
388 !
389 ! Revision 1.1 2004/03/08 23:35:46 wasistho
390 ! changed turb nomenclature
391 !
392 ! Revision 1.4 2004/02/14 03:43:30 wasistho
393 ! added new WLM parameter: reference point
394 !
395 !
396 !******************************************************************************
397 
398 
399 
400 
401 
402 
403 
**********************************************************************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
subroutine turb_flowlmupdateloglay(region, patch)
subroutine registerfunction(global, funName, fileName)
Definition: ModError.F90:449
subroutine rflo_getpatchindices(region, patch, iLev, ibeg, iend, jbeg, jend, kbeg, kend)
double sqrt(double d)
Definition: double.h:73
unsigned int ksize() const
Definition: FloGrid.H:145
**********************************************************************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
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
subroutine rflo_getcelloffset(region, iLev, iCellOffset, ijCellOffset)
Vector_n min(const Array_n_const &v1, const Array_n_const &v2)
Definition: Vector_n.h:346
j indices j
Definition: Indexing.h:6
**********************************************************************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
**********************************************************************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
static void mul(const Attribute *x, const Attribute *y, Attribute *z)
Operation wrapper for multiplication.
Definition: op3args.C:253