45 . IGRNOD ,NPC ,SENSORS ,UNITAB ,ISKN ,
57 USE reader_old_mod ,
ONLY : irec
61#include "implicit_f.inc"
73 TYPE (UNIT_TYPE_),
INTENT(IN) ::
74 INTEGER IGRV(NIGRV,NGRAV), (*), ITAB(*), ITABM1(*),
75 . npc(*), iskn(liskn,*), itagnd(*)
79 TYPE (SENSORS_) ,
INTENT(IN) :: SENSORS
96 TYPE (GROUP_) ,
DIMENSION(NGRNOD) :: IGRNOD
100 my_real fcx,fcy,fac_fcx,fac_fcy
101 INTEGER I, NCUR, NOSKEW,NSKW, ISENS,NN,IGU,IGS,UID,IAD,NS,J,K,ID,NCURS,TSENS, IFLAGUNIT, SUB_INDEX
102 CHARACTER(LEN=NCHARFIELD) :: XYZ
103 CHARACTER :: X*1, Y*1, Z*1, XX*2, YY*2, ZZ*2, MESS*40
104 CHARACTER(LEN=NCHARTITLE)::TITR
109 INTEGER USR2SYS,NODGRNR5
110 EXTERNAL USR2SYS,NODGRNR5
118 DATA mess/
'GRAVITY LOADS DEFINITION '/
120 is_available = .false.
142 . submodel_index = sub_index,
143 . option_titr = titr)
151 CALL hm_get_intv(
'curveid',ncur,is_available,lsubmodel)
152 CALL hm_get_intv(
'inputsystem',noskew,is_available,lsubmodel)
153 IF(noskew == 0 .AND. sub_index /= 0 ) noskew = lsubmodel(sub_index)%SKEW
154 CALL hm_get_intv(
'rad_sensor_id',isens,is_available,lsubmodel)
155 CALL hm_get_intv(
'entityid',igu,is_available,lsubmodel)
159 CALL hm_get_floatv(
'xscale',fcx,is_available,lsubmodel,unitab)
161 CALL hm_get_floatv(
'magnitude',fcy,is_available,lsubmodel,unitab)
166 IF (unitab%UNIT_ID(j) == uid)
THEN
171 IF (uid/=0.AND.iflagunit==0)
THEN
172 CALL ancmsg(msgid=659,anmode=aninfo,msgtype=msgerror,
173 . i2=uid,i1=id,c1=
'GRAVITY LOAD',
177 DO j=0,numskw+
min(1,nspcond)*numsph+nsubmod
178 IF(noskew == iskn(4,j+1))
THEN
183 CALL ancmsg(msgid=137,anmode=aninfo,msgtype=msgerror,
186 . i2=noskew,i1=id,c3=titr)
189 IF (fcx == zero) fcx = fac_fcx
190 IF (fcy == zero) fcy = fac_fcy
194 IF (xyz(1:1)==x)
THEN
196 ELSEIF(xyz(1:1)==y)
THEN
198 ELSEIF(xyz(1:1)==z)
THEN
208 nn = nodgrnr5(igu,igs,lgrav(iad),igrnod,itabm1,mess)
215 IF (ns10e > 0 )
CALL remove_nd(nn,lgrav(iad),itagnd)
223 IF(npc(nfunct+j+1)==ncur)ncurs=j
226 CALL ancmsg(msgid=154,anmode=aninfo,msgtype=msgerror,
227 . i2=ncur,i1=id,c1=titr)
237 DO j=1,sensors%NSENSOR
239 IF (igrv(6,k) == sensors%SENSOR_TAB(j
242 IF((tsens==0).AND.(igrv(6,k)/=0))
THEN
243 CALL ancmsg(msgid=521,anmode=aninfo,msgtype=msgerror,
244 . i2=igrv(6,k),i1=id,c1=titr)
246 IF (noskew > 0) noskew = iskn(4,noskew)
247 WRITE (iout,3000) noskew,xyz(1:1),
249 WRITE (iout,
'(10I10)') (itab(lgrav(j+iad-1)),j=1,nn)
258 .
' SKEW DIRECTION LOAD CURVE',
259 .
' SENSOR SCALE_X SCALE_Y ')
260 3000
FORMAT(2x,i10,10x,a2,4x,i10,2x,i10,2x,1p2g20.13)
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)