非常感谢您的回复,您提供的方法可以帮助我解决眼下的问题了。我看的源码里面有很多地方都是像上面那样写的,您对这种写法和运行后出现的错误有什么见解呢?期待您的回复 |
根据前面的数据判断后面是否读取,有个投机取巧的办法: [Fortran] 纯文本查看 复制代码 character(len=80) c integer :: a(10) = -999 , j , is c = "1 2 1 4 5 6 7 8 9 10" !//有10个数 read( c , * ) a(:7) , ( a(8:),j=1,Is(a(3)==1,1,0) )!//如果a(3)==1,则读10个数 write(*,*) a a = -999 c = "1 2 0 4 5 6 7"!//只有7个数 read( c , * ) a(:7) , ( a(8:),j=1,Is(a(3)==1,1,0) )!//如果a(3)/=1,则只读7个。 write(*,*) a end Integer Function Is( b , t ,f )!//如果b为真,返回t,否则返回f。类似于C语言的 a ? b : c logical :: b integer :: t , f Is = f if( b ) Is = t End Function Is |
捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )
GMT+8, 2024-11-23 19:13