请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 1193|回复: 3

[求助] 一个Fortran95/2003的例程编译问题

[复制链接]

新浪微博达人勋

发表于 2014-3-19 13:45:24 | 显示全部楼层 |阅读模式

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

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

x
最近在学习Fortran,找了一个书中类设计的例程,放到HPC上却始终编译出错。请高手帮助下。我的编译命令是:gfortran -std=f95 timer_class.f95 timer_test.f95 -o timer_test.exe
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-3-19 13:46:46 | 显示全部楼层
!timer_class.f95
MODULE Timer_Class
IMPLICIT NONE
INTEGER,PARAMETER::DBL=SELECTED_REAL_KIND(p=14)
TYPE,PUBLIC:: Timer
    PRIVATE
    REAL(KIND=DBL)::save_Time
    CONTAINS
    PROCEDURE,PUBLIC::Start_Timer=>Start_Timer_Sub
    PROCEDURE,PUBLIC::Elapsed_Time=>Elapsed_Time_FN
END TYPE Timer
PRIVATE::Start_Timer_Sub,Elapsed_Time_FN
CONTAINS
SUBROUTINE Start_Timer_Sub(this)
    IMPLICIT NONE
    CLASS(Timer)::this
    INTEGER,DIMENSION(8)::value
    CALL date_and_time(VALUES=value)
    this%save_Time=86400.D0*value(3)+3600.D0*value(5)+60.D0*value(6)+value(7)+0.001D0*value(8)
END SUBROUTINE Start_Timer_Sub
REAL FUNCTION Elapsed_Time_FN(this)
    IMPLICIT NONE
    CLASS(Timer)::this
    INTEGER,DIMENSION(8)::value
    REAL(KIND=DBL)::current_Time
    CALL date_and_time(VALUES=value)
    current_Time=86400.D0*value(3)+3600.D0*value(5)+60.D0*value(6)+value(7)+0.001D0*value(8)
    Elapsed_Time_FN=current_Time-this%save_Time
    END REAL FUNCTION Elapsed_Time_FN
END MODULE Timer_Class

!timer_test.f95
PROGRAM Timer_Test
    USE Timer_Class
    IMPLICIT NONE
    INTEGER::i,j
    INTEGER k
    TYPE(Timer)::t
    CALL t%Start_Timer()
    do i=1,10000
        do j=1,10000
            k=i+j
        end do
    end do
    write(*,'(A,F8.3,A)') 'Time =',t%Elapsed_Time(),' s'
END PROGRAM Timer_Test
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2014-3-19 13:51:50 | 显示全部楼层
出错了就顺便学着调试啊  例子copy 然后运行结果发现没错 这样没啥用哈  建议楼主先仔细看这个程序 然后根据自己的理解加上注释再发上来
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-3-19 15:58:12 | 显示全部楼层
]谢谢你的回复。这个例子知道,我只是一个最简单的类如何能编译通过。因为在其它环境中都用类,但是对Fortran的类却没接触过,手边的资料有限,在资料库中找到的源程序也都是Fortran90的,其中写的类例子好像也不是类的写法。我想这是不是03的类的写法,可没有03的编译环境。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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