OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
finter.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#include "my_real.inc"
24!||====================================================================
25!|| finter ../starter/source/tools/curve/finter.F
26!||--- called by ------------------------------------------------------
27!|| cm58_refsta ../starter/source/materials/mat/mat058/cm58_refsta.F
28!|| fct_fiber_2 ../starter/source/materials/mat/mat098/lossfun_98.F
29!|| hm_read_eos_compaction2 ../starter/source/materials/eos/hm_read_eos_compaction2.F90
30!|| inimom_fvm ../starter/source/elements/solid/solide/inimom_fvm.F
31!|| law81_upd ../starter/source/materials/mat/mat081/law81_upd.F90
32!|| law87_upd ../starter/source/materials/mat/mat087/law87_upd.F90
33!|| lossfun_98 ../starter/source/materials/mat/mat098/lossfun_98.F
34!|| m36init ../starter/source/materials/mat/mat036/m36init.F90
35!|| m38init ../starter/source/materials/mat/mat038/m38init.F
36!|| m75init ../starter/source/materials/mat/mat075/m75init.F
37!|| m77init ../starter/source/materials/mat/mat077/m77init.F
38!|| sigeps35 ../starter/source/materials/mat/mat035/sigeps35.F
39!|| sigeps37 ../starter/source/materials/mat/mat037/sigeps37.F
40!|| sigeps38 ../starter/source/materials/mat/mat038/sigeps38.F
41!|| sigeps42 ../starter/source/materials/mat/mat042/sigeps42.F
42!|| sigeps70 ../starter/source/materials/mat/mat070/sigeps70.F
43!|| sigeps90 ../starter/source/materials/mat/mat090/sigeps90.F
44!||====================================================================
45 my_real FUNCTION finter(IFUNC,XX,NPF,TF,DERI)
46C-----------------------------------------------
47C I m p l i c i t T y p e s
48C-----------------------------------------------
49#include "implicit_f.inc"
50 INTEGER ifunc,npf(*),i
51 my_real tf(*), deri, xx, dx1, dx2
52
53 finter = 0
54C
55 dx2 = tf(npf(ifunc)) - xx
56C
57C Constant Function
58 IF ((npf(ifunc+1)-npf(ifunc))==2) THEN
59 finter = tf(npf(ifunc)+1)
60 RETURN
61 ELSE
62 DO 100 i=npf(ifunc)+2,npf(ifunc+1)-2,2
63 dx1 = -dx2
64 dx2 = tf(i) - xx
65 IF(dx2>=zero.OR.i==npf(ifunc+1)-2)THEN
66 deri = (tf(i+1) - tf(i-1)) / (tf(i) - tf(i-2))
67 IF(dx1<=dx2)THEN
68 finter = tf(i-1) + dx1 * deri
69 ELSE
70 finter = tf(i+1) - dx2 * deri
71 ENDIF
72 RETURN
73 ENDIF
74 100 CONTINUE
75 END IF
76C
77 RETURN
78 END
#define my_real
Definition cppsort.cpp:32