46#include
"implicit_f.inc"
50 INTEGER,
INTENT(IN) :: IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*)
53 TYPE (SET_SCRATCH) :: DELBUF
58 INTEGER IEXT,I,NIX,SZELMAX,IAD_LINE,NSEG,LINE_NENTITY
61 INTEGER,
ALLOCATABLE,
DIMENSION(:,:) :: ITRI
62 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: INDEX, BUFTMPLINE
67 szelmax = clause%NB_TRUSS + clause%NB_BEAM + clause%NB_SPRING
68 IF (szelmax == 0)
RETURN
71 ALLOCATE(buftmpline(szelmax*line_nentity))
72 ALLOCATE(itri(3,szelmax))
73 ALLOCATE(index(2*szelmax))
81 . ixt ,ixp ,ixr ,buftmpline , nseg,
89 itri(1,i) = buftmpline((i-1)*nix+1)
90 itri(2,i) = buftmpline((i-1)*nix+2)
91 itri(3,i) = buftmpline((i-1)*nix+4)
104 IF (go_in_array .EQV. .true.)
THEN
105 delbuf%SZ_LINE = nseg
106 ALLOCATE(delbuf%LINE(nseg,4))
108 delbuf%LINE(i,1) = buftmpline((index(i)-1)*nix+1)
109 delbuf%LINE(i,2) = buftmpline((index(i)-1)*nix+2)
110 delbuf%LINE(i,3) = buftmpline((index(i)-1)*nix+3)
111 delbuf%LINE(i,4) = buftmpline((index(i)-1)*nix+4)
114 IF(
ALLOCATED( clause%LINE_NODES ))
DEALLOCATE( clause%LINE_NODES )
115 IF(
ALLOCATED( clause%LINE_ELTYP ))
DEALLOCATE( clause%LINE_ELTYP )
116 IF(
ALLOCATED( clause%LINE_ELEM ))
DEALLOCATE( clause%LINE_ELEM )
118 clause%NB_LINE_SEG = nseg
119 CALL my_alloc(clause%LINE_NODES,nseg,2)
120 CALL my_alloc(clause%LINE_ELTYP,nseg)
121 CALL my_alloc(clause%LINE_ELEM,nseg)
124 clause%LINE_NODES(i,1) = buftmpline((index(i)-1)*nix+1)
125 clause%LINE_NODES(i,2) = buftmpline((index(i)-1)*nix+2)
126 clause%LINE_ELTYP(i) = buftmpline((index(i)-1)*nix+3)
127 clause%LINE_ELEM(i) = buftmpline((index(i)-1)*nix+4)
131 IF(
ALLOCATED(itri))
DEALLOCATE(itri)
132 IF(
ALLOCATED(index))
DEALLOCATE(index)
133 IF(
ALLOCATED(buftmpline))
DEALLOCATE(buftmpline)
subroutine line_buffer(ixt, ixp, ixr, buftmpline, nseg, iad_line, clause)
void my_orders(int *mode, int *iwork, int *data, int *index, int *n, int *irecl)