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
67 use element_mod , only : nixs,nixq,nixc,nixp,nixt,nixr,nixtg
68C-----------------------------------------------
69C I m p l i c i t T y p e s
70C-----------------------------------------------
71#include "implicit_f.inc"
72C-----------------------------------------------
73C A n a l y s e M o d u l e
74C-----------------------------------------------
75#include "analyse_name.inc"
76C-----------------------------------------------
77C C o m m o n B l o c k s
78C-----------------------------------------------
79#include "com04_c.inc"
80#include "scr17_c.inc"
81#include "param_c.inc"
82#include "sphcom.inc"
83C-----------------------------------------------
84C D u m m y A r g u m e n t s
85C-----------------------------------------------
86 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
87 INTEGER IXC(NIXC,*), IXTG(NIXTG,*), NSTRF(*), ITAB(*),
88 . ITABM1(*),IXS(NIXS,*), IXQ(NIXQ,*), IXT(NIXT,*),
89 . IXP(NIXP,*), IXR(NIXR,*), IPARI(NPARI,*),
90 . IXS10(6,*),IXS20(12,*),IXS16(8,*),ISKN(LISKN,*),
91 . isolnod(*),nom_sect(*)
92 INTEGER NOM_OPT(LNOPT1,*)
93 TYPE(SUBMODEL_DATA) LSUBMODEL(*)
94 my_real
95 . X0(3,*),SECBUF(*),XFRAME(NXFRAME,*),
96 . RTRANS(NTRANSF,*)
97C-----------------------------------------------
98 TYPE (GROUP_) ,DIMENSION(NGRNOD) :: IGRNOD
99 TYPE (GROUP_) ,DIMENSION(NGRBRIC) :: IGRBRIC
100C-----------------------------------------------
101C L o c a l V a r i a b l e s
102C-----------------------------------------------
103 INTEGER ,DIMENSION(NSECT) :: SECTIDS
104 INTEGER K1, I, J, L, KK, K2, K,LREC,
105 . NNOD, NBINTER,K0,K3,K4,K5,K6,K7,K8,K9,KR0,
106 . NSEGQ,NSEGS,NSEGC,NSEGT,NSEGP,NSEGR,NSEGTG,ID,
107 . IGU,IGS,IGUS,IGUQ,IGUC,IGUT,IGUP,IGUR,IGUTG,IFRAM,
108 . nnsk1,nnsk2,nnsk3,uid,iflagunit,
109 . nfram,jj,iun,
110 .
111 . n1,cpt,
112 . ng,noprint,ilen
113 INTEGER FLAG_FMT, L0, ISTYP, SUB_ID
114 INTEGER, DIMENSION(:), ALLOCATABLE :: NODTAG,TAGELEMS
115 my_real
116 . DELTAT,ALPHA,FAC_T,A,B,C,D,E,F,R
117 CHARACTER MESS*40
118 CHARACTER(LEN=NCHARTITLE) :: TITR
119 CHARACTER(LEN=NCHARLINE) ::CHAR8
120 CHARACTER(LEN=NCHARFIELD) :: KEY2
121 my_real
122 . bid, xm, ym, zm, x1, y1, z1, x2, y2, z2, norm,
123 . x3, y3, z3, n3, pnor1, pnor2, pnorm1, det, det1, det2, det3
124 LOGICAL IS_AVAILABLE
125C-----------------------------------------------
126C E x t e r n a l F u n c t i o n s
127C-----------------------------------------------
128 INTEGER USR2SYS,NODGRNR5,ELEGROR
129 EXTERNAL usr2sys,nodgrnr5,elegror
130C
131C
132 DATA mess/'SECTION DEFINITION '/
133 DATA iun/1/
134C=======================================================================
135 ALLOCATE(tagelems(1+numelc+numels+numelt+numelq+numelp+numelr+numeltg))
136 ALLOCATE(nodtag(numnod))
137
138 noprint = 1
139 flag_fmt = 0
140 nfram = 0
141 nodtag = 0
142 tagelems = 0
143C GENERIC WRITE FLAG
144 nstrf(1)=0
145C GENERIC READ FLAG
146 nstrf(2)=0
147C file flip/flop
148 nstrf(3)=0
149C file run number
150 nstrf(4)=1
151C file next run number
152 nstrf(5)=2
153C File Rec Length
154 lrec=0
155C file record flip/flop
156 nstrf(7)=0
157C
158 k0 = 31
159 kr0= 11
160 nstrf(25)=k0
161 nstrf(26)=kr0
162 l0 = 7
163 ng = 0
164 iguq=0
165
166 CALL hm_option_start('/SECT')
167
168 DO i=1,nsect
169 igu = 0
170 istyp = 0
171 ng=ng+1
172 lrec = lrec+3
173 k1 = k0+30
174 CALL hm_option_read_key(lsubmodel, option_id=id, option_titr=titr, unit_id=uid, submodel_id=sub_id, keyword2=key2)
175
176 CALL hm_get_intv('Axis_Origin_Node_N1', nstrf(k0+3), is_available, lsubmodel)
177 CALL hm_get_intv('Axis_Node_N2', nstrf(k0+4), is_available, lsubmodel)
178 CALL hm_get_intv('axis_node_n3', NSTRF(K0+5), IS_AVAILABLE, LSUBMODEL)
179 CALL HM_GET_INTV('isave', NSTRF(K0), IS_AVAILABLE, LSUBMODEL)
180
181 CALL HM_GET_STRING('file_name', CHAR8, ncharline, IS_AVAILABLE)
182 ILEN=LEN(CHAR8)
183 ILEN=LEN_TRIM(CHAR8)
184 ILEN=MAX(0,ILEN)
185.AND. IF(ILEN >= 0 ILEN < ncharline)THEN
186 DO K=ILEN+1,ncharline
187 CHAR8(K:K)=' '
188 ENDDO
189 ENDIF
190
191 IF(KEY2(1:5) == 'paral') THEN
192 ISTYP = 1
193 ELSEIF(KEY2(1:6) == 'circle') THEN
194 ISTYP = 2
195 ELSE
196 CALL HM_GET_INTV('grnod_id', IGU, IS_AVAILABLE, LSUBMODEL)
197 CALL HM_GET_INTV('system_id', NFRAM, IS_AVAILABLE, LSUBMODEL)
198 ISTYP = 0
199 ENDIF
200
201 CALL HM_GET_FLOATV('detltat', DELTAT, IS_AVAILABLE, LSUBMODEL, UNITAB)
202 CALL HM_GET_FLOATV('alpha', ALPHA, IS_AVAILABLE, LSUBMODEL, UNITAB)
203 CALL HM_GET_INTV('grbrick_id', IGUS, IS_AVAILABLE, LSUBMODEL)
204 CALL HM_GET_INTV('grshel_id', IGUC, IS_AVAILABLE, LSUBMODEL)
205 CALL HM_GET_INTV('grtrus_id', IGUT, IS_AVAILABLE, LSUBMODEL)
206 CALL HM_GET_INTV('grbeam_id', IGUP, IS_AVAILABLE, LSUBMODEL)
207 CALL HM_GET_INTV('grsprg_id', IGUR, IS_AVAILABLE, LSUBMODEL)
208 CALL HM_GET_INTV('grtria_id', IGUTG, IS_AVAILABLE, LSUBMODEL)
209 CALL HM_GET_INTV('niter', NBINTER, IS_AVAILABLE, LSUBMODEL)
210 CALL HM_GET_INTV('iframe', IFRAM, IS_AVAILABLE, LSUBMODEL)
211
212.OR. IF (NBINTER < 0 NBINTER > 10) THEN
213 CALL ANCMSG(MSGID=124,ANMODE=ANINFO,MSGTYPE=MSGERROR,I1=ID,C1=TITR)
214 ENDIF
215
216 IFLAGUNIT = 0
217 DO J=1,UNITAB%NUNITS
218 IF (UNITAB%UNIT_ID(J) == UID) THEN
219 FAC_T = UNITAB%FAC_T(J)
220 IFLAGUNIT = 1
221 EXIT
222 ENDIF
223 ENDDO
224.AND. IF (UID/=0IFLAGUNIT==0) THEN
225 CALL ANCMSG(MSGID=659,ANMODE=ANINFO,MSGTYPE=MSGERROR,I2=UID,I1=ID,C1='section',C2='section',C3=TITR)
226 ENDIF
227
228 SECTIDS(I)=ID
229
230.AND..AND. IF(IGU == 0 NFRAM == 0 ISTYP == 0) THEN
231 CALL ANCMSG(MSGID=507,
232 . MSGTYPE=MSGWARNING,
233 . ANMODE=ANINFO_BLIND_1,
234 . I1=ID,
235 . C1=TITR)
236 ENDIF
237
238 DO J=1,ncharline
239 NOM_SECT((I-1)*ncharline+J) = ICHAR(CHAR8(J:J))
240 ENDDO
241
242 DO J=1,NBINTER
243 CALL HM_GET_INT_ARRAY_INDEX('int_id' ,NSTRF(K1-1+J) ,J ,IS_AVAILABLE, LSUBMODEL)
244 ENDDO
245
246 IF (ISTYP == 1) THEN
247 CALL HM_GET_FLOATV('xtail', XM, IS_AVAILABLE, LSUBMODEL, UNITAB)
248 CALL HM_GET_FLOATV('ytail', YM, IS_AVAILABLE, LSUBMODEL, UNITAB)
249 CALL HM_GET_FLOATV('ztail', ZM, IS_AVAILABLE, LSUBMODEL, UNITAB)
250 IF(SUB_ID /= 0)CALL SUBROTPOINT(XM,YM,ZM,RTRANS,SUB_ID,LSUBMODEL)
251
252 CALL HM_GET_FLOATV('cnode1_x', X1, IS_AVAILABLE, LSUBMODEL, UNITAB)
253 CALL HM_GET_FLOATV('cnode1_y', Y1, IS_AVAILABLE, LSUBMODEL, UNITAB)
254 CALL HM_GET_FLOATV('cnode1_z', Z1, IS_AVAILABLE, LSUBMODEL, UNITAB)
255 IF(SUB_ID /= 0) CALL SUBROTPOINT(X1,Y1,Z1,RTRANS,SUB_ID,LSUBMODEL)
256
257 CALL HM_GET_FLOATV('cnode2_x', X2, IS_AVAILABLE, LSUBMODEL, UNITAB)
258 CALL HM_GET_FLOATV('cnode2_y', Y2, IS_AVAILABLE, LSUBMODEL, UNITAB)
259 CALL HM_GET_FLOATV('cnode2_z', Z2, IS_AVAILABLE, LSUBMODEL, UNITAB)
260 IF(SUB_ID /= 0)CALL SUBROTPOINT(X2,Y2,Z2,RTRANS,SUB_ID,LSUBMODEL)
261
262 D = XM
263 E = YM
264 F = ZM
265 A = ((Y1-YM)*(Z2-ZM))-((Y2-YM)*(Z1-ZM))
266 B = ((X2-XM)*(Z1-ZM))-((X1-XM)*(Z2-ZM))
267 C = ((X1-XM)*(Y2-YM))-((X2-XM)*(Y1-YM))
268 NORM = A*A+B*B+C*C
269 A = A/SQRT(NORM)
270 B = B/SQRT(NORM)
271 C = C/SQRT(NORM)
272
273 ELSEIF (ISTYP == 2) THEN
274 CALL HM_GET_FLOATV('xtail', XM, IS_AVAILABLE, LSUBMODEL, UNITAB)
275 CALL HM_GET_FLOATV('ytail', ym, is_available, lsubmodel, unitab)
276 CALL hm_get_floatv('ZTail', zm, is_available, lsubmodel, unitab)
277 IF(sub_id /= 0)CALL subrotpoint(xm,ym,zm,rtrans,sub_id,lsubmodel)
278
279 CALL hm_get_floatv('Normal_x', a, is_available, lsubmodel, unitab)
280 CALL hm_get_floatv('Normal_y', b, is_available, lsubmodel, unitab)
281 CALL hm_get_floatv('Normal_z', c, is_available, lsubmodel, unitab)
282 IF(sub_id /= 0)CALL subrotvect(a,b,c,rtrans,sub_id,lsubmodel)
283
284 CALL hm_get_floatv('Radius', r, is_available, lsubmodel, unitab)
285
286 d = xm
287 e = ym
288 f = zm
289 norm = a*a+b*b+c*c
290 a = a/sqrt(norm)
291 b = b/sqrt(norm)
292 c = c/sqrt(norm)
293 ENDIF
294
295 DO j=1,nbinter
296 DO l=1,ninter
297 IF(nstrf(k1-1+j)==ipari(15,l))THEN
298 ipari(28,l) = ipari(28,l) + 1
299C internal number NSTRF(K1-1+J) = L
300 ENDIF
301 ENDDO
302 ENDDO
303C
304C nodes concerned by the section (if nfram /= 0)
305C Knots concerns:
306C above the n2n3 plane of the frame (along the +z direction)
307C & in the n2n3 plane of the frame
308C
309 IF (istyp >= 1 .OR. nfram > 0) THEN
310 IF(istyp == 0) THEN
311 DO k=1,numfram
312 j=k+1
313 jj=(numskw+1)+nsubmod+min(iun,nspcond)*numsph+k+1
314 IF(nfram==iskn(4,jj)) THEN
315 a = xframe(7,j)
316 b = xframe(8,j)
317 c = xframe(9,j)
318 d = xframe(10,j)
319 e = xframe(11,j)
320 f = xframe(12,j)
321 n1 = iskn(1,jj)
322 IF (nstrf(k0+3) == 0 ) THEN
323 IF (iskn(1,jj) /= 0) THEN
324 nstrf(k0+3) = itab(iskn(1,jj))
325 ELSE
326 CALL ancmsg(msgid=742,
327 . msgtype=msgerror,
328 . anmode=aninfo,
329 . i1=id,
330 . c1=titr,
331 . c2='N1',
332 . i2=nfram)
333 ENDIF
334 ENDIF
335 IF (nstrf(k0+4) == 0 ) THEN
336 IF (iskn(2,jj) /= 0) THEN
337 nstrf(k0+4) = itab(iskn(2,jj))
338 ELSE
339 CALL ancmsg(msgid=742,
340 . msgtype=msgerror,
341 . anmode=aninfo,
342 . i1=id,
343 . c1=titr,
344 . c2='N2',
345 . i2=nfram)
346 ENDIF
347 ENDIF
348 IF (nstrf(k0+5) == 0 ) THEN
349 IF (iskn(3,jj) /= 0) THEN
350 nstrf(k0+5) = itab(iskn(3,jj))
351 ELSE
352 CALL ancmsg(msgid=742,
353 . msgtype=msgerror,
354 . anmode=aninfo,
355 . i1=id,
356 . c1=titr,
357 . c2='N3',
358 . i2=nfram)
359 ENDIF
360 ENDIF
361 ENDIF
362 ENDDO
363 ENDIF
364 kk=1+ngrnod
365 nnod = 0
366 cpt = 1
367 CALL sec_nodes_sol(igus,istyp,igrbric,x0,a,
368 2 b,c,d,e,f,ixs,ixs10,ixs16,ixs20,
369 3 nixs,nnod,nstrf,nbinter,k1,
370 4 cpt,nodtag,isolnod,tagelems,
371 5 x1,y1,z1,x2,y2,z2,r)
372
373 kk=kk+ngrbric
374 ENDIF
375
376 k2=k1+nbinter
377
378 IF (nfram == 0 .AND. istyp == 0) THEN
379 nnod=nodgrnr5(igu,igs,nstrf(k2),igrnod,itabm1,mess)
380 ENDIF
381
382 k3=k2+nnod
383 nsegs=elegror(igus,igrbric,ngrbric,'BRIC',nstrf(k3),2,mess,nfram,tagelems,istyp,id,titr)
384 k4=k3+2*nsegs
385 nsegq=0
386 k5=k4+2*nsegq
387 nsegc=0
388 k6=k5+2*nsegc
389 nsegt=0
390 k7=k6+2*nsegt
391 nsegp=0
392 k8=k7+2*nsegp
393 nsegr=0
394 k9=k8+2*nsegr
395 nsegtg=0
396C
397 nstrf(k0+6)=nnod
398 nstrf(k0+7)=nsegs
399 nstrf(k0+8)=nsegq
400 nstrf(k0+9)=nsegc
401 nstrf(k0+10)=nsegt
402 nstrf(k0+11)=nsegp
403 nstrf(k0+12)=nsegr
404 nstrf(k0+13) = nsegtg
405 nstrf(k0+26) = ifram
406 DO l=k0+3,k0+5
407 IF (nstrf(l)/=0) THEN
408 nstrf(l)=usr2sys(nstrf(l),itabm1,mess,id)
409 CALL anodset(nstrf(l), check_used)
410 ENDIF
411 ENDDO
412 nnsk1=itab(nstrf(k0+3))
413 nnsk2=itab(nstrf(k0+4))
414 nnsk3=itab(nstrf(k0+5))
415 x1=x0(1,nstrf(k0+4))-x0(1,nstrf(k0+3))
416 y1=x0(2,nstrf(k0+4))-x0(2,nstrf(k0+3))
417 z1=x0(3,nstrf(k0+4))-x0(3,nstrf(k0+3))
418 x2=x0(1,nstrf(k0+5))-x0(1,nstrf(k0+4))
419 y2=x0(2,nstrf(k0+5))-x0(2,nstrf(k0+4))
420 z2=x0(3,nstrf(k0+5))-x0(3,nstrf(k0+4))
421 x3=y1*z2-z1*y2
422 y3=z1*x2-z2*x1
423 z3=x1*y2-x2*y1
424 n3=x3*x3+y3*y3+z3*z3
425
426 pnor1=sqrt(x1*x1+y1*y1+z1*z1)
427 IF (pnor1 < em20) THEN
428 CALL ancmsg(msgid=508,
429 . msgtype=msgerror,
430 . anmode=aninfo_blind_1,
431 . i1=id,
432 . c1=titr)
433 ELSE
434 pnor2=sqrt(n3)
435 IF (pnor2 > em20) THEN
436 pnorm1=one/(pnor1*pnor2)
437 det1=abs((y3*z1-z3*y1)*pnorm1)
438 det2=abs((z3*x1-x3*z1)*pnorm1)
439 det3=abs((x3*y1-y3*x1)*pnorm1)
440 det= max(det1,det2,det3)
441 ELSE
442 det=zero
443 ENDIF
444 IF (det < em5) THEN
445 CALL ancmsg(msgid=508,
446 . msgtype=msgerror,
447 . anmode=aninfo_blind_1,
448 . i1=id,
449 . c1=titr)
450 ENDIF
451 ENDIF
452C
453C-------------------------------------------------------------------------
454C SOLIDES
455C--------------------------------------------------------------
456 CALL secstri(nsegs,nstrf(k3),ixs,ixs10,ixs16,ixs20,nstrf(k2),nnod,noprint)
457 IF(nstrf(k0)>=102)THEN
458 CALL zerore(1,10+30*nnod,secbuf(kr0))
459 ELSEIF(nstrf(k0)>=101)THEN
460 CALL zerore(1,10+24*nnod,secbuf(kr0))
461 ELSEIF(nstrf(k0)>=100)THEN
462 CALL zerore(1,10+12*nnod,secbuf(kr0))
463 ELSE
464 CALL zerore(1,10,secbuf(kr0))
465 ENDIF
466 secbuf(kr0) = deltat
467 secbuf(kr0+1) = zero
468 secbuf(kr0+2) = alpha
469 secbuf(kr0+3) = zero
470
471 IF(nstrf(k0)==1.OR.nstrf(k0)==2)THEN
472 IF(secbuf(1)==zero)THEN
473 secbuf(1) = deltat
474 ELSEIF(abs((secbuf(1)-deltat)/secbuf(1)) > em06 )THEN
475 CALL ancmsg(msgid=356,
476 . msgtype=msgerror,
477 . anmode=aninfo_blind_2,
478 . i1=id,
479 . c1=titr)
480 ENDIF
481 ENDIF
482
483 IF(nstrf(k0)>=1.AND.nstrf(k0)<=10)THEN
484 nstrf(1)=nstrf(1)+1
485 ELSEIF(nstrf(k0)>=100.AND.nstrf(k0)<=200)THEN
486 nstrf(2)=nstrf(2)+1
487 DO j=1,8
488 nstrf(15+j)=nstrf(k0+14+j)
489 ENDDO
490 ENDIF
491 IF(nstrf(k0)==1)THEN
492 lrec = lrec+6*nnod
493 ELSEIF(nstrf(k0)==2)THEN
494 lrec = lrec+12*nnod
495 ENDIF
496
497 nstrf(k0+23) = id
498 nstrf(k0+24) = k9+2*nsegtg
499 nstrf(k0+25) = kr0+10
500 IF(nstrf(k0)>=100)nstrf(k0+25) = nstrf(k0+25)+12*nnod
501 IF(nstrf(k0)>=101)nstrf(k0+25) = nstrf(k0+25)+12*nnod
502 IF(nstrf(k0)>=102)nstrf(k0+25) = nstrf(k0+25)+6*nnod
503
504 kr0 = nstrf(k0+25)
505 k0 = nstrf(k0+24)
506C-------------------------------------------------------------
507 nodtag = 0
508 tagelems = 0
509 ENDDO
510 CALL udouble(sectids,1,nsect,mess,0,bid)
511
512C File Rec Length
513 nstrf(6)=lrec*4
514
515C-------------------------------------------------------------
516 DEALLOCATE(nodtag)
517 DEALLOCATE(tagelems)
518 RETURN
519 END
void anodset(int *id, int *type)
norm(diag(diag(diag(inv(mat))) -id.SOL), 2) % destroy mumps instance id.JOB
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_start(entity_type)
subroutine sec_nodes_sol(igu1, istyp, igrbric, x0, a, b, c, d, e, f, ixs, ixs10, ixs16, ixs20, nix, nnod, nstrf, nbinter, k1, j, nodtag, isolnod, tagelems, x1, y1, z1, x2, y2, z2, r)
subroutine secstri(nseg, isecbuf, ixs, ixs10, ixs16, ixs20, nod, nnod, noprint)
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 section(nnod, n1, n2, n3, nstrf, x, v, vr, fsav, fopta, secfcum, ms, in, ifram, xsec)
Definition section.F:34
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:895
subroutine udouble(list, ilist, nlist, mess, ir, rlist)
Definition sysfus.F:573
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