63 INTEGER,
INTENT(OUT) :: splitflag
65 REAL(RFREAL),
DIMENSION(3),
INTENT(IN) :: xyz1, xyz2, xyz3, xyz4
68 CHARACTER(CHRLEN) :: rcsidentstring
70 REAL(RFREAL) :: fvecx1, fvecx2, fvecy1, fvecy2, fvecz1, fvecz2, mag1,
mag2, &
72 REAL(RFREAL) :: xyznodes(3,3)
76 rcsidentstring =
'$RCSfile: SplitQuadFace.F90,v $ $Revision: 1.3 $'
85 xyznodes(1:3,1) = xyz1(1:3)
86 xyznodes(1:3,2) = xyz2(1:3)
87 xyznodes(1:3,3) = xyz3(1:3)
91 xyznodes(1:3,1) = xyz1(1:3)
92 xyznodes(1:3,2) = xyz3(1:3)
93 xyznodes(1:3,3) = xyz4(1:3)
97 mag1 =
sqrt(fvecx1*fvecx1 + fvecy1*fvecy1 + fvecz1*fvecz1)
98 mag2 =
sqrt(fvecx2*fvecx2 + fvecy2*fvecy2 + fvecz2*fvecz2)
99 prod1 = (fvecx1*fvecx2 + fvecy1*fvecy2 + fvecz1*fvecz2)/(mag1*
mag2)
101 IF (prod1 < 0.0_rfreal)
THEN
102 CALL
errorstop( global,err_face_split,__line__ )
107 xyznodes(1:3,1) = xyz1(1:3)
108 xyznodes(1:3,2) = xyz2(1:3)
109 xyznodes(1:3,3) = xyz4(1:3)
113 xyznodes(1:3,1) = xyz2(1:3)
114 xyznodes(1:3,2) = xyz3(1:3)
115 xyznodes(1:3,3) = xyz4(1:3)
119 mag1 =
sqrt(fvecx1*fvecx1 + fvecy1*fvecy1 + fvecz1*fvecz1)
120 mag2 =
sqrt(fvecx2*fvecx2 + fvecy2*fvecy2 + fvecz2*fvecz2)
121 prod2 = (fvecx1*fvecx2 + fvecy1*fvecy2 + fvecz1*fvecz2)/(mag1*
mag2)
123 IF (prod2 < 0.0_rfreal)
THEN
124 CALL
errorstop( global,err_face_split,__line__ )
129 IF (prod1 < prod2)
THEN
130 splitflag = face_split_13
132 splitflag = face_split_24
subroutine splitquadface(global, xyz1, xyz2, xyz3, xyz4, splitFlag)
subroutine facevectortria(xyzNodes, fVecX, fVecY, fVecZ)
subroutine registerfunction(global, funName, fileName)
subroutine errorstop(global, errorCode, errorLine, addMessage)
subroutine deregisterfunction(global)