69 CHARACTER(CHRLEN) :: RCSIdentString = &
70 '$RCSfile: PREP_ModBcDistribution.F90,v $ $Revision: 1.9 $'
97 TYPE(t_region
),
POINTER :: regions(:)
100 CHARACTER(2*CHRLEN+9) :: fname
101 CHARACTER(256) ::
line
103 INTEGER :: distrib, errorflag
109 global => regions(1)%global
112 'PREP_ModBcDistribution.F90' )
116 WRITE(fname,
'(A)') trim(global%inDir)//trim(global%casename)//
'.bc'
117 OPEN(if_input,file=fname,
form=
'formatted',
status=
'old',iostat=errorflag)
118 global%error = errorflag
119 IF (global%error /= 0) &
120 CALL
errorstop( global,err_file_open,__line__,
'File: '//trim(fname) )
124 ALLOCATE( global%infloPlanEdges(xcoord:zcoord,xcoord:zcoord,2), &
126 global%error = errorflag
127 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
129 ALLOCATE( global%xyzMinmax(xcoord:zcoord,2),stat=errorflag )
130 global%error = errorflag
131 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
133 global%infloPlanEdges = 0._rfreal
134 global%xyzMinmax(:,1) = real_large
135 global%xyzMinmax(:,2) = real_small
140 IF (abs(
sum( global%infloPlanEdges ) ) > 1.e-10_rfreal)
THEN
147 CLOSE(if_input,iostat=errorflag)
148 global%error = errorflag
149 IF (global%error /= 0) &
150 CALL
errorstop( global,err_file_close,__line__,
'File: '//trim(fname) )
164 READ(if_input,
'(A256)',err=10,
end=86)
line
165 SELECT CASE(trim(
line))
167 CASE (
'# BC_SLIPWALL')
170 IF (distrib/=0) CALL
errorstop( global,err_unknown_option,__line__, &
171 ' generator for slip wall distribution not ready yet' )
173 CASE (
'# BC_NOSLIPWALL')
176 IF (distrib/=0) CALL
errorstop( global,err_unknown_option,__line__, &
177 ' generator for noslip wall distribution not ready yet' )
183 IF (distrib/=0) CALL
errorstop( global,err_unknown_option,__line__, &
184 ' generator for TotAng-inflow distribution not ready yet' )
187 CASE (
'# BC_INFLOW_TOTANG')
190 IF (distrib/=0) CALL
errorstop( global,err_unknown_option,__line__, &
191 ' generator for TotAng-inflow distribution not ready yet' )
193 CASE (
'# BC_INFLOW_VELTEMP')
197 CASE (
'# BC_INFLOW_VELPRESS')
201 CASE (
'# BC_OUTFLOW')
204 IF (distrib/=0) CALL
errorstop( global,err_unknown_option,__line__, &
205 ' generator for outflow distribution not ready yet' )
207 CASE (
'# BC_FARFIELD')
210 IF (distrib/=0) CALL
errorstop( global,err_unknown_option,__line__, &
211 ' generator for farfield distribution not ready yet' )
213 CASE (
'# BC_INJECTION')
216 IF (distrib/=0) CALL
errorstop( global,err_unknown_option,__line__, &
217 ' generator for injection distribution not ready yet' )
227 CALL
errorstop( global,err_file_read,__line__,
'File: '//trim(fname) )
255 TYPE(t_region
),
POINTER :: regions(:)
256 INTEGER :: ithread, bctitle, distrib
259 INTEGER :: ireg, ipatch
262 CHARACTER(10) :: keys(2)
263 CHARACTER(256) :: fname
267 LOGICAL :: defined(2)
269 REAL(RFREAL) :: vals(2)
276 global => regions(1)%global
279 'PREP_ModBcDistribution.F90' )
284 keys(2) =
'MAXCHANGE'
293 IF (.NOT. defined(1) .OR. &
294 .NOT. defined(2)) CALL
errorstop( global,err_bcval_missing,__line__ )
301 patch => regions(ireg)%levels(1)%patches(ipatch)
303 IF ((
patch%bcType>=bc_slipwall .AND. &
304 patch%bcType<=bc_slipwall+bc_range) .AND. &
305 regions(ireg)%procid==global%myProcid .AND. &
306 regions(ireg)%active==active)
THEN
308 IF (
patch%mixt%bcSet) &
309 CALL
errorstop( global,err_patch_overspec,__line__,
'Slip-wall boundary.' )
312 patch%mixt%nSwitches = 1
313 patch%mixt%distrib = bcdat_constant
314 IF (ithread==2)
patch%mixt%bcSet = .true.
318 ALLOCATE(
patch%mixt%switches(
patch%mixt%nSwitches), &
320 global%error = errorflag
321 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
323 patch%mixt%switches(bcswi_slipw_extrap) = extrapol_const
325 patch%mixt%switches(bcswi_slipw_extrap) = extrapol_linear
327 patch%mixt%maxChange = vals(2)
359 #include "Indexing.h"
362 TYPE(t_region
),
POINTER :: regions(:)
363 INTEGER :: ithread, bctitle, distrib
366 INTEGER :: ireg, ipatch
369 CHARACTER(10) :: keys(2)
370 CHARACTER(256) :: fname
373 INTEGER :: n1, n2, ioff, ijbeg, ijend, errorflag
375 LOGICAL :: defined(2)
377 REAL(RFREAL) :: vals(2)
384 global => regions(1)%global
387 'PREP_ModBcDistribution.F90' )
404 patch => regions(ireg)%levels(1)%patches(ipatch)
406 IF ((
patch%bcType>=bc_noslipwall .AND. &
407 patch%bcType<=bc_noslipwall+bc_range) .AND. &
408 regions(ireg)%procid==global%myProcid .AND. &
409 regions(ireg)%active==active)
THEN
411 IF (
patch%mixt%bcSet) &
412 CALL
errorstop( global,err_patch_overspec,__line__,
'Noslip boundary.' )
415 patch%mixt%nSwitches = 1
416 IF (
patch%bcCoupled == bc_external)
THEN
417 patch%mixt%distrib = bcdat_distrib
419 patch%mixt%distrib = distrib
422 ALLOCATE(
patch%mixt%switches(
patch%mixt%nSwitches), &
424 global%error = errorflag
425 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
429 patch%mixt%switches(bcswi_noslip_adiabat) = bcopt_adiabat
431 patch%mixt%switches(bcswi_noslip_adiabat) = bcopt_non_adiabat
433 CALL
errorstop( global,err_no_bcswitch,__line__,
'(adiabatic wall yes/no).' )
437 IF (
patch%mixt%switches(bcswi_noslip_adiabat) == &
438 bcopt_non_adiabat)
THEN
439 IF (
patch%mixt%distrib==bcdat_constant .AND. &
440 (.NOT. defined(2))) CALL
errorstop( global,err_bcval_missing,__line__ )
444 IF (ithread==2)
patch%mixt%bcSet = .true.
455 patch => regions(ireg)%levels(1)%patches(ipatch)
457 IF ((
patch%bcType>=bc_noslipwall .AND. &
458 patch%bcType<=bc_noslipwall+bc_range) .AND. &
459 regions(ireg)%procid==global%myProcid .AND. &
460 regions(ireg)%active==active)
THEN
461 switch =
patch%mixt%switches(bcswi_noslip_adiabat)
463 switch = bcopt_adiabat
466 IF ((
patch%bcType>=bc_noslipwall .AND. &
467 patch%bcType<=bc_noslipwall+bc_range) .AND. &
468 switch==bcopt_non_adiabat .AND. &
469 regions(ireg)%procid==global%myProcid .AND. &
470 regions(ireg)%active==active)
THEN
476 IF (
patch%mixt%distrib == bcdat_distrib)
THEN
480 ijbeg = indij( 0, 0,ioff)
481 ijend = indij(n1,n2,ioff)
486 ALLOCATE(
patch%mixt%vals(
patch%mixt%nData,ijbeg:ijend), &
488 global%error = errorflag
489 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
493 IF (
patch%mixt%distrib==bcdat_distrib .AND. &
494 patch%bcCoupled /=bc_external )
THEN
500 patch%mixt%vals(bcdat_noslip_twall,:) = vals(2)
534 #include "Indexing.h"
537 TYPE(t_region
),
POINTER :: regions(:)
538 INTEGER :: ithread, bctitle, distrib
541 INTEGER :: ireg, ipatch
544 CHARACTER(10) :: keys(7)
545 CHARACTER(256) :: fname
548 INTEGER :: n1, n2, ioff, ijbeg, ijend, errorflag
550 LOGICAL :: defined(7)
552 REAL(RFREAL) :: vals(7)
559 global => regions(1)%global
562 'PREP_ModBcDistribution.F90' )
584 patch => regions(ireg)%levels(1)%patches(ipatch)
586 IF ((
patch%bcType>=bc_inflow .AND. &
587 patch%bcType<=bc_inflow+bc_range) .AND. &
588 regions(ireg)%procid==global%myProcid .AND. &
589 regions(ireg)%active==active)
THEN
591 patch%bcType = bc_inflow_totang
593 IF (
patch%mixt%bcSet) &
594 CALL
errorstop( global,err_patch_overspec,__line__,
'Inflow boundary.' )
596 patch%mixt%nSwitches = 2
597 IF (
patch%bcCoupled == bc_external)
THEN
598 patch%mixt%distrib = bcdat_distrib
600 patch%mixt%distrib = distrib
603 ALLOCATE(
patch%mixt%switches(
patch%mixt%nSwitches), &
605 global%error = errorflag
606 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
610 patch%mixt%switches(bcswi_inflow_type) = bcopt_subsonic
612 patch%mixt%switches(bcswi_inflow_type) = bcopt_supersonic
614 patch%mixt%switches(bcswi_inflow_type) = bcopt_mixed
616 CALL
errorstop( global,err_no_bcswitch,__line__,
'(inflow type).' )
621 patch%mixt%switches(bcswi_inflow_fixed) = bcopt_fixed_no
623 patch%mixt%switches(bcswi_inflow_fixed) = bcopt_fixed_yes
625 patch%mixt%switches(bcswi_inflow_fixed) = bcopt_fixed_no
629 IF (
patch%mixt%switches(bcswi_inflow_type) == bcopt_subsonic)
THEN
630 IF (
patch%mixt%distrib==bcdat_constant .AND. &
631 (.NOT. defined(3) .OR. &
632 .NOT. defined(4) .OR. &
633 .NOT. defined(5) .OR. &
634 .NOT. defined(6))) CALL
errorstop( global,err_bcval_missing,__line__ )
636 IF (
patch%mixt%switches(bcswi_inflow_type) == bcopt_supersonic .OR. &
637 patch%mixt%switches(bcswi_inflow_type) == bcopt_mixed)
THEN
638 IF (
patch%mixt%distrib==bcdat_constant .AND. &
639 (.NOT. defined(3) .OR. &
640 .NOT. defined(4) .OR. &
641 .NOT. defined(5) .OR. &
642 .NOT. defined(6) .OR. &
643 .NOT. defined(7))) CALL
errorstop( global,err_bcval_missing,__line__ )
647 IF (ithread==2)
patch%mixt%bcSet = .true.
658 patch => regions(ireg)%levels(1)%patches(ipatch)
660 IF ((
patch%bcType>=bc_inflow .AND. &
661 patch%bcType<=bc_inflow+bc_range) .AND. &
662 regions(ireg)%procid==global%myProcid .AND. &
663 regions(ireg)%active==active)
THEN
665 switch =
patch%mixt%switches(bcswi_inflow_type)
666 IF (switch == bcopt_subsonic)
THEN
674 IF (
patch%mixt%distrib == bcdat_distrib)
THEN
678 ijbeg = indij( 0, 0,ioff)
679 ijend = indij(n1,n2,ioff)
684 ALLOCATE(
patch%mixt%vals(
patch%mixt%nData,ijbeg:ijend), &
686 global%error = errorflag
687 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
691 IF (
patch%mixt%distrib==bcdat_distrib .AND. &
692 patch%bcCoupled /=bc_external )
THEN
695 IF (switch == bcopt_subsonic)
THEN
696 patch%mixt%vals(bcdat_inflow_betah,:) = &
697 patch%mixt%vals(bcdat_inflow_betah,:)*global%rad
698 patch%mixt%vals(bcdat_inflow_betav,:) = &
699 patch%mixt%vals(bcdat_inflow_betav,:)*global%rad
705 patch%mixt%vals(bcdat_inflow_ptot ,:) = vals(3)
706 patch%mixt%vals(bcdat_inflow_ttot ,:) = vals(4)
707 patch%mixt%vals(bcdat_inflow_betah,:) = vals(5)*global%rad
708 patch%mixt%vals(bcdat_inflow_betav,:) = vals(6)*global%rad
709 IF (switch /= bcopt_subsonic)
THEN
710 patch%mixt%vals(bcdat_inflow_mach,:) = vals(7)
746 #include "Indexing.h"
749 TYPE(t_region
),
POINTER :: regions(:)
750 INTEGER :: ithread, bctitle, distrib
753 INTEGER :: ireg, ipatch,
i,
j,
k, l
756 INTEGER,
PARAMETER :: nvals_max = 8
758 CHARACTER(10) :: keys(nvals_max)
759 CHARACTER(256) :: fname
762 INTEGER :: n1, n2, ioff, ijbeg, ijend, errorflag
766 LOGICAL :: defined(nvals_max)
768 REAL(RFREAL) :: vals(nvals_max)
769 REAL(RFREAL),
POINTER :: xyz(:,:)
776 global => regions(1)%global
779 'PREP_ModBcDistribution.F90' )
787 IF (bctitle==bc_inflow_veltemp)
THEN
790 ELSEIF (bctitle==bc_inflow_velpress)
THEN
794 CALL
errorstop( global,err_unknown_bc,__line__ )
796 keys(7) =
'AXIALPOWER'
797 keys(8) =
'NORMALFACT'
811 patch => regions(ireg)%levels(1)%patches(ipatch)
813 IF ((
patch%bcType>=bc_inflow .AND. &
814 patch%bcType<=bc_inflow+bc_range) .AND. &
815 regions(ireg)%procid==global%myProcid .AND. &
816 regions(ireg)%active==active)
THEN
818 patch%bcType = bctitle
820 IF (
patch%mixt%bcSet) &
821 CALL
errorstop( global,err_patch_overspec,__line__,
'Inflow boundary.' )
823 patch%mixt%nSwitches = 2
824 IF (
patch%bcCoupled == bc_external)
THEN
825 patch%mixt%distrib = bcdat_distrib
827 patch%mixt%distrib = distrib
830 ALLOCATE(
patch%mixt%switches(
patch%mixt%nSwitches), &
832 global%error = errorflag
833 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
837 patch%mixt%switches(bcswi_inflow_type) = bcopt_subsonic
839 patch%mixt%switches(bcswi_inflow_type) = bcopt_supersonic
841 patch%mixt%switches(bcswi_inflow_type) = bcopt_mixed
843 CALL
errorstop( global,err_no_bcswitch,__line__,
'(inflow type).' )
847 IF (
patch%mixt%switches(bcswi_inflow_type) == bcopt_subsonic)
THEN
848 IF (
patch%mixt%distrib==bcdat_constant .AND. &
849 (.NOT. defined(2) .OR. &
850 .NOT. defined(3) .OR. &
851 .NOT. defined(4) .OR. &
852 .NOT. defined(5))) CALL
errorstop( global,err_bcval_missing,__line__ )
854 IF (
patch%mixt%switches(bcswi_inflow_type) == bcopt_supersonic .OR. &
855 patch%mixt%switches(bcswi_inflow_type) == bcopt_mixed)
THEN
856 IF (
patch%mixt%distrib==bcdat_constant .AND. &
857 (.NOT. defined(2) .OR. &
858 .NOT. defined(3) .OR. &
859 .NOT. defined(4) .OR. &
860 .NOT. defined(5) .OR. &
861 .NOT. defined(6))) CALL
errorstop( global,err_bcval_missing,__line__ )
865 IF (ithread==2)
patch%mixt%bcSet = .true.
877 ilev = regions(ireg)%currLevel
878 xyz => regions(ireg)%levels(ilev)%grid%xyz
884 patch => regions(ireg)%levels(1)%patches(ipatch)
886 IF ((
patch%bcType>=bc_inflow .AND. &
887 patch%bcType<=bc_inflow+bc_range) .AND. &
888 regions(ireg)%procid==global%myProcid .AND. &
889 regions(ireg)%active==active)
THEN
891 IF (
patch%mixt%distrib == bcdat_distrib .AND. &
892 patch%bcCoupled /= bc_external )
THEN
894 IF (.NOT. defined(6) .OR. proftype==0) &
895 CALL
errorstop( global,err_bcval_missing,__line__, &
896 ' PROFILE or TEMP or PRESS should be defined' )
897 IF (.NOT. defined(7)) vals(7) = 2._rfreal
898 IF (.NOT. defined(8)) vals(8) = 1._rfreal
907 ijkn = indijk(
i,
j,
k,inoff,ijnoff)
908 IF (xyz(xcoord,ijkn) < global%xyzMinmax(xcoord,1))
THEN
909 global%xyzMinmax(xcoord,1) = xyz(xcoord,ijkn)
911 global%infloPlanEdges(l,xcoord,1) = xyz(l,ijkn)
914 IF (xyz(xcoord,ijkn) > global%xyzMinmax(xcoord,2))
THEN
915 global%xyzMinmax(xcoord,2) = xyz(xcoord,ijkn)
917 global%infloPlanEdges(l,xcoord,2) = xyz(l,ijkn)
920 IF (xyz(ycoord,ijkn) < global%xyzMinmax(ycoord,1))
THEN
921 global%xyzMinmax(ycoord,1) = xyz(ycoord,ijkn)
923 global%infloPlanEdges(l,ycoord,1) = xyz(l,ijkn)
926 IF (xyz(ycoord,ijkn) > global%xyzMinmax(ycoord,2))
THEN
927 global%xyzMinmax(ycoord,2) = xyz(ycoord,ijkn)
929 global%infloPlanEdges(l,ycoord,2) = xyz(l,ijkn)
932 IF (xyz(zcoord,ijkn) < global%xyzMinmax(zcoord,1))
THEN
933 global%xyzMinmax(zcoord,1) = xyz(zcoord,ijkn)
935 global%infloPlanEdges(l,zcoord,1) = xyz(l,ijkn)
938 IF (xyz(zcoord,ijkn) > global%xyzMinmax(zcoord,2))
THEN
939 global%xyzMinmax(zcoord,2) = xyz(zcoord,ijkn)
941 global%infloPlanEdges(l,zcoord,2) = xyz(l,ijkn)
961 patch => regions(ireg)%levels(1)%patches(ipatch)
963 IF ((
patch%bcType>=bc_inflow .AND. &
964 patch%bcType<=bc_inflow+bc_range) .AND. &
965 regions(ireg)%procid==global%myProcid .AND. &
966 regions(ireg)%active==active)
THEN
968 switch =
patch%mixt%switches(bcswi_inflow_type)
969 IF (switch == bcopt_subsonic)
THEN
977 IF (
patch%mixt%distrib == bcdat_distrib)
THEN
981 ijbeg = indij( 0, 0,ioff)
982 ijend = indij(n1,n2,ioff)
987 ALLOCATE(
patch%mixt%vals(
patch%mixt%nData,ijbeg:ijend), &
989 global%error = errorflag
990 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
994 IF (
patch%mixt%distrib==bcdat_distrib .AND. &
995 patch%bcCoupled /=bc_external )
THEN
997 IF (
patch%mixt%bcSet) &
998 WRITE(stdout,*)
'inlet region and patch #:',ireg,ipatch
1000 IF (proftype==inflo_taylor_cyl)
THEN
1003 ELSEIF (proftype==inflo_taylor_plan)
THEN
1006 CALL
errorstop( global,err_unknown_option,__line__, &
1007 'INFLO_TAYLOR_PLAN' )
1008 ELSEIF (proftype==inflo_bllam_cyl)
THEN
1011 CALL
errorstop( global,err_unknown_option,__line__, &
1013 ELSEIF (proftype==inflo_bllam_plan)
THEN
1016 CALL
errorstop( global,err_unknown_option,__line__, &
1017 'INFLO_BLLAM_PLAM' )
1018 ELSEIF (proftype==inflo_blturb_cyl)
THEN
1021 CALL
errorstop( global,err_unknown_option,__line__, &
1022 'INFLO_BLTURB_CYL' )
1023 ELSEIF (proftype==inflo_blturb_plan)
THEN
1026 CALL
errorstop( global,err_unknown_option,__line__, &
1027 'INFLO_BLTURB_PLAN' )
1035 patch%mixt%vals(bcdat_inflow_u,:) = vals(2)
1036 patch%mixt%vals(bcdat_inflow_v,:) = vals(3)
1037 patch%mixt%vals(bcdat_inflow_w,:) = vals(4)
1038 IF (bctitle==bc_inflow_veltemp)
THEN
1039 patch%mixt%vals(bcdat_inflow_t,:) = vals(5)
1040 ELSEIF (bctitle==bc_inflow_velpress)
THEN
1041 patch%mixt%vals(bcdat_inflow_p,:) = vals(5)
1043 IF (switch /= bcopt_subsonic)
THEN
1044 IF (bctitle==bc_inflow_veltemp)
THEN
1045 patch%mixt%vals(bcdat_inflow_p,:) = vals(6)
1046 ELSEIF (bctitle==bc_inflow_velpress)
THEN
1047 patch%mixt%vals(bcdat_inflow_t,:) = vals(6)
1082 #include "Indexing.h"
1085 TYPE(t_region
),
POINTER :: regions(:)
1086 INTEGER :: ithread, bctitle, distrib
1089 INTEGER :: ireg, ipatch
1092 CHARACTER(10) :: keys(2)
1093 CHARACTER(256) :: fname
1096 INTEGER :: n1, n2, ioff, ijbeg, ijend, errorflag
1098 LOGICAL :: defined(2)
1100 REAL(RFREAL) :: vals(2)
1107 global => regions(1)%global
1110 'PREP_ModBcDistribution.F90' )
1127 patch => regions(ireg)%levels(1)%patches(ipatch)
1129 IF ((
patch%bcType>=bc_outflow .AND. &
1130 patch%bcType<=bc_outflow+bc_range) .AND. &
1131 regions(ireg)%procid==global%myProcid .AND. &
1132 regions(ireg)%active==active)
THEN
1134 IF (
patch%mixt%bcSet) &
1135 CALL
errorstop( global,err_patch_overspec,__line__,
'Outflow boundary.' )
1137 patch%mixt%nData = 0
1138 patch%mixt%nSwitches = 1
1139 IF (
patch%bcCoupled == bc_external)
THEN
1140 patch%mixt%distrib = bcdat_distrib
1142 patch%mixt%distrib = distrib
1145 ALLOCATE(
patch%mixt%switches(
patch%mixt%nSwitches), &
1147 global%error = errorflag
1148 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
1151 IF (defined(1))
THEN
1152 patch%mixt%switches(bcswi_outflow_type) = bcopt_subsonic
1153 IF (vals(1) < 0.1) &
1154 patch%mixt%switches(bcswi_outflow_type) = bcopt_supersonic
1155 IF (vals(1) > 1.9) &
1156 patch%mixt%switches(bcswi_outflow_type) = bcopt_mixed
1158 CALL
errorstop( global,err_no_bcswitch,__line__,
'(outflow type).' )
1162 IF (
patch%mixt%switches(bcswi_outflow_type) /= bcopt_supersonic)
THEN
1163 IF (
patch%mixt%distrib==bcdat_constant .AND. &
1164 .NOT. defined(2)) CALL
errorstop( global,err_bcval_missing,__line__ )
1168 IF (ithread==2)
patch%mixt%bcSet = .true.
1179 patch => regions(ireg)%levels(1)%patches(ipatch)
1181 IF ((
patch%bcType>=bc_outflow .AND. &
1182 patch%bcType<=bc_outflow+bc_range) .AND. &
1183 regions(ireg)%procid==global%myProcid .AND. &
1184 regions(ireg)%active==active)
THEN
1185 switch =
patch%mixt%switches(bcswi_outflow_type)
1187 switch = bcopt_supersonic
1190 IF ((
patch%bcType>=bc_outflow .AND. &
1191 patch%bcType<=bc_outflow+bc_range) .AND. &
1192 switch/=bcopt_supersonic .AND. &
1193 regions(ireg)%procid==global%myProcid .AND. &
1194 regions(ireg)%active==active)
THEN
1198 patch%mixt%nData = 1
1200 IF (
patch%mixt%distrib == bcdat_distrib)
THEN
1204 ijbeg = indij( 0, 0,ioff)
1205 ijend = indij(n1,n2,ioff)
1210 ALLOCATE(
patch%mixt%vals(
patch%mixt%nData,ijbeg:ijend), &
1212 global%error = errorflag
1213 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
1217 IF (
patch%mixt%distrib==bcdat_distrib .AND. &
1218 patch%bcCoupled /=bc_external )
THEN
1224 patch%mixt%vals(bcdat_outflow_press,:) = vals(2)
1257 #include "Indexing.h"
1260 TYPE(t_region
),
POINTER :: regions(:)
1261 INTEGER :: ithread, bctitle, distrib
1264 INTEGER :: ireg, ipatch
1267 CHARACTER(10) :: keys(5)
1268 CHARACTER(256) :: fname
1271 INTEGER :: n1, n2, ioff, ijbeg, ijend, errorflag
1273 LOGICAL :: defined(5)
1275 REAL(RFREAL) :: vals(5)
1282 global => regions(1)%global
1285 'PREP_ModBcDistribution.F90' )
1302 IF (distrib==bcdat_constant .AND. &
1303 (.NOT. defined(1) .OR. &
1304 .NOT. defined(2) .OR. &
1305 .NOT. defined(3) .OR. &
1306 .NOT. defined(4) .OR. &
1307 .NOT. defined(5))) CALL
errorstop( global,err_bcval_missing,__line__ )
1314 patch => regions(ireg)%levels(1)%patches(ipatch)
1316 IF ((
patch%bcType>=bc_farfield .AND. &
1317 patch%bcType<=bc_farfield+bc_range) .AND. &
1318 regions(ireg)%procid==global%myProcid .AND. &
1319 regions(ireg)%active==active)
THEN
1321 IF (
patch%mixt%bcSet) &
1322 CALL
errorstop( global,err_patch_overspec,__line__,
'Farfield boundary.' )
1324 patch%mixt%nData = 5
1325 patch%mixt%nSwitches = 0
1326 IF (ithread==2)
patch%mixt%bcSet = .true.
1328 IF (
patch%bcCoupled == bc_external)
THEN
1329 patch%mixt%distrib = bcdat_distrib
1331 patch%mixt%distrib = distrib
1336 IF (
patch%mixt%distrib == bcdat_distrib)
THEN
1340 ijbeg = indij( 0, 0,ioff)
1341 ijend = indij(n1,n2,ioff)
1346 ALLOCATE(
patch%mixt%vals(
patch%mixt%nData,ijbeg:ijend), &
1348 global%error = errorflag
1349 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
1353 IF (
patch%mixt%distrib==bcdat_distrib .AND. &
1354 patch%bcCoupled /=bc_external )
THEN
1357 patch%mixt%vals(bcdat_farf_attack,:) = &
1358 patch%mixt%vals(bcdat_farf_attack,:)*global%rad
1359 patch%mixt%vals(bcdat_farf_slip ,:) = &
1360 patch%mixt%vals(bcdat_farf_slip ,:)*global%rad
1365 patch%mixt%vals(bcdat_farf_mach ,:) = vals(1)
1366 patch%mixt%vals(bcdat_farf_attack,:) = vals(2)*global%rad
1367 patch%mixt%vals(bcdat_farf_slip ,:) = vals(3)*global%rad
1368 patch%mixt%vals(bcdat_farf_press ,:) = vals(4)
1369 patch%mixt%vals(bcdat_farf_temp ,:) = vals(5)
1402 #include "Indexing.h"
1405 TYPE(t_region
),
POINTER :: regions(:)
1406 INTEGER :: ithread, bctitle, distrib
1409 INTEGER :: ireg, ipatch
1412 CHARACTER(10) :: keys(4)
1413 CHARACTER(256) :: fname
1416 INTEGER :: n1, n2, ioff, ijbeg, ijend, errorflag
1418 LOGICAL :: defined(4)
1420 REAL(RFREAL) :: vals(4)
1427 global => regions(1)%global
1430 'PREP_ModBcDistribution.F90' )
1436 keys(3) =
'EXTRAPOL'
1437 keys(4) =
'MAXCHANGE'
1446 IF (distrib==bcdat_constant .AND. &
1447 (.NOT. defined(1) .OR. &
1448 .NOT. defined(2))) CALL
errorstop( global,err_bcval_missing,__line__ )
1450 IF (.NOT. defined(3) .OR. &
1451 .NOT. defined(4)) CALL
errorstop( global,err_bcval_missing,__line__ )
1458 patch => regions(ireg)%levels(1)%patches(ipatch)
1460 IF ((
patch%bcType>=bc_injection .AND. &
1461 patch%bcType<=bc_injection+bc_range) .AND. &
1462 regions(ireg)%procid==global%myProcid .AND. &
1463 regions(ireg)%active==active)
THEN
1465 IF (
patch%mixt%bcSet) &
1466 CALL
errorstop( global,err_patch_overspec,__line__,
'Injection boundary.' )
1468 patch%mixt%nData = 5
1469 patch%mixt%nSwitches = 1
1470 IF (ithread==2)
patch%mixt%bcSet = .true.
1472 IF (
patch%bcCoupled == bc_external)
THEN
1473 patch%mixt%distrib = bcdat_distrib
1475 patch%mixt%distrib = distrib
1480 ALLOCATE(
patch%mixt%switches(
patch%mixt%nSwitches), &
1482 global%error = errorflag
1483 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
1485 patch%mixt%switches(bcswi_inject_extrap) = extrapol_const
1486 IF (vals(3) > 0.1) &
1487 patch%mixt%switches(bcswi_inject_extrap) = extrapol_linear
1489 patch%mixt%maxChange = vals(4)
1493 IF (
patch%mixt%distrib == bcdat_distrib)
THEN
1497 ijbeg = indij( 0, 0,ioff)
1498 ijend = indij(n1,n2,ioff)
1503 ALLOCATE(
patch%mixt%vals(
patch%mixt%nData,ijbeg:ijend), &
1505 global%error = errorflag
1506 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
1510 IF (
patch%mixt%distrib==bcdat_distrib .AND. &
1511 patch%bcCoupled /=bc_external )
THEN
1512 patch%mixt%nData = 2
1514 patch%mixt%nData = 5
1519 patch%mixt%vals(bcdat_inject_mfrate,:) = vals(1)
1520 patch%mixt%vals(bcdat_inject_temp ,:) = vals(2)
1565 INTEGER ::
brbeg, brend
1567 CHARACTER(*) :: keys(
nvals), fname
1569 LOGICAL :: defined(
nvals)
1570 REAL(RFREAL) :: vals(
nvals)
1577 CHARACTER(256) ::
line
1579 INTEGER :: errorflag, nc
1584 'PREP_ModBcDistribution.F90' )
1589 brend = global%nRegions
1597 IF (
nvals /= 0 )
THEN
1598 defined(:) = .false.
1602 READ(fileid,
'(A256)',iostat=errorflag)
line
1603 global%error = errorflag
1604 IF (global%error /= 0) CALL
errorstop( global,err_file_read,__line__ )
1605 IF (
line(1:1) ==
'#')
EXIT
1607 IF (
line(1:5) ==
'BLOCK')
THEN
1609 brend =
min(brend,global%nRegions)
1611 IF (brend <= 0 ) brend = global%nRegions
1613 ELSE IF (
line(1:5) ==
'PATCH')
THEN
1618 ELSE IF (
line(1:7) ==
'DISTRIB')
THEN
1619 READ(
line(8:256),*) distrib
1620 distrib =
max(distrib,0)
1621 distrib =
min(distrib,1)
1622 ELSE IF (
line(1:7) ==
'PROFILE')
THEN
1623 READ(
line(8:256),*) proftype
1624 ELSE IF (
line(1:4) ==
'FILE')
THEN
1625 READ(
line(5:256),*) fname
1628 nc = len_trim(keys(ival))
1629 IF (
line(1:nc) == trim(keys(ival)))
THEN
1630 READ(
line(nc+1:256),*) vals(ival)
1631 defined(ival) = .true.
1663 #include "Indexing.h"
1666 CHARACTER(*) :: fname
1672 INTEGER :: ireg, ipatch,
n,
i,
j, ij
1675 INTEGER :: n1, n2, ioff, errorflag
1680 'PREP_ModBcDistribution.F90' )
1690 OPEN(if_distr,file=fname,
form=
'formatted',
status=
'unknown',iostat=errorflag)
1691 global%error = errorflag
1692 IF (global%error /= 0) &
1693 CALL
errorstop( global,err_file_open,__line__,
'File: '//trim(fname) )
1695 WRITE(if_distr,*,err=10) n1+1,n2+1
1700 ij = indij(
i,
j,ioff)
1701 WRITE(if_distr,*,err=10)
patch%mixt%vals(
n,ij)
1706 CLOSE(if_distr,iostat=errorflag)
1707 global%error = errorflag
1708 IF (global%error /= 0) &
1709 CALL
errorstop( global,err_file_close,__line__,
'File: '//trim(fname) )
1716 CALL
errorstop( global,err_file_write,__line__,
'File: '//trim(fname) )
1746 #include "Indexing.h"
1751 INTEGER ::
nvals, switch
1752 CHARACTER(*) :: keys(
nvals)
1753 LOGICAL :: defined(
nvals)
1755 REAL(RFREAL) :: vals(
nvals)
1758 INTEGER :: ireg, ipatch,
n,
i,
j, ij
1761 INTEGER :: n1, n2, ioff, nf1, nf2, lbound, errorflag
1762 INTEGER :: ivelx, ively, ivelz, itemp, ipres, ipow, ifact
1763 INTEGER :: in, jn, ip, jp, ng1, ng2
1764 REAL(RFREAL) :: vaxi, vinj, xc, yc, zc, xs, ys, zs, radius, rd
1765 REAL(RFREAL) ::
sign, costerm, sinterm, cosa, sina
1766 REAL(RFREAL) ::
ymin(xcoord:zcoord),
ymax(xcoord:zcoord)
1767 REAL(RFREAL) ::
zmin(xcoord:zcoord),
zmax(xcoord:zcoord)
1772 'PREP_ModBcDistribution.F90' )
1777 IF (keys(
i)==
'VELX') ivelx =
i
1778 IF (keys(
i)==
'VELY') ively =
i
1779 IF (keys(
i)==
'VELZ') ivelz =
i
1780 IF (keys(
i)==
'TEMP') itemp =
i
1781 IF (keys(
i)==
'PRESS') ipres =
i
1782 IF (keys(
i)==
'AXIALPOWER') ipow =
i
1783 IF (keys(
i)==
'NORMALFACT') ifact =
i
1786 lbound =
patch%lbound
1788 IF (lbound==1 .OR. lbound==2)
THEN
1791 ELSEIF (lbound==3 .OR. lbound==4)
THEN
1794 ELSEIF (lbound==5 .OR. lbound==6)
THEN
1807 IF (lbound/=3 .AND. lbound/=4)
THEN
1808 ymin(xcoord:zcoord) = global%infloPlanEdges(xcoord:zcoord,ycoord,1)
1809 ymax(xcoord:zcoord) = global%infloPlanEdges(xcoord:zcoord,ycoord,2)
1810 xc = 0.5_rfreal*(
ymin(xcoord) +
ymax(xcoord))
1811 yc = 0.5_rfreal*(
ymin(ycoord) +
ymax(ycoord))
1812 zc = 0.5_rfreal*(
ymin(zcoord) +
ymax(zcoord))
1813 radius = 0.5_rfreal*
sqrt( (
ymax(xcoord)-
ymin(xcoord))**2 + &
1816 ELSEIF (lbound==3 .OR. lbound==4)
THEN
1817 zmin(xcoord:zcoord) = global%infloPlanEdges(xcoord:zcoord,zcoord,1)
1818 zmax(xcoord:zcoord) = global%infloPlanEdges(xcoord:zcoord,zcoord,2)
1819 xc = 0.5_rfreal*(
zmin(xcoord) +
zmax(xcoord))
1820 yc = 0.5_rfreal*(
zmin(ycoord) +
zmax(ycoord))
1821 zc = 0.5_rfreal*(
zmin(zcoord) +
zmax(zcoord))
1822 radius = 0.5_rfreal*
sqrt( (
zmax(xcoord)-
zmin(xcoord))**2 + &
1827 IF (
patch%mixt%bcSet) &
1828 WRITE(stdout,100)
'(x,y,z)_cirkel-center, radius:', xc,yc,zc,radius
1834 ij = indij(
i,
j,ioff)
1836 IF (lbound==1 .OR. lbound==2)
THEN
1837 IF (lbound == 2)
THEN
1843 ELSE IF (lbound==3 .OR. lbound==4)
THEN
1845 IF (lbound == 4)
THEN
1850 ELSE IF (lbound==5 .OR. lbound==6)
THEN
1851 IF (lbound == 6)
THEN
1863 xs = 0.25_rfreal*(
patch%surfCoord(xcoord,in,jn) + &
1864 patch%surfCoord(xcoord,ip,jn) + &
1865 patch%surfCoord(xcoord,in,jp) + &
1866 patch%surfCoord(xcoord,ip,jp))
1867 ys = 0.25_rfreal*(
patch%surfCoord(ycoord,in,jn) + &
1868 patch%surfCoord(ycoord,ip,jn) + &
1869 patch%surfCoord(ycoord,in,jp) + &
1870 patch%surfCoord(ycoord,ip,jp))
1871 zs = 0.25_rfreal*(
patch%surfCoord(zcoord,in,jn) + &
1872 patch%surfCoord(zcoord,ip,jn) + &
1873 patch%surfCoord(zcoord,in,jp) + &
1874 patch%surfCoord(zcoord,ip,jp))
1875 rd =
sqrt((xs-xc)**2+(ys-yc)**2+(zs-zc)**2)/radius
1877 costerm =
cos( 0.5_rfreal*global%pi*rd**vals(ipow) )
1878 sinterm =
sin( 0.5_rfreal/vals(ifact)*global%pi*rd*rd )/rd/ &
1879 sin( 0.5_rfreal/vals(ifact)*global%pi )
1882 IF (lbound==1 .OR. lbound==2)
THEN
1883 cosa = (ys-yc)/rd/radius
1884 sina = (zs-zc)/rd/radius
1885 IF (lbound==2)
sign=-1._rfreal
1886 patch%mixt%vals(bcdat_inflow_u,ij) = vaxi*costerm*
sign
1887 patch%mixt%vals(bcdat_inflow_v,ij) = -vinj*sinterm*cosa
1888 patch%mixt%vals(bcdat_inflow_w,ij) = -vinj*sinterm*sina
1889 ELSEIF (lbound==3 .OR. lbound==4)
THEN
1890 cosa = (zs-zc)/rd/radius
1891 sina = (xs-xc)/rd/radius
1892 IF (lbound==4)
sign=-1._rfreal
1893 patch%mixt%vals(bcdat_inflow_v,ij) = vaxi*costerm*
sign
1894 patch%mixt%vals(bcdat_inflow_w,ij) = -vinj*sinterm*cosa
1895 patch%mixt%vals(bcdat_inflow_u,ij) = -vinj*sinterm*sina
1896 ELSEIF (lbound==5 .OR. lbound==6)
THEN
1897 cosa = (xs-xc)/rd/radius
1898 sina = (ys-yc)/rd/radius
1899 IF (lbound==6)
sign=-1._rfreal
1900 patch%mixt%vals(bcdat_inflow_w,ij) = vaxi*costerm*
sign
1901 patch%mixt%vals(bcdat_inflow_u,ij) = -vinj*sinterm*cosa
1902 patch%mixt%vals(bcdat_inflow_v,ij) = -vinj*sinterm*sina
1904 patch%mixt%vals(bcdat_inflow_t,ij) = vals(itemp)
1905 IF (switch/=bcopt_subsonic) &
1906 patch%mixt%vals(bcdat_inflow_p,ij) = vals(ipres)
1910 100
FORMAT(
a,4e17.10 )
**********************************************************************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
Tfloat sum() const
Return the sum of all the pixel values in an image.
static SURF_BEGIN_NAMESPACE double sign(double x)
subroutine bcinflowveldistrib(regions, ithRead, bcTitle, distrib)
CImg< T > & line(const unsigned int y0)
Get a line.
Vector_n max(const Array_n_const &v1, const Array_n_const &v2)
subroutine writebctofile(global, fname, patch)
subroutine registerfunction(global, funName, fileName)
subroutine bcnoslipdistrib(regions, ithRead, bcTitle, distrib)
int status() const
Obtain the status of the attribute.
subroutine bcoutflowdistrib(regions, ithRead, bcTitle, distrib)
**********************************************************************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 brbeg
**********************************************************************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 jdnbeg
**********************************************************************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 idnend
subroutine readpatchsection(global, fileID, nvals, keys, vals, brbeg, brend, prbeg, prend, distrib, profType, fname, defined)
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 jdnend
**********************************************************************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 idnbeg
**********************************************************************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 bcinflowtotangdistrib(regions, ithRead, bcTitle, distrib)
subroutine rflo_getpatchindicesnodes(region, patch, iLev, ibeg, iend, jbeg, jend, kbeg, kend)
**********************************************************************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 USE ModDataTypes USE prend
**********************************************************************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 form
**********************************************************************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 USE ModDataTypes USE prbeg
Vector_n min(const Array_n_const &v1, const Array_n_const &v2)
subroutine bcslipwalldistrib(regions, ithRead, bcTitle, distrib)
**********************************************************************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 USE ModDataTypes USE nvals
subroutine errorstop(global, errorCode, errorLine, addMessage)
**********************************************************************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
subroutine profinflowvttaylorcyl(global, patch, nvals, switch, keys, defined, vals)
**********************************************************************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)
subroutine, public bcdistributionfiles(regions)
subroutine bcinjectdistrib(regions, ithRead, bcTitle, distrib)
**********************************************************************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 kdnbeg
subroutine bcfarfdistrib(regions, ithRead, bcTitle, distrib)