26 COMMON /scruz/ xm3(lx3,ly3,lz3,lelt)
27 $ , ym3(lx3,ly3,lz3,lelt)
28 $ , zm3(lx3,ly3,lz3,lelt)
30 common /c_is1/ glo_num(1*lx1*ly1*lz1*lelv)
32 common /ivrtx/ vertex((2**ldim)*lelt)
35 if(nio.eq.0)
write(6,*)
'setup mesh topology'
44 call dsset (nxl,nyl,nzl)
77 if (nelgv.eq.nelgt)
then
79 call setupds(gsh_fld(1),lx1,ly1,lz1,nelv,nelgv,vertex,glo_num)
97 call setupds(gsh_fld(1),lx1,ly1,lz1,nelv,nelgv,vertex,glo_num)
101 call setupds(gsh_fld(2),lx1,ly1,lz1,nelt,nelgt,vertex,glo_num)
125 ntotv = lx1*ly1*lz1*nelv
126 ntott = lx1*ly1*lz1*nelt
132 call rone (vmult,ntotv)
133 call dssum (vmult,lx1,ly1,lz1)
134 vmltmax=
glmax(vmult,ntotv)
136 if (nio.eq.0)
write(6,*) ivmltmax,
' max multiplicity'
141 call rone (tmult,ntott)
142 call dssum (tmult,lx1,ly1,lz1)
145 if (.not.ifflow)
call copy(vmult,tmult,ntott)
146 if (ifmvbd)
call copy (wmult,vmult,ntott)
148 if (nelg(ifield).eq.nelgv)
then
149 gsh_fld(ifield) = gsh_fld(1)
150 call copy (tmult(1,1,1,1,ifield-1),vmult,ntotv)
152 gsh_fld(ifield) = gsh_fld(2)
153 call copy (tmult(1,1,1,1,ifield-1),tmult,ntott)
157 ifgsh_fld_same = .true.
159 if (gsh_fld(ifield).ne.gsh_fld(1))
then
160 ifgsh_fld_same = .false.
167 write(6,*)
'done :: setup mesh topology'
316 COMMON /ctmp0/ itmp(3,3,3)
343 iedge(i)=ix+nxl*(iy-1)+nxy*(iz-1)
354 iedge(i)=ix+nxl*(iy-1)+nxy*(iz-1)
365 iedge(i)=ix+nxl*(iy-1)+nxy*(iz-1)
377 iedge(i)=ix+nxl*(iy-1)+nxy*(iz-1)
381 CALL izero(invedg,27)
407 DO 500 iface=1,nfaces
408 js1 = skpdat(1,iface)
409 jf1 = skpdat(2,iface)
410 jskip1 = skpdat(3,iface)
411 js2 = skpdat(4,iface)
412 jf2 = skpdat(5,iface)
413 jskip2 = skpdat(6,iface)
417 order = (-1)**(group(iface)+image)
438 DO 100 j1=js1,jf1-jskip1,jskip1
440 iedgef(j,1,iface,image)=itmp(j1,j2,1)
447 DO 200 j2=js2,jf2-jskip2,jskip2
449 iedgef(j,2,iface,image)=itmp(j1,j2,1)
457 DO 300 j1=jf1,js1+jskip1,-jskip1
459 iedgef(j,3,iface,image)=itmp(j1,j2,1)
466 DO 400 j2=jf2,js2+jskip2,-jskip2
468 iedgef(j,4,iface,image)=itmp(j1,j2,1)
491 DO 105 j2=js2,jf2-jskip2,jskip2
493 iedgef(j,1,iface,image)=itmp(j1,j2,1)
500 DO 205 j1=js1,jf1-jskip1,jskip1
502 iedgef(j,2,iface,image)=itmp(j1,j2,1)
509 DO 305 j2=jf2,js2+jskip2,-jskip2
511 iedgef(j,3,iface,image)=itmp(j1,j2,1)
518 DO 405 j1=jf1,js1+jskip1,-jskip1
520 iedgef(j,4,iface,image)=itmp(j1,j2,1)
530 iedgef(1,1,1,0) = nxy - nxl + 1
532 iedgef(1,1,2,0) = nxl
533 iedgef(1,2,2,0) = nxy
535 iedgef(1,2,3,0) = nxl
536 iedgef(1,1,4,0) = nxy
537 iedgef(1,2,4,0) = nxy - nxl + 1
540 iedgef(1,2,1,1) = nxy - nxl + 1
541 iedgef(1,1,2,1) = nxy
542 iedgef(1,2,2,1) = nxl
543 iedgef(1,1,3,1) = nxl
545 iedgef(1,1,4,1) = nxy - nxl + 1
546 iedgef(1,2,4,1) = nxy
561 DATA nxo,nyo,nzo /3*0/
565 IF (nxo.EQ.nx.AND.nyo.EQ.ny.AND.nzo.EQ.nz)
RETURN
584 ixcn(ic)= 1 + (nx-1)*icx + nx*(ny-1)*icy + nx*ny*(nz-1)*icz
593 skpdat(2,1)=nx*(ny-1)+1
596 skpdat(5,1)=ny*(nz-1)+1
599 skpdat(1,2)=1 + (nx-1)
600 skpdat(2,2)=nx*(ny-1)+1 + (nx-1)
603 skpdat(5,2)=ny*(nz-1)+1
612 skpdat(5,3)=ny*(nz-1)+1
615 skpdat(1,4)=1 + nx*(ny-1)
616 skpdat(2,4)=nx + nx*(ny-1)
619 skpdat(5,4)=ny*(nz-1)+1
631 skpdat(1,6)=1 + nx*ny*(nz-1)
632 skpdat(2,6)=nx + nx*ny*(nz-1)
648 eskip( 1,1) = ixcn(1) + 1
649 eskip( 1,2) = ixcn(2) - 1
651 eskip( 2,1) = ixcn(3) + 1
652 eskip( 2,2) = ixcn(4) - 1
654 eskip( 3,1) = ixcn(5) + 1
655 eskip( 3,2) = ixcn(6) - 1
657 eskip( 4,1) = ixcn(7) + 1
658 eskip( 4,2) = ixcn(8) - 1
660 eskip( 5,1) = ixcn(1) + nx
661 eskip( 5,2) = ixcn(3) - nx
663 eskip( 6,1) = ixcn(2) + nx
664 eskip( 6,2) = ixcn(4) - nx
666 eskip( 7,1) = ixcn(5) + nx
667 eskip( 7,2) = ixcn(7) - nx
669 eskip( 8,1) = ixcn(6) + nx
670 eskip( 8,2) = ixcn(8) - nx
672 eskip( 9,1) = ixcn(1) + nxy
673 eskip( 9,2) = ixcn(5) - nxy
675 eskip(10,1) = ixcn(2) + nxy
676 eskip(10,2) = ixcn(6) - nxy
678 eskip(11,1) = ixcn(3) + nxy
679 eskip(11,2) = ixcn(7) - nxy
681 eskip(12,1) = ixcn(4) + nxy
682 eskip(12,2) = ixcn(8) - nxy
689 eskip(iedm,1) = eskip(ied,2)
690 eskip(iedm,2) = eskip(ied,1)
691 eskip(iedm,3) = -eskip(ied,3)
722 COMMON /ctmp0/ xcb(2,2,2),ycb(2,2,2),zcb(2,2,2),h(3,3,2),indx(8)
727 ntot3=nxl*nyl*nzl*nelt
740 h(ix,1,1)=0.5*float(3-ix)
741 h(ix,1,2)=0.5*float(ix-1)
744 h(iy,2,1)=0.5*float(3-iy)
745 h(iy,2,2)=0.5*float(iy-1)
748 h(iz,3,1)=0.5*float(3-iz)
749 h(iz,3,2)=0.5*float(iz-1)
761 CALL rzero(xml,ntot3)
762 CALL rzero(yml,ntot3)
763 CALL rzero(zml,ntot3)
787 xml(ix,iy,iz,ie)=xml(ix,iy,iz,ie)+
788 $ h(ix,1,ixt)*h(iy,2,iyt)*h(iz,3,izt)*xcb(ixt,iyt,izt)
789 yml(ix,iy,iz,ie)=yml(ix,iy,iz,ie)+
790 $ h(ix,1,ixt)*h(iy,2,iyt)*h(iz,3,izt)*ycb(ixt,iyt,izt)
791 zml(ix,iy,iz,ie)=zml(ix,iy,iz,ie)+
792 $ h(ix,1,ixt)*h(iy,2,iyt)*h(iz,3,izt)*zcb(ixt,iyt,izt)
838 call rzero(xyz,24*nelt)
843 xyz(1,ivtx,ie) = xc(j,ie)
844 xyz(2,ivtx,ie) = yc(j,ie)
845 xyz(3,ivtx,ie) = zc(j,ie)
855 xyz(1,ivtx,ie) = xc(j,ie)
856 xyz(2,ivtx,ie) = yc(j,ie)
866 CALL rzero(side,24*nelt)
869 ivtx = icface(icrn,ifac)
870 icr1 = ncrnr+(icrn-1)
871 icr1 =
mod1(icr1,ncrnr)
872 ivt1 = icface(icr1,ifac)
875 side(idim,ifac,ie)=side(idim,ifac,ie)+xyz(idim,ivtx,ie)
876 side( 4,ifac,ie)=side( 4,ifac,ie)+
877 $ ( xyz(idim,ivtx,ie)-xyz(idim,ivt1,ie) )**2
879 side(4,ifac,ie)=sqrt( side(4,ifac,ie) )
882 avwght=1.0/float(ncrnr)
883 CALL cmult(side,avwght,24*nelt)
907 c1=
crss2d(xyz(1,2,ie),xyz(1,3,ie),xyz(1,1,ie))
908 c2=
crss2d(xyz(1,4,ie),xyz(1,1,ie),xyz(1,2,ie))
909 c3=
crss2d(xyz(1,1,ie),xyz(1,4,ie),xyz(1,3,ie))
910 c4=
crss2d(xyz(1,3,ie),xyz(1,2,ie),xyz(1,4,ie))
912 IF (c1.LE.0.0.OR.c2.LE.0.0.OR.
913 $ c3.LE.0.0.OR.c4.LE.0.0 )
THEN
916 WRITE(6,800) ieg,c1,c2,c3,c4
918 800
FORMAT(/,2x,
'WARNINGa: Detected non-right-handed element.',
919 $ /,2x,
'Number',i8,
' C1-4:',4e12.4)
933 v1=
volum0(xyz(1,2,ie),xyz(1,3,ie),xyz(1,5,ie),xyz(1,1,ie))
934 v2=
volum0(xyz(1,4,ie),xyz(1,1,ie),xyz(1,6,ie),xyz(1,2,ie))
935 v3=
volum0(xyz(1,1,ie),xyz(1,4,ie),xyz(1,7,ie),xyz(1,3,ie))
936 v4=
volum0(xyz(1,3,ie),xyz(1,2,ie),xyz(1,8,ie),xyz(1,4,ie))
937 v5=-
volum0(xyz(1,6,ie),xyz(1,7,ie),xyz(1,1,ie),xyz(1,5,ie))
938 v6=-
volum0(xyz(1,8,ie),xyz(1,5,ie),xyz(1,2,ie),xyz(1,6,ie))
939 v7=-
volum0(xyz(1,5,ie),xyz(1,8,ie),xyz(1,3,ie),xyz(1,7,ie))
940 v8=-
volum0(xyz(1,7,ie),xyz(1,6,ie),xyz(1,4,ie),xyz(1,8,ie))
942 IF (v1.LE.0.0.OR.v2.LE.0.0.OR.
943 $ v3.LE.0.0.OR.v4.LE.0.0.OR.
944 $ v5.LE.0.0.OR.v6.LE.0.0.OR.
945 $ v7.LE.0.0.OR.v8.LE.0.0 )
THEN
948 WRITE(6,1800) ieg,v1,v2,v3,v4,v5,v6,v7,v8
950 1800
FORMAT(/,2x,
'WARNINGb: Detected non-right-handed element.',
951 $ /,2x,
'Number',i8,
' V1-8:',4e12.4
952 $ /,2x,
' ',4x,
' ',4e12.4)
962 IF (.NOT.ifcstt)
WRITE(6,2001)
966 CALL gllog(ifcstt,.false.)
968 IF (.NOT.ifcstt)
THEN
969 IF (nid.EQ.0)
WRITE(6,2003) nelgt
972 IF (nio.EQ.0)
WRITE(6,2002) nelgt
975 2001
FORMAT(//,
' Elemental geometry not right-handed, ABORTING'
976 $ ,
' in routine VERRHE.')
977 2002
FORMAT(
' Right-handed check complete for',i12,
' elements. OK.')
978 2003
FORMAT(
' Right-handed check failed for',i12,
' elements.'
979 $ ,
' Exiting in routine VERRHE.')
992 REAL p1(3),p2(3),p3(3),p0(3)
1006 cross1 = u2*v3-u3*v2
1007 cross2 = u3*v1-u1*v3
1008 cross3 = u1*v2-u2*v1
1010 volum0 = w1*cross1 + w2*cross2 + w3*cross3
1016 REAL xy1(2),xy2(2),xy0(2)
1022 crss2d = v1x*v2y - v1y*v2x
1027 subroutine facind (kx1,kx2,ky1,ky2,kz1,kz2,nx,ny,nz,iface)
1035 IF (iface.EQ.1) ky2=1
1036 IF (iface.EQ.2) kx1=nx
1037 IF (iface.EQ.3) ky1=ny
1038 IF (iface.EQ.4) kx2=1
1039 IF (iface.EQ.5) kz2=1
1040 IF (iface.EQ.6) kz1=nz
1044 subroutine facindr (kx1,kx2,ky1,ky2,kz1,kz2,nx,ny,nz,iface)
1055 if (iface.eq.1) ky1=1
1056 if (iface.eq.1) ky2=1
1058 if (iface.eq.2) kx1=nx
1059 if (iface.eq.2) kx2=nx
1061 if (iface.eq.3) ky1=ny
1062 if (iface.eq.3) ky2=ny
1064 if (iface.eq.4) kx1=1
1065 if (iface.eq.4) kx2=1
1067 if (iface.eq.5) kz1=1
1068 if (iface.eq.5) kz2=1
1070 if (iface.eq.6) kz1=nz
1071 if (iface.eq.6) kz2=nz
1076 subroutine facev(a,ie,iface,val,nx,ny,nz)
1082 dimension a(nx,ny,nz,lelt)
1083 CALL facind (kx1,kx2,ky1,ky2,kz1,kz2,nx,ny,nz,iface)
1098 integer a(nx,ny,nz,lelt),val
1099 call facind (kx1,kx2,ky1,ky2,kz1,kz2,nx,ny,nz,iface)
1108 subroutine facec(a,b,ie,iface,nx,ny,nz,nel)
1113 dimension a(nx,ny,nz,nel)
1114 dimension b(nx,ny,nz,nel)
1115 CALL facind (kx1,kx2,ky1,ky2,kz1,kz2,nx,ny,nz,iface)
1119 a(ix,iy,iz,ie)=b(ix,iy,iz,ie)
1126 write(6,*)
'Hey, who called combin2??? ABORT'
1134 integer x(lx1,ly1,lz1,lelt)
1139 if (iz.eq.1)
write(6,106) txt10,iz,ie
1140 if (iz.gt.1)
write(6,107)
1143 write(6,105) (x(i,j,iz,ie),i=1,lx1)
1144 $ , (x(i,j,iz,i1),i=1,lx1)
1150 105
FORMAT(4i6,20x,4i6)
1151 106
FORMAT( /,5x,
' ^ ',/,
1154 $ 5x,
' +----> ',
'Plane = ',i2,
'/',i2,/,
1162 integer x(lx1,ly1,lz1,lelt)
1165 character*6 s(20,20)
1167 if (lx1.ne.4 .or. nelv.gt.3)
return
1169 write(6,106) txt10,ie,ie
1170 106
FORMAT( /,5x,
' ^ ',/,
1173 $ 5x,
' +----> ',
'elem. = ',i2,
'/',i2,/,
1177 call blank(s,6*20*20)
1187 if (ie.eq.2) istart = 7
1194 write(s(i,j),6) x(ix,iy,1,ie)
1203 write(6,7) (s(i,l),l=1,j-1)
1213 real x(lx1,ly1,lz1,lelt)
1216 character*6 s(20,20)
1218 if (lx1.ne.4 .or. nelv.gt.3)
return
1219 write(6,106) txt10,ie,ie
1220 106
FORMAT( /,5x,
' ^ ',/,
1223 $ 5x,
' +----> ',
'elem. = ',i2,
'/',i2,/,
1225 call blank(s,6*20*20)
1237 if (ie.eq.2) istart = 7
1244 write(s(i,j),6) x(ix,iy,1,ie)
1253 write(6,7) (s(i,l),l=1,j-1)
1263 write(6,*)
'continue?'
1271 real x(lx1,ly1,lz1,lelt)
1277 if (idum.lt.0)
return
1280 mtot = lx1*ly1*lz1*nelv
1281 if (lx1.gt.8.or.nelv.gt.16)
return
1282 xmin =
glmin(x,mtot)
1283 xmax =
glmax(x,mtot)
1288 write(6,116) txt10,k,ie,xmin,xmax,istep,time
1291 if (lx1.eq.2)
write(6,102) ((x(i,j,k,e+1),i=1,lx1),e=0,ne)
1292 if (lx1.eq.3)
write(6,103) ((x(i,j,k,e+1),i=1,lx1),e=0,ne)
1293 if (lx1.eq.4)
write(6,104) ((x(i,j,k,e+1),i=1,lx1),e=0,ne)
1294 if (lx1.eq.5)
write(6,105) ((x(i,j,k,e+1),i=1,lx1),e=0,ne)
1295 if (lx1.eq.6)
write(6,106) ((x(i,j,k,e+1),i=1,lx1),e=0,ne)
1296 if (lx1.eq.7)
write(6,107) ((x(i,j,k,e+1),i=1,lx1),e=0,ne)
1297 if (lx1.eq.8)
write(6,118) ((x(i,j,k,e+1),i=1,lx1),e=0,ne)
1302 102
FORMAT(4(2f9.5,2x))
1303 103
FORMAT(4(3f9.5,2x))
1304 104
FORMAT(4(4f7.3,2x))
1305 105
FORMAT(5f9.5,10x,5f9.5)
1306 106
FORMAT(6f9.5,5x,6f9.5)
1307 107
FORMAT(7f8.4,5x,7f8.4)
1308 108
FORMAT(8f8.4,4x,8f8.4)
1311 116
FORMAT( /,5x,
' ^ ',/,
1314 $ 5x,
' +----> ',
'Plane = ',i2,
'/',i2,2x,2e12.4,/,
1315 $ 5x,
' X ',
'Step =',i9,f15.5)
1318 if (ichk.eq.1.and.idum.gt.0)
call checkit(idum)
1325 real x(lx1,ly1,lz1,lelt)
1331 if (idum.lt.0)
return
1335 mtot = lx1*ly1*lz1*nelv
1336 if (lx1.gt.7.or.nelv.gt.16)
return
1337 xmin =
glmin(x,mtot)
1338 xmax =
glmax(x,mtot)
1341 snel = sqrt(rnel)+.1
1347 if (ie.eq.ne1)
write(m,116) txt10,k,ie,xmin,xmax,istep,time
1350 if (lx1.eq.2)
write(m,102) ((x(i,j,k,e+l),i=1,lx1),e=1,ne)
1351 if (lx1.eq.3)
write(m,103) ((x(i,j,k,e+l),i=1,lx1),e=1,ne)
1352 if (lx1.eq.4)
write(m,104) ((x(i,j,k,e+l),i=1,lx1),e=1,ne)
1353 if (lx1.eq.5)
write(m,105) ((x(i,j,k,e+l),i=1,lx1),e=1,ne)
1354 if (lx1.eq.6)
write(m,106) ((x(i,j,k,e+l),i=1,lx1),e=1,ne)
1355 if (lx1.eq.7)
write(m,107) ((x(i,j,k,e+l),i=1,lx1),e=1,ne)
1356 if (lx1.eq.8)
write(m,108) ((x(i,j,k,e+l),i=1,lx1),e=1,ne)
1362 102
FORMAT(4(2f9.5,2x))
1363 103
FORMAT(4(3f9.5,2x))
1364 104
FORMAT(4(4f7.3,2x))
1365 105
FORMAT(5f9.5,10x,5f9.5)
1366 106
FORMAT(6f9.5,5x,6f9.5)
1367 107
FORMAT(7f8.4,5x,7f8.4)
1368 108
FORMAT(8f8.4,4x,8f8.4)
1370 116
FORMAT( /,5x,
' ^ ',/,
1373 $ 5x,
' +----> ',
'Plane = ',i2,
'/',i2,2x,2e12.4,/,
1374 $ 5x,
' X ',
'Step =',i9,f15.5)
1377 if (ichk.eq.1.and.idum.gt.0)
call checkit(idum)
1384 real x(lx1,ly1,lz1,lelt)
1390 if (idum.lt.0)
return
1393 mtot = lx1*ly1*lz1*nelv
1394 if (lx1.gt.7.or.nelv.gt.16)
return
1395 xmin =
glmin(x,mtot)
1396 xmax =
glmax(x,mtot)
1399 snel = sqrt(rnel)+.1
1405 if (ie.eq.ne1)
write(6,116) txt10,k,ie,xmin,xmax,istep,time
1408 if (lx1.eq.2)
write(6,102) ((x(i,j,k,e+l),i=1,lx1),e=1,ne)
1409 if (lx1.eq.3)
write(6,103) ((x(i,j,k,e+l),i=1,lx1),e=1,ne)
1410 if (lx1.eq.4)
write(6,104) ((x(i,j,k,e+l),i=1,lx1),e=1,ne)
1411 if (lx1.eq.5)
write(6,105) ((x(i,j,k,e+l),i=1,lx1),e=1,ne)
1412 if (lx1.eq.6)
write(6,106) ((x(i,j,k,e+l),i=1,lx1),e=1,ne)
1413 if (lx1.eq.7)
write(6,107) ((x(i,j,k,e+l),i=1,lx1),e=1,ne)
1414 if (lx1.eq.8)
write(6,108) ((x(i,j,k,e+l),i=1,lx1),e=1,ne)
1420 102
FORMAT(4(2f9.5,2x))
1421 103
FORMAT(4(3f9.5,2x))
1422 104
FORMAT(4(4f7.3,2x))
1423 105
FORMAT(5f9.5,10x,5f9.5)
1424 106
FORMAT(6f9.5,5x,6f9.5)
1425 107
FORMAT(7f8.4,5x,7f8.4)
1426 108
FORMAT(8f8.4,4x,8f8.4)
1428 116
FORMAT( /,5x,
' ^ ',/,
1431 $ 5x,
' +----> ',
'Plane = ',i2,
'/',i2,2x,2e12.4,/,
1432 $ 5x,
' X ',
'Step =',i9,f15.5)
1435 if (ichk.eq.1.and.idum.gt.0)
call checkit(idum)
1442 real x(lx2,ly2,lz2,lelt)
1448 if (idum.lt.0)
return
1451 mtot = lx2*ly2*lz2*nelv
1452 if (lx2.gt.7.or.nelv.gt.16)
return
1453 xmin =
glmin(x,mtot)
1454 xmax =
glmax(x,mtot)
1457 snel = sqrt(rnel)+.1
1463 if (ie.eq.ne1)
write(6,116) txt10,k,ie,xmin,xmax,istep,time
1466 if (lx2.eq.2)
write(6,102) ((x(i,j,k,e+l),i=1,lx2),e=1,ne)
1467 if (lx2.eq.3)
write(6,103) ((x(i,j,k,e+l),i=1,lx2),e=1,ne)
1468 if (lx2.eq.4)
write(6,104) ((x(i,j,k,e+l),i=1,lx2),e=1,ne)
1469 if (lx2.eq.5)
write(6,105) ((x(i,j,k,e+l),i=1,lx2),e=1,ne)
1470 if (lx2.eq.6)
write(6,106) ((x(i,j,k,e+l),i=1,lx2),e=1,ne)
1471 if (lx2.eq.7)
write(6,107) ((x(i,j,k,e+l),i=1,lx2),e=1,ne)
1472 if (lx2.eq.8)
write(6,108) ((x(i,j,k,e+l),i=1,lx2),e=1,ne)
1478 102
FORMAT(4(2f9.5,2x))
1479 103
FORMAT(4(3f9.5,2x))
1480 104
FORMAT(4(4f7.3,2x))
1481 105
FORMAT(5f9.5,10x,5f9.5)
1482 106
FORMAT(6f9.5,5x,6f9.5)
1483 107
FORMAT(7f8.4,5x,7f8.4)
1484 108
FORMAT(8f8.4,4x,8f8.4)
1486 116
FORMAT( /,5x,
' ^ ',/,
1489 $ 5x,
' +----> ',
'Plane = ',i2,
'/',i2,2x,2e12.4,/,
1490 $ 5x,
' X ',
'Step =',i9,f15.5)
1493 if (ichk.eq.1.and.idum.gt.0)
call checkit(idum)
1500 real x(lx2,ly2,lz2,lelt)
1506 if (idum.lt.0)
return
1511 mtot = lx2*ly2*lz2*nelv
1512 if (lx2.gt.7.or.nelv.gt.16)
return
1513 xmin =
glmin(x,mtot)
1514 xmax =
glmax(x,mtot)
1517 snel = sqrt(rnel)+.1
1523 if (ie.eq.ne1)
write(m,116) txt10,k,ie,xmin,xmax,istep,time
1526 if (lx2.eq.2)
write(m,102) ((x(i,j,k,e+l),i=1,lx2),e=1,ne)
1527 if (lx2.eq.3)
write(m,103) ((x(i,j,k,e+l),i=1,lx2),e=1,ne)
1528 if (lx2.eq.4)
write(m,104) ((x(i,j,k,e+l),i=1,lx2),e=1,ne)
1529 if (lx2.eq.5)
write(m,105) ((x(i,j,k,e+l),i=1,lx2),e=1,ne)
1530 if (lx2.eq.6)
write(m,106) ((x(i,j,k,e+l),i=1,lx2),e=1,ne)
1531 if (lx2.eq.7)
write(m,107) ((x(i,j,k,e+l),i=1,lx2),e=1,ne)
1532 if (lx2.eq.8)
write(m,108) ((x(i,j,k,e+l),i=1,lx2),e=1,ne)
1538 102
FORMAT(4(2f9.5,2x))
1539 103
FORMAT(4(3f9.5,2x))
1540 104
FORMAT(4(4f7.3,2x))
1541 105
FORMAT(5f9.5,10x,5f9.5)
1542 106
FORMAT(6f9.5,5x,6f9.5)
1543 107
FORMAT(7f8.4,5x,7f8.4)
1544 108
FORMAT(8f8.4,4x,8f8.4)
1546 116
FORMAT( /,5x,
' ^ ',/,
1549 $ 5x,
' +----> ',
'Plane = ',i2,
'/',i2,2x,2e12.4,/,
1550 $ 5x,
' X ',
'Step =',i9,f15.5)
1553 if (ichk.eq.1.and.idum.gt.0)
call checkit(idum)
1563 if (nelv.gt.1)
return
1566 if (jid.eq.nid)
then
1568 write(6,*) nid,ie,
' matrix: ',name6,m,n
1571 write(6,6) ie,name6,(a(i,j),j=1,n12)
1573 6
format(i3,1x,a6,12f9.5)
1586 integer glo_num(lx1,ly1,lz1,lelt)
1591 if (nid.eq.0) iquick=glo_num(ipass,1,1,1)
1592 iquick =
iglmax(iquick,1)
1598 if (glo_num(i,j,k,e).eq.iquick)
then
1600 write(6,1) nid,i,j,k,e,eg,iquick,ipass
1601 $ ,xm1(i,j,k,e),ym1(i,j,k,e),zm1(i,j,k,e)
1602 1
format(i12,3i4,2i12,i12,i2,1p3e12.4,
' iquick')
1619 common /c_is1/ glo_num(1*lx1*ly1*lz1*lelv)
1621 common /ivrtx/ vertex((2**ldim)*lelt)
1624 parameter(lxyz=lx1*ly1*lz1)
1625 common /scrns/ enum(lxyz,lelt)
1626 $ , rnx(lxyz,lelt) , rny(lxyz,lelt) ,
rnz(lxyz,lelt)
1627 $ , tnx(lxyz,lelt) , tny(lxyz,lelt) , tnz(lxyz,lelt)
1628 common /scruz/ snx(lxz) , sny(lxz) , snz(lxz) , efc(lxz)
1629 common /scrsf/ jvrtex((2**ldim),lelt)
1634 gsh_fld(0)=gsh_fld(1)
1635 if (iftmsh(0)) gsh_fld(0)=gsh_fld(2)
1648 if (cbc(f,e,1).eq.
'msi'.or.cbc(f,e,1).eq.
'MSI') iflag=1
1652 if (iflag.eq.0)
return
1669 call cfill(enum(1,e),re,nxyz)
1672 call dsop(enum,
'min')
1678 if (cbc(f,e,1).eq.
'msi'.or.cbc(f,e,1).eq.
'MSI')
then
1679 call facexs (efc,enum(1,e),f,0)
1683 snx(i) = unx(i,1,f,e)
1684 sny(i) = uny(i,1,f,e)
1685 snz(i) = unz(i,1,f,e)
1688 call facexv (snx,sny,snz,rnx(1,e),rny(1,e),
rnz(1,e),f,1)
1689 call facexv (unx(1,1,f,e),uny(1,1,f,e),unz(1,1,f,e)
1690 $ ,tnx(1,e),tny(1,e),tnz(1,e),f,1)
1698 call icopy(jvrtex,vertex,nv)
1714 m=i + lx1*(j-1) + lx1*ly1*(k-1)
1715 dot = tnx(m,e)*rnx(m,e)+tny(m,e)*rny(m,e)+tnz(m,e)*
rnz(m,e)
1716 if (
dot.lt.-.5) jvrtex(l,e)=jvrtex(l,e)+mvertx
1723 call setupds(gsh_fld(0),lx1,ly1,lz1,nelv,nelgv,jvrtex,glo_num)
1734 write(6,106) txt10,nel,nx
1735 106
FORMAT( /,5x,
' ^ ',/,
1738 $ 5x,
' +----> ',
'elem. = ',i2,
'/',i2,/,
1745 if (nx.eq.3)
write(6,3) (x(i,j,e),i=1,nx),(x(i,j,g),i=1,nx)
1746 if (nx.eq.4)
write(6,4) (x(i,j,e),i=1,nx),(x(i,j,g),i=1,nx)
1747 if (nx.eq.5)
write(6,5) (x(i,j,e),i=1,nx),(x(i,j,g),i=1,nx)
1748 if (nx.eq.6)
write(6,6) (x(i,j,e),i=1,nx),(x(i,j,g),i=1,nx)
1749 if (nx.eq.7)
write(6,7) (x(i,j,e),i=1,nx),(x(i,j,g),i=1,nx)
1750 3
format(3f8.4,3x,3f8.4)
1751 4
format(4f8.4,3x,4f8.4)
1752 5
format(5f8.4,3x,5f8.4)
1753 6
format(6f8.4,3x,6f8.4)
1754 7
format(7f8.4,3x,7f8.4)
subroutine outfldrp0(x, txt10, ichk)
subroutine facev(a, ie, iface, val, nx, ny, nz)
subroutine outfldrv(x, txt10, ichk)
subroutine setup_mesh_dssum
subroutine outmatp(a, m, n, name6, ie)
subroutine outfldrp(x, txt10, ichk)
subroutine facec(a, b, ie, iface, nx, ny, nz, nel)
subroutine combin2(glnm1, glnm2, nglob)
function crss2d(XY1, XY2, XY0)
function volum0(P1, P2, P3, P0)
subroutine facind(kx1, kx2, ky1, ky2, kz1, kz2, nx, ny, nz, iface)
subroutine outfldnx(x, txt10, nx, ny)
subroutine dsset(nx, ny, nz)
subroutine outfldio(x, txt10)
subroutine outfldi(x, txt10)
subroutine outfldrv0(x, txt10, ichk)
subroutine facindr(kx1, kx2, ky1, ky2, kz1, kz2, nx, ny, nz, iface)
subroutine ifacev(a, ie, iface, val, nx, ny, nz)
subroutine outfldr(x, txt10)
subroutine gs_chkr(glo_num)
subroutine outfldro(x, txt10, ichk)
subroutine dsop(u, op, nx, ny, nz)
subroutine setupds(gs_handle, nx, ny, nz, nel, melg, vertex, glo_num)
subroutine dssum(u, nx, ny, nz)
real function dot(V1, V2, N)
subroutine icopy(a, b, n)
subroutine cmult(a, const, n)
subroutine cfill(a, b, n)
subroutine opdssum(a, b, c)
subroutine facexv(A1, A2, A3, B1, B2, B3, IFACE1, IOP)
subroutine facexs(A, B, IFACE1, IOP)