OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
w_iskn.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/.
23CCgw|============================================================
24!||====================================================================
25!|| w_iskn ../starter/source/restart/ddsplit/w_iskn.F
26!||--- called by ------------------------------------------------------
27!|| ddsplit ../starter/source/restart/ddsplit/ddsplit.F
28!||--- calls -----------------------------------------------------
29!|| nlocal ../starter/source/spmd/node/ddtools.F
30!||--- uses -----------------------------------------------------
31!|| submodel_mod ../starter/share/modules1/submodel_mod.F
32!||====================================================================
33 SUBROUTINE w_iskn(ISKN,NUMSKW,NSPH ,IFRAME,NUMFRAM,NODLOCAL,
34 2 P ,NUMNOD,CEPSP ,LEN_IA )
35C-----------------------------------------------
36C M o d u l e s
37C-----------------------------------------------
38 USE submodel_mod , ONLY : nsubmod
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 "sphcom.inc"
47#include "param_c.inc"
48C-----------------------------------------------
49C D u m m y A r g u m e n t s
50C-----------------------------------------------
51 INTEGER P, NUMNOD, NUMSKW, NSPH, NUMFRAM, LEN_IA,
52 . iskn(liskn,*), nodlocal(*), cepsp(*),
53 . iframe(liskn,*)
54C-----------------------------------------------
55C F u n c t i o n
56C-----------------------------------------------
57 INTEGER NLOCAL
58 EXTERNAL nlocal
59C-----------------------------------------------
60C L o c a l V a r i a b l e s
61C-----------------------------------------------
62C
63 INTEGER I, IDEB, N1, N2, N3, N4, N5, N6, N_L,
64 . iskn_l(liskn,1+numskw+nsubmod+nsph+numfram+1)
65C
66 iskn_l(1,1) = iskn(1,1)
67 iskn_l(2,1) = iskn(2,1)
68 iskn_l(3,1) = iskn(3,1)
69 iskn_l(4,1) = iskn(4,1)
70 iskn_l(5,1) = iskn(5,1)
71 iskn_l(6,1) = iskn(6,1)
72C
73 DO i = 1, numskw
74 n1 = iskn(1,i+1)
75 n2 = iskn(2,i+1)
76 n3 = iskn(3,i+1)
77 n4 = iskn(4,i+1)
78 n5 = iskn(5,i+1)
79 n6 = iskn(6,i+1)
80C
81 IF(n1/=0)THEN
82 IF(nlocal(n1,p)==1) n1 = nodlocal(n1)
83C
84 END IF
85C
86 IF(n2/=0)THEN
87 IF(nlocal(n2,p)==1) n2 = nodlocal(n2)
88C
89 END IF
90C
91 IF(n3/=0) THEN
92 IF(nlocal(n3,p)==1) n3 = nodlocal(n3)
93C
94 END IF
95 iskn_l(1,i+1) = n1
96 iskn_l(2,i+1) = n2
97 iskn_l(3,i+1) = n3
98 iskn_l(4,i+1) = n4
99 iskn_l(5,i+1) = n5
100 iskn_l(6,i+1) = n6
101 ENDDO
102C
103 ideb = 1+numskw
104C
105 IF(nspcond>0)THEN
106 n_l = 0
107 DO i = 1, numsph
108 IF(cepsp(i)+1==p)THEN
109 n_l = n_l + 1
110 iskn_l(1,ideb+n_l) = iskn(1,i+ideb)
111 iskn_l(2,ideb+n_l) = iskn(2,i+ideb)
112 iskn_l(3,ideb+n_l) = iskn(3,i+ideb)
113 iskn_l(4,ideb+n_l) = iskn(4,i+ideb)
114 iskn_l(5,ideb+n_l) = iskn(5,i+ideb)
115 iskn_l(6,ideb+n_l) = iskn(6,i+ideb)
116 END IF
117 END DO
118C NSPH = MIN(IUN,NSPCOND)*NUMSPH_L
119 ideb = ideb + nsph
120 END IF
121C submodel skew
122 IF(nsubmod>0)THEN
123 n_l = 0
124 DO i = 1, nsubmod
125 n_l = n_l + 1
126 iskn_l(1,ideb+n_l) = iskn(1,i+ideb)
127 iskn_l(2,ideb+n_l) = iskn(2,i+ideb)
128 iskn_l(3,ideb+n_l) = iskn(3,i+ideb)
129 iskn_l(4,ideb+n_l) = iskn(4,i+ideb)
130 iskn_l(5,ideb+n_l) = iskn(5,i+ideb)
131 iskn_l(6,ideb+n_l) = iskn(6,i+ideb)
132 END DO
133 ideb = ideb + nsubmod
134 END IF
135C
136 DO i = 1, numfram+1
137 n1 = iframe(1,i)
138 n2 = iframe(2,i)
139 n3 = iframe(3,i)
140 IF(n1/=0)THEN
141 IF(nlocal(n1,p)==1) n1 = nodlocal(n1)
142 END IF
143 IF(n2/=0)THEN
144 IF(nlocal(n2,p)==1) n2 = nodlocal(n2)
145 END IF
146 IF(n3/=0) THEN
147 IF(nlocal(n3,p)==1) n3 = nodlocal(n3)
148 END IF
149 iskn_l(1,i+ideb) = n1
150 iskn_l(2,i+ideb) = n2
151 iskn_l(3,i+ideb) = n3
152 iskn_l(4,i+ideb) = iframe(4,i)
153 iskn_l(5,i+ideb) = iframe(5,i)
154 iskn_l(6,i+ideb) = iframe(6,i)
155 ENDDO
156C
157 CALL write_i_c(iskn_l,liskn*(numskw+1+nsph+nsubmod+numfram+1))
158
159 len_ia = len_ia + liskn*(numskw+1+nsph+nsubmod+numfram+1)
160C
161 RETURN
162 END
integer nsubmod
subroutine w_iskn(iskn, numskw, nsph, iframe, numfram, nodlocal, p, numnod, cepsp, len_ia)
Definition w_iskn.F:35
void write_i_c(int *w, int *len)