OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
lecsec4bolt.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| lecsec4bolt ../starter/source/tools/sect/lecsec4bolt.F
25!||--- called by ------------------------------------------------------
26!|| lectur ../starter/source/starter/lectur.f
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!|| anodset ../starter/source/output/analyse/analyse_node.c
30!|| elegror ../starter/source/groups/elegror.F
31!|| hm_get_floatv ../starter/source/devtools/hm_reader/hm_get_floatv.F
32!|| hm_get_int_array_index ../starter/source/devtools/hm_reader/hm_get_int_array_index.F
33!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
34!|| hm_get_string ../starter/source/devtools/hm_reader/hm_get_string.F
35!|| hm_option_read_key ../starter/source/devtools/hm_reader/hm_option_read_key.F
36!|| hm_option_start ../starter/source/devtools/hm_reader/hm_option_start.F
37!|| nodgrnr5 ../starter/source/starter/freform.F
38!|| sec_nodes_sol ../starter/source/tools/sect/hm_read_sect.F
39!|| secstri ../starter/source/tools/sect/hm_read_sect.F
40!|| subrotpoint ../starter/source/model/submodel/subrot.F
41!|| subrotvect ../starter/source/model/submodel/subrot.F
42!|| udouble ../starter/source/system/sysfus.F
43!|| usr2sys ../starter/source/system/sysfus.F
44!|| zerore ../starter/source/system/zerore.F
45!||--- uses -----------------------------------------------------
46!|| hm_option_read_mod ../starter/share/modules1/hm_option_read_mod.F
47!|| message_mod ../starter/share/message_module/message_mod.f
48!|| r2r_mod ../starter/share/modules1/r2r_mod.F
49!|| submodel_mod ../starter/share/modules1/submodel_mod.F
50!||====================================================================
51 SUBROUTINE lecsec4bolt(IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
52 2 IXTG ,X0 ,NSTRF ,ITAB ,ITABM1 ,
53 3 IGRNOD,SECBUF ,
54 4 IPARI ,IXS10 ,IXS20 ,IXS16 ,UNITAB ,
55 5 ISKN ,XFRAME,ISOLNOD,NOM_SECT,RTRANS,
56 6 LSUBMODEL,NOM_OPT,IGRBRIC)
57C-----------------------------------------------
58C M o d u l e s
59C-----------------------------------------------
60 USE unitab_mod
61 USE message_mod
62 USE r2r_mod
63 USE submodel_mod
64 USE groupdef_mod
67C-----------------------------------------------
68C I m p l i c i t T y p e s
69C-----------------------------------------------
70#include "implicit_f.inc"
71C-----------------------------------------------
72C A n a l y s e M o d u l e
73C-----------------------------------------------
74#include "analyse_name.inc"
75C-----------------------------------------------
76C C o m m o n B l o c k s
77C-----------------------------------------------
78#include "com04_c.inc"
79#include "scr17_c.inc"
80#include "param_c.inc"
81#include "sphcom.inc"
82C-----------------------------------------------
83C D u m m y A r g u m e n t s
84C-----------------------------------------------
85 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
86 INTEGER IXC(NIXC,*), IXTG(NIXTG,*), NSTRF(*), ITAB(*),
87 . ITABM1(*),IXS(NIXS,*), IXQ(NIXQ,*), IXT(NIXT,*),
88 . IXP(NIXP,*), IXR(NIXR,*), IPARI(NPARI,*),
89 . IXS10(6,*),IXS20(12,*),IXS16(8,*),ISKN(LISKN,*),
90 . isolnod(*),nom_sect(*)
91 INTEGER NOM_OPT(LNOPT1,*)
92 TYPE(SUBMODEL_DATA) LSUBMODEL(*)
93 my_real
94 . X0(3,*),SECBUF(*),XFRAME(NXFRAME,*),
95 . RTRANS(NTRANSF,*)
96C-----------------------------------------------
97 TYPE (GROUP_) ,DIMENSION(NGRNOD) :: IGRNOD
98 TYPE (GROUP_) ,DIMENSION(NGRBRIC) :: IGRBRIC
99C-----------------------------------------------
100C L o c a l V a r i a b l e s
101C-----------------------------------------------
102 INTEGER ,DIMENSION(NSECT) :: SECTIDS
103 INTEGER K1, I, J, L, KK, K2, K,LREC,
104 . NNOD, NBINTER,K0,K3,K4,K5,K6,K7,K8,K9,KR0,
105 . NSEGQ,NSEGS,NSEGC,NSEGT,NSEGP,NSEGR,NSEGTG,I0,ID,
106 . IGU,IGS,IGUS,IGUQ,IGUC,IGUT,IGUP,IGUR,IGUTG,IFRAM,
107 . nnsk1,nnsk2,nnsk3,uid,iflagunit,ie,iadv,
108 . isu,nfram,jj,iun,
109 . tagelem1,tagelem2,tagelem3,
110 . n1,cpt,
111 . ng,noprint,ilen
112 INTEGER FLAG_FMT,FLAG_FMT_TMP,IFIX_TMP,L0,ISTYP,SUB_ID
113 INTEGER, DIMENSION(:), ALLOCATABLE :: NODTAG,TAGELEMS
114 my_real
115 . DELTAT,ALPHA,FAC_T,A,B,C,D,E,F,POS,R
116 CHARACTER MESS*40
117 CHARACTER(LEN=NCHARTITLE) :: TITR
118 CHARACTER(LEN=NCHARLINE) ::CHAR8
119 CHARACTER(LEN=NCHARFIELD) :: KEY2
120 my_real
121 . bid, xm, ym, zm, x1, y1, z1, x2, y2, z2, norm,
122 . x3, y3, z3, n3, pnor1, pnor2, pnorm1, det, det1, det2, det3
123 LOGICAL IS_AVAILABLE
124C-----------------------------------------------
125C E x t e r n a l F u n c t i o n s
126C-----------------------------------------------
127 INTEGER USR2SYS,NODGRNR5,ELEGROR
128 EXTERNAL usr2sys,nodgrnr5,elegror
129C
130C
131 DATA mess/'SECTION DEFINITION '/
132 DATA iun/1/
133C=======================================================================
134 ALLOCATE(tagelems(1+numelc+numels+numelt+numelq+numelp+numelr+numeltg))
135 ALLOCATE(nodtag(numnod))
136
137 noprint = 1
138 flag_fmt = 0
139 nfram = 0
140 nodtag = 0
141 tagelems = 0
142C GENERIC WRITE FLAG
143 nstrf(1)=0
144C GENERIC READ FLAG
145 nstrf(2)=0
146C file flip/flop
147 nstrf(3)=0
148C file run number
149 nstrf(4)=1
150C file next run number
151 nstrf(5)=2
152C file rec length
153 lrec=0
154C file record flip/flop
155 nstrf(7)=0
156C
157 k0 = 31
158 kr0= 11
159 nstrf(25)=k0
160 nstrf(26)=kr0
161 l0 = 7
162 ng = 0
163 iguq=0
164
165 CALL hm_option_start('/SECT')
166
167 DO i=1,nsect
168 igu = 0
169 istyp = 0
170 ng=ng+1
171 lrec = lrec+3
172 k1 = k0+30
173 CALL hm_option_read_key(lsubmodel, option_id=id, option_titr=titr, unit_id=uid, submodel_id=sub_id, keyword2=key2)
174
175 CALL hm_get_intv('Axis_Origin_Node_N1', nstrf(k0+3), is_available, lsubmodel)
176 CALL hm_get_intv('Axis_Node_N2', nstrf(k0+4), is_available, lsubmodel)
177 CALL hm_get_intv('Axis_Node_N3', nstrf(k0+5), is_available, lsubmodel)
178 CALL hm_get_intv('ISAVE', nstrf(k0), is_available, lsubmodel)
179
180 CALL hm_get_string('file_name', char8, ncharline, is_available)
181 ilen=len(char8)
182 ilen=len_trim(char8)
183 ilen=max(0,ilen)
184 IF(ilen >= 0 .AND. ilen < ncharline)THEN
185 DO k=ilen+1,ncharline
186 char8(k:k)=' '
187 ENDDO
188 ENDIF
189
190 IF(key2(1:5) == 'PARAL') THEN
191 istyp = 1
192 ELSEIF(key2(1:6) == 'CIRCLE') THEN
193 istyp = 2
194 ELSE
195 CALL hm_get_intv('Grnod_ID', igu, is_available, lsubmodel)
196 CALL hm_get_intv('System_Id', nfram, is_available, lsubmodel)
197 istyp = 0
198 ENDIF
199
200 CALL hm_get_floatv('detltaT', deltat, is_available, lsubmodel, unitab)
201 CALL hm_get_floatv('alpha', alpha, is_available, lsubmodel, unitab)
202 CALL hm_get_intv('grbrick_id', igus, is_available, lsubmodel)
203 CALL hm_get_intv('grshel_id', iguc, is_available, lsubmodel)
204 CALL hm_get_intv('grtrus_id', igut, is_available, lsubmodel)
205 CALL hm_get_intv('grbeam_id', igup, is_available, lsubmodel)
206 CALL hm_get_intv('grsprg_id', igur, is_available, lsubmodel)
207 CALL hm_get_intv('grtria_id', igutg, is_available, lsubmodel)
208 CALL hm_get_intv('Niter', nbinter, is_available, lsubmodel)
209 CALL hm_get_intv('Iframe', ifram, is_available, lsubmodel)
210
211 IF (nbinter < 0 .OR. nbinter > 10) THEN
212 CALL ancmsg(msgid=124,anmode=aninfo,msgtype=msgerror,i1=id,c1=titr)
213 ENDIF
214
215 iflagunit = 0
216 DO j=1,unitab%NUNITS
217 IF (unitab%UNIT_ID(j) == uid) THEN
218 fac_t = unitab%FAC_T(j)
219 iflagunit = 1
220 EXIT
221 ENDIF
222 ENDDO
223 IF (uid/=0.AND.iflagunit==0) THEN
224 CALL ancmsg(msgid=659,anmode=aninfo,msgtype=msgerror,i2=uid,i1=id,c1='SECTION',c2='SECTION',c3=titr)
225 ENDIF
226
227 sectids(i)=id
228
229 IF(igu == 0 .AND. nfram == 0 .AND. istyp == 0) THEN
230 CALL ancmsg(msgid=507,
231 . msgtype=msgwarning,
232 . anmode=aninfo_blind_1,
233 . i1=id,
234 . c1=titr)
235 ENDIF
236
237 DO j=1,ncharline
238 nom_sect((i-1)*ncharline+j) = ichar(char8(j:j))
239 ENDDO
240
241 DO j=1,nbinter
242 CALL hm_get_int_array_index('int_id' ,nstrf(k1-1+j) ,j ,is_available, lsubmodel)
243 ENDDO
244
245 IF (istyp == 1) THEN
246 CALL hm_get_floatv('XTail', xm, is_available, lsubmodel, unitab)
247 CALL hm_get_floatv('YTail', ym, is_available, lsubmodel, unitab)
248 CALL hm_get_floatv('ZTail', zm, is_available, lsubmodel, unitab)
249 IF(sub_id /= 0)CALL subrotpoint(xm,ym,zm,rtrans,sub_id,lsubmodel)
250
251 CALL hm_get_floatv('cnode1_x', x1, is_available, lsubmodel, unitab)
252 CALL hm_get_floatv('cnode1_y', y1, is_available, lsubmodel, unitab)
253 CALL hm_get_floatv('cnode1_z', z1, is_available, lsubmodel, unitab)
254 IF(sub_id /= 0) CALL subrotpoint(x1,y1,z1,rtrans,sub_id,lsubmodel)
255
256 CALL hm_get_floatv('cnode2_x', x2, is_available, lsubmodel, unitab)
257 CALL hm_get_floatv('cnode2_y', y2, is_available, lsubmodel, unitab)
258 CALL hm_get_floatv('cnode2_z', z2, is_available, lsubmodel, unitab)
259 IF(sub_id /= 0)CALL subrotpoint(x2,y2,z2,rtrans,sub_id,lsubmodel)
260
261 d = xm
262 e = ym
263 f = zm
264 a = ((y1-ym)*(z2-zm))-((y2-ym)*(z1-zm))
265 b = ((x2-xm)*(z1-zm))-((x1-xm)*(z2-zm))
266 c = ((x1-xm)*(y2-ym))-((x2-xm)*(y1-ym))
267 norm = a*a+b*b+c*c
268 a = a/sqrt(norm)
269 b = b/sqrt(norm)
270 c = c/sqrt(norm)
271
272 ELSEIF (istyp == 2) THEN
273 CALL hm_get_floatv('XTail', xm, is_available, lsubmodel, unitab)
274 CALL hm_get_floatv('YTail', ym, is_available, lsubmodel, unitab)
275 CALL hm_get_floatv('ZTail', zm, is_available, lsubmodel, unitab)
276 IF(sub_id /= 0)CALL subrotpoint(xm,ym,zm,rtrans,sub_id,lsubmodel)
277
278 CALL hm_get_floatv('Normal_x', a, is_available, lsubmodel, unitab)
279 CALL hm_get_floatv('Normal_y', b, is_available, lsubmodel, unitab)
280 CALL hm_get_floatv('Normal_z', c, is_available, lsubmodel, unitab)
281 IF(sub_id /= 0)CALL subrotvect(a,b,c,rtrans,sub_id,lsubmodel)
282
283 CALL hm_get_floatv('Radius', r, is_available, lsubmodel, unitab)
284
285 d = xm
286 e = ym
287 f = zm
288 norm = a*a+b*b+c*c
289 a = a/sqrt(norm)
290 b = b/sqrt(norm)
291 c = c/sqrt(norm)
292 ENDIF
293
294 DO j=1,nbinter
295 DO l=1,ninter
296 IF(nstrf(k1-1+j)==ipari(15,l))THEN
297 ipari(28,l) = ipari(28,l) + 1
298C numero interne NSTRF(K1-1+J) = L
299 ENDIF
300 ENDDO
301 ENDDO
302C
303C Noeuds concernes par la section (si NFRAM /= 0)
304C Noeuds concerns :
305C au dessus du plan N2N3 du frame (suivant la direction +Z)
306C & dans le plan N2N3 du frame
307C
308 IF (istyp >= 1 .OR. nfram > 0) THEN
309 IF(istyp == 0) THEN
310 DO k=1,numfram
311 j=k+1
312 jj=(numskw+1)+nsubmod+min(iun,nspcond)*numsph+k+1
313 IF(nfram==iskn(4,jj)) THEN
314 a = xframe(7,j)
315 b = xframe(8,j)
316 c = xframe(9,j)
317 d = xframe(10,j)
318 e = xframe(11,j)
319 f = xframe(12,j)
320 n1 = iskn(1,jj)
321 IF (nstrf(k0+3) == 0 ) THEN
322 IF (iskn(1,jj) /= 0) THEN
323 nstrf(k0+3) = itab(iskn(1,jj))
324 ELSE
325 CALL ancmsg(msgid=742,
326 . msgtype=msgerror,
327 . anmode=aninfo,
328 . i1=id,
329 . c1=titr,
330 . c2='N1',
331 . i2=nfram)
332 ENDIF
333 ENDIF
334 IF (nstrf(k0+4) == 0 ) THEN
335 IF (iskn(2,jj) /= 0) THEN
336 nstrf(k0+4) = itab(iskn(2,jj))
337 ELSE
338 CALL ancmsg(msgid=742,
339 . msgtype=msgerror,
340 . anmode=aninfo,
341 . i1=id,
342 . c1=titr,
343 . c2='N2',
344 . i2=nfram)
345 ENDIF
346 ENDIF
347 IF (nstrf(k0+5) == 0 ) THEN
348 IF (iskn(3,jj) /= 0) THEN
349 nstrf(k0+5) = itab(iskn(3,jj))
350 ELSE
351 CALL ancmsg(msgid=742,
352 . msgtype=msgerror,
353 . anmode=aninfo,
354 . i1=id,
355 . c1=titr,
356 . c2='N3',
357 . i2=nfram)
358 ENDIF
359 ENDIF
360 ENDIF
361 ENDDO
362 ENDIF
363 kk=1+ngrnod
364 nnod = 0
365 cpt = 1
366 CALL sec_nodes_sol(igus,istyp,ngrbric,igrbric,x0,a,
367 2 b,c,d,e,f,itab,ixs,ixs10,ixs16,ixs20,
368 3 nixs,kk,nnod,nstrf,nbinter,n1 ,k1,
369 4 cpt,nodtag,isolnod,tagelems,
370 5 x1,y1,z1,x2,y2,z2,r)
371
372 kk=kk+ngrbric
373 ENDIF
374
375 k2=k1+nbinter
376
377 IF (nfram == 0 .AND. istyp == 0) THEN
378 nnod=nodgrnr5(igu,igs,nstrf(k2),igrnod,itabm1,mess)
379 ENDIF
380
381 k3=k2+nnod
382 nsegs=elegror(igus,igrbric,ngrbric,'BRIC',nstrf(k3),2,mess,nfram,tagelems,istyp,id,titr)
383 k4=k3+2*nsegs
384 nsegq=0
385 k5=k4+2*nsegq
386 nsegc=0
387 k6=k5+2*nsegc
388 nsegt=0
389 k7=k6+2*nsegt
390 nsegp=0
391 k8=k7+2*nsegp
392 nsegr=0
393 k9=k8+2*nsegr
394 nsegtg=0
395C
396 nstrf(k0+6)=nnod
397 nstrf(k0+7)=nsegs
398 nstrf(k0+8)=nsegq
399 nstrf(k0+9)=nsegc
400 nstrf(k0+10)=nsegt
401 nstrf(k0+11)=nsegp
402 nstrf(k0+12)=nsegr
403 nstrf(k0+13) = nsegtg
404 nstrf(k0+26) = ifram
405 DO l=k0+3,k0+5
406 IF (nstrf(l)/=0) THEN
407 nstrf(l)=usr2sys(nstrf(l),itabm1,mess,id)
408 CALL anodset(nstrf(l), check_used)
409 ENDIF
410 ENDDO
411 nnsk1=itab(nstrf(k0+3))
412 nnsk2=itab(nstrf(k0+4))
413 nnsk3=itab(nstrf(k0+5))
414 x1=x0(1,nstrf(k0+4))-x0(1,nstrf(k0+3))
415 y1=x0(2,nstrf(k0+4))-x0(2,nstrf(k0+3))
416 z1=x0(3,nstrf(k0+4))-x0(3,nstrf(k0+3))
417 x2=x0(1,nstrf(k0+5))-x0(1,nstrf(k0+4))
418 y2=x0(2,nstrf(k0+5))-x0(2,nstrf(k0+4))
419 z2=x0(3,nstrf(k0+5))-x0(3,nstrf(k0+4))
420 x3=y1*z2-z1*y2
421 y3=z1*x2-z2*x1
422 z3=x1*y2-x2*y1
423 n3=x3*x3+y3*y3+z3*z3
424
425 pnor1=sqrt(x1*x1+y1*y1+z1*z1)
426 IF (pnor1 < em20) THEN
427 CALL ancmsg(msgid=508,
428 . msgtype=msgerror,
429 . anmode=aninfo_blind_1,
430 . i1=id,
431 . c1=titr)
432 ELSE
433 pnor2=sqrt(n3)
434 IF (pnor2 > em20) THEN
435 pnorm1=one/(pnor1*pnor2)
436 det1=abs((y3*z1-z3*y1)*pnorm1)
437 det2=abs((z3*x1-x3*z1)*pnorm1)
438 det3=abs((x3*y1-y3*x1)*pnorm1)
439 det= max(det1,det2,det3)
440 ELSE
441 det=zero
442 ENDIF
443 IF (det < em5) THEN
444 CALL ancmsg(msgid=508,
445 . msgtype=msgerror,
446 . anmode=aninfo_blind_1,
447 . i1=id,
448 . c1=titr)
449 ENDIF
450 ENDIF
451C
452C-------------------------------------------------------------------------
453C SOLIDES
454C--------------------------------------------------------------
455 CALL secstri(nsegs,nstrf(k3),ixs,ixs10,ixs16,ixs20,nstrf(k2),nnod,itab,i,noprint)
456 IF(nstrf(k0)>=102)THEN
457 CALL zerore(1,10+30*nnod,secbuf(kr0))
458 ELSEIF(nstrf(k0)>=101)THEN
459 CALL zerore(1,10+24*nnod,secbuf(kr0))
460 ELSEIF(nstrf(k0)>=100)THEN
461 CALL zerore(1,10+12*nnod,secbuf(kr0))
462 ELSE
463 CALL zerore(1,10,secbuf(kr0))
464 ENDIF
465 secbuf(kr0) = deltat
466 secbuf(kr0+1) = zero
467 secbuf(kr0+2) = alpha
468 secbuf(kr0+3) = zero
469
470 IF(nstrf(k0)==1.OR.nstrf(k0)==2)THEN
471 IF(secbuf(1)==zero)THEN
472 secbuf(1) = deltat
473 ELSEIF(abs((secbuf(1)-deltat)/secbuf(1)) > em06 )THEN
474 CALL ancmsg(msgid=356,
475 . msgtype=msgerror,
476 . anmode=aninfo_blind_2,
477 . i1=id,
478 . c1=titr)
479 ENDIF
480 ENDIF
481
482 IF(nstrf(k0)>=1.AND.nstrf(k0)<=10)THEN
483 nstrf(1)=nstrf(1)+1
484 ELSEIF(nstrf(k0)>=100.AND.nstrf(k0)<=200)THEN
485 nstrf(2)=nstrf(2)+1
486 DO j=1,8
487 nstrf(15+j)=nstrf(k0+14+j)
488 ENDDO
489 ENDIF
490 IF(nstrf(k0)==1)THEN
491 lrec = lrec+6*nnod
492 ELSEIF(nstrf(k0)==2)THEN
493 lrec = lrec+12*nnod
494 ENDIF
495
496 nstrf(k0+23) = id
497 nstrf(k0+24) = k9+2*nsegtg
498 nstrf(k0+25) = kr0+10
499 IF(nstrf(k0)>=100)nstrf(k0+25) = nstrf(k0+25)+12*nnod
500 IF(nstrf(k0)>=101)nstrf(k0+25) = nstrf(k0+25)+12*nnod
501 IF(nstrf(k0)>=102)nstrf(k0+25) = nstrf(k0+25)+6*nnod
502
503 kr0 = nstrf(k0+25)
504 k0 = nstrf(k0+24)
505C-------------------------------------------------------------
506 nodtag = 0
507 tagelems = 0
508 ENDDO
509 CALL udouble(sectids,1,nsect,mess,0,bid)
510
511C file rec length
512 nstrf(6)=lrec*4
513
514C-------------------------------------------------------------
515 2900 FORMAT(/' SECTION',i10,' ID',i10/
516 + ' ---------------'/
517 + ' TYPE . . . . . . . . . . . . . . .',i10/
518 + ' FILENAME . . . . . . . . . . . . .',a/
519 + ' DELTAT . . . . . . . . . . . . . .',1pg20.13/
520 + ' ALPHA. . . . . . . . . . . . . . .',1pg20.13/
521 + ' FRAME TYPE . . . . . . . . . . . .',i10/
522 + ' NUMBER OF INTERFACES . . . . . . .',i10/
523 + ' INTERFACES:')
524 2901 FORMAT(/' SECTION',i10,' ID',i10/
525 + ' ---------------'/
526 + ' TYPE . . . . . . . . . . . . . . .',i8/
527 + ' FRAME TYPE . . . . . . . . . . . .',i8/)
528 3000 FORMAT(/
529 + ' NUMBER OF NODES. . . . . . . . . .',i10/
530 + ' NODES:')
531 3100 FORMAT(/
532 + ' NUMBER OF SHELL ELEMENTS . . . . .',i10/
533 + ' SHELL N1 N2 N3 N4')
534 3200 FORMAT(/
535 + ' NUMBER OF 3 NODES SHELL ELEMENTS .',i10/
536 + ' SHELL N1 N2 N3')
537 3300 FORMAT(/
538 + ' NUMBER OF BRICK ELEMENTS . . . . .',i10/
539 + ' BRICK N1 N2 N3 N4',
540 + ' N5 N6 N7 N8')
541 3400 FORMAT(/
542 + ' NUMBER OF QUAD ELEMENTS . . . . .',i10/
543 + ' QUAD N1 N2 N3 N4')
544 3500 FORMAT(/
545 + ' NUMBER OF TRUSS ELEMENTS . . . . .',i10/
546 + ' TRUSS N1 N2')
547 3600 FORMAT(/
548 + ' NUMBER OF BEAM ELEMENTS . . . . .',i10/
549 + ' BEAM N1 N2')
550 3700 FORMAT(/
551 + ' NUMBER OF SPRING ELEMENTS . . . . .',i8/
552 + ' SPRING N1 N2')
553C
554 DEALLOCATE(nodtag)
555 DEALLOCATE(tagelems)
556 RETURN
557 END
void anodset(int *id, int *type)
norm(diag(diag(diag(inv(mat))) -id.SOL), 2) % destroy mumps instance id.JOB
integer function elegror(igu, igrele, ngrele, mot, ibuf, nib, mess, nfram, tagelems, istyp, id, titr)
Definition elegror.F:34
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_int_array_index(name, ival, index, is_available, lsubmodel)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_get_string(name, sval, size, is_available)
subroutine hm_option_start(entity_type)
subroutine secstri(nseg, isecbuf, ixs, ixs10, ixs16, ixs20, nod, nnod, itab, isec, noprint)
subroutine sec_nodes_sol(igu1, istyp, ngr, igrbric, x0, a, b, c, d, e, f, itab, ixs, ixs10, ixs16, ixs20, nix, kk, nnod, nstrf, nbinter, n1, k1, j, nodtag, isolnod, tagelems, x1, y1, z1, x2, y2, z2, r)
subroutine lecsec4bolt(ixs, ixq, ixc, ixt, ixp, ixr, ixtg, x0, nstrf, itab, itabm1, igrnod, secbuf, ipari, ixs10, ixs20, ixs16, unitab, iskn, xframe, isolnod, nom_sect, rtrans, lsubmodel, nom_opt, igrbric)
Definition lecsec4bolt.F:57
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
integer, parameter nchartitle
integer, parameter ncharfield
integer, parameter ncharline
integer nsubmod
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)
Definition message.F:889
subroutine lectur(multi_fvm, lsubmodel, is_dyna, detonators, ebcs_tab, seatbelt_converted_elements, nb_seatbelt_shells, nb_dyna_include, user_windows, output, mat_elem, names_and_titles, defaults, glob_therm, pblast, sensor_user_struct)
Definition lectur.F:533
subroutine udouble(list, ilist, nlist, mess, ir, rlist)
Definition sysfus.F:589
program starter
Definition starter.F:39
subroutine subrotvect(x, y, z, rtrans, sub_id, lsubmodel)
Definition subrot.F:54
subroutine subrotpoint(x, y, z, rtrans, sub_id, lsubmodel)
Definition subrot.F:180
subroutine zerore(n1, n2, am)
Definition zerore.F:31