Fortran 代码转换为 C 代码:PDS 数组优化
void PREPDS(double *PDS, double R00, double R45, double R90, int IRR) { double RM00, RM45, RM90; double RR, EAA, AAA, AR00, P11, P12, P22, P33, DJ;
if (IRR == 0) {
RM00 = R00;
RM45 = R45;
RM90 = R90;
RR = (RM00 + 2.0 * RM45 + RM90) / 4.0;
EAA = 2.0 * (2.0 + RR) / (1.0 + 2.0 * RR) / 3.0;
PDS[0] = EAA * (1.0 + RR);
PDS[1] = EAA;
PDS[2] = 0.0;
PDS[3] = EAA;
PDS[4] = EAA * (1.0 + RR);
PDS[5] = 0.0;
PDS[6] = 0.0;
PDS[7] = 0.0;
PDS[8] = EAA;
}
if (IRR == 1) {
RM00 = R00;
RM45 = R45;
RM90 = R90;
AAA = 1.5 * (RM90 + RM00 * RM90) / (RM00 + RM90 + RM00 * RM90);
AR00 = 1.0 + RM00;
P11 = AAA;
P12 = -AAA * RM00 / AR00;
P22 = AAA * RM00 * (1.0 + RM90) / RM90 / AR00;
P33 = AAA * (1.0 + 2.0 * RM45) * (RM00 + RM90) / RM90 / AR00;
DJ = P11 * P22 - P12 * P12;
PDS[0] = P22 / DJ;
PDS[1] = -P12 / DJ;
PDS[2] = 0.0;
PDS[3] = PDS[1];
PDS[4] = P11 / DJ;
PDS[5] = 0.0;
PDS[6] = 0.0;
PDS[7] = 0.0;
PDS[8] = 2.0 / P33;
}
}
原文地址: https://www.cveoy.top/t/topic/opDk 著作权归作者所有。请勿转载和采集!