找回密码
 新注册用户
搜索
查看: 5289|回复: 2

[已完成翻译] 翻译一个BOINC DEVELOP页面

[复制链接]
发表于 2007-5-14 22:29:15 | 显示全部楼层 |阅读模式
我看没人翻译过,就做了,没找到以前相关这个页面的主题。。。
http://boinc.berkeley.edu/fortran.php
我也不知道怎么放到网上去,贴这里了,上传附件不行,不知道为什么,提示非法字符。。。
保存为fortran.php就行。。。
[code]
<html>
        <head>
        <link rel="stylesheet" type="text/css" href="white.css"/>
        <link rel="shortcut icon" href="iconsmall.ico"/>
        <title>FORTRAN applications</title>
        </head>
        <body bgcolor='ffffff'>
        <table width='100%'>
        <tr>
        <td><center><h1>FORTRAN applications</h1></center>
        <td align=right><a href=index.php><img src=logo/logo_small.png></a>
        <br>
<form method=get action=http://google.com/search>
    <input type=hidden name=domains value=http://boinc.berkeley.edu>
    <input type=hidden name=sitesearch value=http://boinc.berkeley.edu>
    <nobr>
    <input class=small name=q size=30>
    <input type=image name=submit src=images/search.gif alt=Search>
    </nobr>
    </form>

        </td>
        </tr></table>
        <hr size=1>
   
<h2>F2X</h2>
一个选择是用f2c把你的FORTRAN程序转换到C.M.F. Somers构建了
<a href=http://boinc.gorlaeus.net/F2c.php>BOINC-enabled f2c library</a>
简化这一过程.
<h2>Windows: cygwin</h2>
<p>
在api/Makefile.am包含文件'boinc_api_fortran.C',
注释掉 'zip' 调用, 以避免对'libboinc_zip.a'的链接.
<p>
若要链接它必须包含'winmm.dll'库(-lwinmm).

<h2>Windows: Visual Studio</h2>

<p><font color=red>2004-06-16 note: 这一页有些过时;更新
    (函数被声明 <code>extern"C"</code> 所以
     C++的不知所云不复存在 ; 现今有一个boinc_api_fortran.C的封装) -- quarl@ssl
    </font></p>

<p>
Note: <a href=TestLibs.zip>这儿</a>有一个类似于下面的可工作的例子
(基于过时的BOINC代码);
可以参阅<a href=taufer.txt>README</a>.
<p>
我们从创建一个FORTRAN工程开始,增加所有FORTRAN指明的文件,然后再把必须的BOINC库文件
(e.g. boinc_api.C)也加进来.
确保BOINC 和 FORTRAN 文件以相同的标准库类型编译。
i.e. 如果BOINC是debug multithreaded DLL libraries 编译的,FORTRAN 也必须以同样的DLL设置编译。

<p>
对于每一个你想在fortran中调用的BOINC函数,你必须定义接口和子程序
<pre>
INTERFACE
  SUBROUTINE boinc_finish(status)
  END SUBROUTINE boinc_finish
END INTERFACE
</pre>

<p>
记住声明参数类型
INTEGER status

<p>
你必须使用下边的语句告诉编译器你的函数的接口是C的程序:
<pre>
!DEC$ ATTRIBUTES C :: boinc_finish
</pre>
因为BOINC是以C++的形式编译,所以FORTRAN编译器在目标文件中找到标准的函数名。
因此你必须为真正的函数名起一个别名:
<pre>
!DEC$ ATTRIBUTES ALIAS : '?boinc_finish@@YAHH@Z' :: boinc__finish
</pre>
<p>

在目标文件中你可以找到函数名,
到你的编译目录然后运行dumpbin.

<pre>
c:\fortranproject\Release>dumpbin /symbols boinc_api.obj
</pre>

这会给你一个符号表,在里边你可以看到真正的函数名.

<p>
接口会像这样结束:

<pre>
INTERFACE
  SUBROUTINE boinc_finish(status)
    !DEC$ ATTRIBUTES C :: boinc_finish
    !DEC$ ATTRIBUTES ALIAS : '?boinc_finish@@YAHH@Z' :: boinc__finish
    INTEGER status
  END SUBROUTINE boinc_finish
END INTERFACE

</pre>
现在你可以在FORTRAN中调用BOINC函数了.
<pre>
call boinc_finish(0)
</pre>


        <hr size=1>
   
            <center>
            <a href="/">Return to BOINC main page</a>
            </center><p>
        
        <font color=888888 size='2'>
   
        Last modified 10:08 PM UTC, April 16 2007.<br>
   
        Copyright &copy; 2007  University of California.
        Permission is granted to copy, distribute and/or modify this document
        under the terms of the GNU Free Documentation License,
        Version 1.2 or any later version published by the Free Software Foundation.
   
        </font>
        </body>
        </html>
[/code]

评分

参与人数 2基本分 +30 维基拼图 +12 收起 理由
BiscuiT + 30 + 4
霊烏路 空 + 8

查看全部评分

回复

使用道具 举报

发表于 2007-5-15 08:27:20 | 显示全部楼层
我们一般帖翻译好的文字部分就可以了。最近一直都比较忙,这里的页面我也不知道我去非洲前时候是否有空转到服务器上。如果没空,到时候会工作转交给其他版主的。
回复

使用道具 举报

 楼主| 发表于 2007-5-15 12:19:49 | 显示全部楼层
原帖由 碧城仙 于 2007-5-15 08:27 发表
我们一般帖翻译好的文字部分就可以了。最近一直都比较忙,这里的页面我也不知道我去非洲前时候是否有空转到服务器上。如果没空,到时候会工作转交给其他版主的。 ...


贴所有的代码是考虑到保证和原页面相同的排版,直接保存为php就可以上传到服务器了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 新注册用户

本版积分规则

论坛官方淘宝店开业啦~
欢迎大家多多支持基金会~

Archiver|手机版|小黑屋|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2024-4-26 16:13

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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