40 . NSTRF ,SENSORS ,UNITAB ,X ,
41 . ISOLNOD ,ITAB ,LSUBMODEL ,
42 . SNPC ,NPC ,IPRELOAD_FUN )
52 use element_mod ,
only : nixs
56#include "implicit_f.inc"
62#include "boltpr_c.inc"
66 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
67 INTEGER IXS(NIXS,*), IXS10(6,*), IPRELOAD(3,*), IFLAG_BPRELOAD(*)
68 INTEGER NSTRF(*),ITAB(*),ISOLNOD(*)
69 INTEGER ,
INTENT(IN) :: SNPC
70 INTEGER ,
DIMENSION(SNPC),
INTENT(IN) :: NPC
71 INTEGER ,
DIMENSION(2,NPRELOAD),
INTENT(INOUT) :: IPRELOAD_FUN
73 TYPE (SENSORS_) ,
INTENT(IN) :: SENSORS
79 INTEGER ISEC, K, I1, I2, I, ISENS,NPR0,NN,ID,J,UID,IFLAGUNIT,JS,SENSNUM
80 INTEGER IUGRP(NPRELOAD),IDSENSOR(NPRELOAD)
81 INTEGER K0,K1,K2,K3,IS,IE,II,NS,NI,ITYPE,IN1,IN2,IN3,IFUN,FUN_ID
82 my_real lval(npreload),ts(npreload),te(npreload),nx(npreload),ny(npreload),nz(npreload)
83 my_real tdeb,tfin, loadval,x1,y1,z1,x2,y2,z2,x3,y3,z3,n3,
area(npreload)
85 CHARACTER(LEN=NCHARTITLE) :: TITR
86 CHARACTER(LEN=NCHARLINE) ::KEY
92 DATA mess/
'BOLT PRELOADING DEFINITION '/
94 is_available = .false.
100 area(1:npreload)=zero
108 . option_titr = titr,
112 IF (key(1:len_trim(key))==
'AXIAL') cycle
117 IF (unitab%UNIT_ID(j) == uid)
THEN
122 IF (uid/=0.AND.iflagunit==0)
THEN
123 CALL ancmsg(msgid=659,anmode=aninfo,msgtype=msgerror,
124 . i2=uid,i1=id,c1=
'BOLT PRELOAD',
131 CALL hm_get_intv(
'sect_ID' ,isec ,is_available,lsubmodel)
132 CALL hm_get_intv(
'sens_ID' ,isens ,is_available,lsubmodel)
133 CALL hm_get_intv(
'Itype' ,itype ,is_available,lsubmodel)
134 CALL hm_get_intv(
'curveid' ,ifun ,is_available,lsubmodel)
136 CALL hm_get_floatv(
'Preload',loadval,is_available, lsubmodel, unitab)
137 CALL hm_get_floatv(
'Tstart' ,tdeb ,is_available, lsubmodel, unitab)
138 CALL hm_get_floatv(
'Tstop' ,tfin ,is_available, lsubmodel, unitab)
141 IF (itype == 0) itype = 1
144 IF(loadval <= zero .AND. ifun==0)
THEN
145 CALL ancmsg(msgid=1255,msgtype=msgwarning,
146 . anmode=aninfo_blind_1,
152 IF (tfin == zero) tfin=ep30
157 IF(npc(nfunct+j+1)==ifun) fun_id=j
160 CALL ancmsg(msgid=154,anmode=aninfo,msgtype=msgerror,i2=ifun,i1=id,c1=titr)
170 DO js=1,sensors%NSENSOR
171 IF (isens == sensors%SENSOR_TAB(js)%SENS_ID)
THEN
176 IF (sensnum == 0)
THEN
178 CALL ancmsg(msgid=1252,anmode=aninfo,msgtype=msgerror,
181 . i2=isens,i1=id,c3=titr)
189 IF (isec==nstrf(k0+23))
THEN
220 CALL ancmsg(msgid=1244,anmode=aninfo,msgtype=msgerror,
223 . i2=isec,i1=id,c3=titr)
234 CALL ancmsg(msgid=1251,anmode=aninfo,msgtype=msgerror,
237 . i2=isec,i1=id,c3=titr)
240 CALL sectarea(ixs,ixs10,x,nstrf(k3),ns,isolnod,
area(i),itab)
242 IF (
area(i) > 1.e-30) loadval = loadval/
area(i)
247 ipreload(1,k) = nstrf(ii)
248 ipreload(2,k) = isens
249 ipreload(3,k) = ixs(11,nstrf(ii))
251 iflag_bpreload(nstrf(ii)) = i
256 preload(3,k) = loadval
267 CALL ancmsg(msgid=1243,anmode=aninfo,msgtype=msgerror,
270 . i2=isec,i1=id,c3=titr)
272 ipreload_fun(1,i) = fun_id
273 ipreload_fun(2,i) = sensnum
281 IF (iugrp(i)==0) cycle
286 WRITE (iout,
'(I10,1X,I10,1X,1PE10.3,1X,I10,6(1X,1PE10.3),I10)') i,
287 . iugrp(i),
area(i), idsensor(i), nx(i), ny(i), nz(i), lval(i), ts(i), te(i),ifun
290 WRITE (iout,
'(I10,1X,I10,1X,1PE10.3,1X,I10,6(1X,1PE10.3),I10)') i,
291 . iugrp(i),
area(i), idsensor(i), nx(i), ny(i), nz(i), lval(i), ts(i), te(i),ifun
294 IF(i2==npreload)
GOTO 200
296 i2=min0(i2+50,npreload)
303 .
' BOLT PRELOADINGS '/
304 .
' ---------------- '/
305 .
' ID SECTION AREA SENSOR NX NY
306 . NZ PRELOAD START-T END-T IFUNC')
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)