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;
        }
    }
}
转换成C代码 SUBROUTINE PREBOUND2FBHZIXXXNOMAIIIIXNYNNE34BHFRAISE & NEL0NKNCHE IMPLICIT REAL8A-HO-Z DIMENSION FBHZL0IXXXL0NOMANENKIIIINENKXNL0

原文地址: https://www.cveoy.top/t/topic/haev 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录