43 . NFGEO ,INUM ,IOPT ,FBFVEL ,IBFVEL ,
44 . ITAB ,ITABM1 ,IGRNOD ,NOM_OPT ,X0 ,
45 . IXR ,IPART ,IPARTR ,UNITAB ,LSUBMODEL)
55 use element_mod ,
only : nixr
59#include "implicit_f.inc"
70 INTEGER ,
INTENT(IN ) :: NFGEO
71 INTEGER ,
INTENT(INOUT) :: INUM,IOPT
72 INTEGER ,
DIMENSION(*) :: ITAB,ITABM1,IPARTR
73 INTEGER ,
DIMENSION(LIPART1,*) ::
74 INTEGER ,
DIMENSION(NIXR,*) :: IXR
75 INTEGER ,
DIMENSION(NIFV,NFXVEL) :: IBFVEL
76 INTEGER ,
DIMENSION(LNOPT1,*) ,
INTENT(OUT) :: NOM_OPT
77 my_real ,
DIMENSION(LFXVELR,NFXVEL) :: fbfvel
78 my_real ,
DIMENSION(3,NUMNOD) ,
INTENT(IN):: x0
79 TYPE (UNIT_TYPE_) ,
INTENT(IN) :: UNITAB
80 TYPE (GROUP_) ,
DIMENSION(NGRNOD) ,
INTENT(IN) :: IGRNOD
85 INTEGER I,J,K,N,N1,N2,NUM0,IFGEO,JPART,NNOD,NOFRAME,
86 . SENS_ID,PART_ID,OPTID,UID,FCT1_ID,FCT2_ID,ILAGM,
88 INTEGER ,
DIMENSION(NUMNOD) :: NOD1,NOD2
89 my_real :: TSTART,,YSCALE,FSCAL_T,FSCAL_V,T0,DMIN,DIST,
91 CHARACTER(LEN=NCHARKEY) :: KEY
92 CHARACTER(LEN=NCHARTITLE) :: TITR,
102 DATA mess/
'IMPOSED VELOCITY DEFINITION '/
104 is_available = .false.
117 . option_titr = titr,
121 nom_opt(1,iopt) = optid
122 CALL fretitl(titr,nom_opt(lnopt1-ltitr+1,iopt),ltitr)
135 CALL hm_get_intv (
'curveid' ,fct1_id ,is_available,lsubmodel)
136 CALL hm_get_intv (
'rad_spring_part',part_id ,is_available,lsubmodel)
137 CALL hm_get_intv (
'rad_fct_l_id' ,fct2_id ,is_available,lsubmodel)
138 CALL hm_get_intv (
'rad_sensor_id' ,sens_id ,is_available,lsubmodel)
140 CALL hm_get_floatv(
'xscale' ,xscale ,is_available,lsubmodel,unitab)
141 CALL hm_get_floatv(
'rad_t0' ,t0 ,is_available,lsubmodel,unitab)
142 CALL hm_get_floatv(
'rad_tstart' ,tstart ,is_available,lsubmodel,unitab)
143 CALL hm_get_floatv(
'magnitude' ,yscale ,is_available,lsubmodel,unitab)
144 CALL hm_get_floatv(
'rad_dmin' ,dmin ,is_available,lsubmodel,unitab)
146 CALL hm_get_intv(
'distribution_table_count' ,nnod ,is_available,lsubmodel)
156 CALL ANCMSG(MSGID=1074, MSGTYPE=MSGERROR, ANMODE=ANINFO,
157 . I1=OPTID, C1=TITR, R1=T0)
158 CALL HM_GET_FLOATV_DIM('rad_t0
' ,FSCAL_T ,IS_AVAILABLE,LSUBMODEL,UNITAB)
161 IF (XSCALE == ZERO) THEN
162 CALL HM_GET_FLOATV_DIM('xscale
' ,FSCAL_T ,IS_AVAILABLE,LSUBMODEL,UNITAB)
163 XSCALE = ONE * FSCAL_T
165 IF (YSCALE == ZERO) THEN
166 CALL HM_GET_FLOATV_DIM('magnitude
' ,FSCAL_V ,IS_AVAILABLE,LSUBMODEL,UNITAB)
167 YSCALE = ONE * FSCAL_V
176 N2 = USR2SYS(NOD2(J),ITABM1,MESS,OPTID)
181 IF (NOD1(J) > 0) THEN
183 N1 = USR2SYS(NOD1(J),ITABM1,MESS,OPTID)
187 DIST = SQRT((XF-XI)**2 + (YF-YI)**2 + (ZF-ZI)**2)
191 IBFVEL(3 ,INUM) = FCT1_ID
192 IBFVEL(4 ,INUM) = SENS_ID
195 IBFVEL(7 ,INUM) = IDIS
196 IBFVEL(8 ,INUM) = ILAGM
197 IBFVEL(9 ,INUM) = NOFRAME
198 IBFVEL(10,INUM) = ICOOR
200 IBFVEL(12,INUM) = IOPT
201 IBFVEL(13,INUM) = FGEO
203 IBFVEL(15,INUM) = FCT2_ID
205 FBFVEL(1,INUM) = DIST / T0
206 FBFVEL(2,INUM) = TSTART
207 FBFVEL(3,INUM) = INFINITY
208 FBFVEL(4,INUM) = ZERO
209 FBFVEL(5,INUM) = XSCALE
210 FBFVEL(6,INUM) = ZERO
211 FBFVEL(7,INUM) = DMIN
212 FBFVEL(8,INUM) = YSCALE
214 WRITE (IOUT,2000) ITAB(N1),ITAB(N2),FCT1_ID,SENS_ID,FCT2_ID,
215 . DIST/T0,ONE/XSCALE,TSTART,DMIN,YSCALE
221 IF (PART_ID > 0) THEN
224 IF (IPART(4,N) == PART_ID) JPART = N
228 IF (IPARTR(N) == JPART) THEN
238 DIST= SQRT((XF-XI)**2 + (YF-YI)**2 + (ZF-ZI)**2)
242 IBFVEL(3 ,INUM) = FCT1_ID
243 IBFVEL(4 ,INUM) = SENS_ID
246 IBFVEL(7 ,INUM) = IDIS
247 IBFVEL(8 ,INUM) = ILAGM
248 IBFVEL(9 ,INUM) = NOFRAME
249 IBFVEL(10,INUM) = ICOOR
251 IBFVEL(12,INUM) = IOPT
252 IBFVEL(13,INUM) = FGEO
254 IBFVEL(15,INUM) = FCT2_ID
256 FBFVEL(1,INUM) = DIST / T0
257 FBFVEL(2,INUM) = TSTART
258 FBFVEL(3,INUM) = INFINITY
259 FBFVEL(4,INUM) = ZERO
260 FBFVEL(5,INUM) = XSCALE
261 FBFVEL(6,INUM) = ZERO
262 FBFVEL(7,INUM) = DMIN
263 FBFVEL(8,INUM) = YSCALE
265 WRITE (IOUT,2000) ITAB(N1),ITAB(N2),FCT1_ID,SENS_ID,FCT2_ID,
266 . DIST/T0,ONE/XSCALE,TSTART,DMIN,YSCALE
274 IF (IBFVEL(13,N) /= 2) CYCLE
279 IF (IBFVEL(13,I) /= 2) CYCLE
280 IF (IBFVEL(14,I) == N2) K = K + 1
285 END DO ! IFGEO = 1,NFGEO
288 .' imposed velocities prescribed final geometry
'/
289 .' ----------------------------------------------
'/
290 .' node1 node2 vel_curve sensor load_curve
',
291 .' fscale ascale start_time
',
293 2000 FORMAT(5(1X,I10),5(1X,1PG16.9))
subroutine read_impvel_fgeo(nfgeo, inum, iopt, fbfvel, ibfvel, itab, itabm1, igrnod, nom_opt, x0, ixr, ipart, ipartr, unitab, lsubmodel)