42 INTEGER :: SAFE_MODE_COUNT
43 DOUBLE PRECISION :: CPU_PP_START,CPU_PP_END
47 CALL cpu_time (cpu_pp_start)
101 CALL cpu_time (cpu_pp_end)
104 WRITE(*,20)
'CARTESIAN GRID PRE-PROCESSING COMPLETED IN ',cpu_pp_end - cpu_pp_start,
' SECONDS.' 105 WRITE(*,10)
'=============================================================================' 112 IF(safe_mode_count>0)
THEN 115 WRITE(*,10)
'######################################################################' 116 WRITE(*,10)
'######################################################################' 118 WRITE(*,10)
'## || ##' 119 WRITE(*,10)
'## || ##' 120 WRITE(*,10)
'## \/ ##' 122 WRITE(*,10)
'## ===> WARNING: RUNNING CARTESIAN GRID IN SAFE MODE ! <=== ##' 124 WRITE(*,10)
'## SAFE MODE ACTIVATED FOR : ##' 125 IF(
cg_safe_mode(1)==1)
WRITE(*,10)
'## - All scalar quantities ##' 126 IF(
cg_safe_mode(3)==1)
WRITE(*,10)
'## - X-Velocity (Gas and Solids) ##' 127 IF(
cg_safe_mode(4)==1)
WRITE(*,10)
'## - Y-Velocity (Gas and Solids) ##' 128 IF(
cg_safe_mode(5)==1)
WRITE(*,10)
'## - Z-Velocity (Gas and Solids) ##' 130 WRITE(*,10)
'## /\ ##' 131 WRITE(*,10)
'## || ##' 132 WRITE(*,10)
'## || ##' 134 WRITE(*,10)
'######################################################################' 135 WRITE(*,10)
'######################################################################' 143 20
FORMAT(1
x,a,f8.2,a)
199 DOUBLE PRECISION :: VOLFLOW
201 DOUBLE PRECISION :: EPS
203 DOUBLE PRECISION :: MW
298 IF (eps /=
zero)
THEN 325 120
FORMAT(1
x,a,f14.8,/)
326 130
FORMAT(1
x,a,i8,f14.8,/)
328 1000
FORMAT(/1
x,70(
'*')//
' From: FLOW_TO_VEL',/
' Message: BC No:',i2,/,&
329 ' Computed volumetric flow is not equal to specified value',/,&
330 ' Value computed from mass flow = ',g14.7,/,&
331 ' Specified value (BC_VOLFLOW_g) = ',g14.7,/1
x,70(
'*')/)
334 1020
FORMAT(/1
x,70(
'*')//
' From: FLOW_TO_VEL',/
' Message: BC No:',i2,&
335 ' BC_P_g, BC_T_g, and BC_X_g',/
' should be specified',/1
x,70(
'*')/)
338 1200
FORMAT(/1
x,70(
'*')//
' From: FLOW_TO_VEL',/
' Message: BC No:',i2,/,&
339 ' Computed volumetric flow is not equal to specified value',/,&
340 ' Value computed from mass flow = ',g14.7,/,&
341 ' Specified value (BC_VOLFLOW_s',i1,
') = ',g14.7,/1
x,70(
'*')/)
343 1250
FORMAT(/1
x,70(
'*')//
' From: FLOW_TO_VEL',/
' Message: BC No:',i2,/,&
344 ' Non-zero vol. or mass flow specified with BC_ROP_s',&
345 i1,
' = 0.',/1
x,70(
'*')/)
346 1260
FORMAT(/1
x,70(
'*')//
' From: FLOW_TO_VEL',/
' Message: BC No:',i2,/,&
347 ' BC_ROP_s',i1,
' not specified',/1
x,70(
'*')/)
403 INTEGER :: IJK, M, NN, BCV
413 CALL mpi_barrier(mpi_comm_world,
mpierr)
419 if (
mype==iproc)
Then 521 CALL mpi_barrier(mpi_comm_world,
mpierr)
548 CALL mpi_barrier(mpi_comm_world,
mpierr)
634 print *,
'Last PS=',nps
739 120
FORMAT(1
x,a,f14.8,/)
740 130
FORMAT(1
x,a,i8,f14.8,/)
743 1000
FORMAT(/1
x,70(
'*')//
' From: FLOW_TO_VEL',/
' Message: BC No:',i2,/,&
744 ' Computed volumetric flow is not equal to specified value',/,&
745 ' Value computed from mass flow = ',g14.7,/,&
746 ' Specified value (BC_VOLFLOW_g) = ',g14.7,/1
x,70(
'*')/)
749 1020
FORMAT(/1
x,70(
'*')//
' From: FLOW_TO_VEL',/
' Message: BC No:',i2,&
750 ' BC_P_g, BC_T_g, and BC_X_g',/
' should be specified',/1
x,70(
'*')/)
753 1200
FORMAT(/1
x,70(
'*')//
' From: FLOW_TO_VEL',/
' Message: BC No:',i2,/,&
754 ' Computed volumetric flow is not equal to specified value',/,&
755 ' Value computed from mass flow = ',g14.7,/,&
756 ' Specified value (BC_VOLFLOW_s',i1,
') = ',g14.7,/1
x,70(
'*')/)
758 1250
FORMAT(/1
x,70(
'*')//
' From: FLOW_TO_VEL',/
' Message: BC No:',i2,/,&
759 ' Non-zero vol. or mass flow specified with BC_ROP_s',&
760 i1,
' = 0.',/1
x,70(
'*')/)
761 1260
FORMAT(/1
x,70(
'*')//
' From: FLOW_TO_VEL',/
' Message: BC No:',i2,/,&
762 ' BC_ROP_s',i1,
' not specified',/1
x,70(
'*')/)
795 WRITE(*,10)
'=============================================================================' 796 WRITE(*,10)
' ____ ___________ _ ____ ____ __________ __________ ' 797 WRITE(*,10)
' | \ / | (_) \ \ / / | | | | ' 798 WRITE(*,10)
' | \ / ______| ___ \ \ / / | ______| | ______| ' 799 WRITE(*,10)
' | \ / |______ | | \ \/ / | | | | ' 800 WRITE(*,10)
' | \ / | | | \ / === | | | | ____ ' 801 WRITE(*,10)
' | |\ \/ /| ______| | | / \ | | | | |_ | ' 802 WRITE(*,10)
' | | \ / | | | | / /\ \ | |______ | |___| | ' 803 WRITE(*,10)
' | | \ / | | | | / / \ \ | | | | ' 804 WRITE(*,10)
' |___| \__/ |___| |___| /___/ \___\ |__________| |__________| ' 806 WRITE(*,10)
'=============================================================================' 807 WRITE(*,10)
'MFIX WITH CARTESIAN GRID IMPLEMENTATION.' 811 WRITE(*,10)
'RE-INDEXING IS TURNED ON.' 819 WRITE(*,10)
'RE-INDEXING IS TURNED OFF.' 854 SUBROUTINE eval_f(METHOD,x1,x2,x3,Q,f,CLIP_FLAG)
866 DOUBLE PRECISION x1,x2,x3
868 INTEGER :: Q,Q_ID,BCID
870 CHARACTER (LEN = 7) :: METHOD
871 CHARACTER(LEN=9) :: GR
873 INTEGER :: GROUP,GS,P
875 DOUBLE PRECISION,
DIMENSION(:,:),
ALLOCATABLE :: F_G
894 f_g(group,0) = maxval(f_g(group,1:gs))
895 ELSEIF(gr ==
'OR')
THEN 896 f_g(group,0) = minval(f_g(group,1:gs))
897 ELSEIF(gr ==
'PIECEWISE')
THEN 913 f = dmax1(f,f_g(group,0))
914 ELSEIF(gr ==
'OR')
THEN 915 f = dmin1(f,f_g(group,0))
935 WRITE(*,*)
'ERROR IN SUBROUTINE EVAL_F.' 936 WRITE(*,*)
'UNKNOWN METHOD:',method
937 WRITE(*,*)
'ACCEPTABLE METHODS:' 965 SUBROUTINE intersect_line(METHOD,xa,ya,za,xb,yb,zb,Q_ID,INTERSECT_FLAG,xc,yc,zc)
980 DOUBLE PRECISION:: x1,y1,z1,x2,y2,z2,x3,y3,z3
981 DOUBLE PRECISION:: xa,ya,za,xb,yb,zb,xc,yc,zc
982 INTEGER :: Q_ID,niter
983 DOUBLE PRECISION :: x_intersection
984 DOUBLE PRECISION :: f1,f2,f3,fa,fb
985 DOUBLE PRECISION :: t1,t2,t3
986 LOGICAL :: CLIP_FLAG,CLIP_FLAG1,CLIP_FLAG2,CLIP_FLAG3,INTERSECT_FLAG
987 CHARACTER (LEN=7) ::METHOD
999 CALL eval_f(method,x1,y1,z1,q_id,f1,clip_flag1)
1000 CALL eval_f(method,x2,y2,z2,q_id,f2,clip_flag2)
1009 clip_flag = (clip_flag1).AND.(clip_flag2)
1011 if(dabs(f1)<
tol_f)
then 1015 intersect_flag = .false.
1016 elseif(dabs(f2)<
tol_f)
then 1020 intersect_flag = .false.
1021 elseif(f1*f2 <
zero)
then 1026 t3 = t1 - f1*(t2-t1)/(f2-f1)
1028 x3 = x1 + t3 * (x2 - x1)
1029 y3 = y1 + t3 * (y2 - y1)
1030 z3 = z1 + t3 * (z2 - z1)
1032 CALL eval_f(method,x3,y3,z3,q_id,f3,clip_flag3)
1047 intersect_flag = .true.
1049 WRITE(*,*)
' Subroutine intersect_line:' 1050 WRITE(*,*)
'Unable to find the intersection of quadric:',q_id
1051 WRITE(*,1000)
'between (x1,y1,z1)= ', xa,ya,za
1052 WRITE(*,1000)
' and (x2,y2,z2)= ', xb,yb,zb
1053 CALL eval_f(method,xa,ya,za,q_id,fa,clip_flag1)
1054 CALL eval_f(method,xb,yb,zb,q_id,fb,clip_flag1)
1055 WRITE(*,1000)
'f(x1,y1,z1) = ', fa
1056 WRITE(*,1000)
'f(x2,y2,z2) = ', fb
1057 WRITE(*,1000)
'Current Location (x3,y3,z3)= ', x3,y3,z3
1058 WRITE(*,1000)
'Current value of abs(f) = ', dabs(f3)
1059 WRITE(*,1000)
'Tolerance = ',
tol_f 1060 WRITE(*,*)
'Maximum number of iterations = ',
itermax_int 1061 WRITE(*,*)
'Please increase the intersection tolerance, ' 1062 WRITE(*,*)
'or the maximum number of iterations, and try again.' 1063 WRITE(*,*)
'MFiX will exit now.' 1066 intersect_flag = .false.
1073 intersect_flag = .false.
1076 1000
FORMAT(a,3(2
x,g12.5))
1096 SUBROUTINE intersect(IJK,TYPE_OF_CELL,Xi,Yi,Zi)
1114 CHARACTER (LEN=*) :: TYPE_OF_CELL
1115 INTEGER :: IJK,I,J,K,Q_ID,N_int_x,N_int_y,N_int_z,N_USR
1116 DOUBLE PRECISION :: xa,ya,za,xb,yb,zb,xc,yc,zc
1117 DOUBLE PRECISION :: Xi,Yi,Zi,Xc_backup,Yc_backup,Zc_backup
1118 LOGICAL :: INTERSECT_FLAG
1145 CALL intersect_line(
'QUADRIC',xa,ya,za,xb,yb,zb,q_id,intersect_flag,xc,yc,zc)
1146 IF ((intersect_flag).AND.(xc/=xi))
THEN 1147 n_int_x = n_int_x + 1
1153 IF(n_int_x /= 1)
THEN 1160 CALL intersect_line(
'POLYGON',xa,ya,za,xb,yb,zb,q_id,
intersect_x(ijk),xc,yc,zc)
1165 CALL intersect_line(
'USR_DEF',xa,ya,za,xb,yb,zb,q_id,
intersect_x(ijk),xc,yc,zc)
1174 IF(type_of_cell==
'U_MOMENTUM')
THEN 1194 CALL intersect_line(
'QUADRIC',xa,ya,za,xb,yb,zb,q_id,intersect_flag,xc,yc,zc)
1195 IF ((intersect_flag).AND.(yc/=yi))
THEN 1196 n_int_y = n_int_y + 1
1202 IF(n_int_y /= 1)
THEN 1208 CALL intersect_line(
'POLYGON',xa,ya,za,xb,yb,zb,q_id,
intersect_y(ijk),xc,yc,zc)
1213 CALL intersect_line(
'USR_DEF',xa,ya,za,xb,yb,zb,q_id,
intersect_y(ijk),xc,yc,zc)
1222 IF(type_of_cell==
'V_MOMENTUM')
THEN 1241 CALL intersect_line(
'QUADRIC',xa,ya,za,xb,yb,zb,q_id,intersect_flag,xc,yc,zc)
1242 IF ((intersect_flag).AND.(zc/=zi))
THEN 1243 n_int_z = n_int_z + 1
1249 IF(n_int_z /= 1)
THEN 1255 CALL intersect_line(
'POLYGON',xa,ya,za,xb,yb,zb,q_id,
intersect_z(ijk),xc,yc,zc)
1260 CALL intersect_line(
'USR_DEF',xa,ya,za,xb,yb,zb,q_id,
intersect_z(ijk),xc,yc,zc)
1269 IF(type_of_cell==
'W_MOMENTUM')
THEN 1335 CHARACTER (LEN=*) :: TYPE_OF_CELL
1336 INTEGER :: IJK,I,J,K,IM,JM,KM,IP,JP,KP
1338 INTEGER :: IMJK,IPJK,IJMK,IJPK,IJKM,IJKP,IMJPK,IMJKP,IPJMK,IJMKP,IPJKM,IJPKM
1339 DOUBLE PRECISION :: xa,ya,za,xb,yb,zb
1340 DOUBLE PRECISION :: Xi,Yi,Zi
1341 DOUBLE PRECISION :: DFC,DFC_MAX,F4,F6,F7,F8
1342 LOGICAL :: CLIP_FLAG,CAD,F_TEST
1370 imjk = funijk(im,j,k)
1371 ipjk = funijk(ip,j,k)
1372 ijmk = funijk(i,jm,k)
1373 ijpk = funijk(i,jp,k)
1374 ijkm = funijk(i,j,km)
1375 ijkp = funijk(i,j,kp)
1377 imjpk = funijk(im,jp,k)
1378 imjkp = funijk(im,j,kp)
1380 ipjmk = funijk(ip,jm,k)
1381 ijmkp = funijk(i,jm,kp)
1383 ipjkm = funijk(ip,j,km)
1384 ijpkm = funijk(i,jp,km)
1415 dfc_max =
tol_snap(1) * dsqrt((xb-xa)**2+(yb-ya)**2+(zb-za)**2)
1421 IF(cad) f_test = (
f_at(imjk)/=
zero)
1422 IF(dfc < dfc_max.AND.f_test)
THEN 1424 WRITE(*,*)
'MERGING X-INTERSECTION ALONG EDGE 7 ONTO NODE 7' 1425 WRITE(*,*)
'AT IJK,I,J,K=',ijk,i,j,k
1445 IF(dfc < dfc_max.AND.f_test)
THEN 1447 WRITE(*,*)
'MERGING X-INTERSECTION ALONG EDGE 7 ONTO NODE 8' 1448 WRITE(*,*)
'AT IJK,I,J,K=',ijk,i,j,k
1483 dfc_max =
tol_snap(2) * dsqrt((xb-xa)**2+(yb-ya)**2+(zb-za)**2)
1490 IF(cad) f_test = (
f_at(ijmk)/=
zero)
1491 IF(dfc < dfc_max.AND.f_test)
THEN 1493 WRITE(*,*)
'MERGING Y-INTERSECTION ALONG EDGE 6 ONTO NODE 6' 1494 WRITE(*,*)
'AT IJK,I,J,K=',ijk,i,j,k
1514 IF(dfc < dfc_max.AND.f_test)
THEN 1516 WRITE(*,*)
'MERGING Y-INTERSECTION ALONG EDGE 6 ONTO NODE 8' 1517 WRITE(*,*)
'AT IJK,I,J,K=',ijk,i,j,k
1551 dfc_max =
tol_snap(3) * dsqrt((xb-xa)**2+(yb-ya)**2+(zb-za)**2)
1557 IF(cad) f_test = (
f_at(ijkm)/=
zero)
1558 IF(dfc < dfc_max.AND.f_test)
THEN 1560 WRITE(*,*)
'MERGING Z-INTERSECTION ALONG EDGE 11 ONTO NODE 4' 1561 WRITE(*,*)
'AT IJK,I,J,K=',ijk,i,j,k
1582 IF(dfc < dfc_max.AND.f_test)
THEN 1584 WRITE(*,*)
'MERGING Z-INTERSECTION ALONG EDGE 11 ONTO NODE 8' 1585 WRITE(*,*)
'AT IJK,I,J,K=',ijk,i,j,k
1724 CHARACTER (LEN=*) :: TYPE_OF_CELL
1725 INTEGER :: IJK,I,J,K,IM,JM,KM
1727 INTEGER :: IMJK,IJMK,IJKM
1728 DOUBLE PRECISION :: xa,ya,za,xb,yb,zb
1729 DOUBLE PRECISION :: Xi,Yi,Zi
1730 DOUBLE PRECISION :: DFC,DFC_MAX,F4,F6,F7,F8
1731 LOGICAL :: CLIP_FLAG,CAD,F_TEST
1755 imjk = funijk(im,j,k)
1756 ijmk = funijk(i,jm,k)
1757 ijkm = funijk(i,j,km)
1776 dfc_max =
tol_snap(1) * dsqrt((xb-xa)**2+(yb-ya)**2+(zb-za)**2)
1782 IF(cad) f_test = (
f_at(imjk)/=
zero)
1783 IF(dfc < dfc_max.AND.f_test)
THEN 1785 WRITE(*,*)
'MERGING X-INTERSECTION ALONG EDGE 7 ONTO NODE 7' 1786 WRITE(*,*)
'AT IJK,I,J,K=',ijk,i,j,k
1797 IF(dfc < dfc_max.AND.f_test)
THEN 1799 WRITE(*,*)
'MERGING X-INTERSECTION ALONG EDGE 7 ONTO NODE 8' 1800 WRITE(*,*)
'AT IJK,I,J,K=',ijk,i,j,k
1824 dfc_max =
tol_snap(2) * dsqrt((xb-xa)**2+(yb-ya)**2+(zb-za)**2)
1831 IF(cad) f_test = (
f_at(ijmk)/=
zero)
1832 IF(dfc < dfc_max.AND.f_test)
THEN 1834 WRITE(*,*)
'MERGING Y-INTERSECTION ALONG EDGE 6 ONTO NODE 6' 1835 WRITE(*,*)
'AT IJK,I,J,K=',ijk,i,j,k
1846 IF(dfc < dfc_max.AND.f_test)
THEN 1848 WRITE(*,*)
'MERGING Y-INTERSECTION ALONG EDGE 6 ONTO NODE 8' 1849 WRITE(*,*)
'AT IJK,I,J,K=',ijk,i,j,k
1876 dfc_max =
tol_snap(3) * dsqrt((xb-xa)**2+(yb-ya)**2+(zb-za)**2)
1882 IF(cad) f_test = (
f_at(ijkm)/=
zero)
1883 IF(dfc < dfc_max.AND.f_test)
THEN 1885 WRITE(*,*)
'MERGING Z-INTERSECTION ALONG EDGE 11 ONTO NODE 4' 1886 WRITE(*,*)
'AT IJK,I,J,K=',ijk,i,j,k
1896 IF(dfc < dfc_max.AND.f_test)
THEN 1898 WRITE(*,*)
'MERGING Z-INTERSECTION ALONG EDGE 11 ONTO NODE 8' 1899 WRITE(*,*)
'AT IJK,I,J,K=',ijk,i,j,k
1955 INTEGER :: IJK,I,J,K,IP,JP,KP
1956 INTEGER :: IPJK,IJPK,IJKP
1967 ipjk = funijk(ip,j,k)
1968 ijpk = funijk(i,jp,k)
1969 ijkp = funijk(i,j,kp)
2084 CHARACTER (LEN=*) :: TYPE_OF_CELL
2085 INTEGER :: IJK,I,J,K
2086 INTEGER :: IM,IP,JM,JP,KM,KP,IMJK,IPJK,IJMK,IJPK,IJKM,IJKP
2087 INTEGER :: IJPKP,IPJKP,IPJPK
2088 DOUBLE PRECISION :: xa,ya,za,xb,yb,zb,xc,yc,zc
2089 LOGICAL :: INTERSECT_FLAG,INSIDE_FACET_a,INSIDE_FACET_b
2091 DOUBLE PRECISION :: X1,X2,Y1,Y2,Z1,Z2
2093 DOUBLE PRECISION,
DIMENSION(DIMENSION_3) :: Xint,Yint,Zint
2095 INTEGER :: NN,I1,I2,J1,J2,K1,K2
2097 DOUBLE PRECISION :: X_OFFSET, Y_OFFSET, Z_OFFSET
2099 DOUBLE PRECISION,
DIMENSION(3) :: N4,N6,N7,N8
2100 DOUBLE PRECISION :: CURRENT_F
2102 INTEGER :: N_UNDEFINED, NTOTAL_UNDEFINED,N_PROP
2103 INTEGER,
PARAMETER :: N_PROPMAX=1000
2118 SELECT CASE (type_of_cell)
2146 WRITE(*,*)
'SUBROUTINE: GET_CELL_NODE_COORDINATES' 2147 WRITE(*,*)
'UNKNOWN TYPE OF CELL:',type_of_cell
2148 WRITE(*,*)
'ACCEPTABLE TYPES ARE:' 2150 WRITE(*,*)
'U_MOMENTUM' 2151 WRITE(*,*)
'V_MOMENTUM' 2152 WRITE(*,*)
'W_MOMENTUM' 2160 x1 = minval(
vertex(1:3,1,nn))
2161 x2 = maxval(
vertex(1:3,1,nn))
2162 y1 = minval(
vertex(1:3,2,nn))
2163 y2 = maxval(
vertex(1:3,2,nn))
2164 z1 = minval(
vertex(1:3,3,nn))
2165 z2 = maxval(
vertex(1:3,3,nn))
2247 ip = min0(i + 1 ,
iend3)
2248 jp = min0(j + 1 ,
jend3)
2249 kp = min0(k + 1 ,
kend3)
2252 imjk = funijk(im,j,k)
2253 ipjk = funijk(ip,j,k)
2254 ijmk = funijk(i,jm,k)
2255 ijpk = funijk(i,jp,k)
2256 ijkm = funijk(i,j,km)
2257 ijkp = funijk(i,j,kp)
2259 ijpkp = funijk(i,jp,kp)
2260 ipjkp = funijk(ip,j,kp)
2261 ipjpk = funijk(ip,jp,k)
2285 IF(inside_facet_a)
THEN 2296 IF(inside_facet_b)
THEN 2308 intersect_flag = .false.
2310 IF(.NOT.(
intersect_x(ijk).OR.inside_facet_a.OR.inside_facet_b))
THEN 2311 CALL intersect_line_with_facet(xa,ya,za,xb,yb,zb,nn,intersect_flag,xc,yc,zc)
2314 IF(intersect_flag)
THEN 2316 IF(dabs(xint(ijk)-xc)>
tol_stl)
THEN 2347 IF(type_of_cell==
'U_MOMENTUM')
THEN 2365 IF(inside_facet_a)
THEN 2379 intersect_flag = .false.
2381 IF(.NOT.(
intersect_y(ijk).OR.inside_facet_a.OR.inside_facet_b))
THEN 2382 CALL intersect_line_with_facet(xa,ya,za,xb,yb,zb,nn,intersect_flag,xc,yc,zc)
2386 IF(intersect_flag)
THEN 2390 IF(dabs(yint(ijk)-yc)>
tol_stl)
THEN 2426 IF(type_of_cell==
'V_MOMENTUM')
THEN 2445 IF(inside_facet_a)
THEN 2459 intersect_flag = .false.
2461 IF(.NOT.(
intersect_z(ijk).OR.inside_facet_a.OR.inside_facet_b))
THEN 2462 CALL intersect_line_with_facet(xa,ya,za,xb,yb,zb,nn,intersect_flag,xc,yc,zc)
2465 IF(intersect_flag)
THEN 2469 IF(dabs(zint(ijk)-zc)>
tol_stl)
THEN 2508 IF(type_of_cell==
'W_MOMENTUM')
THEN 2588 DO n_prop=1,n_propmax
2596 IF(.NOT.is_on_mype_plus1layer(i,j,k))cycle
2635 IF(ntotal_undefined==0)
EXIT 2644 IF(n_undefined>0)
THEN 2645 WRITE(*,*)
'WARNING: UNABLE TO PROPAGATE F_AT ARRAY FROM myPE=.',
mype 2646 WRITE(*,*)
' THIS USUALLY INDICATE A RANK WITH NO ACTIVE CELL' 2647 WRITE(*,*)
' YOU MAY NEED TO ADJUST THE GRID PARTITIONNING' 2648 WRITE(*,*)
' TO GET BETTER LOAD_BALANCE.' 2662 current_f =
f_at(ijk)
2672 current_f =
f_at(ijk)
2688 current_f =
f_at(ijk)
2698 current_f =
f_at(ijk)
2714 current_f =
f_at(ijk)
2724 current_f =
f_at(ijk)
2742 current_f =
f_at(ijk)
2752 current_f =
f_at(ijk)
2768 current_f =
f_at(ijk)
2778 current_f =
f_at(ijk)
2794 current_f =
f_at(ijk)
2804 current_f =
f_at(ijk)
2825 current_f =
f_at(ijk)
2835 current_f =
f_at(ijk)
2851 current_f =
f_at(ijk)
2861 current_f =
f_at(ijk)
2878 current_f =
f_at(ijk)
2888 current_f =
f_at(ijk)
2900 WRITE(*,*)
'CAD_INTERSECT.' 2902 WRITE(*,*)
'ACCEPTABLE VALUES:' 2960 WRITE(*,*)
' FATAL ERROR: TOO MANY FACETS IN CELL: ', ijk
integer, dimension(dimension_ps) ps_i_w
double precision, dimension(dimension_ps) ps_v_g
subroutine set_3d_cut_w_cell_flags
double precision, dimension(dimension_bc) bc_volflow_g
integer, dimension(:), allocatable i_of
logical, dimension(:), allocatable potential_cut_cell_at
double precision, dimension(dimension_ps) ps_t_g
double precision, dimension(dimension_ps, dim_m) ps_v_s
subroutine eval_stl_fct_at(TYPE_OF_CELL, IJK, NODE, f_stl, CLIP_FLAG, B
double precision, dimension(:), allocatable yg_n
double precision, dimension(:), allocatable xn_int
double precision, dimension(dimension_bc) bc_t_g
integer, dimension(:,:), allocatable list_facet_at
logical function compare(V1, V2)
subroutine set_3d_cut_u_cell_flags
subroutine set_snap_flag(IJK, TYPE_OF_CELL, Xi, Yi, Zi)
subroutine open_cut_cell_files
integer, dimension(dim_group) group_size
integer dim_facets_per_cell
double precision, parameter one
subroutine get_w_master_cells
double precision, dimension(:), allocatable xg_e
subroutine convert_cg_mi_to_ps
double precision, dimension(:), allocatable ye_int
double precision, dimension(3, 3, dim_stl) vertex
subroutine cad_intersect(TYPE_OF_CELL, Xint, Yint, Zint)
double precision, dimension(0:15) z_node
subroutine cg_flow_to_vel
subroutine is_point_inside_facet(Px, Py, Pz, FACET, INSIDE_FACET)
double precision, dimension(dimension_bc, dim_m) bc_w_s
subroutine get_3d_alpha_u_cut_cell
subroutine send_receive_1d_logical(L1D, NLAYERS)
integer, dimension(10) cg_safe_mode
double precision, dimension(0:15) y_node
double precision, dimension(dimension_bc, dim_m, dim_n_s) bc_x_s
subroutine get_3d_alpha_v_cut_cell
subroutine set_3d_cut_cell_treatment_flags
subroutine get_f_quadric(x1, x2, x3, Q_ID, f, CLIP_FLAG)
integer, dimension(:), allocatable n_facet_at
double precision, dimension(dimension_bc) bc_vol
subroutine get_3d_alpha_w_cut_cell
subroutine set_odxyz_v_cut_cell
double precision, dimension(0:dim_j) dy
integer, dimension(dimension_ps) ps_j_n
integer, parameter dimension_bc
character(len=3) cad_propagate_order
subroutine get_u_master_cells
integer, dimension(dimension_bc) bc_type_enum
double precision, dimension(:,:), allocatable normal_s
double precision, parameter undefined
double precision, dimension(0:dim_k) dz
subroutine set_3d_cut_cell_flags
double precision function calc_mw(X_G, DIM, L, NMAX, MW_G)
character(len=9), dimension(dim_group) relation_with_previous
double precision, dimension(dimension_ps) ps_massflow_g
logical cg_header_was_printed
logical, dimension(dimension_ps) ps_defined
subroutine set_3d_cut_v_cell_flags
integer, dimension(dim_stl) bc_id_stl_face
double precision, dimension(dim_n_g) mw_g
subroutine eval_usr_fct(x1, x2, x3, Q, f_usr, CLIP_FLAG)
subroutine add_facet_and_set_bc_id(IJK, NN)
double precision, dimension(dimension_ps) ps_w_g
double precision, dimension(dimension_bc) bc_v_g
double precision, dimension(dimension_bc, dim_m) bc_velmag_s
double precision, dimension(dimension_ps, dim_m) ps_t_s
double precision, dimension(dimension_ps) ps_volume
subroutine clean_intersect_scalar
integer, dimension(:), allocatable k_of
double precision, dimension(dimension_bc, dim_m) bc_volflow_s
double precision, dimension(:), allocatable f_at
integer, dimension(dimension_ps) ps_k_b
double precision, dimension(dimension_ps, dim_m) ps_u_s
subroutine remove_intersect_flag(IJK)
double precision function eosg(MW, PG, TG)
subroutine cg_get_bc_area
subroutine mfix_exit(myID, normal_termination)
integer, dimension(:), allocatable j_of
double precision, dimension(dimension_bc, dim_m) bc_t_s
subroutine intersect_line(METHOD, xa, ya, za, xb, yb, zb, Q_ID, INTERSECT_FLAG, xc, yc, zc)
subroutine get_cell_node_coordinates(IJK, TYPE_OF_CELL)
subroutine set_odxyz_w_cut_cell
subroutine print_grid_statistics
subroutine print_cg_header
double precision, dimension(3, dim_stl) norm_face
double precision, dimension(dimension_bc) bc_p_g
double precision, dimension(:), allocatable zt_int
double precision, dimension(0:dim_i) dx
double precision, dimension(3) tol_snap
logical, dimension(:), allocatable intersect_z
integer, dimension(dimension_ps) ps_k_t
double precision, parameter half
integer, parameter unit_log
subroutine cut_cell_preprocessing
double precision, dimension(dimension_bc) bc_velmag_g
double precision, dimension(dimension_ps, dim_n_g) ps_x_g
subroutine define_quadrics
integer, parameter dimension_ps
subroutine close_cut_cell_files
double precision, dimension(dimension_bc, dim_m) bc_v_s
subroutine flow_to_vel(DO_VEL_CHECK)
double precision, dimension(dimension_bc) bc_massflow_g
logical, dimension(:), allocatable interior_cell_at
integer, dimension(0:dim_m) nmax
logical, dimension(:), allocatable cut_cell_at
double precision, dimension(dimension_bc, dim_m) bc_massflow_s
double precision, dimension(dimension_bc) bc_u_g
subroutine clean_intersect(IJK, TYPE_OF_CELL, Xi, Yi, Zi)
subroutine set_ghost_cell_flags
double precision, dimension(dimension_ps, dim_m) ps_massflow_s
subroutine allocate_cut_cell_arrays
double precision, dimension(dimension_bc, dim_m) bc_u_s
subroutine eval_poly_fct(x1, x2, x3, Q, f_pol, CLIP_FLAG, BCID)
character(len=9), dimension(dim_group) group_relation
integer, dimension(:), allocatable bc_id
double precision, dimension(dimension_ps, dim_m) ps_w_s
logical, dimension(:), allocatable intersect_x
double precision, dimension(dimension_bc, dim_n_g) bc_x_g
double precision, dimension(dimension_bc) bc_ep_g
subroutine get_distance_to_wall
double precision, dimension(dimension_ps, dim_m, dim_n_s) ps_x_s
subroutine intersect(IJK, TYPE_OF_CELL, Xi, Yi, Zi)
double precision, dimension(dim_m) ro_s0
integer, parameter dim_quadric
logical, dimension(:), allocatable intersect_y
subroutine eval_f(METHOD, x1, x2, x3, Q, f, CLIP_FLAG)
subroutine write_cut_surface_vtk
subroutine set_odxyz_u_cut_cell
subroutine send_receive_cut_cell_variables
subroutine convert_cg_mi_to_ps_pe
double precision, dimension(dimension_ps) ps_u_g
integer, dimension(dimension_ps) ps_j_s
double precision, dimension(:), allocatable vol
double precision, dimension(:), allocatable zg_t
double precision, dimension(dimension_bc) bc_w_g
logical, dimension(dimension_bc) cg_mi_converted_to_ps
integer, dimension(dim_group, dim_quadric) group_q
integer, dimension(dimension_ps) ps_i_e
double precision, dimension(:), allocatable x
double precision, parameter zero
double precision, dimension(0:15) x_node
subroutine intersect_line_with_facet(xa, ya, za, xb, yb, zb, FACET, INTERSECT
double precision, dimension(dimension_bc, dim_m) bc_rop_s
subroutine get_v_master_cells
double precision, dimension(dimension_bc) bc_area
subroutine reasssign_quadric(x1, x2, x3, GROUP, Q_ID)
integer unit_cut_cell_log
logical, dimension(:), allocatable snap