将下列Fortran代码转化为C代码 SUBROUTINE PREPDSPDSR00R45R90IRR IMPLICIT REAL8A-HO-Z DIMENSION PDS33 IFIRREQ0 THEN RM00=R00 RM45=R45 RM90=R90 RR=RM00+20D0RM4
void prepds(double PDS[3][3], double R00, double R45, double R90, int IRR) { double RM00, RM45, RM90, 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][0] = EAA * (1.0 + RR); PDS[0][1] = EAA; PDS[0][2] = 0.0; PDS[1][0] = EAA; PDS[1][1] = EAA * (1.0 + RR); PDS[1][2] = 0.0; PDS[2][0] = 0.0; PDS[2][1] = 0.0; PDS[2][2] = 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][0] = P22 / DJ; PDS[0][1] = -P12 / DJ; PDS[0][2] = 0.0; PDS[1][0] = PDS[0][1]; PDS[1][1] = P11 / DJ; PDS[1][2] = 0.0; PDS[2][0] = 0.0; PDS[2][1] = 0.0; PDS[2][2] = 2.0 / P33; }
原文地址: https://www.cveoy.top/t/topic/fJ4a 著作权归作者所有。请勿转载和采集!