转成C代码 SUBROUTINE GETELEMENTIIIINE34NANRNODELIIDLMMDNANNNA & NEL0NUMBERNGSNK IMPLICIT REAL8A-HO-Z DIMENSION IIIINENKNE34NENAL0+1NANL0+1NNANUMBER & LMMDL0LIIDL
#include <stdio.h>
void GETELEMENT(int IIII[][], int NE34[], int NA[], int NRNODE[], int LIID[], int LMMD[], int NAN[], int NNA[],
int NE, int L0, int NUMBER, int NGS, int NK) {
int I, J, J1, N, NCOUNT, NR, II, KK, JJ;
for (I = 0; I < L0 + 1; I++) {
NAN[I] = NA[I];
}
for (I = 0; I < NUMBER; I++) {
NNA[I] = 0;
}
for (J = 0; J < NE; J++) {
for (J1 = 0; J1 < NE34[J]; J1++) {
NNA[NAN[IIII[J][J1]]] = J;
NAN[IIII[J][J1]] = NAN[IIII[J][J1]] + 1;
}
}
for (I = 0; I < L0 + 1; I++) {
NAN[I] = 0;
}
N = 0;
for (I = 0; I < NK * NUMBER; I++) {
NRNODE[I] = 0;
}
NCOUNT = 1;
LIID[0] = 1;
I = 1;
while (1) {
if (I <= L0) {
for (J = NA[I]; J < NA[I + 1]; J++) {
for (J1 = 0; J1 < NE34[NNA[J]]; J1++) {
if (NAN[IIII[NNA[J]][J1]] != 1) {
NAN[IIII[NNA[J]][J1]] = 1;
NRNODE[NCOUNT] = IIII[NNA[J]][J1];
NCOUNT = NCOUNT + 1;
}
}
}
LIID[I] = NCOUNT;
I = I + 1;
}
else {
break;
}
}
for (II = LIID[I - 2]; II < LIID[I] - 1; II++) {
KK = II;
for (JJ = II + 1; JJ < LIID[I] - 1; JJ++) {
if (NRNODE[KK] > NRNODE[JJ]) {
KK = JJ;
}
}
NR = NRNODE[KK];
NRNODE[KK] = NRNODE[II];
NRNODE[II] = NR;
}
for (int K = LIID[I - 2]; K < NCOUNT - 1; K++) {
NAN[NRNODE[K]] = 0;
if (NRNODE[K] == (I - 1)) {
LMMD[I - 1] = K;
}
}
NCOUNT = NCOUNT - 1;
NGS = 4 * NCOUNT;
return;
}
``
原文地址: https://www.cveoy.top/t/topic/insx 著作权归作者所有。请勿转载和采集!