Fortran to C Code Conversion: Flange Function Implementation
#include <stdio.h> #include <math.h>
#define NK 4
void Flange(FILE *LI, int LI, int IIII[][NK], double X0[], double Y0[], double Z0[], int L0, int NE, 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");
}
// Placeholder for MMTIME1 function void MMTIME1(FILE *LI) { // Implement your MMTIME1 logic here }
原文地址: https://www.cveoy.top/t/topic/nZEf 著作权归作者所有。请勿转载和采集!