OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
h3d_dxyz_rwall_update.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!|| h3d_dxyz_rwall_update ../engine/source/output/h3d/h3d_build_fortran/h3d_dxyz_rwall_update.F
25!||--- called by ------------------------------------------------------
26!|| genh3d ../engine/source/output/h3d/h3d_results/genh3d.F
27!||--- calls -----------------------------------------------------
28!|| spmd_h3d_getmsr_update ../engine/source/output/h3d/spmd/spmd_h3d_getmsr_update.F
29!||====================================================================
30 SUBROUTINE h3d_dxyz_rwall_update (NSTRF,RWBUF,NPRW ,DISP ,XMIN ,
31 2 YMIN ,ZMIN ,XMAX ,YMAX , ZMAX,
32 3 FR_SEC,FR_WALL,WEIGHT,ITAB,
33 4 XWL ,YWL , ZWL,
34 . RWALL_V1, RWALL_V2, RWALL_V3, RWALL_V4, RWALL_V5, RWALL_V6 )
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 "com04_c.inc"
44#include "task_c.inc"
45#include "com01_c.inc"
46C-----------------------------------------------
47C D u m m y A r g u m e n t s
48C-----------------------------------------------
49 INTEGER NSTRF(*),NPRW(*),ITAB(*)
50 my_real
51 . RWBUF(NRWLP,*),DISP(3,*),XMIN ,YMIN ,ZMIN ,XMAX ,YMAX, ZMAX
52 my_real
53 . xwl(*), ywl(*), zwl(*), rwall_v1(*), rwall_v2(*), rwall_v3(*),
54 . rwall_v4(*), rwall_v5(*), rwall_v6(*)
55 integer
56 . fr_sec(nspmd+1,*),fr_wall(nspmd+2,*),weight(*)
57C-----------------------------------------------
58C L o c a l V a r i a b l e s
59C-----------------------------------------------
60 INTEGER J, I, K, K0, K1, N, NSEG, N1, N2, N3, N4,MSR, ITYP
61 my_real
62 . XX1, YY1, ZZ1, XX2, YY2, ZZ2, XX3, YY3, ZZ3,
63 . XX4, YY4, ZZ4, D13, XXC, YYC, ZZC, AL4,
64 . pmain,loc_proc, v1, v2, v3, vv1, vv2,
65 . vv3, r, xn,yn,zn,d,dx,dy,dz, vv
66
67 my_real
68 . xsec(3,3,nsect)
69 REAL R4,SBUF(3*NSECT)
70CC-----------------------------------------------
71 loc_proc=ispmd+1
72C
73C
74 k=1
75 DO n=1,nrwall
76 n2=n +nrwall
77 n3=n2+nrwall
78 n4=n3+nrwall
79 msr = nprw(n3)
80 IF (nspmd == 1) THEN
81 IF(msr==0)THEN
82 xwl(n)= zero
83 ywl(n)= zero
84 zwl(n)= zero
85 ELSE
86C verifier que ce noeud est sur proc0 !
87 xwl(n)=disp(1,msr)
88 ywl(n)=disp(2,msr)
89 zwl(n)=disp(3,msr)
90 ENDIF
91 ELSE
92 CALL spmd_h3d_getmsr_update(fr_wall(1,n),disp,msr,xwl(n),ywl(n),zwl(n),rwbuf(1,n))
93 END IF
94 IF (ispmd==0) THEN
95 ityp= nprw(n4)
96 IF(ityp==4)THEN
97 xwl(n) = xwl(n)
98 ywl(n) = ywl(n)
99 zwl(n) = zwl(n)
100 ENDIF
101 k=k+nprw(n)
102 IF(nprw(n4)==-1)k=k+nint(rwbuf(8,n))
103 END IF
104 ENDDO
105C
106 k=1
107 DO n=1,nrwall
108 n2=n +nrwall
109 n3=n2+nrwall
110 n4=n3+nrwall
111 ityp= nprw(n4)
112
113 IF(iabs(ityp)==1)THEN
114C
115 IF (ispmd==0) THEN
116c
117 rwall_v1(n) = zero
118 rwall_v2(n) = zero
119 rwall_v3(n) = zero
120 rwall_v4(n) = zero
121 rwall_v5(n) = zero
122 rwall_v6(n) = zero
123 ENDIF
124c
125 ELSEIF(ityp==2)THEN
126C
127 IF (ispmd==0) THEN
128c
129 rwall_v1(n) = zero
130 rwall_v2(n) = zero
131 rwall_v3(n) = zero
132 rwall_v4(n) = zero
133 rwall_v5(n) = zero
134 rwall_v6(n) = zero
135 ENDIF
136 ELSEIF(ityp==3)THEN
137c
138 IF (ispmd==0) THEN
139 rwall_v1(n) = zero
140 rwall_v2(n) = zero
141 rwall_v3(n) = zero
142 rwall_v4(n) = zero
143 rwall_v5(n) = zero
144 rwall_v6(n) = zero
145 ENDIF
146 ELSEIF(ityp==4)THEN
147 IF (ispmd==0) THEN
148C
149 rwall_v1(n) = zero
150 rwall_v2(n) = zero
151 rwall_v3(n) = zero
152 rwall_v4(n) = zero
153 rwall_v5(n) = zero
154 rwall_v6(n) = zero
155 ENDIF
156
157 ENDIF
158 k=k+nprw(n)
159 IF(nprw(n4)==-1)k=k+nint(rwbuf(8,n))
160 ENDDO
161C
162 RETURN
163 END
subroutine h3d_dxyz_rwall_update(nstrf, rwbuf, nprw, disp, xmin, ymin, zmin, xmax, ymax, zmax, fr_sec, fr_wall, weight, itab, xwl, ywl, zwl, rwall_v1, rwall_v2, rwall_v3, rwall_v4, rwall_v5, rwall_v6)
subroutine spmd_h3d_getmsr_update(fr_wall, disp, msr, xwl, ywl, zwl, rwl)