24 integer(kind=intType),
intent(in) :: level
30 integer(kind=intType) :: i, j, k, ii, jj, kk, n1to1
31 integer(kind=intType) :: nn, mm, iil, jjl, kkl, il, jl, kl
32 integer(kind=intType) :: iBeg, jBeg, kBeg, iEnd, jEnd, kEnd
33 integer(kind=intType) :: l1, L2, l3
34 integer(kind=intType) :: levm1, donorOffset, fact
36 integer(kind=intType),
dimension(:),
allocatable :: imap, iimap
37 integer(kind=intType),
dimension(:),
allocatable :: jmap, jjmap
38 integer(kind=intType),
dimension(:),
allocatable :: kmap, kkmap
40 integer(kind=intType),
dimension(:),
pointer :: dfine
42 logical,
dimension(:),
pointer :: iCo, jCo, kCo
61 "Memory allocation failure for subface1to1 &
67 domains:
do nn = 1,
ndom
82 flowdoms(nn, level, 1)%cgnsBlockID = &
84 flowdoms(nn, level, 1)%blockIsMoving = &
86 flowdoms(nn, level, 1)%addGridVelocities = &
87 flowdoms(nn, levm1, 1)%addGridVelocities
97 allocate (
flowdoms(nn, levm1, 1)%iCo(iil), &
103 "Memory allocation failure for iCo, jCo, kCo &
114 ico = .false.; ico(1) = .true.; ico(iil) = .true.
115 jco = .false.; jco(1) = .true.; jco(jjl) = .true.
116 kco = .false.; kco(1) = .true.; kco(kkl) = .true.
121 do i = 1,
flowdoms(nn, levm1, 1)%nSubface
122 ico(
flowdoms(nn, levm1, 1)%inBeg(i)) = .true.
123 ico(
flowdoms(nn, levm1, 1)%inEnd(i)) = .true.
125 jco(
flowdoms(nn, levm1, 1)%jnBeg(i)) = .true.
126 jco(
flowdoms(nn, levm1, 1)%jnEnd(i)) = .true.
128 kco(
flowdoms(nn, levm1, 1)%knBeg(i)) = .true.
129 kco(
flowdoms(nn, levm1, 1)%knEnd(i)) = .true.
141 do i = (iil - 1), 2, -1
142 if (.not. ico(i + 1)) ico(i) = .true.
150 if (.not. ico(i - 1)) ico(i) = .true.
162 do j = (jjl - 1), 2, -1
163 if (.not. jco(j + 1)) jco(j) = .true.
171 if (.not. jco(j - 1)) jco(j) = .true.
183 do k = (kkl - 1), 2, -1
184 if (.not. kco(k + 1)) kco(k) = .true.
192 if (.not. kco(k - 1)) kco(k) = .true.
202 if (ico(i)) il = il + 1
207 if (jco(j)) jl = jl + 1
212 if (kco(k)) kl = kl + 1
254 allocate (
flowdoms(nn, level, 1)%mgIFine(1:i, 2), &
255 flowdoms(nn, level, 1)%mgJFine(1:j, 2), &
256 flowdoms(nn, level, 1)%mgKFine(1:k, 2), &
257 flowdoms(nn, level, 1)%mgIWeight(2:il), &
258 flowdoms(nn, level, 1)%mgJWeight(2:jl), &
259 flowdoms(nn, level, 1)%mgKWeight(2:kl), &
260 flowdoms(nn, levm1, 1)%mgICoarse(2:iil, 2), &
261 flowdoms(nn, levm1, 1)%mgJCoarse(2:jjl, 2), &
262 flowdoms(nn, levm1, 1)%mgKCoarse(2:kkl, 2), stat=ierr)
265 "Memory allocation failure for interpolation &
270 flowdoms(nn, level, 1)%mgIFine(1, 1:2) = (/0, 1/)
271 flowdoms(nn, level, 1)%mgJFine(1, 1:2) = (/0, 1/)
272 flowdoms(nn, level, 1)%mgKFine(1, 1:2) = (/0, 1/)
287 flowdoms(nn, level, 1)%mgIFine(ii, 1) = i
288 flowdoms(nn, level, 1)%mgIFine(ii, 2) = i
291 flowdoms(nn, level, 1)%mgIFine(ii, 1) = i - 1
292 flowdoms(nn, level, 1)%mgIFine(ii, 2) = i
305 flowdoms(nn, level, 1)%mgJFine(jj, 1) = j
306 flowdoms(nn, level, 1)%mgJFine(jj, 2) = j
309 flowdoms(nn, level, 1)%mgJFine(jj, 1) = j - 1
310 flowdoms(nn, level, 1)%mgJFine(jj, 2) = j
323 flowdoms(nn, level, 1)%mgKFine(kk, 1) = k
324 flowdoms(nn, level, 1)%mgKFine(kk, 2) = k
327 flowdoms(nn, level, 1)%mgKFine(kk, 1) = k - 1
328 flowdoms(nn, level, 1)%mgKFine(kk, 2) = k
341 flowdoms(nn, levm1, 1)%mgICoarse(i, 1) = ii
342 flowdoms(nn, levm1, 1)%mgICoarse(i, 2) = ii
344 flowdoms(nn, levm1, 1)%mgICoarse(i, 1) = ii
345 flowdoms(nn, levm1, 1)%mgICoarse(i, 2) = ii + 1
349 flowdoms(nn, levm1, 1)%mgICoarse(i, 1) = ii
350 flowdoms(nn, levm1, 1)%mgICoarse(i, 2) = ii - 1
360 flowdoms(nn, levm1, 1)%mgJCoarse(j, 1) = jj
361 flowdoms(nn, levm1, 1)%mgJCoarse(j, 2) = jj
363 flowdoms(nn, levm1, 1)%mgJCoarse(j, 1) = jj
364 flowdoms(nn, levm1, 1)%mgJCoarse(j, 2) = jj + 1
368 flowdoms(nn, levm1, 1)%mgJCoarse(j, 1) = jj
369 flowdoms(nn, levm1, 1)%mgJCoarse(j, 2) = jj - 1
379 flowdoms(nn, levm1, 1)%mgKCoarse(k, 1) = kk
380 flowdoms(nn, levm1, 1)%mgKCoarse(k, 2) = kk
382 flowdoms(nn, levm1, 1)%mgKCoarse(k, 1) = kk
383 flowdoms(nn, levm1, 1)%mgKCoarse(k, 2) = kk + 1
387 flowdoms(nn, levm1, 1)%mgKCoarse(k, 1) = kk
388 flowdoms(nn, levm1, 1)%mgKCoarse(k, 2) = kk - 1
398 allocate (imap(iil), jmap(jjl), kmap(kkl), &
399 iimap(il), jjmap(jl), kkmap(kl), stat=ierr)
402 "Memory allocation failure for imap, etc")
449 mm =
flowdoms(nn, level, 1)%nSubface
450 allocate (
flowdoms(nn, level, 1)%BCType(mm), &
451 flowdoms(nn, level, 1)%BCFaceID(mm), &
452 flowdoms(nn, level, 1)%cgnsSubface(mm), &
453 flowdoms(nn, level, 1)%neighBlock(mm), &
454 flowdoms(nn, level, 1)%neighProc(mm), &
455 flowdoms(nn, level, 1)%groupNum(mm), &
462 flowdoms(nn, level, 1)%dinBeg(mm), &
463 flowdoms(nn, level, 1)%djnBeg(mm), &
464 flowdoms(nn, level, 1)%dknBeg(mm), &
465 flowdoms(nn, level, 1)%dinEnd(mm), &
466 flowdoms(nn, level, 1)%djnEnd(mm), &
467 flowdoms(nn, level, 1)%dknEnd(mm), &
474 "Memory allocation failure for subface info")
478 subfaces:
do mm = 1,
flowdoms(nn, level, 1)%nSubface
482 flowdoms(nn, level, 1)%inBeg(mm) = &
483 imap(
flowdoms(nn, levm1, 1)%inBeg(mm))
484 flowdoms(nn, level, 1)%jnBeg(mm) = &
485 jmap(
flowdoms(nn, levm1, 1)%jnBeg(mm))
486 flowdoms(nn, level, 1)%knBeg(mm) = &
487 kmap(
flowdoms(nn, levm1, 1)%knBeg(mm))
489 flowdoms(nn, level, 1)%inEnd(mm) = &
490 imap(
flowdoms(nn, levm1, 1)%inEnd(mm))
491 flowdoms(nn, level, 1)%jnEnd(mm) = &
492 jmap(
flowdoms(nn, levm1, 1)%jnEnd(mm))
493 flowdoms(nn, level, 1)%knEnd(mm) = &
494 kmap(
flowdoms(nn, levm1, 1)%knEnd(mm))
498 flowdoms(nn, level, 1)%BCType(mm) = &
500 flowdoms(nn, level, 1)%BCFaceID(mm) = &
502 flowdoms(nn, level, 1)%neighBlock(mm) = &
503 flowdoms(nn, levm1, 1)%neighBlock(mm)
504 flowdoms(nn, level, 1)%neighProc(mm) = &
505 flowdoms(nn, levm1, 1)%neighProc(mm)
506 flowdoms(nn, level, 1)%groupNum(mm) = &
508 flowdoms(nn, level, 1)%cgnsSubface(mm) = &
509 flowdoms(nn, levm1, 1)%cgnsSubface(mm)
520 subface_1to1:
if (mm >
flowdoms(nn, level, 1)%nBocos .and. &
521 mm <= (
flowdoms(nn, level, 1)%nBocos &
522 +
flowdoms(nn, level, 1)%n1to1))
then
560 flowdoms(nn, level, 1)%neighProc(mm)
562 flowdoms(nn, level, 1)%neighBlock(mm)
575 if (l1 < 0) fact = -1
581 allocate (
subface1to1(n1to1)%idfine(ii), stat=ierr)
584 donoroffset =
flowdoms(nn, levm1, 1)%dinBeg(mm)
586 allocate (
subface1to1(n1to1)%jdfine(ii), stat=ierr)
589 donoroffset =
flowdoms(nn, levm1, 1)%djnBeg(mm)
591 allocate (
subface1to1(n1to1)%kdfine(ii), stat=ierr)
594 donoroffset =
flowdoms(nn, levm1, 1)%dknBeg(mm)
599 "Memory allocation failure for idfine")
603 jj = fact * (iimap(i) -
flowdoms(nn, levm1, 1)%inBeg(mm))
604 dfine(ii) = jj + donoroffset
612 if (l2 < 0) fact = -1
618 allocate (
subface1to1(n1to1)%idfine(ii), stat=ierr)
621 donoroffset =
flowdoms(nn, levm1, 1)%dinBeg(mm)
623 allocate (
subface1to1(n1to1)%jdfine(ii), stat=ierr)
626 donoroffset =
flowdoms(nn, levm1, 1)%djnBeg(mm)
628 allocate (
subface1to1(n1to1)%kdfine(ii), stat=ierr)
631 donoroffset =
flowdoms(nn, levm1, 1)%dknBeg(mm)
636 "Memory allocation failure for jdfine")
640 ii = fact * (jjmap(j) -
flowdoms(nn, levm1, 1)%jnBeg(mm))
641 dfine(jj) = ii + donoroffset
649 if (l3 < 0) fact = -1
655 allocate (
subface1to1(n1to1)%idfine(ii), stat=ierr)
658 donoroffset =
flowdoms(nn, levm1, 1)%dinBeg(mm)
660 allocate (
subface1to1(n1to1)%jdfine(ii), stat=ierr)
663 donoroffset =
flowdoms(nn, levm1, 1)%djnBeg(mm)
665 allocate (
subface1to1(n1to1)%kdfine(ii), stat=ierr)
668 donoroffset =
flowdoms(nn, levm1, 1)%dknBeg(mm)
673 "Memory allocation failure for kdfine")
677 ii = fact * (kkmap(k) -
flowdoms(nn, levm1, 1)%knBeg(mm))
678 dfine(kk) = ii + donoroffset
688 deallocate (imap, jmap, kmap, iimap, jjmap, kkmap, stat=ierr)
691 "Deallocation error for imap, iimap, etc.")
701 allocate (
flowdoms(nn, level, mm)%x(0:ii, 0:jj, 0:kk, 3), stat=ierr)
704 "Memory allocation failure for x")
737 flowdoms(nn, level, mm)%blockIsMoving = &
738 flowdoms(nn, level, 1)%blockIsMoving
739 flowdoms(nn, level, mm)%cgnsBlockID = &
742 flowdoms(nn, level, mm)%addGridVelocities = &
743 flowdoms(nn, level, 1)%addGridVelocities
765 deallocate (
coarseinfo(nn)%coarseIs1to1, stat=ierr)
768 "Deallocation error for coarseIs1to1")
774 "Deallocation error for coarseInfo")
794 integer(kind=intType),
intent(in) :: level
798 integer(kind=intType) :: i, j, k, ii, jj, kk
799 integer(kind=intType) :: nn, mm, il, jl, kl, levm1
801 logical,
dimension(:),
pointer :: iCo, jCo, kCo
809 domains:
do nn = 1,
ndom
838 flowdoms(nn, level, mm)%x(ii, jj, kk, 1) = &
839 flowdoms(nn, levm1, mm)%x(i, j, k, 1)
840 flowdoms(nn, level, mm)%x(ii, jj, kk, 2) = &
841 flowdoms(nn, levm1, mm)%x(i, j, k, 2)
842 flowdoms(nn, level, mm)%x(ii, jj, kk, 3) = &
843 flowdoms(nn, levm1, mm)%x(i, j, k, 3)
874 integer(kind=intType),
intent(in) :: level
879 integer(kind=intType) :: levm1, nn, mm, ii, jj, kk, ll
880 integer(kind=intType) :: i, j, k
881 integer(kind=intType) :: iBeg, jBeg, kBeg, iEnd, jEnd, kEnd
883 logical :: subfaceFound, idir, jdir, kdir
893 nn = subface%neighBlock
896 ibeg = min(subface%idfine(1), subface%idfine(mm))
897 iend = max(subface%idfine(1), subface%idfine(mm))
900 jbeg = min(subface%jdfine(1), subface%jdfine(mm))
901 jend = max(subface%jdfine(1), subface%jdfine(mm))
904 kbeg = min(subface%kdfine(1), subface%kdfine(mm))
905 kend = max(subface%kdfine(1), subface%kdfine(mm))
910 subfacefound = .false.
911 findsubface:
do ii = 1,
flowdoms(nn, levm1, 1)%n1to1
913 mm = ii +
flowdoms(nn, levm1, 1)%nBocos
917 kk = min(
flowdoms(nn, levm1, 1)%inBeg(mm), &
919 ll = max(
flowdoms(nn, levm1, 1)%inBeg(mm), &
922 if (kk == ibeg .and. ll == iend)
then
923 kk = min(
flowdoms(nn, levm1, 1)%jnBeg(mm), &
925 ll = max(
flowdoms(nn, levm1, 1)%jnBeg(mm), &
928 if (kk == jbeg .and. ll == jend)
then
929 kk = min(
flowdoms(nn, levm1, 1)%knBeg(mm), &
931 ll = max(
flowdoms(nn, levm1, 1)%knBeg(mm), &
934 if (kk == kbeg .and. ll == kend) subfacefound = .true.
940 if (subfacefound)
exit
945 if (.not. subfacefound) &
947 "Invalid fine grid 1 to 1 subface connectivity")
954 ii = abs(
flowdoms(nn, level, 1)%inEnd(mm) &
955 -
flowdoms(nn, level, 1)%inBeg(mm)) + 1
957 if (ii == subface%ndi)
then
958 do i = 1, subface%ndi
959 ii = subface%idfine(i)
960 if (.not.
flowdoms(nn, levm1, 1)%ico(ii)) idir = .false.
971 jj = abs(
flowdoms(nn, level, 1)%jnEnd(mm) &
972 -
flowdoms(nn, level, 1)%jnBeg(mm)) + 1
974 if (jj == subface%ndj)
then
975 do j = 1, subface%ndj
976 jj = subface%jdfine(j)
977 if (.not.
flowdoms(nn, levm1, 1)%jco(jj)) jdir = .false.
988 kk = abs(
flowdoms(nn, level, 1)%knEnd(mm) &
989 -
flowdoms(nn, level, 1)%knBeg(mm)) + 1
991 if (kk == subface%ndk)
then
992 do k = 1, subface%ndk
993 kk = subface%kdfine(k)
994 if (.not.
flowdoms(nn, levm1, 1)%kco(kk)) kdir = .false.
1003 ii = mm -
flowdoms(nn, levm1, 1)%nBocos
1004 if (idir .and. jdir .and. kdir)
then
1013 if (
flowdoms(nn, levm1, 1)%dinBeg(mm) < &
1014 flowdoms(nn, levm1, 1)%dinEnd(mm))
then
1015 flowdoms(nn, level, 1)%dinBeg(mm) = subface%iBeg
1016 flowdoms(nn, level, 1)%dinEnd(mm) = subface%iEnd
1018 flowdoms(nn, level, 1)%dinBeg(mm) = subface%iEnd
1019 flowdoms(nn, level, 1)%dinEnd(mm) = subface%iBeg
1022 if (
flowdoms(nn, levm1, 1)%djnBeg(mm) < &
1023 flowdoms(nn, levm1, 1)%djnEnd(mm))
then
1024 flowdoms(nn, level, 1)%djnBeg(mm) = subface%jBeg
1025 flowdoms(nn, level, 1)%djnEnd(mm) = subface%jEnd
1027 flowdoms(nn, level, 1)%djnBeg(mm) = subface%jEnd
1028 flowdoms(nn, level, 1)%djnEnd(mm) = subface%jBeg
1031 if (
flowdoms(nn, levm1, 1)%dknBeg(mm) < &
1032 flowdoms(nn, levm1, 1)%dknEnd(mm))
then
1033 flowdoms(nn, level, 1)%dknBeg(mm) = subface%kBeg
1034 flowdoms(nn, level, 1)%dknEnd(mm) = subface%kEnd
1036 flowdoms(nn, level, 1)%dknBeg(mm) = subface%kEnd
1037 flowdoms(nn, level, 1)%dknEnd(mm) = subface%kBeg
1053 integer(kind=intType),
intent(in) :: level
1057 integer :: proc, size, ierr
1059 integer,
dimension(mpi_status_size) :: mpiStatus
1060 integer,
dimension(nProc) :: sizeMessage
1062 integer(kind=intType) :: nn, mm, ii, i
1063 integer(kind=intType) :: nMessageReceive, nMessageSend
1065 integer(kind=intType),
dimension(0:nProc) :: size2proc
1066 integer(kind=intType),
dimension(nProc) :: tmp
1068 integer(kind=intType),
dimension(:),
allocatable :: sendBuf
1069 integer(kind=intType),
dimension(:),
allocatable,
target :: recvBuf
1079 size2proc(mm) = size2proc(mm) + 13 &
1089 size2proc(
myid + 1) = 0
1098 if (size2proc(nn) > 0)
then
1099 nmessagesend = nmessagesend + 1
1109 call mpi_reduce_scatter(tmp, nmessagereceive, sizemessage, &
1117 size2proc(nn) = size2proc(nn) + size2proc(nn - 1)
1118 tmp(nn) = size2proc(nn - 1)
1123 allocate (sendbuf(size2proc(
nproc)), stat=ierr)
1126 "Memory allocation failure for sendBuf")
1145 tmp(mm) = tmp(mm) + 1
1148 tmp(mm) = tmp(mm) + 1
1151 tmp(mm) = tmp(mm) + 1
1154 tmp(mm) = tmp(mm) + 1
1157 tmp(mm) = tmp(mm) + 1
1160 tmp(mm) = tmp(mm) + 1
1163 tmp(mm) = tmp(mm) + 1
1169 tmp(mm) = tmp(mm) + 1
1172 tmp(mm) = tmp(mm) + 1
1175 tmp(mm) = tmp(mm) + 1
1181 tmp(mm) = tmp(mm) + 1
1188 tmp(mm) = tmp(mm) + 1
1195 tmp(mm) = tmp(mm) + 1
1201 end do unownedsubfaces
1206 sends:
do nn = 1,
nproc
1208 if (size2proc(nn) > size2proc(nn - 1))
then
1215 size = size2proc(nn) - size2proc(nn - 1)
1216 ii = size2proc(nn - 1) + 1
1220 call mpi_isend(sendbuf(ii),
size, adflow_integer, proc, proc, &
1242 "Deallocation error for idfine, etc")
1248 "Deallocation error for subface1to1")
1253 receives:
do nn = 1, nmessagereceive
1262 proc = mpistatus(mpi_source)
1263 call mpi_get_count(mpistatus, adflow_integer,
size, ierr)
1269 if (
size == mpi_undefined) &
1271 "Unexpected size of message")
1276 allocate (recvbuf(size), stat=ierr)
1279 "Memory allocation failure for recvBuf")
1284 call mpi_recv(recvbuf,
size, adflow_integer, proc,
myid, &
1297 tmpsubface%neighProc = proc
1298 tmpsubface%neighBlock = recvbuf(ii); ii = ii + 1
1300 tmpsubface%iBeg = recvbuf(ii); ii = ii + 1
1301 tmpsubface%jBeg = recvbuf(ii); ii = ii + 1
1302 tmpsubface%kBeg = recvbuf(ii); ii = ii + 1
1304 tmpsubface%iEnd = recvbuf(ii); ii = ii + 1
1305 tmpsubface%jEnd = recvbuf(ii); ii = ii + 1
1306 tmpsubface%kEnd = recvbuf(ii); ii = ii + 1
1308 tmpsubface%ndi = recvbuf(ii); ii = ii + 1
1309 tmpsubface%ndj = recvbuf(ii); ii = ii + 1
1310 tmpsubface%ndk = recvbuf(ii); ii = ii + 1
1312 mm = ii + tmpsubface%ndi
1313 tmpsubface%idfine => recvbuf(ii:(mm - 1))
1316 mm = ii + tmpsubface%ndj
1317 tmpsubface%jdfine => recvbuf(ii:(mm - 1))
1320 mm = ii + tmpsubface%ndk
1321 tmpsubface%kdfine => recvbuf(ii:(mm - 1))
1328 end do extractsubface
1332 deallocate (recvbuf, stat=ierr)
1335 "Deallocation failure for recvBuf")
1342 do nn = 1, nmessagesend
1343 call mpi_waitany(
size,
sendrequests, proc, mpistatus, ierr)
1348 deallocate (sendbuf, stat=ierr)
1351 "Deallocation failure for sendBuf")
1376 integer(kind=intType),
intent(in) :: level
1380 character(len=maxStringLen) :: errorMessage
1382 integer(kind=intType) :: i, nn, mm, kk, ll
1386 domains:
do nn = 1,
ndom
1398 if (i >
flowdoms(nn, level, 1)%n1to1)
exit
1403 mm = i +
flowdoms(nn, level, 1)%nBocos
1407 is1to1:
if (
coarseinfo(nn)%coarseIs1to1(i))
then
1424 ll =
flowdoms(nn, level, 1)%inBeg(mm)
1426 flowdoms(nn, level, 1)%inBeg(kk) = ll
1428 ll =
flowdoms(nn, level, 1)%jnBeg(mm)
1430 flowdoms(nn, level, 1)%jnBeg(kk) = ll
1432 ll =
flowdoms(nn, level, 1)%knBeg(mm)
1434 flowdoms(nn, level, 1)%knBeg(kk) = ll
1436 ll =
flowdoms(nn, level, 1)%inEnd(mm)
1438 flowdoms(nn, level, 1)%inEnd(kk) = ll
1440 ll =
flowdoms(nn, level, 1)%jnEnd(mm)
1442 flowdoms(nn, level, 1)%jnEnd(kk) = ll
1444 ll =
flowdoms(nn, level, 1)%knEnd(mm)
1446 flowdoms(nn, level, 1)%knEnd(kk) = ll
1450 ll =
flowdoms(nn, level, 1)%dinBeg(mm)
1452 flowdoms(nn, level, 1)%dinBeg(kk) = ll
1454 ll =
flowdoms(nn, level, 1)%djnBeg(mm)
1456 flowdoms(nn, level, 1)%djnBeg(kk) = ll
1458 ll =
flowdoms(nn, level, 1)%dknBeg(mm)
1460 flowdoms(nn, level, 1)%dknBeg(kk) = ll
1462 ll =
flowdoms(nn, level, 1)%dinEnd(mm)
1464 flowdoms(nn, level, 1)%dinEnd(kk) = ll
1466 ll =
flowdoms(nn, level, 1)%djnEnd(mm)
1468 flowdoms(nn, level, 1)%djnEnd(kk) = ll
1470 ll =
flowdoms(nn, level, 1)%dknEnd(mm)
1472 flowdoms(nn, level, 1)%dknEnd(kk) = ll
1490 ll =
flowdoms(nn, level, 1)%BCType(mm)
1491 flowdoms(nn, level, 1)%BCType(mm) = &
1493 flowdoms(nn, level, 1)%BCType(kk) = ll
1495 ll =
flowdoms(nn, level, 1)%BCFaceID(mm)
1496 flowdoms(nn, level, 1)%BCFaceID(mm) = &
1497 flowdoms(nn, level, 1)%BCFaceID(kk)
1498 flowdoms(nn, level, 1)%BCFaceID(kk) = ll
1500 ll =
flowdoms(nn, level, 1)%neighBlock(mm)
1501 flowdoms(nn, level, 1)%neighBlock(mm) = &
1502 flowdoms(nn, level, 1)%neighBlock(kk)
1503 flowdoms(nn, level, 1)%neighBlock(kk) = ll
1505 ll =
flowdoms(nn, level, 1)%neighProc(mm)
1506 flowdoms(nn, level, 1)%neighProc(mm) = &
1507 flowdoms(nn, level, 1)%neighProc(kk)
1508 flowdoms(nn, level, 1)%neighProc(kk) = ll
1510 ll =
flowdoms(nn, level, 1)%groupNum(mm)
1511 flowdoms(nn, level, 1)%groupNum(mm) = &
1512 flowdoms(nn, level, 1)%groupNum(kk)
1513 flowdoms(nn, level, 1)%groupNum(kk) = ll
1515 ll =
flowdoms(nn, level, 1)%cgnsSubface(mm)
1516 flowdoms(nn, level, 1)%cgnsSubface(mm) = &
1517 flowdoms(nn, level, 1)%cgnsSubface(kk)
1518 flowdoms(nn, level, 1)%cgnsSubface(kk) = ll
1525 ll =
flowdoms(nn, 1, 1)%cgnsBlockID
1526 write (errormessage,
strings)
"Non-matching block-to-block face on zone ",
cgnsdoms(ll)%zoneName, &
1527 "...Support not implemented yet."
1528 call terminate(
"checkCoarse1to1", errormessage)
integer(kind=inttype) ndom
type(blocktype), dimension(:, :, :), allocatable, target flowdoms
type(cgnsblockinfotype), dimension(:), allocatable cgnsdoms
type(coarse1to1subfacetype), dimension(:), allocatable subface1to1
integer(kind=inttype) nsubface1to1
type(coarseninginfotype), dimension(:), allocatable coarseinfo
subroutine createcoarseblocks(level)
subroutine update1to1coarse(level, subface)
subroutine checkcoarse1to1(level)
subroutine coarsedonorinfo(level)
subroutine coarseownedcoordinates(level)
integer, dimension(:), allocatable sendrequests
integer adflow_comm_world
integer(kind=portype), parameter regular
real(kind=realtype), parameter one
real(kind=realtype), parameter half
integer(kind=portype), parameter rightstarted
integer(kind=portype), parameter leftstarted
subroutine terminate(routineName, errorMessage)