43 . NFGEO ,INUM ,IOPT ,FBFVEL ,IBFVEL ,
44 . ITAB ,ITABM1 ,IGRNOD ,NOM_OPT ,X0 ,
45 . IXR ,IPART ,IPARTR ,UNITAB ,LSUBMODEL)
58#include "implicit_f.inc"
69 INTEGER ,
INTENT(IN ) :: NFGEO
70 INTEGER ,
INTENT(INOUT) :: INUM,IOPT
71 INTEGER ,
DIMENSION(*) :: ITAB,ITABM1,IPARTR
72 INTEGER ,
DIMENSION(LIPART1,*) ,
INTENT(IN) :: IPART
73 INTEGER ,
DIMENSION(NIXR,*) ,
INTENT(IN) :: IXR
74 INTEGER ,
DIMENSION(LNOPT1,*) ,
INTENT(OUT) :: NOM_OPT
75 INTEGER ,
DIMENSION(NIFV,NFXVEL) ,
INTENT(OUT) :: IBFVEL
76 my_real ,
DIMENSION(LFXVELR,NFXVEL) ,
INTENT(OUT) :: fbfvel
77 my_real ,
DIMENSION(3,NUMNOD) ,
INTENT(IN):: x0
78 TYPE (UNIT_TYPE_) ,
INTENT(IN) :: UNITAB
79 TYPE (GROUP_) ,
DIMENSION(NGRNOD) ,
INTENT(IN) :: IGRNOD
84 INTEGER I,K,N,N1,N2,NUM0,IFGEO,JPART,NNOD,NOSKEW,NOFRAME,
85 . SENS_ID,PART_ID,OPTID,FUN_ID,IFRA_OUT,ILAGM,
86 . FGEO,IDIS,ICOOR,DISTRIBUTION
87 INTEGER ,
DIMENSION(NUMNOD) :: NOD1
88 my_real ,
DIMENSION(NUMNOD) :: XF,YF,ZF
89 my_real :: TSTART,TSTOP,XSCALE,FSCAL_T,FSCAL_V,DIST,XI,YI,ZI,XRF,YRF,ZRF
90 CHARACTER(LEN=NCHARKEY) :: KEY
91 CHARACTER(LEN=NCHARTITLE) :: TITR,MESS
101 DATA mess/
'IMPOSED DISPLACEMENT DEFINITION '/
103 is_available = .false.
117 . option_titr = titr,
121 nom_opt(1,iopt) = optid
122 CALL fretitl(titr,nom_opt(lnopt1-ltitr+1,iopt),ltitr)
137 CALL hm_get_intv (
'curveid' ,fun_id ,is_available,lsubmodel)
138 CALL hm_get_intv (
'rad_spring_part',part_id ,is_available,lsubmodel)
139 CALL hm_get_intv (
'rad_sensor_id' ,sens_id ,is_available,lsubmodel)
141 CALL hm_get_floatv(
'xscale' ,xscale ,is_available,lsubmodel,unitab)
142 CALL hm_get_floatv(
'rad_tstart' ,tstart ,is_available,lsubmodel,unitab)
143 CALL hm_get_floatv(
'rad_tstop' ,tstop ,is_available,lsubmodel,unitab)
145 CALL hm_get_intv(
'distribution_table_count' ,nnod ,is_available,lsubmodel)
156 IF (xscale == zero)
THEN
158 xscale = one * fscal_t
160 IF (tstop == zero) tstop = infinity
168 IF (nod1(i) > 0)
THEN
170 n1 = usr2sys(nod1(i),itabm1,mess,optid)
174 dist = sqrt((xf(i) - xi)**2 + (yf(i) - yi)**2 + (zf(i) - zi)**2)
178 ibfvel(3 ,inum) = fun_id
179 ibfvel(4 ,inum) = sens_id
182 ibfvel(7 ,inum) = idis
183 ibfvel(8 ,inum) = ilagm
184 ibfvel(9 ,inum) = noframe
185 ibfvel(10,inum) = icoor
187 ibfvel(12,inum) = iopt
188 ibfvel(13,inum) = fgeo
192 fbfvel(1,inum) = dist
193 fbfvel(2,inum) = tstart
194 fbfvel(3,inum) = tstop
195 fbfvel(4,inum) = zero
196 fbfvel(5,inum) = xscale
197 fbfvel(6,inum) = zero
198 IF (dist > zero)
THEN
199 fbfvel(7,inum) = (xf(i) - xi) / dist
200 fbfvel(8,inum) = (yf(i) - yi) / dist
201 fbfvel(9,inum) = (zf(i) - zi) / dist
203 fbfvel(7,inum) = zero
204 fbfvel(8,inum) = zero
205 fbfvel(9,inum) = zero
208 WRITE (iout,2000) itab(n1),fun_id,sens_id,
209 . dist,one/xscale,tstart,tstop,xf(i),yf(i),zf(i)
215 IF (part_id > 0)
THEN
218 IF (ipart(4,n) == part_id) jpart = n
222 IF (ipartr(n) == jpart)
THEN
232 dist= sqrt((xrf-xi)**2 + (yrf-yi)**2 + (zrf-zi)**2)
236 ibfvel(3 ,inum) = fun_id
237 ibfvel(4 ,inum) = sens_id
240 ibfvel(7 ,inum) = idis
241 ibfvel(8 ,inum) = ilagm
242 ibfvel(9 ,inum) = noframe
243 ibfvel(10,inum) = icoor
245 ibfvel(12,inum) = iopt
246 ibfvel(13,inum) = fgeo
251 fbfvel(1,inum) = dist
252 fbfvel(2,inum) = tstart
253 fbfvel(3,inum) = tstop
254 fbfvel(4,inum) = zero
255 fbfvel(5,inum) = xscale
256 fbfvel(6,inum) = zero
257 IF (dist > zero)
THEN
258 fbfvel(7,inum) = (xrf - xi) / dist
259 fbfvel(8,inum) = (yrf - yi) / dist
260 fbfvel(9,inum) = (zrf - zi) / dist
262 fbfvel(7,inum) = zero
263 fbfvel(8,inum) = zero
264 fbfvel(9,inum) = zero
267 WRITE (iout,2000) itab(n1),fun_id,sens_id,
268 . dist,one/xscale,tstart,tstop,xrf,yrf,zrf
276 IF (ibfvel(13,n) /= 2) cycle
281 IF (ibfvel(13,i) /= 2) cycle
282 IF (ibfvel(14,i) == n2) k = k + 1
290 .
' IMPOSED DISPLACEMENTS PRESCRIBED FINAL GEOMETRY '/
291 .
' ------------------------------------------------ '/
292 .
' NODE LOAD_CURVE SENSOR FSCALE ',
293 .
' ASCALE START_TIME STOP_TIME',
295 2000
FORMAT(3(1x,i10),3(1x,1pg20.13),4(1x,g20.13))