OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
vinterdp.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!|| vinterdp ../engine/source/tools/curve/vinterdp.F
25!||--- called by ------------------------------------------------------
26!|| fixvel ../engine/source/constraints/general/impvel/fixvel.F
27!||====================================================================
28 SUBROUTINE vinterdp(TF,IAD,IPOS ,ILEN,NEL0,X,DYDX,Y)
29C-----------------------------------------------
30C I m p l i c i t T y p e s
31C-----------------------------------------------
32#include "implicit_f.inc"
33C
34 INTEGER ILEN(*),IPOS(*),IAD(*),NEL0
35 my_real tf(2,*)
36 INTEGER I,J1,J,ICONT,J2
37 DOUBLE PRECISION :: X(*),DYDX(*),Y(*)
38 DOUBLE PRECISION YDP, TF2J2,TF2J1,TF1J2,TF1J1,
39 . XDP,YYDP, DYDXDP
40C
41C
42 j = 0
43 100 CONTINUE
44C
45 j = j+1
46 icont = 0
47 DO i=1,nel0
48 j1 = ipos(i)+iad(i)+1
49 IF(j<=ilen(i)-1.AND.x(i)>tf(1,j1))THEN
50 ipos(i)=ipos(i)+1
51 icont = 1
52 ENDIF
53 ENDDO
54C
55 IF(icont==1)GOTO 100
56C
57 DO i=1,nel0
58 j1 =ipos(i)+iad(i)
59 j2 = j1+1
60
61 tf2j2 = tf(2,j2)
62 tf2j1 = tf(2,j1)
63 tf1j2 = tf(1,j2)
64 tf1j1 = tf(1,j1)
65 xdp = x(i)
66
67 dydxdp = (tf2j2-tf2j1)/(tf1j2-tf1j1)
68 dydx(i) = dydxdp
69
70 yydp = tf2j1 + dydxdp * (xdp - tf1j1)
71 y(i) = yydp
72
73! DYDX(I)=(TF(2,J2)-TF(2,J1))/(TF(1,J2)-TF(1,J1))
74! Y(I) = TF(2,J1) + DYDX(I)*(X(I)-TF(1,J1))
75 ENDDO
76C
77 RETURN
78 END
#define my_real
Definition cppsort.cpp:32
subroutine vinterdp(tf, iad, ipos, ilen, nel0, x, dydx, y)
Definition vinterdp.F:29