39 . IGEO ,IXR_KJ ,LSUBMODEL,ISKN,R_SKEW,IPM)
63 USE reader_old_mod ,
ONLY : line
64 USE user_id_mod ,
ONLY : id_limit
72#include "implicit_f.inc"
76#include "analyse_name.inc"
89 INTEGER,
INTENT(IN)::ITAB(*)
90 INTEGER,
INTENT(IN)::ITABM1(*)
91 INTEGER,
INTENT(IN)::IPART(LIPART1,*)
92 INTEGER,
INTENT(IN)::IGEO(NPROPGI,*)
93 INTEGER,
INTENT(IN)::ISKN(LISKN,*)
94 INTEGER,
INTENT(IN)::IPM(NPROPMI,*)
97 INTEGER,
INTENT(OUT)::IXR(NIXR,*)
98 INTEGER,
INTENT(OUT)::IXR_KJ(5,*)
99 INTEGER,
INTENT(OUT)::IPARTR(*)
100 INTEGER,
INTENT(OUT)::R_SKEW(*)
104 INTEGER , I1, I2,PID,N,,IDS,J,IPID,JC,,IMID,IGTYP,MID
105 INTEGER FLAG_FMT,FLAG_FMT_TMP,IFIX_TMP
106 INTEGER (NUMELR),IKJ_TMP(3,NUMELR),NUMEL_KJ,CPT,
108 CHARACTER MESS*40, MESS2*40, CHAR_MAT*11, CHAR_SKEW*11
111 INTEGER,
DIMENSION(:),
ALLOCATABLE :: SUB_SPRING,SKEWID
117 DATA mess /'3d spring elements definition
'/
118 DATA MESS2/'3d spring elements selection
for th plot
'/
123 ALLOCATE (SUB_SPRING(NUMELR),STAT=stat)
124 IF (STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
127 SUB_SPRING(1:NUMELR) = 0
128 ALLOCATE (SKEWID(NUMELR),STAT=stat)
129 IF (STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
137 CALL CPP_SPRING_READ(IXR,NIXR,IXR_KJ,5,IPARTR,SUB_SPRING,SKEWID)
149 IF( IPART(4,INDEX_PART) /= IPARTR(I) )THEN
151 IF(IPART(4,J)== IPARTR(I) ) INDEX_PART = J
154 IF( IPART(4,INDEX_PART) /= IPARTR(I) ) THEN
155 CALL ANCMSG(MSGID=402,
157 . ANMODE=ANINFO_BLIND_1,
163 IPID=IPART(2,INDEX_PART)
164 IMID=IPART(1,INDEX_PART)
168 IF(IGTYP == 23) IXR(5,I)=IMID
169 IPARTR(I) = INDEX_PART
174 IF (IXR_KJ(J,I)/=0) FLAG_KJ(I) = FLAG_KJ(I) + 1
177 IF (IXR(NIXR,I)>ID_LIMIT%GLOBAL) THEN
178 CALL ANCMSG(MSGID=509,ANMODE=ANINFO,MSGTYPE=MSGERROR,
179 . I1=IXR(NIXR,I),C1=LINE,C2='/spring
')
182 IXR(2,I)=USR2SYS(IXR(2,I),ITABM1,MESS,IXR(NIXR,I))
183 IXR(3,I)=USR2SYS(IXR(3,I),ITABM1,MESS,IXR(NIXR,I))
184 CALL ANODSET(IXR(2,I), CHECK_SPRING)
185 CALL ANODSET(IXR(3,I), CHECK_SPRING)
187 IXR(4,I)=USR2SYS(IXR(4,I),ITABM1,MESS,IXR(NIXR,I))
188 CALL ANODSET(IXR(4,I), CHECK_USED)
191 IF (FLAG_KJ(I)>0) THEN
193 IF(IXR_KJ(J,I)/=0) THEN
194 IXR_KJ(J,I)=USR2SYS(IXR_KJ(J,I),ITABM1,MESS,IXR(NIXR,I))
195 CALL ANODSET(IXR_KJ(J,I), CHECK_USED)
200 IF (SKEWID(I) > 0) THEN
201 DO J = 0,NUMSKW+MIN(1,NSPCOND)*NUMSPH+NSUBMOD
202 IF (SKEWID(I) == ISKN(4,J+1)) THEN
207 CALL ANCMSG(MSGID=137,ANMODE=ANINFO,MSGTYPE=MSGERROR,
210 . I1=IXR(NIXR,I),I2=SKEWID(I))
215 IF(ALLOCATED(SUB_SPRING)) DEALLOCATE(SUB_SPRING)
217 CALL ANCMSG(MSGID=402,
219 . ANMODE=ANINFO_BLIND_1,
227 CALL VDOUBLE(IXR(NIXR,1),NIXR,NUMELR,MESS,0,BID)
235 PID = IGEO(1,IXR(1,I))
237 IF (IXR(5,I) > 0) THEN
238 MID = IPM(1,IXR(5,I))
239 WRITE (CHAR_MAT,'(i10,1x)
') MID
244 IF (SKEWID(I) > 0) THEN
245 WRITE (CHAR_SKEW,'(i10)
') SKEWID(I)
250 IF (IGEO(11,IXR(1,I))==45) NUMEL_KJ = NUMEL_KJ + 1
252 WRITE (IOUT,'(5(i10,1x),44x,a,a)
') I,IXR(NIXR,I),PID,
253 . ITAB(IXR(2,I)),ITAB(IXR(3,I)),CHAR_MAT,CHAR_SKEW
254 ELSEIF (FLAG_KJ(I)>0) THEN
255 IF (FLAG_KJ(I) == 1) THEN
256 WRITE (IOUT,'(7(i10,1x),a,a)
') I,IXR(NIXR,I),PID,
257 . ITAB(IXR(2,I)),ITAB(IXR(3,I)),ITAB(IXR(4,I)),
258 . (ITAB(IXR_KJ(J,I)),J=1,FLAG_KJ(I)),CHAR_MAT,CHAR_SKEW
259 ELSEIF (FLAG_KJ(I) == 2) THEN
260 WRITE (IOUT,'(8(i10,1x),a,a)
') I,IXR(NIXR,I),PID,
261 . ITAB(IXR(2,I)),ITAB(IXR(3,I)),ITAB(IXR(4,I)),
262 . (ITAB(IXR_KJ(J,I)),J=1,FLAG_KJ(I)),CHAR_MAT,CHAR_SKEW
263 ELSEIF (FLAG_KJ(I) == 3) THEN
264 WRITE (IOUT,'(9(i10,1x),a,a)
') I,IXR(NIXR,I),PID,
265 . ITAB(IXR(2,I)),ITAB(IXR(3,I)),ITAB(IXR(4,I)),
266 . (ITAB(IXR_KJ(J,I)),J=1,FLAG_KJ(I)),CHAR_MAT,CHAR_SKEW
269 WRITE (IOUT,'(6(i10,1x),33x,a,a)
') I,IXR(NIXR,I),PID,
270 . ITAB(IXR(2,I)),ITAB(IXR(3,I)),ITAB(IXR(4,I)),CHAR_MAT,CHAR_SKEW
274 IF(I2==NUMELR)GOTO 200
276 I2=MIN0(I2+50,NUMELR)
288 IKJ_TMP(J,I)=IXR_KJ(J,I)
292 IXR_KJ(1,NUMELR+1)=NUMEL_KJ
294 IF (IGEO(11,IXR(1,I))==45) THEN
297 IXR_KJ(J,CPT)=IKJ_TMP(J,I)
299 IXR_KJ(4,CPT)=IXR(NIXR,I)
307 300 FORMAT(/' spring elements
'/
308 + ' ---------------
'/
309 + ' loc-el glo-el
geom node1 node2
'
310 + ' (node3) (mat_id) (skew)
')
311 310 FORMAT(' spring
'/
312 + ' ---------------------------
'/)
subroutine geom(a, b, c, center_x, center_y, center_z, vol)
subroutine hm_read_spring(ixr, itab, itabm1, ipart, ipartr, igeo, ixr_kj, lsubmodel, iskn, r_skew, ipm)
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)