38 . IGEO ,IXR_KJ ,LSUBMODEL,ISKN,R_SKEW,IPM)
62 USE reader_old_mod ,
ONLY : line
63 USE user_id_mod ,
ONLY : id_limit
64 use element_mod ,
only : nixr
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 I, I1, I2,PID,N,IDS,J,IPID,STAT,IMID,IGTYP,MID
105 INTEGER FLAG_KJ(NUMELR),IKJ_TMP(3,NUMELR),NUMEL_KJ,CPT,
107 CHARACTER MESS*40, MESS2*40, CHAR_MAT*11, *11
110 INTEGER,
DIMENSION(:),
ALLOCATABLE :: SUB_SPRING,SKEWID
115 DATA mess /
'3D SPRING ELEMENTS DEFINITION '/
116 DATA mess2/
'3D SPRING ELEMENTS SELECTION FOR TH PLOT'/
121 ALLOCATE (sub_spring(numelr),stat=stat)
122 IF (stat /= 0)
CALL ancmsg(msgid=268
125 sub_spring(1:numelr) = 0
126 ALLOCATE (skewid(numelr),stat=stat)
127 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
135 CALL cpp_spring_read(ixr,nixr,ixr_kj,5,ipartr,sub_spring,skewid)
147 IF( ipart(4,index_part) /= ipartr(i) )
THEN
149 IF(ipart(4,j)== ipartr(i) ) index_part = j
152 IF( ipart(4,index_part) /= ipartr(i) )
THEN
155 . anmode=aninfo_blind_1,
161 ipid=ipart(2,index_part)
162 imid=ipart(1,index_part)
166 IF(igtyp == 23) ixr(5,i)=imid
167 ipartr(i) = index_part
172 IF (ixr_kj(j,i)/=0) flag_kj(i) = flag_kj(i) + 1
175 IF (ixr(nixr,i)>id_limit%GLOBAL)
THEN
176 CALL ancmsg(msgid=509,anmode=aninfo,msgtype=msgerror,
177 . i1=ixr(nixr,i),c1=line,c2=
'/SPRING')
180 ixr(2,i)=usr2sys(ixr(2,i),itabm1,mess,ixr(nixr,i))
181 ixr(3,i)=usr2sys(ixr(3,i),itabm1,mess,ixr(nixr,i))
182 CALL anodset(ixr(2,i), check_spring)
183 CALL anodset(ixr(3,i), check_spring)
185 ixr(4,i)=usr2sys(ixr(4,i),itabm1,mess,ixr(nixr,i))
186 CALL anodset(ixr(4,i), check_used)
189 IF (flag_kj(i)>0)
THEN
191 IF(ixr_kj(j,i)/=0)
THEN
192 ixr_kj(j,i)=usr2sys(ixr_kj(j,i),itabm1,mess,ixr(nixr,i))
193 CALL anodset(ixr_kj(j,i), check_used)
198 IF (skewid(i) > 0)
THEN
199 DO j = 0,numskw+
min(1,nspcond)*numsph+nsubmod
200 IF (skewid(i) == iskn(4,j+1))
THEN
205 CALL ancmsg(msgid=137,anmode=aninfo,msgtype=msgerror,
208 . i1=ixr(nixr,i),i2=skewid(i))
213 IF(
ALLOCATED(sub_spring))
DEALLOCATE(sub_spring)
217 . anmode=aninfo_blind_1,
225 CALL vdouble(ixr(nixr,1),nixr,numelr,mess,0,bid
233 pid = igeo(1,ixr(1,i))
235 IF (ixr(5,i) > 0)
THEN
236 mid = ipm(1,ixr(5,i))
237 WRITE (char_mat,
'(I10,1X)') mid
242 IF (skewid(i) > 0)
THEN
243 WRITE (char_skew,
'(I10)') skewid(i)
248 IF (igeo(11,ixr(1,i))==45) numel_kj = numel_kj + 1
250 WRITE (iout,
'(5(I10,1X),44X,A,A)') i,ixr(nixr,i),pid,
251 . itab(ixr(2,i)),itab(ixr(3,i)),char_mat,char_skew
252 ELSEIF (flag_kj(i)>0)
THEN
253 IF (flag_kj(i) == 1)
THEN
254 WRITE (iout,
'(7(I10,1X),A,A)') i,ixr(nixr,i),pid,
255 . itab(ixr(2,i)),itab(ixr(3,i)),itab(ixr(4,i)),
256 . (itab(ixr_kj(j,i)),j=1,flag_kj(i)),char_mat,char_skew
257 ELSEIF (flag_kj(i) == 2)
THEN
258 WRITE (iout,
'(8(I10,1X),A,A)') i,ixr(nixr,i),pid,
259 . itab(ixr(2,i)),itab(ixr(3,i)),itab(ixr(4,i)),
260 . (itab(ixr_kj(j,i)),j=1,flag_kj(i)),char_mat,char_skew
261 ELSEIF (flag_kj(i) == 3)
THEN
262 WRITE (iout,
'(9(I10,1X),A,A)') i,ixr(nixr,i),pid,
263 . itab(ixr(2,i)),itab(ixr(3,i)),itab(ixr(4,i)),
264 . (itab(ixr_kj(j,i)),j=1,flag_kj(i)),char_mat,char_skew
267 WRITE (iout,
'(6(I10,1X),33X,A,A)') i,ixr(nixr,i),pid,
268 . itab(ixr(2,i)),itab(ixr(3,i)),itab(ixr(4,i)),char_mat,char_skew
272 IF(i2==numelr)
GOTO 200
274 i2=min0(i2+50,numelr)
286 ikj_tmp(j,i)=ixr_kj(j,i)
290 ixr_kj(1,numelr+1)=numel_kj
292 IF (igeo(11,ixr(1,i))==45)
THEN
295 ixr_kj(j,cpt)=ikj_tmp(j,i)
297 ixr_kj(4,cpt)=ixr(nixr,i)
305 300
FORMAT(/
' SPRING ELEMENTS'/
306 +
' ---------------'/
307 +
' LOC-EL GLO-EL GEOM NODE1 NODE2'
308 +
' (NODE3) (MAT_ID) (SKEW)')
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)