OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s_user.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!|| s_user ../engine/source/output/sty/s_user.F
25!||--- called by ------------------------------------------------------
26!|| outp_c_s ../engine/source/output/sty/outp_c_s.F
27!||--- uses -----------------------------------------------------
28!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
29!|| element_mod ../common_source/modules/elements/element_mod.F90
30!||====================================================================
31 SUBROUTINE s_user(NBX,IMX,IHBE,NEL,NPT,MLW,IPM,IGEO, IXC,
32 . ITY,JJ,ELBUF_TAB,WA,NFT, FUNC,
33 . NLAY,NPTR,NPTS)
34C-----------------------------------------------
35C M o d u l e s
36C-----------------------------------------------
37 USE elbufdef_mod
38 use element_mod , only : nixc
39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43C-----------------------------------------------
44C C o m m o n B l o c k s
45C-----------------------------------------------
46#include "param_c.inc"
47C-----------------------------------------------
48C D u m m y A r g u m e n t s
49C-----------------------------------------------
50 INTEGER IHBE,NEL,NPT,JJ,MLW,ITY,NLAY,NPTR,NPTS,
51 .IXC(NIXC,*),IPM(NPROPMI,*),IGEO(NPROPGI,*)
53 . wa(*)
54 TYPE (ELBUF_STRUCT_) , TARGET :: ELBUF_TAB
55C-----------------------------------------------
56C L o c a l V a r i a b l e s
57C-----------------------------------------------
58 INTEGER I,II,I1,IPT,IL,IR,IS,IT,
59 . NUVAR,IGTYP,NFT, NBX, IMX,NPTT
61 . fac,aa,var(200),func(6)
62 TYPE(buf_mat_) ,POINTER :: MBUF
63C=======================================================================
64C QBAT----
65 IF (ity == 3 .AND. ihbe == 11) THEN
66 fac = fourth
67 ENDIF
68C DKT18----
69 IF (ity == 7 .AND. ihbe == 11) THEN
70 fac = third
71 ENDIF
72C------------------------
73C---QEPH:------
74 IF (ihbe == 23) THEN
75C---Transfer to QBAT------
76 ELSEIF (ihbe == 11) THEN ! QBAT,DKT18
77 IF (mlw == 29.OR.mlw == 30.OR.mlw == 31.OR.mlw>=33) THEN
78 nuvar = 0
79 DO i=1,nel
80 nuvar = max(nuvar,ipm(8,ixc(1,nft+1)))
81 ENDDO
82 igtyp = igeo(11,ixc(6,nft+1))
83 ENDIF
84c
85 ii = nbx - 19
86 i1 = (ii -1)*nel
87 DO i=1,nel
88 aa = zero
89 IF (mlw == 29.OR.mlw == 30.OR.mlw == 31.OR.mlw>=33) THEN
90c
91 IF (nlay > 1) THEN
92 it = 1
93 DO ipt=1,nlay
94 DO ir=1,nptr
95 DO is=1,npts
96 mbuf => elbuf_tab%BUFLY(ipt)%MAT(1,1,it)
97 var(ipt) = var(ipt) + mbuf%VAR(i1 + i )*fac
98 IF (var(ipt) >= aa) aa = var(ipt)
99 ENDDO
100 ENDDO
101 ENDDO
102 ELSE ! NLAY = 1
103 il = 1
104 nptt = elbuf_tab%NPTT
105 DO ipt=1,nptt
106 var(ipt) = zero
107 DO ir=1,nptr
108 DO is=1,npts
109 mbuf => elbuf_tab%BUFLY(il)%MAT(1,1,ipt)
110 var(ipt) = var(ipt) + mbuf%VAR(i1 + i )*fac
111 IF (var(ipt) >= aa) aa = var(ipt)
112 ENDDO
113 ENDDO
114 ENDDO
115 ENDIF ! NLAY
116c
117 IF(imx == 0)THEN
118 wa(jj +1) = var(iabs(npt)/2 + 1)
119 ELSE
120 wa(jj + 1) = aa
121 ENDIF
122 jj = jj + 1
123 ENDIF
124 ENDDO
125 ELSE ! IHBE == 11
126c error message------
127 ENDIF
128C-----------
129 RETURN
130 END
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21
subroutine s_user(nbx, imx, ihbe, nel, npt, mlw, ipm, igeo, ixc, ity, jj, elbuf_tab, wa, nft, func, nlay, nptr, npts)
Definition s_user.F:34