68 CHARACTER(CHRLEN) :: RCSIdentString = &
69 '$RCSfile: RFLO_ModFiniteDifference.F90,v $ $Revision: 1.4 $'
97 inoff,ijnoff,idb,ide,var,dvar )
101 #include "Indexing.h"
104 INTEGER ::
ibeg,
iend,
jbeg,
jend,
kbeg, kend, ndum, idb, ide, inoff, ijnoff
105 REAL(RFREAL),
POINTER :: var(:,:), dvar(:,:)
111 INTEGER :: nelm, ndim, ijkn, ijknp, ijknm, ijkn1, ijkn2,
error
112 REAL(RFREAL) :: dh, r2dh
119 IF ((
SIZE( var,1 ) < nelm) .OR. (
SIZE( var,2 ) /= ndim))
THEN
120 WRITE(stderr,
'(A)') solver_name
121 WRITE(stderr,
'(A,1X,A)') solver_name,
'ERROR in RFLO_FinDiffCompI: '
122 WRITE(stderr,
'(A,1X,A)') solver_name,
'inconsistent 1st or 2nd dimension'
123 WRITE(stderr,
'(A)') solver_name
125 CALL mpi_abort(
error )
130 dh = 1._rfreal/
REAL(
iend-
ibeg-2*ndum )
136 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
137 ijknp = indijk(
i+1 ,
j ,
k ,inoff,ijnoff)
138 ijknm = indijk(
i-1 ,
j ,
k ,inoff,ijnoff)
139 dvar(idb:ide,ijkn) = (var(idb:ide,ijknp) - var(idb:ide,ijknm))*r2dh
142 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
143 ijkn1 = indijk(
i+1 ,
j ,
k ,inoff,ijnoff)
144 ijkn2 = indijk(
i+2 ,
j ,
k ,inoff,ijnoff)
145 dvar(idb:ide,ijkn) = 2*dvar(idb:ide,ijkn1) - dvar(idb:ide,ijkn2)
148 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
149 ijkn1 = indijk(
i-1 ,
j ,
k ,inoff,ijnoff)
150 ijkn2 = indijk(
i-2 ,
j ,
k ,inoff,ijnoff)
151 dvar(idb:ide,ijkn) = 2*dvar(idb:ide,ijkn1) - dvar(idb:ide,ijkn2)
181 inoff,ijnoff,idb,ide,var,dvar )
185 #include "Indexing.h"
188 INTEGER ::
ibeg,
iend,
jbeg,
jend,
kbeg, kend, ndum, idb, ide, inoff, ijnoff
189 REAL(RFREAL),
POINTER :: var(:,:), dvar(:,:)
195 INTEGER :: nelm, ndim, ijkn, ijknp, ijknm, ijkn1, ijkn2,
error
196 REAL(RFREAL) :: dh, r2dh
203 IF ((
SIZE( var,1 ) < nelm) .OR. (
SIZE( var,2 ) /= ndim))
THEN
204 WRITE(stderr,
'(A)') solver_name
205 WRITE(stderr,
'(A,1X,A)') solver_name,
'ERROR in RFLO_FinDiffCompJ: '
206 WRITE(stderr,
'(A,1X,A)') solver_name,
'inconsistent 1st or 2nd dimension'
207 WRITE(stderr,
'(A)') solver_name
209 CALL mpi_abort(
error )
214 dh = 1._rfreal/
REAL(
jend-
jbeg-2*ndum )
220 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
221 ijknp = indijk(
i ,
j+1 ,
k ,inoff,ijnoff)
222 ijknm = indijk(
i ,
j-1 ,
k ,inoff,ijnoff)
223 dvar(idb:ide,ijkn) = (var(idb:ide,ijknp) - var(idb:ide,ijknm))*r2dh
231 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
232 ijkn1 = indijk(
i ,
j+1 ,
k ,inoff,ijnoff)
233 ijkn2 = indijk(
i ,
j+2 ,
k ,inoff,ijnoff)
234 dvar(idb:ide,ijkn) = 2*dvar(idb:ide,ijkn1) - dvar(idb:ide,ijkn2)
237 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
238 ijkn1 = indijk(
i ,
j-1 ,
k ,inoff,ijnoff)
239 ijkn2 = indijk(
i ,
j-2 ,
k ,inoff,ijnoff)
240 dvar(idb:ide,ijkn) = 2*dvar(idb:ide,ijkn1) - dvar(idb:ide,ijkn2)
270 inoff,ijnoff,idb,ide,var,dvar )
274 #include "Indexing.h"
277 INTEGER ::
ibeg,
iend,
jbeg,
jend,
kbeg, kend, ndum, idb, ide, inoff, ijnoff
278 REAL(RFREAL),
POINTER :: var(:,:), dvar(:,:)
284 INTEGER :: nelm, ndim, ijkn, ijknp, ijknm, ijkn1, ijkn2,
error
285 REAL(RFREAL) :: dh, r2dh
292 IF ((
SIZE( var,1 ) < nelm) .OR. (
SIZE( var,2 ) /= ndim))
THEN
293 WRITE(stderr,
'(A)') solver_name
294 WRITE(stderr,
'(A,1X,A)') solver_name,
'ERROR in RFLO_FinDiffCompK: '
295 WRITE(stderr,
'(A,1X,A)') solver_name,
'inconsistent 1st or 2nd dimension'
296 WRITE(stderr,
'(A)') solver_name
298 CALL mpi_abort(
error )
303 dh = 1._rfreal/
REAL( kend-
kbeg-2*ndum )
309 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
310 ijknp = indijk(
i ,
j ,
k+1 ,inoff,ijnoff)
311 ijknm = indijk(
i ,
j ,
k-1 ,inoff,ijnoff)
312 dvar(idb:ide,ijkn) = (var(idb:ide,ijknp) - var(idb:ide,ijknm))*r2dh
320 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
321 ijkn1 = indijk(
i ,
j ,
k+1 ,inoff,ijnoff)
322 ijkn2 = indijk(
i ,
j ,
k+2 ,inoff,ijnoff)
323 dvar(idb:ide,ijkn) = 2*dvar(idb:ide,ijkn1) - dvar(idb:ide,ijkn2)
326 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
327 ijkn1 = indijk(
i ,
j ,
k-1 ,inoff,ijnoff)
328 ijkn2 = indijk(
i ,
j ,
k-2 ,inoff,ijnoff)
329 dvar(idb:ide,ijkn) = 2*dvar(idb:ide,ijkn1) - dvar(idb:ide,ijkn2)
359 inoff,ijnoff,idb,ide,var,dvar )
363 #include "Indexing.h"
366 INTEGER ::
ibeg,
iend,
jbeg,
jend,
kbeg, kend, ndum, idb, ide, inoff, ijnoff
367 REAL(RFREAL),
POINTER :: var(:,:), dvar(:,:)
373 INTEGER :: nelm, ndim, ijkn, ijknp, ijknm, ijkn1, ijkn2,
error
374 REAL(RFREAL) :: dh, rdh2
381 IF ((
SIZE( var,1 ) < nelm) .OR. (
SIZE( var,2 ) /= ndim))
THEN
382 WRITE(stderr,
'(A)') solver_name
383 WRITE(stderr,
'(A,1X,A)') solver_name,
'ERROR in RFLO_FinDiffCompII: '
384 WRITE(stderr,
'(A,1X,A)') solver_name,
'inconsistent 1st or 2nd dimension'
385 WRITE(stderr,
'(A)') solver_name
387 CALL mpi_abort(
error )
392 dh = 1._rfreal/
REAL(
iend-
ibeg-2*ndum )
393 rdh2 = 1._rfreal/(dh*dh)
398 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
399 ijknp = indijk(
i+1 ,
j ,
k ,inoff,ijnoff)
400 ijknm = indijk(
i-1 ,
j ,
k ,inoff,ijnoff)
401 dvar(idb:ide,ijkn) = (var(idb:ide,ijknp) -2._rfreal*var(idb:ide,ijkn)+ &
402 var(idb:ide,ijknm))*rdh2
405 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
406 ijkn1 = indijk(
i+1 ,
j ,
k ,inoff,ijnoff)
407 ijkn2 = indijk(
i+2 ,
j ,
k ,inoff,ijnoff)
408 dvar(idb:ide,ijkn) = 2*dvar(idb:ide,ijkn1) - dvar(idb:ide,ijkn2)
411 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
412 ijkn1 = indijk(
i-1 ,
j ,
k ,inoff,ijnoff)
413 ijkn2 = indijk(
i-2 ,
j ,
k ,inoff,ijnoff)
414 dvar(idb:ide,ijkn) = 2*dvar(idb:ide,ijkn1) - dvar(idb:ide,ijkn2)
444 inoff,ijnoff,idb,ide,var,dvar )
448 #include "Indexing.h"
451 INTEGER ::
ibeg,
iend,
jbeg,
jend,
kbeg, kend, ndum, idb, ide, inoff, ijnoff
452 REAL(RFREAL),
POINTER :: var(:,:), dvar(:,:)
458 INTEGER :: nelm, ndim, ijkn, ijknp, ijknm, ijkn1, ijkn2,
error
459 REAL(RFREAL) :: dh, rdh2
466 IF ((
SIZE( var,1 ) < nelm) .OR. (
SIZE( var,2 ) /= ndim))
THEN
467 WRITE(stderr,
'(A)') solver_name
468 WRITE(stderr,
'(A,1X,A)') solver_name,
'ERROR in RFLO_FinDiffCompJJ: '
469 WRITE(stderr,
'(A,1X,A)') solver_name,
'inconsistent 1st or 2nd dimension'
470 WRITE(stderr,
'(A)') solver_name
472 CALL mpi_abort(
error )
477 dh = 1._rfreal/
REAL(
jend-
jbeg-2*ndum )
478 rdh2 = 1._rfreal/(dh*dh)
483 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
484 ijknp = indijk(
i ,
j+1 ,
k ,inoff,ijnoff)
485 ijknm = indijk(
i ,
j-1 ,
k ,inoff,ijnoff)
486 dvar(idb:ide,ijkn) = (var(idb:ide,ijknp)-2._rfreal*var(idb:ide,ijkn)+ &
487 var(idb:ide,ijknm))*rdh2
495 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
496 ijkn1 = indijk(
i ,
j+1 ,
k ,inoff,ijnoff)
497 ijkn2 = indijk(
i ,
j+2 ,
k ,inoff,ijnoff)
498 dvar(idb:ide,ijkn) = 2*dvar(idb:ide,ijkn1) - dvar(idb:ide,ijkn2)
501 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
502 ijkn1 = indijk(
i ,
j-1 ,
k ,inoff,ijnoff)
503 ijkn2 = indijk(
i ,
j-2 ,
k ,inoff,ijnoff)
504 dvar(idb:ide,ijkn) = 2*dvar(idb:ide,ijkn1) - dvar(idb:ide,ijkn2)
534 inoff,ijnoff,idb,ide,var,dvar )
538 #include "Indexing.h"
541 INTEGER ::
ibeg,
iend,
jbeg,
jend,
kbeg, kend, ndum, idb, ide, inoff, ijnoff
542 REAL(RFREAL),
POINTER :: var(:,:), dvar(:,:)
548 INTEGER :: nelm, ndim, ijkn, ijknp, ijknm, ijkn1, ijkn2,
error
549 REAL(RFREAL) :: dh, rdh2
556 IF ((
SIZE( var,1 ) < nelm) .OR. (
SIZE( var,2 ) /= ndim))
THEN
557 WRITE(stderr,
'(A)') solver_name
558 WRITE(stderr,
'(A,1X,A)') solver_name,
'ERROR in RFLO_FinDiffCompKK: '
559 WRITE(stderr,
'(A,1X,A)') solver_name,
'inconsistent 1st or 2nd dimension'
560 WRITE(stderr,
'(A)') solver_name
562 CALL mpi_abort(
error )
567 dh = 1._rfreal/
REAL( kend-
kbeg-2*ndum )
568 rdh2 = 1._rfreal/(dh*dh)
573 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
574 ijknp = indijk(
i ,
j ,
k+1 ,inoff,ijnoff)
575 ijknm = indijk(
i ,
j ,
k-1 ,inoff,ijnoff)
576 dvar(idb:ide,ijkn) = (var(idb:ide,ijknp)-2._rfreal*var(idb:ide,ijkn)+ &
577 var(idb:ide,ijknm))*rdh2
585 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
586 ijkn1 = indijk(
i ,
j ,
k+1 ,inoff,ijnoff)
587 ijkn2 = indijk(
i ,
j ,
k+2 ,inoff,ijnoff)
588 dvar(idb:ide,ijkn) = 2*dvar(idb:ide,ijkn1) - dvar(idb:ide,ijkn2)
591 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
592 ijkn1 = indijk(
i ,
j ,
k-1 ,inoff,ijnoff)
593 ijkn2 = indijk(
i ,
j ,
k-2 ,inoff,ijnoff)
594 dvar(idb:ide,ijkn) = 2*dvar(idb:ide,ijkn1) - dvar(idb:ide,ijkn2)
625 #include "Indexing.h"
628 INTEGER ::
ni,
nj, idb, ide
629 REAL(RFREAL),
POINTER :: var(:,:,:), dvar(:,:,:)
635 INTEGER :: nelm, ndim1, ndim2,
error
636 REAL(RFREAL) :: dh, r2dh
644 IF ((
SIZE( var,1 ) < nelm ) .OR. &
645 (
SIZE( var,2 ) /= ndim1) .OR. &
646 (
SIZE( var,3 ) /= ndim2))
THEN
647 WRITE(stderr,
'(A)') solver_name
648 WRITE(stderr,
'(A,1X,A)') solver_name,
'ERROR in RFLO_FinDiffCompIs: '
649 WRITE(stderr,
'(A,1X,A)') solver_name,
'inconsistent 1st or 2nd dimension'
650 WRITE(stderr,
'(A)') solver_name
652 CALL mpi_abort(
error )
657 dh = 1._rfreal/
REAL(
ni-1 )
662 dvar(idb:ide,
i,
j) = (var(idb:ide,
i+1,
j) - var(idb:ide,
i-1,
j))*r2dh
665 dvar(idb:ide,
i,
j) = 2*dvar(idb:ide,
i+1,
j) - dvar(idb:ide,
i+2,
j)
668 dvar(idb:ide,
i,
j) = 2*dvar(idb:ide,
i-1,
j) - dvar(idb:ide,
i-2,
j)
698 #include "Indexing.h"
701 INTEGER ::
ni,
nj, idb, ide
702 REAL(RFREAL),
POINTER :: var(:,:,:), dvar(:,:,:)
708 INTEGER :: nelm, ndim1, ndim2,
error
709 REAL(RFREAL) :: dh, r2dh
717 IF ((
SIZE( var,1 ) < nelm ) .OR. &
718 (
SIZE( var,2 ) /= ndim1) .OR. &
719 (
SIZE( var,3 ) /= ndim2))
THEN
720 WRITE(stderr,
'(A)') solver_name
721 WRITE(stderr,
'(A,1X,A)') solver_name,
'ERROR in RFLO_FinDiffCompJs: '
722 WRITE(stderr,
'(A,1X,A)') solver_name,
'inconsistent 1st or 2nd dimension'
723 WRITE(stderr,
'(A)') solver_name
725 CALL mpi_abort(
error )
730 dh = 1._rfreal/
REAL(
nj-1 )
735 dvar(idb:ide,
i,
j) = (var(idb:ide,
i,
j+1) - var(idb:ide,
i,
j-1))*r2dh
740 dvar(idb:ide,
i,
j) = 2*dvar(idb:ide,
i,
j+1) - dvar(idb:ide,
i,
j+2)
745 dvar(idb:ide,
i,
j) = 2*dvar(idb:ide,
i,
j-1) - dvar(idb:ide,
i,
j-2)
775 #include "Indexing.h"
778 INTEGER ::
ni,
nj, idb, ide
779 REAL(RFREAL),
POINTER :: var(:,:,:), dvar(:,:,:)
785 INTEGER :: nelm, ndim1, ndim2,
error
786 REAL(RFREAL) :: dh, rdh2
794 IF ((
SIZE( var,1 ) < nelm ) .OR. &
795 (
SIZE( var,2 ) /= ndim1) .OR. &
796 (
SIZE( var,3 ) /= ndim2))
THEN
797 WRITE(stderr,
'(A)') solver_name
798 WRITE(stderr,
'(A,1X,A)') solver_name,
'ERROR in RFLO_FinDiffCompIIs: '
799 WRITE(stderr,
'(A,1X,A)') solver_name,
'inconsistent 1st or 2nd dimension'
800 WRITE(stderr,
'(A)') solver_name
802 CALL mpi_abort(
error )
807 dh = 1._rfreal/
REAL(
ni-1 )
808 rdh2 = 1._rfreal/(dh*dh)
812 dvar(idb:ide,
i,
j) = (var(idb:ide,
i+1,
j) - 2._rfreal*var(idb:ide,
i,
j) + &
813 var(idb:ide,
i-1,
j))*rdh2
816 dvar(idb:ide,
i,
j) = 2*dvar(idb:ide,
i+1,
j) - dvar(idb:ide,
i+2,
j)
819 dvar(idb:ide,
i,
j) = 2*dvar(idb:ide,
i-1,
j) - dvar(idb:ide,
i-2,
j)
849 #include "Indexing.h"
852 INTEGER ::
ni,
nj, idb, ide
853 REAL(RFREAL),
POINTER :: var(:,:,:), dvar(:,:,:)
859 INTEGER :: nelm, ndim1, ndim2,
error
860 REAL(RFREAL) :: dh, rdh2
868 IF ((
SIZE( var,1 ) < nelm ) .OR. &
869 (
SIZE( var,2 ) /= ndim1) .OR. &
870 (
SIZE( var,3 ) /= ndim2))
THEN
871 WRITE(stderr,
'(A)') solver_name
872 WRITE(stderr,
'(A,1X,A)') solver_name,
'ERROR in RFLO_FinDiffCompJJs: '
873 WRITE(stderr,
'(A,1X,A)') solver_name,
'inconsistent 1st or 2nd dimension'
874 WRITE(stderr,
'(A)') solver_name
876 CALL mpi_abort(
error )
881 dh = 1._rfreal/
REAL(
nj-1 )
882 rdh2 = 1._rfreal/(dh*dh)
886 dvar(idb:ide,
i,
j) = (var(idb:ide,
i,
j+1) - 2._rfreal*var(idb:ide,
i,
j) + &
887 var(idb:ide,
i,
j-1))*rdh2
892 dvar(idb:ide,
i,
j) = 2*dvar(idb:ide,
i,
j+1) - dvar(idb:ide,
i,
j+2)
897 dvar(idb:ide,
i,
j) = 2*dvar(idb:ide,
i,
j-1) - dvar(idb:ide,
i,
j-2)
**********************************************************************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, public rflo_findiffcompis(ni, nj, idb, ide, var, dvar)
subroutine, public rflo_findiffcompi(ibeg, iend, jbeg, jend, kbeg, kend, ndum, iNOff, ijNOff, idb, ide, var, dvar)
subroutine, public rflo_findiffcompjj(ibeg, iend, jbeg, jend, kbeg, kend, ndum, iNOff, ijNOff, idb, ide, var, dvar)
subroutine, public rflo_findiffcompjs(ni, nj, idb, ide, var, dvar)
subroutine, public rflo_findiffcompiis(ni, nj, idb, ide, var, dvar)
**********************************************************************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, public rflo_findiffcompj(ibeg, iend, jbeg, jend, kbeg, kend, ndum, iNOff, ijNOff, idb, ide, var, dvar)
subroutine, public rflo_findiffcompkk(ibeg, iend, jbeg, jend, kbeg, kend, ndum, iNOff, ijNOff, idb, ide, var, dvar)
subroutine, public rflo_findiffcompjjs(ni, nj, idb, ide, var, dvar)
subroutine, public rflo_findiffcompk(ibeg, iend, jbeg, jend, kbeg, kend, ndum, iNOff, ijNOff, idb, ide, var, dvar)
**********************************************************************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 knode jbeg
void int int REAL REAL REAL *z blockDim dim * ni
subroutine, public rflo_findiffcompii(ibeg, iend, jbeg, jend, kbeg, kend, ndum, iNOff, ijNOff, idb, ide, var, dvar)
**********************************************************************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