|
沙发

楼主 |
发表于 2020-3-22 14:23:22
|
只看该作者
我把所有的代码放在这里,希望路过的大佬帮我看一下,得不到正确的结果
[Fortran] 纯文本查看 复制代码 006 | Integer , parameter :: length = 1000 |
007 | character ( len = 10 ) :: g ( 18627 , 14 ) |
008 | integer i , f , idays , m , n , o , p , q , r , s , t |
010 | Character ( LEN = length ) A , B , Filename |
011 | Integer ( kind = 4 ) :: Column , Row , K , L |
012 | real , allocatable :: c ( : , : ) |
015 | Column = 0 ; Row = 0 ; K = 0 ; L = 1 ; filename = "ztzl-1.txt" |
016 | Open ( 55 , file = Filename ) |
020 | Open ( 55 , file = Filename ) |
022 | Read ( 55 , * , iostat = k ) B |
026 | Write ( * , "(A5,I6,5X,A7,I2)" ) "Row=" , Row , "Column=" , Column |
027 | allocate ( c ( column -1 , row ) ) |
036 | c ( n , m ) = c ( n , m ) * 0.1 |
042 | if ( c ( p , o ) >= 32000 ) then |
043 | c ( p , o ) = ( c ( p , o ) -32000 ) * 0.1 |
044 | else if ( c ( p , o ) >= 31000 ) then |
045 | c ( p , o ) = ( c ( p , o ) -31000 ) * 0.1 |
046 | else if ( c ( p , o ) >= 30000 ) then |
047 | c ( p , o ) = ( c ( p , o ) -30000 ) * 0.1 |
049 | c ( p , o ) = c ( p , o ) * 0.1 |
051 | write ( * , "(F10.5)" ) c ( p , o ) |
056 | c ( q , r ) = c ( q , r ) * 0.1 |
064 | if ( g ( s , t ) == '74.40000' .or. g ( s , t ) == '76.60000' .or. g ( s , t ) == '70.00000' ) then |
072 | call daysfromdate ( 1957 , 1 , 1 , 2007 , 12 , 31 , idays ) |
078 | Integer Function GetDataN ( cStr ) |
079 | Character ( Len = * ) , Intent ( IN ) :: cStr |
081 | Logical :: bIsSeparator , bIsQuote |
083 | bIsSeparator = .TRUE. |
085 | Do i = 1 , Len_Trim ( cStr ) |
086 | Select Case ( cStr ( i : i ) ) |
088 | If ( .Not. bIsQuote ) GetDataN = GetDataN + 1 |
089 | bIsQuote = .Not. bIsQuote |
090 | bIsSeparator = .FALSE. |
091 | Case ( " " , "," , char ( 9 ) ) |
092 | If ( .Not. bIsQuote ) then |
093 | bIsSeparator = .TRUE. |
096 | If ( bIsSeparator ) then |
097 | GetDataN = GetDataN + 1 |
099 | bIsSeparator = .FALSE. |
102 | End Function GetDataN |
数组e来自module shuzu,定义的是字符串型数组 |
|