40 . NSTRF ,SENSORS ,UNITAB ,X ,
41 . ISOLNOD ,ITAB ,LSUBMODEL)
54#include "implicit_f.inc"
60#include "boltpr_c.inc"
64 TYPE (UNIT_TYPE_),
INTENT(IN) ::
65 INTEGER IXS(NIXS,*), IXS10(6,*), IPRELOAD(3,*), IFLAG_BPRELOAD(*)
66 INTEGER NSTRF(*),ITAB(*),ISOLNOD(*)
68 TYPE (SENSORS_) ,
INTENT(IN) :: SENSORS
74 INTEGER ISEC, K, I1, I2, I, ISENS,NPR0,NN,ID,J,UID,IFLAGUNIT,JS
75INTEGER IUGRP(NPRELOAD),IDSENSOR(NPRELOAD)
76 INTEGER K0,K1,K2,K3,IS,IE,II,NS,NI,ITYPE,IN1,,IN3
77 my_real lval(npreload),ts(npreload),te(npreload),nx(npreload),ny(npreload),nz(npreload)
78 my_real tdeb,tfin, loadval,x1,y1,z1,x2,y2,z2,x3,y3,z3,n3,
area(npreload)
80 CHARACTER(LEN=NCHARTITLE) :: TITR
81 CHARACTER(LEN=NCHARLINE) ::KEY
87 DATA mess/
'BOLT PRELOADING DEFINITION '/
89 is_available = .false.
103 . option_titr = titr,
107 IF (key(1:len_trim(key))==
'AXIAL') cycle
112 IF (unitab%UNIT_ID(j) == uid)
THEN
117 IF (uid/=0.AND.iflagunit==0)
THEN
118 CALL ancmsg(msgid=659,anmode=aninfo,msgtype=msgerror,
119 . i2=uid,i1=id,c1=
'BOLT PRELOAD',
126 CALL hm_get_intv(
'sect_ID' ,isec ,is_available,lsubmodel)
127 CALL hm_get_intv(
'sens_ID' ,isens ,is_available,lsubmodel)
128 CALL hm_get_intv(
'Itype' ,itype ,is_available,lsubmodel)
130 CALL hm_get_floatv(
'Preload',loadval,is_available, lsubmodel, unitab)
131 CALL hm_get_floatv(
'Tstart' ,tdeb ,is_available, lsubmodel, unitab)
132 CALL hm_get_floatv('tstop
' ,TFIN ,IS_AVAILABLE, LSUBMODEL, UNITAB)
135 IF (ITYPE == 0) ITYPE = 1 ! Default to effort preloading
138 IF(LOADVAL <= ZERO) THEN
139 CALL ANCMSG(MSGID=1255,MSGTYPE=MSGWARNING,
140 . ANMODE=ANINFO_BLIND_1,
147 IF (TFIN == ZERO) TFIN=EP30
151 DO JS=1,SENSORS%NSENSOR
152 IF (ISENS == SENSORS%SENSOR_TAB(JS)%SENS_ID) THEN
153 SENSNUM = JS ! not used - not stored
157 IF (SENSNUM == 0) THEN
159 CALL ANCMSG(MSGID=1252,ANMODE=ANINFO,MSGTYPE=MSGERROR,
162 . I2=ISENS,I1=ID,C3=TITR)
167 IF (ISEC > 0) THEN !ISEC=sect_ID input is mandatory
170 IF (ISEC==NSTRF(K0+23)) THEN
197 CALL ANCMSG(MSGID=1244,ANMODE=ANINFO,MSGTYPE=MSGERROR,
200 . I2=ISEC,I1=ID,C3=TITR)
211 CALL ANCMSG(MSGID=1251,ANMODE=ANINFO,MSGTYPE=MSGERROR,
214 . I2=ISEC,I1=ID,C3=TITR)
216 ! Calcul de l'aire de la
section
217 CALL sectarea(ixs,ixs10,x,nstrf(k3),ns,isolnod
224 ipreload(1,k) = nstrf(ii)
225 ipreload(2,k) = isens
226 ipreload(3,k) = ixs(11,nstrf(ii))
228 iflag_bpreload(nstrf(ii)) = i
233 preload(3,k) = loadval
244 CALL ancmsg(msgid=1243,anmode=aninfo,msgtype=msgerror,
256 IF (iugrp(i)==0) cycle
257 WRITE (iout,
'(I10,1X,I10,1X,1PE10.3,1X,I10,6(1X,1PE10.3))') i,
258 . iugrp(i),
area(i), idsensor(i), nx(i), ny(i), nz(i), lval(i), ts(i), te(i)
260 IF(i2==npreload)
GOTO 200
262 i2=min0(i2+50,npreload)
269 .
' BOLT PRELOADINGS '/
270 .
' ---------------- '/
271 .
' ID SECTION AREA SENSOR NX NY
272 . NZ PRELOAD START-T END-T')
subroutine section(nnod, n1, n2, n3, nstrf, x, v, vr, fsav, fopta, secfcum, ms, in, ifram, xsec)
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)