爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2375|回复: 2

[求助] 程序优化

[复制链接]

新浪微博达人勋

发表于 2015-7-20 21:28:08 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
程序说明
  厡数据为1951—2012年每日的数据(有缺失),时间乱序,将其读入vm数组中。 vm为10000*20的数组,第二列为年份,第三列为月,第四列为日,希望利用程序将数据按照时间顺序输出到相应的文件中。

程序代码

do  year=1951,2012
       do  mon=1,12
           do day=1,31
                do i=1,10000
               if  (vm(i,2)==year)  then
                 if(vm(i,3)==mon)  then
                   if(vm(i,4)==day)then
                      write( 5 , *) vm(i,:)
                   endif
                 endif
               endif
            enddo
         enddo
      enddo
   enddo

优化需求:循环过多 浪费运行时间 ,希望可以将其处理过程简化
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2015-7-21 08:03:30 | 显示全部楼层
你这个程序本身就很短,没有优化的价值。
此外要看你的数据,如果数据本身是凌乱的,那么也是没有办法优化的,只能将程序改写的美观一些:

do  year=1951,2012
do  mon=1,12
do day=1,31
do i=1,10000
if  (vm(i,2)==year.and.vm(i,3)==mon.and.vm(i,3)==day)  then
write( 5 , *) vm(i,:)
endif
enddo
enddo
enddo
enddo
*最后置一个格式输出。

如果你数据本身是有序的,那么可以借助自身的循环,利用读取方式进行处理。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-7-21 09:53:31 | 显示全部楼层
这里面循环是没办法优化的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-7-21 20:48:06 | 显示全部楼层
言深深 发表于 2015-7-21 08:03
你这个程序本身就很短,没有优化的价值。
此外要看你的数据,如果数据本身是凌乱的,那么也是没有办法优化 ...

非常感谢的,觉得你那样写,的确美观一点的,只要比之前的完美一点,就是有收获的,谢谢
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表