转换成C代码 SUBROUTINE PREBOUND2FBHZIXXXNOMAIIIIXNYNNE34BHFRAISE & NEL0NKNCHE IMPLICIT REAL8A-HO-Z DIMENSION FBHZL0IXXXL0NOMANENKIIIINENKXNL0
void PREBOUND2(double* FBHZ, int* IXXX, double* NOMA, int* IIII, double* XN, double* YN, int* NE34, double BHF, double RAISE, int NE, int L0, int NK, int NCHE) { double ADL = 0.0; int II, JJ, ID1, ID2; double DX, DY, DL, BHF1, DF, DF3, DF4;
for (II = 0; II < NE; II++) {
for (JJ = 0; JJ < NE34[II]; JJ++) {
if (NOMA[II*NK + JJ] == 0) {
if (JJ == 0) {
ID1 = IIII[II*NK + 0];
ID2 = IIII[II*NK + 1];
}
if (JJ == 1) {
ID1 = IIII[II*NK + 1];
ID2 = IIII[II*NK + 2];
}
if (NE34[II] == 3) {
if (JJ == 2) {
ID1 = IIII[II*NK + 2];
ID2 = IIII[II*NK + 0];
}
}
if (NE34[II] == 4) {
if (JJ == 2) {
ID1 = IIII[II*NK + 2];
ID2 = IIII[II*NK + 3];
}
if (JJ == 3) {
ID1 = IIII[II*NK + 3];
ID2 = IIII[II*NK + 0];
}
}
DX = XN[ID1] - XN[ID2];
DY = YN[ID1] - YN[ID2];
DL = sqrt(DX*DX + DY*DY + 1.0e-80);
ADL += DL;
continue;
}
}
}
BHF1 = BHF - RAISE;
if (BHF1 <= 0.0) {
if (NCHE == 2) {
printf("ERROR: The blank-holder force is unreasonable.\n");
fprintf(stderr, "ERROR: The blank-holder force is unreasonable.\n");
}
BHF1 = 0.0;
}
for (II = 0; II < NE; II++) {
for (JJ = 0; JJ < NE34[II]; JJ++) {
if (NOMA[II*NK + JJ] == 0) {
if (JJ == 0) {
ID1 = IIII[II*NK + 0];
ID2 = IIII[II*NK + 1];
}
if (JJ == 1) {
ID1 = IIII[II*NK + 1];
ID2 = IIII[II*NK + 2];
}
if (NE34[II] == 3) {
if (JJ == 2) {
ID1 = IIII[II*NK + 2];
ID2 = IIII[II*NK + 0];
}
}
if (NE34[II] == 4) {
if (JJ == 2) {
ID1 = IIII[II*NK + 2];
ID2 = IIII[II*NK + 3];
}
if (JJ == 3) {
ID1 = IIII[II*NK + 3];
ID2 = IIII[II*NK + 0];
}
}
DX = XN[ID1] - XN[ID2];
DY = YN[ID1] - YN[ID2];
DL = sqrt(DX*DX + DY*DY + 1.0e-80);
DF = BHF1 * DL / ADL;
if (NE34[II] == 3) {
DF3 = DF / 3.0;
FBHZ[IIII[II*NK + 0]] += DF3;
FBHZ[IIII[II*NK + 1]] += DF3;
FBHZ[IIII[II*NK + 2]] += DF3;
IXXX[IIII[II*NK + 0]] = 3;
IXXX[IIII[II*NK + 1]] = 3;
IXXX[IIII[II*NK + 2]] = 3;
}
if (NE34[II] == 4) {
DF4 = DF / 4.0;
FBHZ[IIII[II*NK + 0]] += DF4;
FBHZ[IIII[II*NK + 1]] += DF4;
FBHZ[IIII[II*NK + 2]] += DF4;
FBHZ[IIII[II*NK + 3]] += DF4;
IXXX[IIII[II*NK + 0]] = 3;
IXXX[IIII[II*NK + 1]] = 3;
IXXX[IIII[II*NK + 2]] = 3;
IXXX[IIII[II*NK + 3]] = 3;
}
continue;
}
}
}
原文地址: https://www.cveoy.top/t/topic/haev 著作权归作者所有。请勿转载和采集!