OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
inter_curv_computation.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!|| inter_curv_computation ../engine/source/interfaces/generic/inter_curv_computation.F
25!||--- called by ------------------------------------------------------
26!|| inter_count_node_curv ../engine/source/interfaces/generic/inter_count_node_curv.F
27!||====================================================================
28 SUBROUTINE inter_curv_computation(ICURV,NRTM_T,IRECT,C_MAX_LOCAL,CURV_MAX,X)
29!$COMMENT
30! INTER_CURV_COMPUTATION description :
31!
32! INTER_CURV_COMPUTATION :
33!$ENDCOMMENT
34C-----------------------------------------------
35C I m p l i c i t T y p e s
36C-----------------------------------------------
37#include "implicit_f.inc"
38#include "comlock.inc"
39C-----------------------------------------------
40C C o m m o n B l o c k s
41C-----------------------------------------------
42#include "com04_c.inc"
43C-----------------------------------------------
44C D u m m y A r g u m e n t s
45C-----------------------------------------------
46 INTEGER, INTENT(in) :: ICURV,NRTM_T
47 INTEGER, DIMENSION(4,NRTM_T), INTENT(in) :: IRECT
48 my_real, INTENT(inout) :: c_max_local
49 my_real, DIMENSION(NRTM_T), INTENT(inout) :: curv_max
50 my_real, DIMENSION(3,NUMNOD), INTENT(in) :: x
51C-----------------------------------------------
52C L o c a l V a r i a b l e s
53C-----------------------------------------------
54 INTEGER :: I
55 my_real :: xxx,yyy,zzz
56C-----------------------------------------------
57C S o u r c e L i n e s
58C-----------------------------------------------
59C
60 IF(icurv/=0)THEN
61 c_max_local = zero
62 DO i=1,nrtm_t
63 xxx=max(x(1,irect(1,i)),x(1,irect(2,i)),
64 . x(1,irect(3,i)),x(1,irect(4,i)))
65 . -min(x(1,irect(1,i)),x(1,irect(2,i)),
66 . x(1,irect(3,i)),x(1,irect(4,i)))
67 yyy=max(x(2,irect(1,i)),x(2,irect(2,i)),
68 . x(2,irect(3,i)),x(2,irect(4,i)))
69 . -min(x(2,irect(1,i)),x(2,irect(2,i)),
70 . x(2,irect(3,i)),x(2,irect(4,i)))
71 zzz=max(x(3,irect(1,i)),x(3,irect(2,i)),
72 . x(3,irect(3,i)),x(3,irect(4,i)))
73 . -min(x(3,irect(1,i)),x(3,irect(2,i)),
74 . x(3,irect(3,i)),x(3,irect(4,i)))
75 curv_max(i) = half * max(xxx,yyy,zzz)
76 c_max_local = max(c_max_local,curv_max(i))
77 ENDDO
78 ELSE
79 DO i=1,nrtm_t
80 curv_max(i)=zero
81 ENDDO
82 ENDIF
83C
84 RETURN
85 END SUBROUTINE inter_curv_computation
#define my_real
Definition cppsort.cpp:32
subroutine inter_curv_computation(icurv, nrtm_t, irect, c_max_local, curv_max, x)
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21