OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
assparxx.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!|| assparxx ../engine/source/assembly/assparxx.F
25!||--- called by ------------------------------------------------------
26!|| resol ../engine/source/engine/resol.F
27!||--- uses -----------------------------------------------------
28!|| tri7box ../engine/share/modules/tri7box.F
29!||====================================================================
30 SUBROUTINE assparxx(ITSK,INTLIST,NBINTC,IPARI,NODADT_THERM)
31C-----------------------------------------------
32C M o d u l e s
33C-----------------------------------------------
34 USE tri7box
35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C C o m m o n B l o c k s
41C-----------------------------------------------
42#include "param_c.inc"
43#include "task_c.inc"
44#include "scr18_c.inc"
45C-----------------------------------------------
46C D u m m y A r g u m e n t s
47C-----------------------------------------------
48 INTEGER ,INTENT(IN) :: NODADT_THERM
49 INTEGER ITSK,NBINTC,INTLIST(*),IPARI(NPARI,*)
50C-----------------------------------------------
51C L o c a l V a r i a b l e s
52C-----------------------------------------------
53 INTEGER K,NIN,NODFI,ISHIFT,IG,NI,NTY,NODFTSK,NODLTSK,INTTH,NODFIE
54C
55
56 DO ni = 1,nbintc
57 nin= intlist(ni)
58 nty =ipari(7,nin)
59 intth = ipari(47,nin)
60
61 IF(nty /= 7 .AND. nty /= 10 .AND. nty /= 11.AND. nty /= 24 .AND. nty /= 25 .AND. nty /= 20.AND. nty /= 23) cycle
62 nodfi = nlskyfi(nin)
63
64 nodftsk = 1+itsk*nodfi/ nthread
65 nodltsk = (itsk+1)*nodfi/nthread
66
67 DO k=2,nthread
68
69 ishift = nodfi*(k-1)
70
71 DO ig=nodftsk,nodltsk !LENR
72 afi(nin)%P(1,ig)=afi(nin)%P(1,ig)+afi(nin)%P(1,ig+ishift)
73 afi(nin)%P(2,ig)=afi(nin)%P(2,ig)+afi(nin)%P(2,ig+ishift)
74 afi(nin)%P(3,ig)=afi(nin)%P(3,ig)+afi(nin)%P(3,ig+ishift)
75 stnfi(nin)%P(ig)=stnfi(nin)%P(ig)+stnfi(nin)%P(ig+ishift)
76C
77 afi(nin)%P(1,ig+ishift) = zero
78 afi(nin)%P(2,ig+ishift) = zero
79 afi(nin)%P(3,ig+ishift) = zero
80 stnfi(nin)%P(ig+ishift) = zero
81 ENDDO
82
83 IF (intth /=0)THEN
84 DO ig=nodftsk,nodltsk !LENR
85 fthefi(nin)%P(ig)=fthefi(nin)%P(ig)+fthefi(nin)%P(ig+ishift)
86 fthefi(nin)%P(ig+ishift)=zero
87
88 IF(nodadt_therm == 1 ) THEN
89 condnfi(nin)%P(ig)=condnfi(nin)%P(ig)+condnfi(nin)%P(ig+ishift)
90 condnfi(nin)%P(ig+ishift)=zero
91 ENDIF
92 ENDDO
93 ENDIF
94
95 IF(kdtint/=0)THEN
96 DO ig=nodftsk,nodltsk
97 vscfi(nin)%P(ig)=vscfi(nin)%P(ig)+vscfi(nin)%P(ig+ishift)
98 vscfi(nin)%P(ig+ishift)=zero
99 ENDDO
100 ENDIF
101 ENDDO
102
103 IF(nty==20 .OR. (nty==25 .AND. ipari(58,nin) > 0))THEN
104 nodfie = nlskyfie(nin)
105 IF(nodfie > 0)THEN
106 nodftsk = 1+itsk*nodfie/ nthread
107 nodltsk = (itsk+1)*nodfie/nthread
108
109 DO k=2,nthread
110 ishift = nodfie*(k-1)
111 DO ig=nodftsk,nodltsk !LENR
112 afie(nin)%P(1,ig)=afie(nin)%P(1,ig)+afie(nin)%P(1,ig+ishift)
113 afie(nin)%P(2,ig)=afie(nin)%P(2,ig)+afie(nin)%P(2,ig+ishift)
114 afie(nin)%P(3,ig)=afie(nin)%P(3,ig)+afie(nin)%P(3,ig+ishift)
115 stnfie(nin)%P(ig)=stnfie(nin)%P(ig)+stnfie(nin)%P(ig+ishift)
116C
117 afie(nin)%P(1,ig+ishift) = zero
118 afie(nin)%P(2,ig+ishift) = zero
119 afie(nin)%P(3,ig+ishift) = zero
120 stnfie(nin)%P(ig+ishift) = zero
121 ENDDO
122
123 IF(kdtint/=0)THEN
124 DO ig=nodftsk,nodltsk
125 vscfie(nin)%P(ig)=vscfi(nin)%P(ig)+vscfie(nin)%P(ig+ishift)
126 vscfie(nin)%P(ig+ishift)=zero
127 ENDDO
128 ENDIF
129 ENDDO
130
131
132 ENDIF
133 ENDIF
134 ENDDO
135
136
137 RETURN
138 END
subroutine assparxx(itsk, intlist, nbintc, ipari, nodadt_therm)
Definition assparxx.F:31
type(real_pointer), dimension(:), allocatable condnfi
Definition tri7box.F:449
type(real_pointer), dimension(:), allocatable stnfi
Definition tri7box.F:449
type(real_pointer2), dimension(:), allocatable afi
Definition tri7box.F:459
type(real_pointer), dimension(:), allocatable stnfie
Definition tri7box.F:449
type(real_pointer2), dimension(:), allocatable afie
Definition tri7box.F:459
type(real_pointer), dimension(:), allocatable vscfi
Definition tri7box.F:449
type(real_pointer), dimension(:), allocatable vscfie
Definition tri7box.F:449
integer, dimension(:), allocatable nlskyfie
Definition tri7box.F:512
integer, dimension(:), allocatable nlskyfi
Definition tri7box.F:512
type(real_pointer), dimension(:), allocatable fthefi
Definition tri7box.F:449