52
53
54
61
62
63
64#include "implicit_f.inc"
65
66
67
68#include "scr17_c.inc"
69#include "com04_c.inc"
70#include "r2r_c.inc"
71
72
73
74 INTEGER ,INTENT(INOUT) :: SNSTRF,SSECBUF
75 INTEGER ,INTENT(IN) :: ITABM1(*)
76 INTEGER NOM_OPT(LNOPT1,*)
77 TYPE(SUBMODEL_DATA) LSUBMODEL(NSUBMOD)
78 INTEGER ,INTENT(IN) :: NB_SEATBELT_SHELLS
79 INTEGER ,INTENT(IN) :: SEATBELT_SHELL_TO_SPRING(NUMELC,2)
80
81
82
83 INTEGER I,KK,IBID,ISAV,IGU,IGUS,IGUQ,IGUC,IGUT,,IGUR,IGUTG,
84 . NNOD,NBINTER,NSEGQ,NSEGS,NSEGC,NSEGT,NSEGP,NSEGR,NSEGTG,NFRAM,
85 . ID,UID,L,ISTYP,
86 . FLAG_R2R,N1,N2,N3,POS_SEC_R2R,NSEG0,NSEG,
87 . COMPT,NG
88 CHARACTER(LEN=NCHARTITLE)::TITR
89 CHARACTER(LEN=NCHARKEY) :: KEY2
90 CHARACTER MESS*40
91 LOGICAL IS_AVAILABLE
92
93 TYPE (GROUP_) , DIMENSION(NGRNOD) :: IGRNOD
94 TYPE (GROUP_) , DIMENSION(NGRBRIC) :: IGRBRIC
95 TYPE (GROUP_) , DIMENSION(NGRQUAD) :: IGRQUAD
96 TYPE (GROUP_) , DIMENSION(NGRSHEL) :: IGRSH4N
97 TYPE (GROUP_) , DIMENSION(NGRSH3N) :: IGRSH3N
98 TYPE (GROUP_) , DIMENSION(NGRTRUS) :: IGRTRUSS
99 TYPE (GROUP_) , DIMENSION(NGRBEAM) :: IGRBEAM
100 TYPE (GROUP_) , DIMENSION(NGRSPRI) :: IGRSPRING
101
102
103
104 INTEGER GRSIZEN,USR2SYS,GRSIZE_R2R,GRSIZE_ELE,GRSIZE_ELE_TRANS
106
107 nfram = 0
108 snstrf = 30
109 ssecbuf = 20
110 l = 7
111 compt = 0
112 ng = 0
113
114 IF (flag_r2r == 1) THEN
117 ENDIF
118
119
121
122 DO i=1,nsect
123
124 ng=ng+1
125
126 IF (flag_r2r == 0) THEN
127 IF( nsubdom > 0 ) THEN
129 ENDIF
130 ENDIF
131
132
135 CALL fretitl(titr,nom_opt(lnopt1-ltitr+1,i),ltitr)
136
137 CALL hm_get_intv(
'Axis_Origin_Node_N1', n1, is_available, lsubmodel)
138 CALL hm_get_intv(
'Axis_Node_N2', n2, is_available, lsubmodel)
139 CALL hm_get_intv(
'Axis_Node_N3', n3, is_available, lsubmodel)
140 CALL hm_get_intv(
'ISAVE', isav, is_available, lsubmodel)
141
142 IF(key2(1:5) == 'PARAL' .OR. key2(1:6) == 'CIRCLE') THEN
143 istyp = 1
144 ELSE
145 istyp = 0
146 CALL hm_get_intv(
'Grnod_ID', igu, is_available, lsubmodel)
147 CALL hm_get_intv(
'System_Id', nfram, is_available, lsubmodel)
148 ENDIF
149
150 iguq=0
151 CALL hm_get_intv(
'grbrick_id', igus, is_available, lsubmodel)
152 CALL hm_get_intv(
'grshel_id', iguc, is_available, lsubmodel)
153 CALL hm_get_intv(
'grtrus_id', igut, is_available, lsubmodel)
154 CALL hm_get_intv(
'grbeam_id', igup, is_available, lsubmodel)
155 CALL hm_get_intv(
'grsprg_id', igur, is_available, lsubmodel)
156 CALL hm_get_intv(
'grtria_id', igutg, is_available, lsubmodel)
157 CALL hm_get_intv(
'Niter', nbinter, is_available, lsubmodel)
158
159 IF (flag_r2r == 1) THEN
160
161 IF (n1 /= 0) n1=
usr2sys(n1,itabm1,mess,
id)
162 IF (n2 /= 0) n2=
usr2sys(n2,itabm1,mess,
id)
163 IF (n3 /= 0) n3=
usr2sys(n3,itabm1,mess,
id)
167 ELSEIF (flag_r2r == 2) THEN
168
169
173
174 nseg = nseg +
grsize_ele(iguq,igrquad,ngrquad)
175 nsegc = nsegc +
grsize_r2r(iguq,igrquad,ngrquad,9)
176 nseg0 = nseg0 +
grsize_r2r(iguq,igrquad,ngrquad,8)
177
178 nseg = nseg +
grsize_ele(iguc,igrsh4n,ngrshel)
179 nsegc = nsegc +
grsize_r2r(iguc,igrsh4n,ngrshel,9)
180 nseg0 = nseg0 +
grsize_r2r(iguc,igrsh4n,ngrshel,8)
181
182 nseg = nseg +
grsize_ele(igut,igrtruss,ngrtrus)
183 nsegc = nsegc +
grsize_r2r(igut,igrtruss,ngrtrus,9)
184 nseg0 = nseg0 +
grsize_r2r(igut,igrtruss,ngrtrus,8)
185
186 nseg = nseg +
grsize_ele(igup,igrbeam,ngrbeam)
187 nsegc = nsegc +
grsize_r2r(igup,igrbeam,ngrbeam,9)
188 nseg0 = nseg0 +
grsize_r2r(igup,igrbeam,ngrbeam,8)
189
190 nseg = nseg +
grsize_ele(igur,igrspring,ngrspri)
191 nsegc = nsegc +
grsize_r2r(igur,igrspring,ngrspri,9)
192 nseg0 = nseg0 +
grsize_r2r(igur,igrspring,ngrspri,8)
193
194 nseg = nseg +
grsize_ele(igutg,igrsh3n,ngrsh3n)
195 nsegc = nsegc +
grsize_r2r(igutg,igrsh3n,ngrsh3n,9)
196 nseg0 = nseg0 +
grsize_r2r(igutg,igrsh3n,ngrsh3n,8)
197
199 compt = compt + 1
200
201 IF ((nsegc > 0).OR.((nseg/=nseg0).AND.(nseg > 0))) THEN
202
204 . msgtype=msgwarning,
205 . anmode=aninfo_blind_1,
207 ELSEIF ((nseg == 0).AND.(nseg0 > 0)) THEN
208
210 compt = compt - 1
211 ENDIF
212 ELSE
213
214 IF (nfram == 0 .AND. istyp == 0) THEN
215 nnod =
grsizen(igu,igrnod,ngrnod)
216 ELSE
218 nnod = nnod + 4 *
grsize_ele(iguq,igrquad,ngrquad)
219 nnod = nnod + 4 *
grsize_ele(iguc,igrsh4n,ngrshel)
220 nnod = nnod + 2 *
grsize_ele(igut,igrtruss,ngrtrus)
221 nnod = nnod + 2 *
grsize_ele(igup,igrbeam,ngrbeam)
222 nnod = nnod + 2 *
grsize_ele(igur,igrspring,ngrspri)
223 nnod = nnod + 3 *
grsize_ele(igutg,igrsh3n,ngrsh3n)
224 ENDIF
231 IF (nb_seatbelt_shells /=0)
232 . nsegr = nsegr +
grsize_ele_trans(iguc,igrsh4n,ngrshel,seatbelt_shell_to_spring)
234
235 snstrf = snstrf +30 + nbinter
236 ssecbuf=ssecbuf+10
237 IF(isav >= 100) ssecbuf=ssecbuf+12*nnod
238 IF(isav >= 101) ssecbuf=ssecbuf+12*nnod
239 IF(isav >= 102) ssecbuf=ssecbuf+6*nnod
240 ENDIF
241 ENDDO
242
243 IF (flag_r2r == 2) nsect = compt
244
245
246 RETURN
247
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_start(entity_type)
integer, parameter nchartitle
integer, parameter ncharkey
integer, dimension(:), allocatable tagno
integer, dimension(:), allocatable tagsec
integer function grsizen(igu, igrnod, grlen)
integer function grsize_ele(igu, igrelem, ngrelem)
integer function grsize_ele_trans(igu, igrelem, ngrelem, seatbelt_shell_to_spring)
subroutine hm_sz_r2r(tag, val, lsubmodel)
integer function grsize_r2r(igu, igrelem, grlen, typ)
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)
integer function usr2sys(iu, itabm1, mess, id)