关于FORTRAN问题

2025-05-02 02:00:53
推荐回答(1个)
回答1:

帮你改好了。严重错误只有一个,定义可分配数组一定要定义维数,比如你的这个

REAL,ALLOCATABLE:: NUMBER( ) 这句的逗号要改成英文的,NUMBER( )要改成一维的数组NUMBER( :)或者二维的数组NUMBER( :,:)。修改后如下,你只要复制就可以咯。

PROGRAM TYPE_A_UNCERTAINTY
    IMPLICIT NONE
    INTEGER:: COUNT,I
    REAL:: AVE,AVE_S,UA,UB
    REAL::DELTA,U,R
    REAL,ALLOCATABLE:: NUMBER(:)
    WRITE(*,*) "请输入数据总数:"
    READ(*,*) COUNT
    WRITE(*,*) "请输入仪器的最小分度值:"
    READ(*,*) DELTA
    ALLOCATE(NUMBER(COUNT))
    AVE=0
    AVE_S=0
    DO I=1,COUNT
        WRITE(*,"('NUMBER',I2)") I
        READ(*,*) NUMBER(I)
    END DO
    DO I=1,COUNT
        AVE=AVE+NUMBER(I)
    END DO
    AVE=AVE/COUNT
     WRITE(*,"('AVERAGE=',F5.2)") AVE
    DO I=1,COUNT
        AVE_S=AVE_S+(NUMBER(I)-AVE)**2
        WRITE(*,"('AVERAGE_SQURAT=',F5.2)") AVE_S
    END DO
    AVE_S=AVE_S/(COUNT*(COUNT-1))
    UA=SQRT(AVE_S)
    WRITE(*,"('A类不确定度=',F5.2)") UA
    UB=DELTA/1.732
    WRITE(*,"('B类不确定度=',F5.2)") UB
    R=UA**2+UB**2
    U=SQRT(R)
    WRITE(*,"('总不确定度=',F5.2)") U
    END