Fortran二维数组赋值报形状不匹配错误6366如何修正
报错原因
你定义的数组i为Dimension(1,10),属于二维数组(1行10列,秩为2),而赋值语句右侧的[1,2,3,4,5,6,7,8,9,10]是一维数组构造器,生成的是秩为1、长度为10的一维数组,二者形状不匹配,因此触发形状不兼容的编译错误。
修正方案
根据你的实际使用需求,有两种常见修正方式:
- 方案1:将
i改为一维数组
如果你不需要使用二维结构,直接修改数组定义即可,将定义行改为:real, Dimension(10) :: i - 方案2:保留二维数组,调整赋值逻辑
如果你确实需要保留1行10列的二维结构,修改赋值语句,显式指定对二维数组的第一行所有列赋值:i(1,:) = [1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10]
完整修正示例(以方案1为例)
program test_random_seed implicit none real*16:: n , j real, Dimension(10) :: i i = [1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10] write(*,101) i pause 101 format(F0.5) end program test_random_seed
内容的提问来源于stack exchange,提问作者nima sahakie
相关产品推荐
相关产品推荐

