将Fortran代码转化为C代码 FlangeLIIIIIX0Y0Z0L0NENK + CORNXCORNYZNMIN IMPLICIT NONE INTEGER LINEL0NKIIIINENK REAL8 X0L0Y0L0Z0L0CORNXCORNYZNMIN INTEGER III REAL8 XX0YY0ZZ0XNIYNIZNISINOXCOS
#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");
原文地址: https://www.cveoy.top/t/topic/eRn5 著作权归作者所有。请勿转载和采集!