OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
thtrus.F File Reference
#include "implicit_f.inc"
#include "com01_c.inc"
#include "task_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine thtrus (iparg, nthgrp2, ithgrp, ithbuf, elbuf_tab, wa)

Function/Subroutine Documentation

◆ thtrus()

subroutine thtrus ( integer, dimension(nparg,*) iparg,
integer, intent(in) nthgrp2,
integer, dimension(nithgr,*), intent(in) ithgrp,
integer, dimension(*) ithbuf,
type (elbuf_struct_), dimension(ngroup), target elbuf_tab,
wa )

Definition at line 30 of file thtrus.F.

32C-----------------------------------------------
33C M o d u l e s
34C-----------------------------------------------
35 USE elbufdef_mod
36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41C C o m m o n B l o c k s
42C-----------------------------------------------
43#include "com01_c.inc"
44#include "task_c.inc"
45#include "param_c.inc"
46C-----------------------------------------------
47C D u m m y A r g u m e n t s
48C-----------------------------------------------
49 INTEGER IPARG(NPARG,*),ITHBUF(*)
50 INTEGER, INTENT(in) :: NTHGRP2
51 INTEGER, DIMENSION(NITHGR,*), INTENT(in) :: ITHGRP
53 . wa(*)
54C
55 TYPE (ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
56C-----------------------------------------------
57C L o c a l V a r i a b l e s
58C-----------------------------------------------
59 INTEGER II,I,N,IH,NG,ITY,MTE,K,L,LWA,NEL,NFT,J,IP
60 INTEGER :: NITER,IAD,NN,IADV,NVAR,ITYP,IJK
61C
62 TYPE(G_BUFEL_) ,POINTER :: GBUF
63C-----------------------------------------------
64C-------------------------
65C ELEMENTS BARRES
66C-------------------------
67 ijk = 0
68 DO niter=1,nthgrp2
69 ityp=ithgrp(2,niter)
70 nn =ithgrp(4,niter)
71 iad =ithgrp(5,niter)
72 nvar=ithgrp(6,niter)
73 iadv=ithgrp(7,niter)
74 ii=0
75 IF(ityp==4)THEN
76! -------------------------------
77 ii=0
78 ih=iad
79 DO WHILE (ithbuf(ih+nn) /= ispmd .AND. ih < iad+nn)
80 ih = ih + 1
81 ENDDO
82 IF (ih >= iad+nn) GOTO 666
83 DO ng=1,ngroup
84 ity=iparg(5,ng)
85 gbuf => elbuf_tab(ng)%GBUF
86 IF (ity == 4) THEN
87 mte=iparg(1,ng)
88 nel=iparg(2,ng)
89 nft=iparg(3,ng)
90 DO i=1,nel
91 n=i+nft
92 k=ithbuf(ih)
93 ip=ithbuf(ih+nn)
94 IF (k == n) THEN
95 ih=ih+1
96 ii = ((ih-1) - iad)*nvar
97 DO WHILE (ithbuf(ih+nn) /= ispmd .AND. ih < iad+nn)
98 ih = ih + 1
99 ENDDO
100 IF (ih > iad+nn) GOTO 666
101 DO l=iadv,iadv+nvar-1
102 k=ithbuf(l)
103 ijk=ijk+1
104 IF (ithbuf(l) == 1) THEN
105 wa(ijk)=gbuf%OFF(i)
106 ELSEIF (ithbuf(l) == 2) THEN
107 wa(ijk)=gbuf%FOR(i)
108 ELSEIF (ithbuf(l) == 3) THEN
109 wa(ijk)=gbuf%EINT(i)
110 ELSEIF (ithbuf(l) == 4) THEN
111 wa(ijk)=gbuf%AREA(i)
112 ELSEIF (ithbuf(l) == 5) THEN
113 wa(ijk)=gbuf%LENGTH(i)
114 ELSEIF (ithbuf(l) == 6) THEN
115 IF (mte == 1) THEN
116 wa(ijk)=zero
117 ELSE
118 wa(ijk)=gbuf%PLA(i)
119 ENDIF
120 ENDIF ! IF (K == 1)
121 ENDDO ! DO L=IADV,IADV+NVAR-1
122 ijk = ijk + 1
123 wa(ijk) = ii
124 ENDIF ! IF (K == N)
125 ENDDO ! DO I=1,NEL
126 ENDIF ! IF (ITY == 4)
127 ENDDO ! DO NG=1,NGROUP
128 666 continue
129! -------------------------------
130 ENDIF
131 ENDDO
132C---
133 RETURN
#define my_real
Definition cppsort.cpp:32
integer function nvar(text)
Definition nvar.F:32