36 . IXS ,IXS10 ,SH4TREE ,SH3TREE ,IXC ,
37 . IXTG ,KNOD2ELS ,NOD2ELS ,KNOD2ELC ,NOD2ELC ,
38 . KNOD2ELTG ,NOD2ELTG ,IPARTC ,IPARTG ,IPARTS ,
39 . IPART ,CLAUSE ,OPT_A ,OPT_O ,IXQ ,
40 . KNOD2ELQ ,NOD2ELQ ,X ,KEYSET ,DELBUF ,
54#include "implicit_f.inc"
61 INTEGER,
INTENT(IN) :: IXS(NIXS,*),IXS10(6,*),IXC(NIXC,*),IXTG(NIXTG,*),
62 . KNOD2ELS(*),KNOD2ELC(*),KNOD2ELTG(*),NOD2ELS(*),NOD2ELC(*),
63 . NOD2ELTG(*),IPARTS(*),IPARTC(*),IPARTG(*),SH4TREE(*),SH3TREE(*),
64 . IPART(,*),KNOD2ELQ(*),NOD2ELQ(*),IXQ(,*)
66 CHARACTER(LEN=NCHARFIELD) ::
69 TYPE (SET_SCRATCH) :: DELBUF
74 INTEGER ,J,L,NIX,SZELMAX,,NSEG,NFACES
77 INTEGER,
ALLOCATABLE,
DIMENSION(:,:) :: ITRI
78 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: INDEX, BUFTMPSURF
84 szelmax = clause%NB_SOLID + clause%NB_QUAD + clause%NB_SH4N + clause%NB_SH3N
85 IF (szelmax == 0)
RETURN
88 IF (numels > numels8) nfaces = 16
90 ALLOCATE(buftmpsurf(szelmax*nfaces*6))
91 ALLOCATE(itri(5,szelmax*nfaces))
92 ALLOCATE(index(2*szelmax*nfaces))
106 . ixs ,ixs10 ,ixc ,sh4tree ,sh3tree ,
107 . ixtg ,knod2els ,nod2els ,knod2elc ,nod2elc ,
108 . knod2eltg ,nod2eltg ,nseg ,iext ,ipartc ,
109 . iparts ,ipartg ,clause ,buftmpsurf,iad_surf ,
110 . opt_o ,ipart ,knod2elq ,nod2elq ,x ,
118 itri(1,l) = buftmpsurf((l-1)*nix+1)
119 itri(2,l) = buftmpsurf((l-1)*nix+2)
120 itri(3,l) = buftmpsurf((l-1)*nix+3)
121 itri(4,l) = buftmpsurf((l-1)*nix+4)
122 itri(5,l) = buftmpsurf((l-1)*nix+6)
125 CALL my_orders(0,iwork,itri,index,nseg,5)
135 IF (go_in_array .EQV. .true.)
THEN
136 delbuf%SZ_SURF = nseg
137 ALLOCATE(delbuf%SURF(nseg,6))
139 delbuf%SURF(l,1) = buftmpsurf((index(l)-1)*nix+1)
140 delbuf%SURF(l,2) = buftmpsurf((index(l)-1)*nix+2)
141 delbuf%SURF(l,3) = buftmpsurf((index(l)-1)*nix+3)
142 delbuf%SURF(l,4) = buftmpsurf((index(l)-1)*nix+4)
143 delbuf%SURF(l,5) = buftmpsurf((index(l)-1)*nix+5)
144 delbuf%SURF(l,6) = buftmpsurf((index(l)-1)*nix+6)
147 IF (
ALLOCATED(clause%SURF_NODES))
DEALLOCATE(clause%SURF_NODES)
148 IF (
ALLOCATED(clause%SURF_ELTYP))
DEALLOCATE(clause%SURF_ELTYP)
149 IF (
ALLOCATED(clause%SURF_ELEM))
DEALLOCATE(clause%SURF_ELEM)
151 clause%NB_SURF_SEG = nseg
152 CALL my_alloc(clause%SURF_NODES,nseg,4)
153 CALL my_alloc(clause%SURF_ELTYP
154 CALL my_alloc(clause%SURF_ELEM,nseg)
157 clause%SURF_NODES(l,1) = buftmpsurf((index(l)-1)*nix+1)
158 clause%SURF_NODES(l,2) = buftmpsurf((index(l)-1)*nix+2)
159 clause%SURF_NODES(l,3) = buftmpsurf((index(l)-1)*nix+3)
160 clause%SURF_NODES(l,4) = buftmpsurf((index(l)-1)*nix+4)
161 clause%SURF_ELTYP(l) = buftmpsurf((index(l)-1)*nix+5)
162 clause%SURF_ELEM(l) = buftmpsurf((index(l)-1)*nix+6)
166 IF(
ALLOCATED(itri))
DEALLOCATE(itri)
167 IF(
ALLOCATED(index))
DEALLOCATE(index)
168 IF(
ALLOCATED(buftmpsurf))
DEALLOCATE(buftmpsurf)
subroutine create_box_clause(clause, jclause, is_available, lsubmodel, keyset, itabm1, ibox, x, skew, ixs10, set_title, ipart, sh4tree, sh3tree, iparts, ipartq, ipartc, ipartg, ipartt, ipartp, ipartr, ixs, ixq, ixc, ixtg, ixt, ixp, ixr, knod2els, nod2els, knod2elc, nod2elc, knod2eltg, nod2eltg, knod2elq, nod2elq, opt_a, opt_o, opt_e, delbuf, rby_msn, irbodym)
subroutine create_surface_from_element(ixs, ixs10, sh4tree, sh3tree, ixc, ixtg, knod2els, nod2els, knod2elc, nod2elc, knod2eltg, nod2eltg, ipartc, ipartg, iparts, ipart, clause, opt_a, opt_o, ixq, knod2elq, nod2elq, x, keyset, delbuf, go_in_array)
subroutine surface_buffer(ixs, ixs10, ixc, sh4tree, sh3tree, ixtg, knod2els, nod2els, knod2elc, nod2elc, knod2eltg, nod2eltg, nseg, iext, ipartc, iparts, ipartg, clause, buftmpsurf, iad_surf, opt_o, ipart, knod2elq, nod2elq, x, ixq, keyset)