24 integer,
dimension(nProc) :: recvcounts, displs
26 integer(kind=intType) :: mm, nn, sps, multiple
27 integer(kind=intType) :: nBad, faceID, nBadGlobal
29 integer(kind=intType),
dimension(nProc) :: counts
30 integer(kind=intType), &
31 dimension(4, nDom*nTimeIntervalsSpectral) :: bad
33 integer(kind=intType),
dimension(:, :),
allocatable :: badGlobal
35 real(kind=realtype) :: dummy(1)
39 character(len=7) :: intString
61 bad(3, nbad) = multiple
73 call mpi_allgather(nbad, 1, adflow_integer, counts, 1, &
79 nbadglobal = counts(1)
80 recvcounts(1) = 4 * counts(1)
84 nbadglobal = nbadglobal + counts(nn)
85 recvcounts(nn) = 4 * counts(nn)
86 displs(nn) = displs(nn - 1) + recvcounts(nn - 1)
91 allocate (badglobal(4, nbadglobal), stat=ierr)
94 "Memory allocation failure for badGlobal")
99 call mpi_allgatherv(bad,
size, adflow_integer, badglobal, &
100 recvcounts, displs, adflow_integer, &
111 testbadpresent:
if (nbadglobal > 0)
then
115 testrootproc:
if (
myid == 0)
then
119 write (intstring,
"(i6)") nbadglobal
120 intstring = adjustl(intstring)
123 print
strings,
"# Found ", trim(intstring),
" blocks for which the boundary or connectivity information"
124 print
"(a)",
"# is not correct. Here is the list of bad blocks"
129 do mm = 1, nbadglobal
133 nn = badglobal(1, mm)
134 faceid = badglobal(2, mm)
135 multiple = badglobal(3, mm)
136 sps = badglobal(4, mm)
142 write (intstring,
"(i6)") nbadglobal
143 intstring = adjustl(intstring)
144 write (*,
strings, advance=
"no")
"# Spectral grid ", trim(intstring),
", "
146 write (*,
"(a)", advance=
"no")
"# "
152 if (multiple == 0)
then
156 print
strings,
"Zone ", trim(
cgnsdoms(nn)%zoneName),
": iMin block face not fully described"
158 print
strings,
"Zone ", trim(
cgnsdoms(nn)%zoneName),
": iMax block face not fully described"
160 print
strings,
"Zone ", trim(
cgnsdoms(nn)%zoneName),
": jMin block face not fully described"
162 print
strings,
"Zone ", trim(
cgnsdoms(nn)%zoneName),
": jMax block face not fully described"
164 print
strings,
"Zone ", trim(
cgnsdoms(nn)%zoneName),
": kMin block face not fully described"
166 print
strings,
"Zone ", trim(
cgnsdoms(nn)%zoneName),
": kMax block face not fully described"
169 ": Multiple block faces not fully described"
176 print
strings,
"Zone ", trim(
cgnsdoms(nn)%zoneName),
": iMin block face multiple described"
178 print
strings,
"Zone ", trim(
cgnsdoms(nn)%zoneName),
": iMax block face multiple described"
180 print
strings,
"Zone ", trim(
cgnsdoms(nn)%zoneName),
": jMin block face multiple described"
182 print
strings,
"Zone ", trim(
cgnsdoms(nn)%zoneName),
": jMax block face multiple described"
184 print
strings,
"Zone ", trim(
cgnsdoms(nn)%zoneName),
": kMin block face multiple described"
186 print
strings,
"Zone ", trim(
cgnsdoms(nn)%zoneName),
": kMax block face multiple described"
189 ": Multiple block faces multiple described"
199 "Wrong block boundary info found")
207 end if testbadpresent
211 deallocate (badglobal, stat=ierr)
214 "Deallocation failure for badGlobal")
233 integer(kind=intType),
intent(out) :: faceID, multiple
234 logical,
intent(out) :: blockIsBad
238 integer,
dimension(2:jl, 2:kl),
target :: iMinFace, iMaxFace
239 integer,
dimension(2:il, 2:kl),
target :: jMinFace, jMaxFace
240 integer,
dimension(2:il, 2:jl),
target :: kMinFace, kMaxFace
242 integer,
dimension(:, :),
pointer :: face
244 integer(kind=intType) :: nn, i, j, k, nBad
245 integer(kind=intType) :: istart, iEnd, jStart, jEnd
247 logical :: iMinBad, iMaxBad, jMinBad, jMaxBad
248 logical :: kMinBad, kMaxBad
254 iminface = 0; imaxface = 0
255 jminface = 0; jmaxface = 0
256 kminface = 0; kmaxface = 0
269 face => iminface; istart = min(
jnbeg(nn),
jnend(nn)) + 1
274 face => imaxface; istart = min(
jnbeg(nn),
jnend(nn)) + 1
279 face => jminface; istart = min(
inbeg(nn),
inend(nn)) + 1
284 face => jmaxface; istart = min(
inbeg(nn),
inend(nn)) + 1
289 face => kminface; istart = min(
inbeg(nn),
inend(nn)) + 1
294 face => kmaxface; istart = min(
inbeg(nn),
inend(nn)) + 1
304 face(i, j) = face(i, j) + 1
320 if (iminface(j, k) /= 1)
then
321 multiple = iminface(j, k)
326 if (imaxface(j, k) /= 1)
then
327 multiple = imaxface(j, k)
341 if (jminface(i, k) /= 1)
then
342 multiple = jminface(i, k)
347 if (jmaxface(i, k) /= 1)
then
348 multiple = jmaxface(i, k)
362 if (kminface(i, j) /= 1)
then
363 multiple = kminface(i, j)
368 if (kmaxface(i, j) /= 1)
then
369 multiple = kmaxface(i, j)
379 if (iminbad) nbad = nbad + 1
380 if (imaxbad) nbad = nbad + 1
381 if (jminbad) nbad = nbad + 1
382 if (jmaxbad) nbad = nbad + 1
383 if (kminbad) nbad = nbad + 1
384 if (kmaxbad) nbad = nbad + 1
390 if (nbad > 0) blockisbad = .true.
391 if (nbad > 1) faceid = huge(faceid)
419 integer :: ierr, procId, size
421 integer,
dimension(mpi_status_size) :: mpiStatus
422 integer,
dimension(nProc) :: sizeMessage
423 integer,
dimension(nProc) :: recvcounts, displs
425 integer(kind=intType) :: i, j, k, ll1, ll2, ll3, ic, jc, kc
426 integer(kind=intType) :: sps, nn, mm, ll, ii, proc, nFCheck
427 integer(kind=intType) :: stepI, stepJ, stepK
428 integer(kind=intType) :: nMessagesSend, nMessagesReceive
429 integer(kind=intType) :: nBad, nBadGlobal
431 integer(kind=intType),
dimension(3, 3) :: trMat
433 integer(kind=intType),
dimension(0:nProc) :: nFSend, nCoor
434 integer(kind=intType),
dimension(nProc) :: nFCount, nCCount
436 integer(kind=intType),
dimension(:, :),
allocatable :: intBuf
437 integer(kind=intType),
dimension(:, :),
allocatable :: intRecv
438 integer(kind=intType),
dimension(:, :),
allocatable :: badSubfaces
439 integer(kind=intType),
dimension(:, :),
allocatable :: badGlobal
441 real(kind=realtype),
dimension(:),
allocatable :: baddist
442 real(kind=realtype),
dimension(:),
allocatable :: baddistglobal
443 real(kind=realtype),
dimension(:, :),
allocatable :: realbuf
444 real(kind=realtype),
dimension(:, :),
allocatable :: realrecv
446 character(len=7) :: intString
447 character(len=maxStringLen) :: devFormat, spectralDevFormat
482 nfsend(ll) = nfsend(ll) + 1
483 ncoor(ll) = ncoor(ll) + ii
485 nfcheck = nfcheck + 1
496 nfcount(nn) = nfsend(nn - 1)
497 nccount(nn) = ncoor(nn - 1)
499 nfsend(nn) = nfsend(nn) + nfsend(nn - 1)
500 ncoor(nn) = ncoor(nn) + ncoor(nn - 1)
512 allocate (intbuf(10, nn), realbuf(3, mm), stat=ierr)
515 "Memory allocation failure for intBuf and &
539 nfcount(proc) = nfcount(proc) + 1
542 intbuf(1, ii) =
dinbeg(ll)
543 intbuf(2, ii) =
dinend(ll)
544 intbuf(3, ii) =
djnbeg(ll)
545 intbuf(4, ii) =
djnend(ll)
546 intbuf(5, ii) =
dknbeg(ll)
547 intbuf(6, ii) =
dknend(ll)
570 ll1 =
l1(ll); ll2 =
l2(ll); ll3 =
l3(ll)
572 trmat(1, 1) = sign(1_inttype, ll1) *
delta(ll1, 1_inttype)
573 trmat(1, 2) = sign(1_inttype, ll1) *
delta(ll1, 2_inttype)
574 trmat(1, 3) = sign(1_inttype, ll1) *
delta(ll1, 3_inttype)
576 trmat(2, 1) = sign(1_inttype, ll2) *
delta(ll2, 1_inttype)
577 trmat(2, 2) = sign(1_inttype, ll2) *
delta(ll2, 2_inttype)
578 trmat(2, 3) = sign(1_inttype, ll2) *
delta(ll2, 3_inttype)
580 trmat(3, 1) = sign(1_inttype, ll3) *
delta(ll3, 1_inttype)
581 trmat(3, 2) = sign(1_inttype, ll3) *
delta(ll3, 2_inttype)
582 trmat(3, 3) = sign(1_inttype, ll3) *
delta(ll3, 3_inttype)
600 + trmat(1, 1) * ll1 + trmat(1, 2) * ll2 + trmat(1, 3) * ll3
602 + trmat(2, 1) * ll1 + trmat(2, 2) * ll2 + trmat(2, 3) * ll3
604 + trmat(3, 1) * ll1 + trmat(3, 2) * ll2 + trmat(3, 3) * ll3
609 realbuf(1, ii) =
x(ic, jc, kc, 1)
610 realbuf(2, ii) =
x(ic, jc, kc, 2)
611 realbuf(3, ii) =
x(ic, jc, kc, 3)
619 ii = ii - nccount(proc)
630 j = nccount(proc) + 1
640 nccount(proc) = nccount(proc) + ii
655 if (nfsend(nn) > nfsend(nn - 1)) nccount(nn) = 1
662 nccount(
myid + 1) = 0
667 call mpi_reduce_scatter(nccount, nmessagesreceive, &
668 sizemessage, adflow_integer, mpi_sum, &
683 if (nccount(nn) == 1)
then
689 size = 10 * (nfsend(nn) - nfsend(nn - 1))
690 mm = nfsend(nn - 1) + 1
692 call mpi_isend(intbuf(1, mm),
size, adflow_integer, procid, &
698 size = 3 * (ncoor(nn) - ncoor(nn - 1))
699 mm = ncoor(nn - 1) + 1
701 call mpi_isend(realbuf(1, mm),
size, adflow_real, procid, &
719 allocate (badsubfaces(4, nfcheck), baddist(nfcheck), stat=ierr)
722 "Memory allocation failure for badSubfaces &
728 nn = nfsend(
myid + 1) - nfsend(
myid)
730 ii = nfsend(
myid) + 1
733 nbad, badsubfaces, baddist, &
742 do ii = 1, nmessagesreceive
750 procid = mpistatus(mpi_source)
751 call mpi_get_count(mpistatus, adflow_integer,
size, ierr)
757 if (
size == mpi_undefined .or. mod(
size, 10) /= 0) &
759 "Unexpected size of integer message")
766 allocate (intrecv(10, nn), stat=ierr)
769 "Memory allocation failure for intRecv")
774 call mpi_recv(intrecv,
size, adflow_integer, procid, &
782 call mpi_get_count(mpistatus, adflow_real,
size, ierr)
788 if (
size == mpi_undefined .or. mod(
size, 3) /= 0) &
790 "Unexpected size of real message")
797 allocate (realrecv(3, mm), stat=ierr)
800 "Memory allocation failure for realRecv")
805 call mpi_recv(realrecv,
size, adflow_real, procid, &
811 badsubfaces, baddist, &
816 deallocate (intrecv, realrecv, stat=ierr)
819 "Deallocation failure for intRecv &
826 do nn = 1, nmessagessend
827 call mpi_waitany(
size,
sendrequests, procid, mpistatus, ierr)
828 call mpi_waitany(
size,
recvrequests, procid, mpistatus, ierr)
833 deallocate (intbuf, realbuf, stat=ierr)
836 "Deallocation failure for intBuf and realBuf")
843 call mpi_allgather(nbad, 1, adflow_integer, nccount, 1, &
849 nbadglobal = nccount(1)
850 recvcounts(1) = nccount(1)
854 nbadglobal = nbadglobal + nccount(nn)
855 recvcounts(nn) = nccount(nn)
856 displs(nn) = displs(nn - 1) + recvcounts(nn - 1)
861 allocate (badglobal(4, nbadglobal), baddistglobal(nbadglobal), &
865 "Memory allocation failure for badGlobal &
871 call mpi_allgatherv(baddist,
size, adflow_real, baddistglobal, &
872 recvcounts, displs, adflow_real, &
879 recvcounts(nn) = 4 * recvcounts(nn)
880 displs(nn) = 4 * displs(nn)
884 call mpi_allgatherv(badsubfaces,
size, adflow_integer, badglobal, &
885 recvcounts, displs, adflow_integer, &
896 do nn = 1, nbadglobal
897 if (badglobal(2, nn) == 0)
then
900 "Non-matching internally created &
909 devformat =
"(7(A), ES12.5)"
910 spectraldevformat =
"(9(A), ES12.5)"
912 if (
myid == 0 .and. nbadglobal > 0)
then
914 write (intstring,
"(i6)") nbadglobal
915 intstring = adjustl(intstring)
919 print
strings,
"# Found ", trim(intstring),
" one to one subfaces which do not coincide."
920 print
strings,
"# Computation continues, but be aware of it."
921 print
strings,
"# List of nonmatching one to one subfaces."
924 do nn = 1, nbadglobal
928 write (intstring,
"(i6)") badglobal(3, nn)
929 intstring = adjustl(intstring)
936 if (badglobal(4, nn) == 1)
then
937 print spectraldevformat,
"# Spectral grid ", trim(intstring), &
938 ", zone ", trim(
cgnsdoms(i)%zoneName), &
939 ", periodic subface ", trim(
cgnsdoms(i)%conn1to1(j)%connectName), &
940 " does not match donor ", trim(
cgnsdoms(i)%conn1to1(j)%donorName), &
941 ". Maximum deviation: ", baddistglobal(nn)
943 print spectraldevformat,
"# Spectral grid ", trim(intstring), &
944 ", zone ", trim(
cgnsdoms(i)%zoneName), &
945 ", subface ", trim(
cgnsdoms(i)%conn1to1(j)%connectName), &
946 " does not match donor ", trim(
cgnsdoms(i)%conn1to1(j)%donorName), &
947 ". Maximum deviation: ", baddistglobal(nn)
952 if (badglobal(4, nn) == 1)
then
953 print devformat,
"Zone ", trim(
cgnsdoms(i)%zoneName), &
954 ", periodic subface ", trim(
cgnsdoms(i)%conn1to1(j)%connectName), &
955 " does not match donor ", trim(
cgnsdoms(i)%conn1to1(j)%donorName), &
956 ". Maximum deviation: ", baddistglobal(nn)
958 print devformat,
"Zone ", trim(
cgnsdoms(i)%zoneName), &
959 ", subface ", trim(
cgnsdoms(i)%conn1to1(j)%connectName), &
960 " does not match donor ", trim(
cgnsdoms(i)%conn1to1(j)%donorName), &
961 ". Maximum deviation: ", baddistglobal(nn)
973 deallocate (badsubfaces, badglobal, baddist, baddistglobal, &
977 "Deallocation failure for badSubfaces, &
978 &badGlobal, badDist and badDistGlobal")
989 rotAngles, translation)
1000 integer(kind=intType),
intent(in) :: nn
1002 real(kind=realtype),
dimension(3),
intent(in) :: rotcenter
1003 real(kind=realtype),
dimension(3),
intent(in) :: rotangles
1004 real(kind=realtype),
dimension(3),
intent(in) :: translation
1006 real(kind=realtype),
dimension(3, nn),
intent(inout) :: coor
1010 integer(kind=intType) :: i
1012 real(kind=realtype) :: costheta, cosphi, cospsi
1013 real(kind=realtype) :: sintheta, sinphi, sinpsi
1014 real(kind=realtype) :: dx, dy, dz
1016 real(kind=realtype),
dimension(3) :: trans
1017 real(kind=realtype),
dimension(3, 3) :: rotmatrix
1025 costheta = cos(rotangles(1)); sintheta = sin(rotangles(1))
1026 cosphi = cos(rotangles(2)); sinphi = sin(rotangles(2))
1027 cospsi = cos(rotangles(3)); sinpsi = sin(rotangles(3))
1029 rotmatrix(1, 1) = cosphi * cospsi
1030 rotmatrix(2, 1) = cosphi * sinpsi
1031 rotmatrix(3, 1) = -sinphi
1033 rotmatrix(1, 2) = sintheta * sinphi * cospsi - costheta * sinpsi
1034 rotmatrix(2, 2) = sintheta * sinphi * sinpsi + costheta * cospsi
1035 rotmatrix(3, 2) = sintheta * cosphi
1037 rotmatrix(1, 3) = costheta * sinphi * cospsi + sintheta * sinpsi
1038 rotmatrix(2, 3) = costheta * sinphi * sinpsi - sintheta * cospsi
1039 rotmatrix(3, 3) = costheta * cosphi
1043 trans(1) = rotcenter(1) + translation(1)
1044 trans(2) = rotcenter(2) + translation(2)
1045 trans(3) = rotcenter(3) + translation(3)
1053 dx = coor(1, i) - rotcenter(1)
1054 dy = coor(2, i) - rotcenter(2)
1055 dz = coor(3, i) - rotcenter(3)
1059 coor(1, i) = rotmatrix(1, 1) * dx + rotmatrix(1, 2) * dy &
1060 + rotmatrix(1, 3) * dz + trans(1)
1061 coor(2, i) = rotmatrix(2, 1) * dx + rotmatrix(2, 2) * dy &
1062 + rotmatrix(2, 3) * dz + trans(2)
1063 coor(3, i) = rotmatrix(3, 1) * dx + rotmatrix(3, 2) * dy &
1064 + rotmatrix(3, 3) * dz + trans(3)
1073 nBad, badSubfaces, badDist, &
1090 integer(kind=intType),
intent(in) :: nFace, nSpectral
1091 integer(kind=intType),
intent(inout) :: nBad
1093 integer(kind=intType),
dimension(10, *),
intent(in) :: subfaceInfo
1094 integer(kind=intType),
dimension(4, *),
intent(inout) :: badSubfaces
1096 real(kind=realtype),
dimension(*),
intent(inout) :: baddist
1097 real(kind=realtype),
dimension(3, *),
intent(in) :: coor
1101 real(kind=realtype),
parameter :: reltol = 0.05_realtype
1105 integer(kind=intType) :: i, j, k, ii, jj, mm, nn
1106 integer(kind=intType) :: stepI, stepJ, stepK
1107 integer(kind=intType) :: im1, ip1, jm1, jp1, km1, kp1
1108 integer(kind=intType) :: iBeg, iEnd, jBeg, jEnd, kBeg, kEnd
1109 integer(kind=intType) :: blockID, sps, globalDonID, subfaceID
1111 real(kind=realtype) :: dist2, dist2i, dist2j, dist2k, tol
1112 real(kind=realtype) :: facti, factj, factk, diffmax
1114 character(len=maxStringLen) :: errorMessage
1115 character(len=7) :: intString
1123 subfaceloop:
do nn = 1, nface
1127 ibeg = subfaceinfo(1, nn)
1128 iend = subfaceinfo(2, nn)
1129 jbeg = subfaceinfo(3, nn)
1130 jend = subfaceinfo(4, nn)
1131 kbeg = subfaceinfo(5, nn)
1132 kend = subfaceinfo(6, nn)
1134 blockid = subfaceinfo(7, nn)
1135 sps = subfaceinfo(8, nn)
1136 globaldonid = subfaceinfo(9, nn)
1137 subfaceid = subfaceinfo(10, nn)
1154 if (min(ibeg, iend) == min(
inbeg(jj),
inend(jj)) .and. &
1155 max(ibeg, iend) == max(
inbeg(jj),
inend(jj)) .and. &
1156 min(jbeg, jend) == min(
jnbeg(jj),
jnend(jj)) .and. &
1157 max(jbeg, jend) == max(
jnbeg(jj),
jnend(jj)) .and. &
1158 min(kbeg, kend) == min(
knbeg(jj),
knend(jj)) .and. &
1159 max(kbeg, kend) == max(
knbeg(jj),
knend(jj)))
exit
1165 if (mm >
n1to1)
then
1167 if (nspectral > 1)
then
1168 write (intstring,
"(i6)") sps
1169 intstring = adjustl(intstring)
1170 write (errormessage,
strings)
"Spectral grid ", trim(intstring), &
1171 ", Zone ", trim(
cgnsdoms(globaldonid)%zoneName), &
1172 "Connectivity ", trim(
cgnsdoms(globaldonid)%conn1to1(subfaceid)%connectName), &
1173 ": 1 to 1 subface not found. Something is seriously wrong with the zone connectivity."
1176 write (errormessage,
strings)
"Zone ", trim(
cgnsdoms(globaldonid)%zoneName), &
1177 "Connectivity", trim(
cgnsdoms(globaldonid)%conn1to1(subfaceid)%connectName), &
1178 ": 1 to 1 subface not found. Something is seriously wrong with the zone connectivity."
1181 call terminate(
"checkSubfaceCoor", errormessage)
1190 stepi = 1;
if (iend < ibeg) stepi = -1
1191 stepj = 1;
if (jend < jbeg) stepj = -1
1192 stepk = 1;
if (kend < kbeg) stepk = -1
1203 do k = kbeg, kend, stepk
1209 km1 = max(1_inttype, k - 1_inttype)
1210 kp1 = min(
kl, k + 1_inttype)
1213 if (km1 == k) factk = factk *
four
1214 if (kp1 == k) factk = factk *
four
1218 do j = jbeg, jend, stepj
1222 jm1 = max(1_inttype, j - 1_inttype)
1223 jp1 = min(
jl, j + 1_inttype)
1226 if (jm1 == j) factj = factj *
four
1227 if (jp1 == j) factj = factj *
four
1231 do i = ibeg, iend, stepi
1235 im1 = max(1_inttype, i - 1_inttype)
1236 ip1 = min(
il, i + 1_inttype)
1239 if (im1 == i) facti = facti *
four
1240 if (ip1 == i) facti = facti *
four
1246 dist2i = (
x(ip1, j, k, 1) -
x(im1, j, k, 1))**2 &
1247 + (
x(ip1, j, k, 2) -
x(im1, j, k, 2))**2 &
1248 + (
x(ip1, j, k, 3) -
x(im1, j, k, 3))**2
1250 dist2j = (
x(i, jp1, k, 1) -
x(i, jm1, k, 1))**2 &
1251 + (
x(i, jp1, k, 2) -
x(i, jm1, k, 2))**2 &
1252 + (
x(i, jp1, k, 3) -
x(i, jm1, k, 3))**2
1254 dist2k = (
x(i, j, kp1, 1) -
x(i, j, km1, 1))**2 &
1255 + (
x(i, j, kp1, 2) -
x(i, j, km1, 2))**2 &
1256 + (
x(i, j, kp1, 3) -
x(i, j, km1, 3))**2
1268 tol = factk * dist2k
1269 tol = min(tol, factj * dist2j)
1270 tol = min(tol, facti * dist2i)
1272 tol = tol * reltol * reltol
1279 dist2 = (
x(i, j, k, 1) - coor(1, ii))**2 &
1280 + (
x(i, j, k, 2) - coor(2, ii))**2 &
1281 + (
x(i, j, k, 3) - coor(3, ii))**2
1287 if (dist2 > tol)
then
1289 diffmax = max(diffmax, dist2)
1304 badsubfaces(1, nbad) = globaldonid
1305 badsubfaces(2, nbad) = subfaceid
1306 badsubfaces(3, nbad) = sps
1308 badsubfaces(4, nbad) = 0
1309 if (subfaceid > 0)
then
1310 if (
cgnsdoms(globaldonid)%conn1to1(subfaceid)%periodic) &
1311 badsubfaces(4, nbad) = 1
1314 baddist(nbad) = sqrt(diffmax)
integer(kind=inttype), dimension(:), pointer djnbeg
integer(kind=inttype), dimension(:), pointer dinend
integer(kind=inttype), dimension(:), pointer knend
integer(kind=inttype), dimension(:), pointer inend
integer(kind=inttype), dimension(:), pointer djnend
integer(kind=inttype), dimension(:), pointer knbeg
integer(kind=inttype), dimension(:), pointer jnbeg
integer(kind=inttype), dimension(:), pointer cgnssubface
integer(kind=inttype), dimension(:), pointer neighblock
integer(kind=inttype), dimension(:), pointer neighproc
integer(kind=inttype) nbkglobal
integer(kind=inttype), dimension(:), pointer bcfaceid
integer(kind=inttype), dimension(:), pointer dknend
integer(kind=inttype) nbocos
integer(kind=inttype), dimension(:), pointer jnend
integer(kind=inttype) n1to1
integer(kind=inttype), dimension(:), pointer l1
integer(kind=inttype), dimension(:), pointer l3
integer(kind=inttype), dimension(:), pointer dknbeg
integer(kind=inttype), dimension(:), pointer dinbeg
integer(kind=inttype) nsubface
real(kind=realtype), dimension(:, :, :, :), pointer x
integer(kind=inttype), dimension(:), pointer inbeg
integer(kind=inttype), dimension(:), pointer l2
type(cgnsblockinfotype), dimension(:), allocatable cgnsdoms
integer(kind=inttype) cgnsndom
integer, dimension(:), allocatable recvrequests
integer, dimension(:), allocatable sendrequests
integer adflow_comm_world
real(kind=realtype), parameter zero
integer(kind=inttype), parameter imax
integer(kind=inttype), parameter kmin
real(kind=realtype), parameter four
integer(kind=inttype), parameter jmax
real(kind=realtype), parameter eps
real(kind=realtype), parameter one
integer(kind=inttype), parameter imin
real(kind=realtype), parameter large
integer(kind=inttype), parameter kmax
integer(kind=inttype), parameter jmin
subroutine check1to1subfaces
subroutine checksubfacecoor(subfaceInfo, coor, nFace, nBad, badSubfaces, badDist, nSpectral)
subroutine checkfacesblock(blockIsBad, faceID, multiple)
subroutine periodictransformsubface(coor, nn, rotCenter, rotAngles, translation)
subroutine sortbadentities(nEntities, entities, dist, sortDist)
integer(kind=inttype) function delta(val1, val2)
subroutine setpointers(nn, mm, ll)
subroutine terminate(routineName, errorMessage)