OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
fill_gr_surf_ellipse.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!|| fill_surf_ellipse ../starter/source/model/sets/fill_gr_surf_ellipse.F
25!||--- called by ------------------------------------------------------
26!|| fill_igr ../starter/source/model/sets/fill_igr.F
27!||--- calls -----------------------------------------------------
28!||--- uses -----------------------------------------------------
29!|| message_mod ../starter/share/message_module/message_mod.F
30!||====================================================================
31 SUBROUTINE fill_surf_ellipse(SET,IGRSURF,IGRS,BUFSF,LISURF1,NSURF)
32C-----------------------------------------------
33C ROUTINE DESCRIPTION :
34C ===================
35C Merge SET%SURFACE into Radioss Surface
36C-----------------------------------------------
37C DUMMY ARGUMENTS DESCRIPTION:
38C ===================
39C
40C NAME DESCRIPTION
41C
42C SET Set Structure - Current SET
43C IGRSURF SURFACES
44C============================================================================
45C-----------------------------------------------
46C M o d u l e s
47C-----------------------------------------------
48 USE my_alloc_mod
49 USE message_mod
50 USE groupdef_mod
51 USE setdef_mod
52 USE qa_out_mod
53C-----------------------------------------------
54C I m p l i c i t T y p e s
55C-----------------------------------------------
56#include "implicit_f.inc"
57C-----------------------------------------------
58C D u m m y A r g u m e n t s
59C-----------------------------------------------
60 INTEGER, INTENT(INOUT) :: IGRS
61 TYPE (SURF_) , TARGET ,INTENT(INOUT):: IGRSURF(*)
62 TYPE (SET_) , INTENT(INOUT) :: SET
63 INTEGER, INTENT(IN) :: LISURF1,NSURF
64 my_real, INTENT(INOUT) :: bufsf(lisurf1*(nsurf+nsets))
65C-----------------------------------------------
66C L o c a l V a r i a b l e s
67C-----------------------------------------------
68 INTEGER NSEG,J,IAD
69 CHARACTER MESS*40
70 DATA mess/'SET SURF GROUP DEFINITION '/
71C-----------------------------------------------
72!
73! create new (IGRSURF, etc) from elems of /SET
74!
75 nseg = set%NB_ELLIPSE
76! IF (NSEG == 0) RETURN ! create a Surface if empty
77!---
78 igrs = igrs + 1 ! increment NSURF = IGRS + 1
79!
80 igrsurf(igrs)%ID = set%SET_ID
81 igrsurf(igrs)%TITLE = set%TITLE
82 igrsurf(igrs)%NSEG = nseg
83!
84 igrsurf(igrs)%TYPE = 0
85 igrsurf(igrs)%ID_MADYMO = 0
86 igrsurf(igrs)%IAD_BUFR = 0
87 igrsurf(igrs)%NB_MADYMO = 0
88 igrsurf(igrs)%TYPE_MADYMO = 0
89 igrsurf(igrs)%LEVEL = 1
90 igrsurf(igrs)%TH_SURF = 0
91 igrsurf(igrs)%ISH4N3N = 0
92 igrsurf(igrs)%NSEG_R2R_ALL = 0
93 igrsurf(igrs)%NSEG_R2R_SHARE = 0
94 igrsurf(igrs)%IAD_IGE = 0
95 igrsurf(igrs)%NSEG_IGE = 0
96!
97! not printout empty group
98!
99 IF (nseg == 0) igrsurf(igrs)%SET_GROUP = 1
100!
101!
102 IF (nseg > 0) THEN
103!
104 CALL my_alloc(igrsurf(igrs)%NODES,nseg,4)
105 igrsurf(igrs)%NODES(1:nseg,1:4) = 0
106 CALL my_alloc(igrsurf(igrs)%ELTYP,nseg)
107 igrsurf(igrs)%ELTYP(1:nseg) = 0
108 CALL my_alloc(igrsurf(igrs)%ELEM,nseg)
109 igrsurf(igrs)%ELEM(1:nseg) = 0
110!
111 igrsurf(igrs)%TYPE = 101
112 igrsurf(igrs)%IAD_BUFR = set%ELLIPSE_IAD_BUFR
113 iad=set%ELLIPSE_IAD_BUFR
114 igrsurf(igrs)%ID_MADYMO = set%ELLIPSE_ID_MADYMO
115 DO j=1,9
116 bufsf(iad+7+j-1)=set%ELLIPSE_SKEW(j)
117 ENDDO
118
119 bufsf(iad+1)=set%ELLIPSE_A
120 bufsf(iad+2)=set%ELLIPSE_B
121 bufsf(iad+3)=set%ELLIPSE_C
122 bufsf(iad+4)=set%ELLIPSE_XC
123 bufsf(iad+5)=set%ELLIPSE_YC
124 bufsf(iad+6)=set%ELLIPSE_ZC
125 !Init application point for force and momentum
126 !/* ellipsoides : defining center ! */
127 bufsf(iad+16)=set%ELLIPSE_XC
128 bufsf(iad+17)=set%ELLIPSE_YC
129 bufsf(iad+18)=set%ELLIPSE_ZC
130
131 bufsf(iad+36)=set%ELLIPSE_N
132
133!
134 ENDIF ! IF (NSEG > 0)
135
136 set%SET_NSURF_ID = igrs
137 set%HAS_SURF_SEG = nseg
138C-----
139 RETURN
140 END
#define my_real
Definition cppsort.cpp:32
subroutine fill_surf_ellipse(set, igrsurf, igrs, bufsf, lisurf1, nsurf)
integer nsets
Definition setdef_mod.F:120