OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
wpor.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!|| wpor ../engine/source/ale/grid/wpor.F
25!||--- called by ------------------------------------------------------
26!|| alewdx ../engine/source/ale/grid/alewdx.F
27!||====================================================================
28 SUBROUTINE wpor(
29 1 GEO,NODPOR,X ,V ,VR ,
30 2 W ,NALE,NPORGEO )
31C-----------------------------------------------
32C D e s c r i p t i o n
33C-----------------------------------------------
34C GRID VELOCITY POROUS MEDIA
35C AUGUST 1994
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 "param_c.inc"
44#include "com04_c.inc"
45#include "com08_c.inc"
46C-----------------------------------------------
47C D u m m y A r g u m e n t s
48C-----------------------------------------------
49 INTEGER NODPOR(*), NALE(*), NPORGEO(*)
50 my_real GEO(NPROPG,NUMGEO),X(3,NUMNOD),V(3,NUMNOD),VR(3,NUMNOD),W(3,NUMNOD)
51C-----------------------------------------------
52C L o c a l V a r i a b l e s
53C-----------------------------------------------
54 INTEGER NAD,IG,N,IR,M,I,JP
55 my_real VG(3),V1X2,V2X1,V2X3,V3X2,V3X1,V1X3
56C-----------------------------------------------
57C S o u r c e L i n e s
58C-----------------------------------------------
59 nad=0
60 DO ig=1,numgeo
61 IF(int(geo(12,ig)) /= 15)cycle
62 n = nporgeo(ig) ! num of local nodes stored in a specific spmd array
63 IF(n == 0)cycle
64 ir=int(geo(33,ig))
65 IF(ir > 0)THEN
66 m=int(geo(29,ig))
67 vg(1)=vr(1,m)
68 vg(2)=vr(2,m)
69 vg(3)=vr(3,m)
70 DO i=nad+1,nad+n
71 jp=nodpor(i)
72 IF(iabs(nale(jp)) == 1)THEN
73 v1x2=vg(1)*(x(2,jp)-x(2,m))
74 v2x1=vg(2)*(x(1,jp)-x(1,m))
75 v2x3=vg(2)*(x(3,jp)-x(3,m))
76 v3x2=vg(3)*(x(2,jp)-x(2,m))
77 v3x1=vg(3)*(x(1,jp)-x(1,m))
78 v1x3=vg(1)*(x(3,jp)-x(3,m))
79 w(1,jp)= v(1,m) + v2x3-v3x2-half*dt12*(vg(2)*v2x1+vg(3)*v3x1)
80 w(2,jp)= v(2,m) + v3x1-v1x3-half*dt12*(vg(3)*v3x2+vg(1)*v1x2)
81 w(3,jp)= v(3,m) + v1x2-v2x1-half*dt12*(vg(1)*v1x3+vg(2)*v2x3)
82 ENDIF
83 ENDDO
84 ENDIF
85 nad=nad+n
86 enddo!next IG
87C
88 RETURN
89 END
subroutine wpor(geo, nodpor, x, v, vr, w, nale, nporgeo)
Definition wpor.F:31