42 . SENSORS ,IGRSURF ,UNITAB ,IFRAME ,LSUBMODEL)
58#include "implicit_f.inc"
66#include "tabsiz_c.inc"
70 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
71 INTEGER NPC(SNPC),IFRAME(LISKN,NUMFRAM+1),NUMLOADP, ILOADP(SIZLOADP,NLOADP), LLOADP(SLLOADP)
72 my_real facloadp(lfacload,nloadp)
74 TYPE (SURF_) ,
TARGET,
DIMENSION(NSURF) :: IGRSURF
76 TYPE (SENSORS_) ,
INTENT(IN) :: SENSORS
80 my_real fcx,fcy,fac_fcx,fac_fcy,fcx1,fcy1,fcx2,fcy2
81 INTEGER J,K, SUB_INDEX, SUB_ID, UID, ID, IFLAGUNIT,NN,IAD,TSENS,ISENS,IS,ISU,
82 . fun_hsp,fun_cx,fun_vel,ifra1,ifra2,icfield8,icfield12,icfield9,icfield13,
83 . ncur_hsp,ncur_vel,ncur_cx
84 CHARACTER MESS*40,char_X*1, char_Y*1, char_Z*1, char_XX*2, char_YY*2, char_ZZ*2
85 CHARACTER(LEN=NCHARFIELD) :: XYZ, XYZ1
86 CHARACTER(LEN=NCHARTITLE) :: TITR
95 DATA mess/
'FLUID PRESSURE LOAD DEFINITION '/
176 . submodel_id = sub_id,
177 . submodel_index = sub_index,
178 . option_titr = titr)
182 IF (unitab%UNIT_ID(j) == uid)
THEN
187 IF (uid /= 0.AND.iflagunit == 0)
THEN
188 CALL ancmsg(msgid=659, anmode= aninfo, msgtype=msgerror,
189 . i2=uid,i1=id,c1=
'FLUID PRESSURE LOAD',c2=
'FLUID PRESSURE LOAD'
201 CALL hm_get_intv(
'surf_ID',isu,is_available,lsubmodel)
202 CALL hm_get_intv(
'sens_ID',isens,is_available,lsubmodel)
207 IF (isu == igrsurf(j)%ID) is=j
212 lloadp(iad+4*(j-1)) =igrsurf(is)%NODES(j,1)
213 lloadp(iad+4*(j-1)+1)=igrsurf(is)%NODES(j,2)
214 lloadp(iad+4*(j-1)+2)=igrsurf(is)%NODES(j,3)
215 IF(igrsurf(is)%ELTYP(j) == 7)
THEN
216 lloadp(iad+4*(j-1)+3)=0
218 lloadp(iad+4*(j-1)+3)=igrsurf(is)%NODES(j,4)
226 DO j=1,sensors%NSENSOR
228 IF (isens == sensors%SENSOR_TAB(j)%SENS_ID) tsens=j
231 IF((tsens == 0).AND.(isens /= 0))
THEN
232 CALL ancmsg(msgid=930, msgtype=msgerror, anmode=aninfo_blind_1, i1=id, c1=titr, i2=isens)
236 CALL hm_get_intv(
'fct_hsp',ncur_hsp,is_available,lsubmodel)
237 CALL hm_get_floatv(
'Ascalex_hsp',fcx,is_available,lsubmodel,unitab)
239 CALL hm_get_floatv(
'Fscaley_hsp',fcy,is_available,lsubmodel,unitab)
241 IF (fcx == zero) fcx = fac_fcx
242 IF (fcy == zero) fcy = fac_fcy
245 IF(ncur_hsp /= 0)
THEN
247 IF(npc(nfunct+j+1) == ncur_hsp)fun_hsp=j
250 CALL ancmsg(msgid=929, msgtype=msgerror, anmode=aninfo_blind_1, i1=id, c1=titr, i2=ncur_hsp)
259 IF(xyz(1:1) == char_x)icfield8=1
260 IF(xyz(1:1) == char_y)icfield8=2
261 IF(xyz(1:1) == char_z)icfield8=3
263 IF (ncur_hsp /= 0)
THEN
264 IF(xyz(1:1) /= char_x .AND. xyz(1:1) /= char_y .AND. xyz(1:1) /= char_z)
THEN
265 CALL ancmsg(msgid=927, msgtype=msgerror, anmode=aninfo_blind_1, i1=id, c1=titr, c2=xyz)
271 CALL hm_get_intv(
'frahsp_ID',ifra1,is_available,lsubmodel)
273 IF(ifra1 == 0 .AND. sub_index /= 0)
THEN
274 CALL ancmsg(msgid=1712, anmode=aninfo, msgtype=msgwarning,
275 . i1=id, i2=sub_id, c1=
'/LOAD/PFLUID - frahsp_ID=0', c2=titr)
279 IF(ifra1 == iframe(4,j+1))
THEN
283 IF(ifra1 == 0) icfield9 = 1
284 IF (ifra1 /= 0 .AND. icfield9 == 0)
THEN
285 CALL ancmsg(msgid=928, msgtype=msgerror, anmode=aninfo_blind_1, i1=id, c1=titr, i2=ifra1)
289 CALL hm_get_intv(
'fct_pc',ncur_cx,is_available,lsubmodel)
290 CALL hm_get_floatv(
'Ascalex_pc',fcx1,is_available,lsubmodel,unitab)
292 CALL hm_get_floatv(
'Fscaley_pc',fcy1,is_available,lsubmodel,unitab)
294 IF (fcx1 == zero) fcx1 = fac_fcx
295 IF (fcy1 == zero) fcy1 = fac_fcy
298 IF (ncur_cx /= 0)
THEN
300 IF(npc(nfunct+j+1) == ncur_cx)fun_cx=j
303 CALL ancmsg(msgid=929, msgtype=msgerror, anmode=aninfo_blind_1, i1=id, c1=titr, i2=ncur_cx)
308 CALL hm_get_intv(
'fct_vel',ncur_vel,is_available,lsubmodel)
309 CALL hm_get_floatv(
'Ascalex_vel',fcx2,is_available,lsubmodel,unitab)
311 CALL hm_get_floatv(
'Fscaley_vel',fcy2,is_available,lsubmodel,unitab)
313 IF (fcx2 == zero) fcx2 = fac_fcx
314 IF (fcy2 == zero) fcy2 = fac_fcy
317 IF (ncur_vel /= 0)
THEN
319 IF(npc(nfunct+j+1) == ncur_vel)fun_vel=j
322 CALL ancmsg(msgid=929, msgtype=msgerror, anmode=aninfo_blind_1, i1=id, c1=titr, i2=ncur_vel)
329 IF(xyz1(1:1) == char_x)icfield12=1
330 IF(xyz1(1:1) == char_y)icfield12=2
331 IF(xyz1(1:1) == char_z)icfield12=3
332 IF (ncur_vel /= 0)
THEN
333 IF(xyz1(1:1) /= char_x .AND. xyz1(1:1) /= char_y .AND. xyz1(1:1) /= char_z)
THEN
334 CALL ancmsg(msgid=927, msgtype=msgerror, anmode=aninfo_blind_1, i1=id, c1=titr, c2=xyz1)
339 CALL hm_get_intv(
'fravel_ID',ifra2,is_available,lsubmodel)
341 IF(ifra2 == 0 .AND. sub_index /= 0)
THEN
342 CALL ancmsg(msgid=1712, anmode=aninfo, msgtype=msgwarning,
343 . i1 = id, i2 = sub_id, c1 =
'/LOAD/PFLUID - fravel_ID=0', c2 = titr)
346 IF(ifra2 == iframe(4,j+1))
THEN
350 IF(ifra2 == 0) icfield13 = 1
351 IF (ifra2 /= 0 .AND. icfield13 == 0)
THEN
352 CALL ancmsg(msgid=928, msgtype=msgerror, anmode=aninfo_blind_1, i1=id, c1=titr, i2=ifra2)
361 iloadp( 7,k) = fun_hsp
362 iloadp( 8,k) = icfield8
363 iloadp( 9,k) = icfield9
364 iloadp(10,k) = fun_cx
365 iloadp(11,k) = fun_vel
366 iloadp(12,k) = icfield12
367 iloadp(13,k) = icfield13
370 facloadp( 2,k) = one/fcx
371 facloadp( 3,k) = fcy1
372 facloadp( 4,k) = one/fcx1
373 facloadp( 5,k) = fcy2
374 facloadp( 6,k) = one/fcx2
381 WRITE (iout,
'(I10,2X,I10,9X,A1,2X,I10,2X,I10,2X,1PG20.13,2X,1PG20.13)')isu,ifra1,xyz(1:1),ncur_hsp,isens,fcx,fcy
383 WRITE (iout,
'(I10,4X,1PG20.13,4X,1PG20.13)')ncur_cx,fcx1,fcy1
385 WRITE (iout,
'(I10,9X,A1,2X,I10,2X,1PG20.13,2X,1PG20.13)')ifra2,xyz1(1:1),ncur_vel,fcx2,fcy2
387 numloadp = numloadp + 4*nn
395 .
' ------------------ '/
396 .
' SURFACE FRAME_HSP DIR_HSP FUNC_HSP SENSOR',
400 .
' FUNC_CX SCALE_X SCALE_Y')
403 .
' FRAME_VEL DIR_VEL FUNC_VEL',
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)