|
此代码固定读入四列数据,读入规则如下:
输入文件名为TEST.txt,首行为空行或列代号。数据内容从第二行开始。
数据行为动态数组,可改变。列数通过修改也可以改为任意。
需要注意的是,涉及动态数组在子程序中的调用,则子程序必须用module封装,或在主程序中采用interface进行声明。本例采用了前者所述方法。
感谢fortran群2338021,群友:臭石头雪球,马克钛师傅,小爱的讲解帮助。
[Fortran] 纯文本查看 复制代码 004 | subroutine mean ( A , N , O , P , Q , R ) |
009 | real , intent ( in ) :: A ( : , : ) |
032 | subroutine FANGCHA ( A , N , O , P , Q , R , K , L , M , H ) |
035 | real , intent ( in ) :: A ( : , : ) |
037 | real :: O , P , Q , R , K , L , M , H |
038 | real :: B ( N ) , C ( N ) , D ( N ) , E ( N ) |
065 | end subroutine FANGCHA |
067 | subroutine BIAOZHUNCHA ( K , L , M , H , bzc 1 , bzc 2 , bzc 3 , bzc 4 ) |
070 | real :: K , L , M , H , bzc 1 , bzc 2 , bzc 3 , bzc 4 |
078 | end subroutine BIAOZHUNCHA |
080 | subroutine BZCS ( bzc 1 , bzc 2 , bzc 3 , bzc 4 , bzc 5 , bzc 6 , bzc 7 , bzc 8 , bzc 9 , bzc 10 , bzc 11 , bzc 12 ) |
083 | real :: bzc 1 , bzc 2 , bzc 3 , bzc 4 , bzc 5 , bzc 6 , bzc 7 , bzc 8 , bzc 9 , bzc 10 , bzc 11 , bzc 12 |
104 | real , allocatable :: A ( : , : ) |
106 | real :: O , P , Q , R , K , L , M , H , bzc 1 , bzc 2 , bzc 3 , bzc 4 |
107 | real :: bzc 5 , bzc 6 , bzc 7 , bzc 8 , bzc 9 , bzc 10 , bzc 11 , bzc 12 |
109 | write ( * , * ) "输入ABCD每列元素个数(注意元素个数必须相等):" |
114 | open ( 1 , file = 'TEST.txt' , status = 'old' ) |
115 | open ( 2 , file = 'TEST01.txt' ) |
120 | write ( 2 , * ) "A,B,C,D分别为:" |
124 | read ( 1 , * ) ( A ( i , j ) , j = 1 , 4 ) |
125 | write ( 2 , * ) ( A ( i , j ) , j = 1 , 4 ) |
131 | call mean ( A , N , O , P , Q , R ) |
134 | call FANGCHA ( A , N , O , P , Q , R , K , L , M , H ) |
137 | call BIAOZHUNCHA ( K , L , M , H , bzc 1 , bzc 2 , bzc 3 , bzc 4 ) |
140 | call BZCS ( bzc 1 , bzc 2 , bzc 3 , bzc 4 , bzc 5 , bzc 6 , bzc 7 , bzc 8 , bzc 9 , bzc 10 , bzc 11 , bzc 12 ) |
142 | write ( 2 , * ) "A,B,C,D的平均数分别为:" |
146 | write ( 2 , * ) "A,B,C,D的方差分别为:" |
150 | write ( 2 , * ) "A,B,C,D的标准差为:" |
152 | write ( 2 , * ) bzc 1 , bzc 2 , bzc 3 , bzc 4 |
154 | write ( 2 , * ) "A,B,C,D标准差的三分之一:" |
156 | write ( 2 , * ) bzc 5 , bzc 6 , bzc 7 , bzc 8 |
158 | write ( 2 , * ) "A,B,C,D标准差的四分之一:" |
160 | write ( 2 , * ) bzc 9 , bzc 10 , bzc 11 , bzc 12 |
|
|