void SaveNAENumD(int L0D, int NED, int* IIIID, int NK, int* NumNAED, int* NAEAddD, int LIINAED, int* IINAED){ int II, JJ, n1, n2, n3, n4, address; int* NbNAED;

// 分配 NbNAED 数组并清零
NbNAED = (int*)malloc(L0D * sizeof(int));
for(II = 0; II < L0D; II++){
	NbNAED[II] = 0;
}

for(II = 0; II < LIINAED; II++){
	IINAED[II] = 0;
}

// 计算节点相邻单元并将其相邻单元号存储到一维变带宽数组 IINAE 中
for(II = 0; II < NED; II++){
	n1 = IIIID[II*NK];
	n2 = IIIID[II*NK + 1];
	n3 = IIIID[II*NK + 2];
	n4 = IIIID[II*NK + 3];
	NbNAED[n1-1]++;
	NbNAED[n2-1]++;
	NbNAED[n3-1]++;
	address = NAEAddD[n1-1] + NbNAED[n1-1] - 1;
	IINAED[address] = II+1;
	address = NAEAddD[n2-1] + NbNAED[n2-1] - 1;
	IINAED[address] = II+1;
	address = NAEAddD[n3-1] + NbNAED[n3-1] - 1;
	IINAED[address] = II+1;
	if(n3 != n4){
		NbNAED[n4-1]++;
		address = NAEAddD[n4-1] + NbNAED[n4-1] - 1;
		IINAED[address] = II+1;
	}
}

free(NbNAED);
转换成C代码 SUBROUTINE SaveNAENumDL0DNEDIIIIDNKNumNAEDNAEAddDLIINAED + IINAED	IMPLICIT NONE	INTEGER L0DNEDNKLIINAED	INTEGER IIIIDNEDNKNumNAEDL0DNAEAddDL0DIINAEDLIINAED	INTEGER IIJJ

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

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