|
您的问题有两个:
1.您的数据是一个无格式顺序文件。所以如果你要用 stream 读取,需要在每个 read 前后各加一个 n。
之前你的代码在前面加了 flag0,但没有在后面加
2.您的数据是一个大端字节序(big-endian),而你的编译器是默认小端字节序的(little-endian),您需要在 Open 的时候指定为大端字节序。
当然,指定的方法不标准,因为语法没有规定大小端字节序。如果以下的代码在你的编译器上不支持,请告诉我你使用什么编译器,我再为你查找方法。
[Fortran] 纯文本查看 复制代码 03 | character ( len = 8 ) :: flag 1 |
04 | character ( len = 4 ) :: dtype |
05 | integer ( kind = 4 ) :: i , j , k , n |
06 | integer ( kind = 4 ) :: ii , jj , kk |
07 | Open ( 12 , File = "INJECTWATER_FORWUNAN.GRID" , convert = 'BIG_ENDIAN' , access = "stream" , form = "unformatted" ) |
08 | Read ( 12 ) n , flag 1 , i , dtype , n |
09 | Write ( * , * ) flag 1 , i , dtype |
10 | Read ( 12 ) n , ii , jj , kk , n |
11 | Write ( * , * ) ii , jj , kk |
13 | End Program www_fcode_cn |
|
|