#include <stdio.h> #include <math.h>

void Flange(FILE *LI, int LI, int IIII[][NK], double X0[], double Y0[], double Z0[], int L0, int NE, int NK, double CORNX, double CORNY, double ZNMIN) { int I, II; double XX0, YY0, ZZ0, XNI, YNI, ZNI, SINOX, COSOX, SINOY, COSOY; char ELEM3[7] = "CTRIA3"; char ELEM4[7] = "CQUAD4";

SINOY = -sin(-CORNY);
COSOY = cos(-CORNY);

SINOX = -sin(-CORNX);
COSOX = cos(-CORNX);

fprintf(LI, "$ToTheFuture/XForming\n");
MMTIME1(LI);
fprintf(LI, "$NUMBER OF NODES AND ELEMENTS\n");
fprintf(LI, ",      %d%10d\n", L0, NE);

for (II = 1; II <= NE; II++) {
    if (IIII[II][2] == IIII[II][3] || IIII[II][3] == 0) {
        fprintf(LI, "%s%10d%8d%8d%8d\n", ELEM3, II, 1, IIII[II][0], IIII[II][1], IIII[II][2]);
    } else {
        fprintf(LI, "%s%10d%8d%8d%8d%8d\n", ELEM4, II, 1, IIII[II][0], IIII[II][1], IIII[II][2], IIII[II][3]);
    }
}

for (I = 0; I < L0; I++) {
    XX0 = X0[I];
    YY0 = Y0[I];
    ZZ0 = Z0[I] + ZNMIN;

    XNI = COSOY * XX0 - SINOY * ZZ0;
    ZNI = SINOY * XX0 + COSOY * ZZ0;
    XX0 = XNI;
    ZZ0 = ZNI;

    YNI = COSOX * YY0 + SINOX * ZZ0;
    ZNI = -SINOX * YY0 + COSOX * ZZ0;
    YY0 = YNI;
    ZZ0 = ZNI;

    fprintf(LI, "GRID*   %16d%16d%16.9E%16.9E   N%6d\n", I + 1, 0, XX0, YY0, I + 1);
    fprintf(LI, "       N%6d%16.9E\n", I + 1, ZZ0);
}

fprintf(LI, "ENDDATA\n");
将Fortran代码转化为C代码	FlangeLIIIIIX0Y0Z0L0NENK + CORNXCORNYZNMIN IMPLICIT NONE	INTEGER LINEL0NKIIIINENK REAL8	 X0L0Y0L0Z0L0CORNXCORNYZNMIN	INTEGER III REAL8	 XX0YY0ZZ0XNIYNIZNISINOXCOS

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

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