24小时热门版块排行榜    

查看: 2743  |  回复: 26
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

贺仪

铁杆木虫 (著名写手)

[求助] 帮忙讲解一下 文件的读取

帮忙讲解一下
subroutine get_token(token, id)
    type(dtsets_list), pointer :: token
    integer, intent(in) :: id
    type(dtsets_list), pointer :: tmpLst
    if (AB_DBG) write(0,*) "AB module: request list element ", id
    nullify(token)
    tmpLst => my_dtsets  
    do
       if (.not. associated(tmpLst)) then
          exit
       end if
       if (tmpLst%id == id .and. associated(tmpLst%dtsets)) then
          token => tmpLst
          return
       end if
       tmpLst => tmpLst%next
    end do
  end subroutine get_token
这个程序是怎么从id的这个文件读取变量?能否讲一下if中的意义?谢谢!
回复此楼

» 猜你喜欢

嘟啦啦嘟啦啦嘟
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖


贺仪(金币+3): 恩 我再看看。谢谢! 2011-12-12 20:18:18
余泽成(金币+1): 辛苦了! 2011-12-13 13:14:27
呵呵,我连不上 abinit 的站点,这的确是一个强大的程序……

从目录上来看,一个属于 interface,也就是一个接口,告诉其它调用者,这个子程序需要一些什么样的变量,返回什么样的变量等等,一个是实际的定义……

我猜测的是 abinit 最初可能是 Fortran 77 的程序,在转成 Fortran 90 或之后的标准时,增加的 interface。interface 对于编译过程中对各子程序的参数进行检查非常有必要。

有关 interface 的作用,你可以查一下 Fortran 90 后的标准
27楼2011-12-12 10:01:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 27 个回答

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖


余泽成(金币+1): 谢谢参与应助! 2011-12-02 17:28:36
ben_ladeng: 专家考核存档 2011-12-11 10:01:45
我一看到指针就头大的很,呵呵……

你要看懂这个,先要搞清楚 dtsets_list 这个 type 是如何定义的。然后,读取变量的过程似乎用到了链表?我对这个便一无所知了……
2楼2011-11-30 22:42:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

潜龙伏虎

银虫 (小有名气)

【答案】应助回帖

【答案】应助回帖
这个是C的吧?C的不懂,C++还知道一点。。。。。。
3楼2011-11-30 23:08:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

余泽成: 2011-12-02 17:28:56
ben_ladeng: 专家考核存档 2011-12-11 10:01:55
引用回帖:
3楼: Originally posted by 潜龙伏虎 at 2011-11-30 23:08:25:
【答案】应助回帖
这个是C的吧?C的不懂,C++还知道一点。。。。。。

这个是 Fortran 的好不……

懂 C++ 的话,没有理由看不懂 C 的啊……
4楼2011-11-30 23:19:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见