45 . FAC ,IBFV ,NFXVEL0 ,ITAB ,ITABM1 ,
46 . IKINE ,IGRNOD ,ISKN ,UNITAB ,LSUBMODEL,
60#include "implicit_f.inc"
71 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
72 INTEGER ,
INTENT(INOUT) :: NIMPACC,NUM
73 INTEGER ,
INTENT(IN) :: NFXVEL0
74 INTEGER ,
DIMENSION(NIFV,NFXVEL0) :: IBFV
75 INTEGER ,
DIMENSION(LISKN,*) :: ISKN
76 INTEGER ,
DIMENSION(*) :: ITAB,ITABM1,IKINE
77 my_real,
DIMENSION(LFXVELR,*) ,
INTENT(INOUT) :: fac
79 TYPE (GROUP_) ,
DIMENSION(NGRNOD) ,
INTENT(IN) :: IGRNOD
84 INTEGER J,ID,UID,IACC,FCT_ID,INP_ID,SENS_ID,GRN,NACC,
85 . NOSKEW,NOFRAME,NUM0,NN,I_VDA,INOD,NODID,IGS,
86 . L_XYZ,SUBID,NOSUB,NODENUM(NFXVEL0)
87 INTEGER ,
DIMENSION(3*NUMNOD) :: IKINE1
89 CHARACTER(LEN=NCHARFIELD) :: XYZ
90 CHARACTER(LEN=NCHARTITLE) :: TITR,MESS
91 INTEGER ,
DIMENSION(:),
ALLOCATABLE :: IACCIDS
92 CHARACTER(LEN=2) :: X,Y,Z,XX,YY,ZZ
93 my_real :: fac1,fac2,fac3,facx,fscal_t,fscal_a,bid
103 DATA mess/
'IMPOSED ACCELERATION DEFINITION '/
116 ikine1(1:3*numnod) = 0
117 nodenum(1:nfxvel0) = 0
125 ALLOCATE(iaccids(nimpacc))
126 iaccids(1:nimpacc) = 0
128 is_available = .false.
144 . submodel_id = subid,
145 . submodel_index = nosub,
146 . option_titr = titr)
153 CALL hm_get_intv(
'curveid' ,fct_id ,is_available,lsubmodel)
155 CALL hm_get_intv(
'inputsystem' ,inp_id ,is_available,lsubmodel)
156 CALL hm_get_intv(
'rad_sensor_id' ,sens_id ,is_available,lsubmodel)
157 CALL hm_get_intv(
'entityid' ,grn ,is_available,lsubmodel)
159 CALL hm_get_floatv(
'xscale' ,facx,is_available,lsubmodel,unitab)
160 CALL hm_get_floatv(
'magnitude' ,fac1,is_available,lsubmodel,unitab)
161 CALL hm_get_floatv('rad_tstart
' ,FAC2,IS_AVAILABLE,LSUBMODEL,UNITAB)
162 CALL HM_GET_FLOATV('rad_tstop
' ,FAC3,IS_AVAILABLE,LSUBMODEL,UNITAB)
166.AND.
IF ((INP_ID == 0)(SUBID /= 0)) THEN
167 INP_ID = LSUBMODEL(NOSUB)%SKEW
173 DO J=0,NUMSKW+MIN(1,NSPCOND)*NUMSPH+NSUBMOD
174 IF (INP_ID == ISKN(4,J+1)) THEN
179.and.
IF (INP_ID > 0 NOSKEW == 0)
180 . CALL ANCMSG(MSGID=137,ANMODE=ANINFO,MSGTYPE=MSGERROR,
183 . C1='imposed acceleration',
184 . c2=
'IMPOSED ACCELERATION',
192 IF (facx == zero) facx = one * fscal_t
194 IF (fac1 == zero) fac1 = one * fscal_a
195 IF (fac3 == zero) fac3 = ep20
197 IF (xyz(1:2) == xx .OR. xyz(1:2) == yy .OR. xyz(1:2) == zz)
THEN
198 fac1 = fac1 / (fscal_a * fscal_t * fscal_t)
202 nn = nodgrnr5(grn,igs,nodenum,igrnod,itabm1,mess)
208 ibfv(1,i_vda) = nodenum(j)
210 ibfv(3,i_vda) = fct_id
211 ibfv(4,i_vda) = sens_id
216 ibfv(9,i_vda) = noframe
219 ibfv(12,i_vda) = iacc
230 inod = iabs(nodenum(j))
236 IF (xyz(1:2) == xx .OR. xyz(1:2) == yy .OR. xyz(1:2) == zz)
THEN
238 ELSEIF (xyz(1:1) == x .OR. xyz(1:1) == y .OR. xyz(1:1) == z)
THEN
242 WRITE (iout,
'(3X,I10,3X,I10,3X,I10,9X,A2,3X,I10,3X,I10,2X,
243 . 1PG20.13,2X,1PG20.13,2X,G20.13,2X,G20.13,16X,I10)')
244 . nodid,iskn(4,noskew),0,xyz(1:l_xyz),ibfv(3,i_vda),sens_id,
245 . fac(1,i_vda),one/facx,fac(2,i_vda),fac(3,i_vda),ibfv(10,i_vda)
247 IF (xyz(1:2) == xx)
THEN
248 ibfv(2,i_vda) = 4 + noskew*10
249 CALL kinset(16,nodid,ikine(inod)
250 ELSEIF (xyz(1:2) == yy)
THEN
251 ibfv(2,i_vda) = 5 + noskew*10
252 CALL kinset(16,nodid,ikine(inod),5,noskew,ikine1(inod))
253 ELSEIF (xyz(1:2) ==
'ZZ')
THEN
254 ibfv(2,i_vda) = 6 + noskew*10
255 CALL kinset(16,nodid,ikine(inod),6,noskew,ikine1(inod))
256 ELSEIF (xyz(1:1) == x)
THEN
257 ibfv(2,i_vda)= 1 + noskew*10
258 CALL kinset(16,nodid,ikine(inod),1,noskew,ikine1(inod))
259 ELSEIF (xyz(1:1) == y)
THEN
260 ibfv(2,i_vda) = 2 + noskew*10
261 CALL kinset(16,nodid,ikine(inod),2,noskew,ikine1(inod))
262 ELSEIF (xyz(1:1) ==
'Z')
THEN
263 ibfv(2,i_vda) = 3 + noskew*10
264 CALL kinset(16,nodid,ikine(inod),3,noskew,ikine1(inod))
268 . anmode=aninfo,i1=id,
273!---------------------------
279 CALL udouble(iaccids,1,nimpacc,mess,0,bid)
287 .
' IMPOSED ACCELERATIONS '/
288 .
' --------------------- '/
289 .
' NODE SKEW FRAME DIRECTION LOAD_CURVE',
290 .
' SENSOR FSCALE ASCALE',
291 .
' START_TIME STOP_TIME')
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)