OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
depla.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!|| depla ../engine/source/assembly/depla.F
25!||--- called by ------------------------------------------------------
26!|| resol ../engine/source/engine/resol.F
27!||====================================================================
28 SUBROUTINE depla(V, D, X, VR, DR, XDP, DDP, NUMNOD)
29C-----------------------------------------------
30C I m p l i c i t T y p e s
31C-----------------------------------------------
32#include "implicit_f.inc"
33C-----------------------------------------------
34C C o m m o n B l o c k s
35C-----------------------------------------------
36#include "com01_c.inc"
37#include "com08_c.inc"
38#include "scr03_c.inc"
39#include "scr05_c.inc"
40#include "scr06_c.inc"
41#include "scr16_c.inc"
42C-----------------------------------------------
43C D u m m y A r g u m e n t s
44C-----------------------------------------------
45 INTEGER, INTENT(IN) :: NUMNOD !< number of node
46 my_real :: x(3,numnod) ,d(3,numnod) ,v(3,numnod) ,dr(3,numnod) ,vr(3,numnod)
47 DOUBLE PRECISION :: XDP(3,NUMNOD), DDP(3,NUMNOD)
48C-----------------------------------------------
49C L o c a l V a r i a b l e s
50C-----------------------------------------------
51 INTEGER I,N
52 my_real vdt
53 DOUBLE PRECISION VDT2
54C-----------------------------------------------
55C B o d y
56C-----------------------------------------------
57 IF(n2d==1)THEN
58!$OMP DO SCHEDULE(guided)
59 DO i=1,numnod
60 IF(x(2,i)+dt2*v(2,i)<zero) v(2,i)=zero
61 ENDDO
62!$OMP END DO
63 ENDIF
64C-------------------------------------------------------------
65C DISPLACEMENT (TRANSLATION & ROTATIONS)
66C-------------------------------------------------------------
67 IF (iresp==1) THEN
68!$OMP DO SCHEDULE(guided)
69 DO n=1,numnod
70 vdt2 = dt2*v(1,n)
71 ddp(1,n) = ddp(1,n)+vdt2
72 d(1,n)=ddp(1,n)
73 xdp(1,n)=xdp(1,n)+vdt2
74 x(1,n)=xdp(1,n)
75
76 vdt2 = dt2*v(2,n)
77 ddp(2,n) = ddp(2,n)+vdt2
78 d(2,n)=ddp(2,n)
79 xdp(2,n)=xdp(2,n)+vdt2
80 x(2,n)=xdp(2,n)
81
82 vdt2 = dt2*v(3,n)
83 ddp(3,n) = ddp(3,n)+vdt2
84 d(3,n)=ddp(3,n)
85 xdp(3,n)=xdp(3,n)+vdt2
86 x(3,n)=xdp(3,n)
87 ENDDO
88!$OMP END DO NOWAIT
89 ELSE
90!$OMP DO SCHEDULE(guided)
91 DO n=1,numnod
92 vdt = dt2*v(1,n)
93 d(1,n)=d(1,n)+vdt
94 x(1,n)=x(1,n)+vdt
95 vdt = dt2*v(2,n)
96 d(2,n)=d(2,n)+vdt
97 x(2,n)=x(2,n)+vdt
98 vdt = dt2*v(3,n)
99 d(3,n)=d(3,n)+vdt
100 x(3,n)=x(3,n)+vdt
101 ENDDO
102!$OMP END DO NOWAIT
103 ENDIF
104 IF((isecut>0 .OR. iisrot>0 .OR. impose_dr/=0 .OR. idrot == 1) .AND. iroddl /= 0) THEN
105!$OMP DO SCHEDULE(guided)
106 DO n=1,numnod
107 dr(1,n)=dr(1,n)+dt2*vr(1,n)
108 dr(2,n)=dr(2,n)+dt2*vr(2,n)
109 dr(3,n)=dr(3,n)+dt2*vr(3,n)
110 ENDDO
111!$OMP END DO
112 ENDIF
113
114 RETURN
115 END
#define my_real
Definition cppsort.cpp:32
subroutine depla(v, d, x, vr, dr, xdp, ddp, numnod)
Definition depla.F:29