35
36
37
39
40
41
42#include "implicit_f.inc"
43
44
45
46#include "sphcom.inc"
47#include "param_c.inc"
48
49
50
51 INTEGER P, NUMNOD, NUMSKW, NSPH, NUMFRAM, LEN_IA,
52 . ISKN(LISKN,*), NODLOCAL(*), CEPSP(*),
53 . IFRAME(LISKN,*)
54
55
56
57 INTEGER NLOCAL
59
60
61
62
63 INTEGER I, IDEB, N1, N2, N3, N4, N5, N6, N_L,
64 . ISKN_L(LISKN,1+NUMSKW+NSUBMOD+NSPH+NUMFRAM+1)
65
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)
72
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)
80
81 IF(n1/=0)THEN
82 IF(
nlocal(n1,p)==1) n1 = nodlocal(n1)
83
84 END IF
85
86 IF(n2/=0)THEN
87 IF(
nlocal(n2,p)==1) n2 = nodlocal(n2)
88
89 END IF
90
91 IF(n3/=0) THEN
92 IF(
nlocal(n3,p)==1) n3 = nodlocal(n3)
93
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
102
103 ideb = 1+numskw
104
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
118
119 ideb = ideb + nsph
120 END IF
121
123 n_l = 0
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
134 END IF
135
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
156
158
159 len_ia = len_ia + liskn*(numskw+1+nsph+
nsubmod+numfram+1)
160
161 RETURN
void write_i_c(int *w, int *len)