OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i25sms_e2s.F File Reference
#include "implicit_f.inc"
#include "comlock.inc"
#include "mvsiz_p.inc"
#include "assert.inc"
#include "parit_c.inc"
#include "task_c.inc"
#include "sms_c.inc"
#include "lockon.inc"
#include "lockoff.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine i25sms_e2s (jlt, cs_loc, n1, n2, m1, m2, hs1, hs2, hm1, hm2, stif, nin, noint, mskyi_sms, iskyi_sms, nsms, k1, k2, k3, k4, c1, c2, c3, c4, nedge, edge_id)

Function/Subroutine Documentation

◆ i25sms_e2s()

subroutine i25sms_e2s ( integer jlt,
integer, dimension(*) cs_loc,
integer, dimension(*) n1,
integer, dimension(*) n2,
integer, dimension(*) m1,
integer, dimension(*) m2,
hs1,
hs2,
hm1,
hm2,
stif,
integer nin,
integer noint,
mskyi_sms,
integer, dimension(lskyi_sms,*) iskyi_sms,
integer, dimension(4*mvsiz) nsms,
k1,
k2,
k3,
k4,
c1,
c2,
c3,
c4,
integer nedge,
integer, dimension(2,4*mvsiz), intent(in) edge_id )

Definition at line 34 of file i25sms_e2s.F.

39C-----------------------------------------------
40C M o d u l e s
41C-----------------------------------------------
42 USE tri7box
43 USE message_mod
44C-----------------------------------------------
45C I m p l i c i t T y p e s
46C-----------------------------------------------
47#include "implicit_f.inc"
48#include "comlock.inc"
49C-----------------------------------------------
50C G l o b a l P a r a m e t e r s
51C-----------------------------------------------
52#include "mvsiz_p.inc"
53C-----------------------------------------------
54C C o m m o n B l o c k s
55C-----------------------------------------------
56#include "assert.inc"
57#include "parit_c.inc"
58#include "task_c.inc"
59#include "sms_c.inc"
60C-----------------------------------------------
61C D u m m y A r g u m e n t s
62C-----------------------------------------------
63 INTEGER, INTENT(IN) :: EDGE_ID(2,4*MVSIZ)
64 INTEGER JLT, NIN, NOINT, CS_LOC(*),
65 . N1(*), N2(*), M1(*), M2(*),
66 . NSMS(4*MVSIZ), ISKYI_SMS(LSKYI_SMS,*), NEDGE
68 . hs1(*),hs2(*),hm1(*),hm2(*),stif(*), mskyi_sms(*),
69 . k1(*), k2(*), k3(*), k4(*),
70 . c1(*), c2(*), c3(*), c4(*)
71C-----------------------------------------------
72C L o c a l V a r i a b l e s
73C-----------------------------------------------
74 INTEGER I, IG, NISKYL1, NISKYL, NN
76 . mas1, mas2, mas3, mas4, dts
77C
78C
79 niskyl1 = 0
80 DO i=1,jlt
81 IF(nsms(i)==0.OR.stif(i)==zero) cycle
82 IF (hm1(i)/=zero) niskyl1 = niskyl1 + 2
83 IF (hm2(i)/=zero) niskyl1 = niskyl1 + 2
84 ENDDO
85#include "lockon.inc"
86 niskyl = nisky_sms
87 nisky_sms = nisky_sms + niskyl1
88#include "lockoff.inc"
89C
90 IF (niskyl+niskyl1 > lskyi_sms) THEN
91 CALL ancmsg(msgid=26,anmode=aninfo)
92 CALL arret(2)
93 ENDIF
94C
95 DO i=1,jlt
96 debug_e2e(edge_id(1,i)==d_em .AND. edge_id(2,i) == d_es,nsms(i))
97
98 IF(nsms(i)==0.OR.stif(i)==zero) cycle
99C
100 IF(nsms(i)>0)THEN
101 assert(dtfacs > 0)
102 dts = dtmins/dtfacs
103 ELSE
104 dts = dtmins_int/dtfacs_int
105 END IF
106C
107 mas1= half * dts * ( dts * k1(i) + c1(i) )
108 mas2= half * dts * ( dts * k2(i) + c2(i) )
109 mas3= half * dts * ( dts * k3(i) + c3(i) )
110 mas4= half * dts * ( dts * k4(i) + c4(i) )
111C
112 IF(cs_loc(i)<=nedge) THEN
113 IF(hm1(i)/=zero)THEN
114 niskyl=niskyl+1
115 mskyi_sms(niskyl)=max(mas1,mas3)
116 iskyi_sms(niskyl,1)=n1(i)
117 iskyi_sms(niskyl,2)=m1(i)
118 iskyi_sms(niskyl,3)=ispmd+1
119 niskyl=niskyl+1
120 mskyi_sms(niskyl)=max(mas2,mas3)
121 iskyi_sms(niskyl,1)=n2(i)
122 iskyi_sms(niskyl,2)=m1(i)
123 iskyi_sms(niskyl,3)=ispmd+1
124 END IF
125 IF(hm2(i)/=zero)THEN
126 niskyl=niskyl+1
127 mskyi_sms(niskyl)=max(mas1,mas4)
128 iskyi_sms(niskyl,1)=n1(i)
129 iskyi_sms(niskyl,2)=m2(i)
130 iskyi_sms(niskyl,3)=ispmd+1
131 niskyl=niskyl+1
132 mskyi_sms(niskyl)=max(mas2,mas4)
133 iskyi_sms(niskyl,1)=n2(i)
134 iskyi_sms(niskyl,2)=m2(i)
135 iskyi_sms(niskyl,3)=ispmd+1
136 END IF
137 ELSE
138 IF(hm1(i)/=zero)THEN
139 niskyl=niskyl+1
140 mskyi_sms(niskyl)=max(mas1,mas3)
141 iskyi_sms(niskyl,1)=nodamsfie(nin)%P(n1(i))
142 iskyi_sms(niskyl,2)=m1(i)
143 iskyi_sms(niskyl,3)=procamsfie(nin)%P(n1(i))
144 niskyl=niskyl+1
145 mskyi_sms(niskyl)=max(mas2,mas3)
146 iskyi_sms(niskyl,1)=nodamsfie(nin)%P(n2(i))
147 iskyi_sms(niskyl,2)=m1(i)
148 iskyi_sms(niskyl,3)=procamsfie(nin)%P(n2(i))
149 END IF
150 IF(hm2(i)/=zero)THEN
151 niskyl=niskyl+1
152 mskyi_sms(niskyl)=max(mas1,mas4)
153 iskyi_sms(niskyl,1)=nodamsfie(nin)%P(n1(i))
154 iskyi_sms(niskyl,2)=m2(i)
155 iskyi_sms(niskyl,3)=procamsfie(nin)%P(n1(i))
156 niskyl=niskyl+1
157 mskyi_sms(niskyl)=max(mas2,mas4)
158 iskyi_sms(niskyl,1)=nodamsfie(nin)%P(n2(i))
159 iskyi_sms(niskyl,2)=m2(i)
160 iskyi_sms(niskyl,3)=procamsfie(nin)%P(n2(i))
161 END IF
162 END IF
163 ENDDO
164C
165 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21
type(int_pointer), dimension(:), allocatable procamsfie
Definition tri7box.F:440
type(int_pointer), dimension(:), allocatable nodamsfie
Definition tri7box.F:440
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