Eur*_*ust 1 arrays sorting fortran fortran95
fortran 95上此程序的输出显示星号而不是数字.另外,我无法按照预期的方式打印实验#; 实验1,实验2,实验3等.相反,它打印如下; 实验1,实验1,实验1.
关于如何解决这个问题的任何想法?以下是我的整个计划.
谢谢你的时间.
PROGRAM numbersgen
IMPLICIT NONE
!Variable declaration
INTEGER, DIMENSION(:,:),ALLOCATABLE::numarray
INTEGER, DIMENSION(:),ALLOCATABLE::temparray
INTEGER:: numrolls, numexps
INTEGER:: i=0, j=0
REAL:: avg=0, sdv=0, variance=0, sum=0
INTEGER:: k, min, pos, temp
.............
------
REAL, INTENT(IN):: sum
REAL, INTENT(IN):: avg, variance, sdv
PRINT*, " "
PRINT*, "Sum: ",sum
PRINT '(1X,A,F5.3)', "Average: ",avg
PRINT '(1X,A,F5.3)', "Variance: ",variance
PRINT '(1X,A,F5.3)', "Standard Deviation: ",sdv
END SUBROUTINE
END PROGRAM
Run Code Online (Sandbox Code Playgroud)
的F5.3格式要求的值在0和9.999之间.如果平均值大于或等于负值,则会发生反转.要查找合理的格式规范,请暂时更改格式,F15.3以便至少可以查看值.
我不明白为什么实验编号没有增加. 哦哦!是i从子程序中使用的主程序的范围?!它们没有本地声明并且implicit none有效,因此我倾向于认为这是一个问题.一个简单的实验证实是i将主程序中的名称更改为完全不同的名称,例如expidx,是否存在编译错误.(有四个地方需要改变.)