44 . IGRNOD ,NWORK ,UNITAB ,ISKN ,LSUBMODEL,
60#include "implicit_f.inc"
73 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
75 INTEGER IBCL(NIBCLD,*), ITAB(*), ITABM1(*),NWORK(*),
79 TYPE (),
INTENT(INOUT) ::
81 TYPE (GROUP_) ,
DIMENSION(NGRNOD) :: IGRNOD
86 . fcx,fcy,fac_fcx,fac_fcy
87 INTEGER I,J,K,K1,K2,NOD, NCUR, NOSKEW, ISENS,NLD0,NN,IGU,IGS,
88 . UID,IAD,NS,IWA,ID,NUM0,IFLAGUNIT,COMPT,SUB_INDEX,IDIR,IFUNCTYPE
90 CHARACTER MESS*40,X*1, Y*1, Z*1, XX*2, YY*2, ZZ*2
91 CHARACTER(LEN=NCHARFIELD) :: XYZ
92 CHARACTER(LEN=NCHARTITLE) :: TITR
97 INTEGER NODGRNR5,NODGR_R2R
124 DATA mess/
'CONCENTRATED LOADS DEFINITION '/
126 is_available = .false.
151 . submodel_index = sub_index,
152 . option_titr = titr)
161 CALL hm_get_intv(
'curveid',ncur,is_available,lsubmodel)
162 CALL hm_get_intv(
'inputsystem',noskew,is_available,lsubmodel)
163 IF(noskew == 0 .AND. sub_index /= 0 ) noskew = lsubmodel(sub_index)%SKEW
164 CALL hm_get_intv(
'rad_sensor_id',isens,is_available,lsubmodel)
165 CALL hm_get_intv(
'entityid',igu,is_available,lsubmodel)
166 CALL hm_get_intv(
'Itypfun',ifunctype,is_available,lsubmodel)
170 CALL hm_get_floatv(
'xscale',fcx,is_available,lsubmodel,unitab)
172 CALL hm_get_floatv(
'magnitude',fcy,is_available,lsubmodel,unitab)
177 IF (unitab%UNIT_ID(j) == uid)
THEN
183 IF (uid/=0.AND.iflagunit==0)
THEN
184 CALL ancmsg(msgid=659,anmode=aninfo,msgtype=msgerror,
185 . i2=uid,i1=id,c1=
'CONCENTRED LOAD',
186 . c2=
'CONCENTRED LOAD',
190 IF(noskew == iskn(4,j+1))
THEN
195 CALL ancmsg(msgid=137,anmode=aninfo,msgtype=msgerror,
196 . c1=
'CONCENTRED LOAD',
197 . c2=
'CONCENTRED LOAD',
198 . i2=noskew,i1=id,c3=titr)
201 IF (fcx == zero) fcx = fac_fcx
202 IF (fcy == zero) fcy = fac_fcy
207 IF(xyz(1:1)==x) idir=1
208 IF(xyz(1:1)==y) idir=2
209 IF(xyz(1:1)==z) idir=3
210 IF(xyz(1:2)==xx) idir=4
211 IF(xyz(1:2)==yy) idir=5
212 IF(xyz(1:2)==zz) idir=6
214 IF(idir == 1) ns=1+noskew
215 IF(idir == 2) ns=2+noskew
216 IF(idir == 3) ns=3+noskew
217 IF(idir == 4) ns=4+noskew
218 IF(idir == 5) ns=5+noskew
219 IF(idir == 6) ns=6+noskew
223 CALL ancmsg(msgid=149,anmode=aninfo,msgtype=msgerror,
224 . c2=xyz,i1=id,c1=titr)
228 CALL ancmsg(msgid=845,anmode=aninfo,msgtype=msgerror,
229 . c2=xyz,i1=id,c1=titr)
236 nn = nodgrnr5(igu ,igs ,nwork(1+nibcld*num0),igrnod ,
240 nn = nodgr_r2r(igu ,igs ,nwork(1+nibcld*num0),igrnod ,
255 nwork(1+nibcld*(j+i-1))=nwork(j+nibcld*num0)
258 IF(ifunctype == 0) ifunctype = 1
270 ibcl(9,i) = ifunctype
274 WRITE (iout,
'(I10,2X,I10,5X,A,2X,I10,2X,I10,2X,
275 . 1PG20.13,2X,1PG20.13)')
276 . itab(ibcl(1,i)),iskn(4,noskew/10),xyz(1:1),
277 . ibcl(3,i),isens,fcx,fcy
278 ELSEIF (idir <= 6)
THEN
279 WRITE (iout,
'(I10,2X,I10,4X,A2,2X,I10,2X,I10,2X,
280 . 1PG20.13,2X,1PG20.13)')
281 . itab(ibcl(1,i)),iskn(4,noskew/10),xyz(1:2),
282 . ibcl(3,i),isens,fcx,fcy
287 loads%NLOAD_CLOAD = num
290 .
' CONCENTRATED LOADS '/
291 .
' ------------------ '/
292 .
' NODE SKEW DIR LOAD_CURVE SENSOR',
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)