30 SUBROUTINE sort_surf(IGRSURF,IXS,IXC,IXTG,IXQ,IXP,IXR,IXT,KXX,NIXX)
35 use element_mod ,
only : nixs,nixq,nixc,nixt,nixp,nixr,nixtg,nixtg
39#include "implicit_f.inc"
48 INTEGER,
INTENT(IN) :: NIXX
49 INTEGER,
INTENT(IN) :: IXS(NIXS,NUMELS)
50 INTEGER,
INTENT(IN) :: IXC(NIXC,NUMELC)
51 INTEGER,
INTENT(IN) :: IXTG(NIXTG,NUMELTG)
52 INTEGER,
INTENT(IN) :: IXQ(NIXQ,NUMELQ)
53 INTEGER,
INTENT(IN) :: IXP(NIXP,NUMELP)
54 INTEGER,
INTENT(IN) :: IXR(NIXR,NUMELR)
55 INTEGER,
INTENT(IN) :: IXT(NIXT,NUMELT)
56 INTEGER,
INTENT(IN) :: KXX(NIXX,NUMELX)
57 TYPE(
surf_),
INTENT(INOUT),
DIMENSION(NSURF) :: IGRSURF
61 INTEGER I, NN, ELEM, ITYP, K, IT
62 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUFSSG_TRI,IWORK,INDEX
63 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ITRI
67 ALLOCATE (iwork(80000))
72 ALLOCATE (ibufssg_tri(nisx*nn))
74 ALLOCATE (index(3*nn))
77 ibufssg_tri(6*(i-1)+1) = igrsurf(k)%NODES(i,1)
78 ibufssg_tri(6*(i-1)+2) = igrsurf(k)%NODES(i,2)
79 ibufssg_tri(6*(i-1)+3) = igrsurf(k)%NODES(i,3)
80 ibufssg_tri(6*(i-1)+4) = igrsurf(k)%NODES(i,4)
81 ibufssg_tri(6*(i-1)+5) = igrsurf(k)%ELTYP(i)
82 ibufssg_tri(6*(i-1)+6) = igrsurf(k)%ELEM(i)
84 elem = igrsurf(k)%ELEM(i)
85 ityp = igrsurf(k)%ELTYP(i)
104 itri(2,i) = ixs(nixs,elem)
106 itri(2,i) = ixq(nixq,elem)
108 itri(2,i) = ixc(nixc,elem)
110 itri(2,i) = ixt(nixt,elem)
112 itri(2,i) = ixp(nixp,elem)
114 itri(2,i) = ixr(nixr,elem)
116 itri(2,i) = ixtg(nixtg,elem)
118 itri(2,i) = kxx(nixx,elem)
129 igrsurf(k)%NODES(i,1) = ibufssg_tri(6*(it-1)+1)
130 igrsurf(k)%NODES(i,2) = ibufssg_tri(6*(it-1)+2)
131 igrsurf(k)%NODES(i,3) = ibufssg_tri(6*(it-1)+3)
132 igrsurf(k)%NODES(i,4) = ibufssg_tri(6*(it-1)+4)
133 igrsurf(k)%ELTYP(i) = ibufssg_tri(6*(it-1)+5)
134 igrsurf(k)%ELEM(i) = ibufssg_tri(6*(it-1)+6)
137 DEALLOCATE(ibufssg_tri)
subroutine sort_surf(igrsurf, ixs, ixc, ixtg, ixq, ixp, ixr, ixt, kxx, nixx)