23!||====================================================================
40 SUBROUTINE insol3(X ,IRECT,IXS ,NINT ,NEL ,I ,
41 . AREA ,NOINT,KNOD2ELS ,NOD2ELS ,IR ,IXS10,
46#include "implicit_f.inc"
54 INTEGER NINT, NEL, I, NOINT,IR
57 INTEGER (4,*), IXS(NIXS,*), KNOD2ELS(*), NOD2ELS(*),
58 . IXS10(6,*), IXS16(8,*), IXS20(12,*)
64 INTEGER IY(4), N, JJ, II, K, NN, KK, IC, IAD,
68 my_real :: xx1(4), xx2(4),xx3(4),xs1,ys1,zs1,xc,yc,zc
76 IF(irect(1,i)>numnod)
RETURN
78 IF (nint<0) nuser = noint
79 DO 230 iad=knod2els(irect(1,i))+1,knod2els(irect(1,i)+1)
85 IF(ixs(k+1,n)==ii)
GOTO 210
89 ELSEIF(n <= numels8+numels10)
THEN
93 IF(ixs(k+1,n)==ii)
GOTO 220
96 IF(ixs10(k,n-numels8)==ii)
GOTO 220
100 ELSEIF(n <= numels8+numels10+numels20)
THEN
104 IF(ixs(k+1,n)==ii)
GOTO 222
107 IF(ixs20(k,n-numels8-numels10)==ii)
GOTO 222
111 ELSEIF(n <= numels8+numels10+numels20+numels16)
THEN
115 IF(ixs(k+1,n)==ii)
GOTO 224
118 IF(ixs16(k,n-numels8-numels10-numels20
GOTO 224
127 IF (nuser>nuserm)
THEN
132 IF (nuserm==-1)
RETURN
145 xs1=xs1+fourth*x(1,nn)
146 ys1=ys1+fourth*x(2,nn)
147 100 zs1=zs1+fourth*x(3,nn)
164 dds=n1*(xc-xs1)+n2*(yc-ys1)+n3*(zc-zs1)
166 IF(iy(3)==iy(4))
THEN
171 120 irect(kk,i)=iy(4-kk+1)
182!||--- calls -----------------------------------------------------
187!||====================================================================
188 SUBROUTINE insol3d(X ,IRECT ,IXS ,NINT ,NEL,I ,
189 . AREA ,NOINT ,KNOD2ELS,NOD2ELS,IR ,
190 . IXS10,IXS16,IXS20 ,TAGELEMS,INDEXE,
191 . NINV ,IELEM_M ,ELEM_LINKED_TO_SEGMENT,PRINT_ERROR,
192 . NIN25,NTY , FLAG_ELEM_INTER25 )
200#include "implicit_f.inc"
204#include "com04_c.inc"
205#include "scr03_c.inc"
209 INTEGER NINT, NEL, I, NOINT,IR,J,NINV
212 INTEGER IRECT(4,*), IXS(NIXS,*), KNOD2ELS(*), NOD2ELS(*),
213 . IXS10(6,*), IXS16(8,*), (12,*)
214 INTEGER ,
INTENT(INOUT) :: TAGELEMS(NUMELS),INDEXE(NUMELS)
217 INTEGER ,
INTENT(INOUT) :: IELEM_M(2)
218 INTEGER,
DIMENSION(NUMELS),
INTENT(INOUT) :: ELEM_LINKED_TO_SEGMENT
219 LOGICAL,
INTENT(INOUT) :: PRINT_ERROR
220 INTEGER,
INTENT(IN) :: NIN25, NTY
221 INTEGER,
INTENT(IN) :: FLAG_ELEM_INTER25(NINTER25,NUMELS)
225 INTEGER IY(4), N, JJ, II, K, NN, KK, IC, IAD,
226 . nuser, nuserm, nindexe, iels
232 my_real :: xx1(4),xx2(4),xx3(4),xs1,ys1,zs1,xc,yc,zc
239 print_error = .false.
241 IF(irect(1,i)>numnod)
RETURN
245 DO 230 iad=knod2els(irect(1,i))+1,knod2els(irect(1,i)+1)
251 IF(ixs(k+1,n)==ii)
GOTO 210
256 IF(tagelems(n)==0)
THEN
259 nindexe = nindexe + 1
261 elem_linked_to_segment(ic) = n
262 IF (nuser>nuserm)
THEN
267 ELSEIF(n <= numels8+numels10)
THEN
271 IF(ixs(k+1,n)==ii)
GOTO 220
279 IF(tagelems(n)==0)
THEN
282 nindexe = nindexe + 1
284 elem_linked_to_segment(ic) = n
285 IF (nuser>nuserm)
THEN
290 ELSEIF(n <= numels8+numels10+numels20)
THEN
294 IF(ixs(k+1,n)==ii)
GOTO 222
297 IF(ixs20(k,n-numels8-numels10)==ii)
GOTO 222
302 IF(tagelems(n)==0)
THEN
305 nindexe = nindexe + 1
307 elem_linked_to_segment(ic) = n
308 IF (nuser>nuserm)
THEN
313 ELSEIF(n <= numels8+numels10+numels20+numels16)
THEN
317 IF(ixs(k+1,n)==ii)
GOTO 224
320 IF(ixs16(k,n-numels8-numels10-numels20)==ii)
GOTO 224
325 IF(tagelems(n)==0)
THEN
328 nindexe = nindexe + 1
330 elem_linked_to_segment(ic) = n
331 IF (nuser>nuserm)
THEN
346 IF (nuserm==-1)
RETURN
351 ielem_m(1:2) = elem_linked_to_segment(1:2)
352 IF(ielem_m(1)/= nel)
THEN
354 ielem_m(1) = ielem_m(2)
358 IF(flag_elem_inter25(nin25,ielem_m(1)) ==1.AND.flag_elem_inter25(nin25,ielem_m(2)) ==0)
THEN
360 ELSEIF(flag_elem_inter25(nin25,ielem_m(1)) ==0.AND.flag_elem_inter25(nin25
THEN
363 ielem_m(1) = ielem_m(2)
369 ielem_m(1:2) = elem_linked_to_segment(1:2)
372 elem_id = ixs(11,elem_linked_to_segment(ijk))
374 . msgtype=msgwarning,
375 . anmode=aninfo_blind_1,
392 xs1=xs1+fourth*x(1,nn)
393 ys1=ys1+fourth*x(2,nn)
394 100 zs1=zs1+fourth*x(3,nn)
396 CALL norma1d(n1,n2,n3,area,xx1,xx2,xx3)
413 dds=n1*(xc-xs1)+n2*(yc-ys1)+n3*(zc-zs1)
416 IF(iy(3)==iy(4))
THEN
421 120 irect(kk,i)=iy(4-kk+1)
426 IF(ipri>=10.AND.nint>0)
428 . msgtype=msgwarning,
429 . anmode=aninfo_blind_1,
433 IF(ipri>=10.AND.nint< 0)
435 . msgtype=msgwarning,
436 . anmode=aninfo_blind_1,
456 . AREA,NOINT,IADD,INVC,NF,ITAB,
457 . KNOD2ELS,NOD2ELS,NTY,ID,TITR)
466#include "implicit_f.inc"
470#include "com04_c.inc"
474 INTEGER NINT, NEL, I, NOINT,IR, ITAB(*), KNOD2ELS(*), NOD2ELS(*)
477 INTEGER IRECT(4,*), IXS(NIXS,*), IADD(*), INVC(*),NF,NTY
481 CHARACTER(LEN=NCHARTITLE) :: TITR
485 INTEGER IY(4), N, JJ, II, K, NN, KK, IC, IAD,
486 . nuser, nuserm,ip(8),con(8),ibid,msegtyp(numels10)
489 my_real :: xx1(4), xx2(4),xx3(4),xs1,ys1,zs1,xc,yc,zc
494 DATA CON/1,2,3,4,5,6,7,8/
500 IF(irect(1,i)>numnod)
RETURN
502 DO 230 iad=iadd(irect(1,i)),iadd(irect(1,i)+1)-1
507 IF(n>numelc+numeltg.AND.n<=numelc+numeltg+numels)
THEN
512 IF(ixs(k+1,n)==ii)
THEN
522 IF (nuser>nuserm)
THEN
528 IF (nuserm==-1)
RETURN
529 IF(nel>numels8.AND.nel<=numels8+numels10)
THEN
534 1 ixs(1,nel),ixs(1,numels+1),
535 2 irect(1,i),noint,nel-numels8,itab,
536 3 knod2els,nod2els,nty,ibid,msegtyp,
543 IF(nint>0)
CALL ancmsg(msgid=1245,
545 . anmode=aninfo_blind,
548 IF(nint<0)
CALL ancmsg(msgid=1246,
550 . anmode=aninfo_blind,
568 xs1=xs1+fourth*x(1,nn)
569 ys1=ys1+fourth*x(2,nn)
570 100 zs1=zs1+fourth*x(3,nn)
572 CALL norma1(n1,n2,n3,area,xx1,xx2,xx3)
585 dds=n1*(xc-xs1)+n2*(yc-ys1)+n3*(zc-zs1)
587 IF(iy(3)==iy(4))
THEN
592 120 irect(kk,i)=iy(4-kk+1)
subroutine area(d1, x, x2, y, y2, eint, stif0)
subroutine i12sol3(x, irect, ixs, nint, nel, i, area, noint, iadd, invc, nf, itab, knod2els, nod2els, nty, id, titr)
subroutine insol3d(x, irect, ixs, nint, nel, i, area, noint, knod2els, nod2els, ir, ixs10, ixs16, ixs20, tagelems, indexe, ninv, ielem_m, elem_linked_to_segment, print_error, nin25, nty, flag_elem_inter25)
subroutine insol3(x, irect, ixs, nint, nel, i, area, noint, knod2els, nod2els, ir, ixs10, ixs16, ixs20)
subroutine insolt10(ixs, ixs10, irect, noint, nrtm, itab, knod2els, nod2els, nty, nsv, msegtyp, id, titr)
integer, parameter nchartitle
subroutine norma1(n1, n2, n3, area, xx1, xx2, xx3)
subroutine norma1d(n1, n2, n3, area, xx1, xx2, xx3)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)