OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i21sms2.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!|| i21sms2 ../engine/source/interfaces/int21/i21sms2.F
25!||--- called by ------------------------------------------------------
26!|| i21mainf ../engine/source/interfaces/int21/i21mainf.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../engine/source/output/message/message.F
29!|| arret ../engine/source/system/arret.F
30!||--- uses -----------------------------------------------------
31!|| message_mod ../engine/share/message_module/message_mod.F
32!|| tri7box ../engine/share/modules/tri7box.F
33!||====================================================================
34 SUBROUTINE i21sms2(JLT ,MSTR ,NSVG ,NIN ,NOINT ,
35 2 MSKYI_SMS ,ISKYI_SMS,NSMS ,KT ,C ,
36 3 DTI )
37C-----------------------------------------------
38C M o d u l e s
39C-----------------------------------------------
40 USE tri7box
41 USE message_mod
42C-----------------------------------------------
43C I m p l i c i t T y p e s
44C-----------------------------------------------
45#include "implicit_f.inc"
46#include "comlock.inc"
47C-----------------------------------------------
48C G l o b a l P a r a m e t e r s
49C-----------------------------------------------
50#include "mvsiz_p.inc"
51C-----------------------------------------------
52C C o m m o n B l o c k s
53C-----------------------------------------------
54#include "parit_c.inc"
55#include "task_c.inc"
56#include "sms_c.inc"
57C-----------------------------------------------
58C D u m m y A r g u m e n t s
59C-----------------------------------------------
60 INTEGER JLT, NIN, NOINT, MSTR, NSVG(*), NSMS(*),
61 . ISKYI_SMS(LSKYI_SMS,*)
63 . mskyi_sms(*), kt(mvsiz), c(mvsiz), dti
64C-----------------------------------------------
65C L o c a l V a r i a b l e s
66C-----------------------------------------------
67 INTEGER I, IG, NISKYL1, NISKYL, NN
68 my_real
69 . mas, dts
70C
71C
72 niskyl1 = 0
73 DO i=1,jlt
74 IF(nsms(i)==0) cycle
75 niskyl1 = niskyl1 + 1
76 ENDDO
77#include "lockon.inc"
78 niskyl = nisky_sms
79 nisky_sms = nisky_sms + niskyl1
80#include "lockoff.inc"
81C
82 IF (niskyl+niskyl1 > lskyi_sms) THEN
83 CALL ancmsg(msgid=26,anmode=aninfo)
84 CALL arret(2)
85 ENDIF
86C
87 DO i=1,jlt
88 IF(nsms(i)==0) cycle
89C
90 IF(nsms(i)>0)THEN
91 dts = dtmins/dtfacs
92 dti=min(dti,dtmins)
93 ELSE
94 dts = dtmins_int/dtfacs_int
95 dti=min(dti,dtmins_int)
96 END IF
97C
98 mas= half * dts * ( dts * kt(i) + c(i) )
99C
100 ig =nsvg(i)
101 niskyl=niskyl+1
102 mskyi_sms(niskyl)=mas
103 iskyi_sms(niskyl,1)=ig
104 iskyi_sms(niskyl,2)=mstr
105 iskyi_sms(niskyl,3)=ispmd+1
106 ENDDO
107C
108 RETURN
109 END
110C
#define my_real
Definition cppsort.cpp:32
subroutine i21sms2(jlt, mstr, nsvg, nin, noint, mskyi_sms, iskyi_sms, nsms, kt, c, dti)
Definition i21sms2.F:37
#define min(a, b)
Definition macros.h:20
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:889
subroutine arret(nn)
Definition arret.F:87