| 查看: 3159 | 回复: 21 | ||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||
[求助]
FORTRAN 基础知识讲解
|
||
|
1. EXTERNAL 声明外部函数的名称 是不是在整个程序当中都能用?怎么用?在其他子程序中可以直接call吗? 2. INTENT 说明过程哑元的用意 过程哑元 什么是过程哑元? 3. INTRINSIC 声明一个内部函数 只能在这个子程序里面运行? 4. OPTIONAL 允许过程被调用时哑元 过程哑元 什么意思? 5. 在F90中,每个变量名都应该在说明部分中说明其类型,不应该使用隐式说明、为了抑制隐式说明发生作用,应该在程序说明部分开始就写出语句: IMIPLlCIT NONE 既声明不使用隐式说明 什么是隐式说明? 6.程序变量定义的时候这两句话什么意思? TYPE (wavedes) WDES TYPE (latt) LATT_CUR,LATT_INI 7. 另外 INQUIRE(FILE=DIR_APP(1 IR_LEN)//'WAVECAR.'//EXT,EXIST=junk)这个DIR_APP(1 IR_LEN)//'WAVECAR.'//EXT中,'WAVECAR.'两端的东东什么意思?,知道这是个函数,不能明确什么意思。那么在一般情况下,文件名前后加上一些东西是为了什么?8. 程序中常看到。 LATT_INI%A=LATT_CUR%A 这个%是什么运算?还是只是当做变量名中和字母作用一个字符? 9. 程序里面有很多退出的关键字 exit 是退出当前的循环或者判断语句种吗? stop 退出主程序? break 呢? 根据具体情况给分!多答多得! |
» 猜你喜欢
材料求调剂一志愿哈工大324
已经有5人回复
一志愿哈尔滨工业大学材料与化工方向336分
已经有5人回复
0856材料化工调剂 总分330
已经有9人回复
085602 化工专硕 338分 求调剂
已经有9人回复
352分 化工与材料
已经有4人回复
求调剂
已经有8人回复
材料求调剂 一志愿哈工大总分298分,前三科223分
已经有3人回复
085600 286分 材料求调剂
已经有4人回复
求调剂
已经有7人回复
275求调剂
已经有10人回复

wuluo1213
木虫 (小有名气)
- 应助: 5 (幼儿园)
- 金币: 2290.1
- 散金: 10
- 帖子: 275
- 在线: 59.5小时
- 虫号: 940174
- 注册: 2010-01-10
- 专业: 制造系统与自动化

11楼2011-11-02 20:29:53
snoopyzhao
至尊木虫 (职业作家)
- 程序强帖: 16
- 应助: 157 (高中生)
- 贵宾: 0.02
- 金币: 18844.7
- 红花: 29
- 帖子: 3803
- 在线: 1422.4小时
- 虫号: 183750
- 注册: 2006-02-13
- 专业: 污染生态化学
【答案】应助回帖
★
jjdg(金币+1): 感谢参与 2011-10-29 23:02:17
ben_ladeng: 专家考核存档 2011-10-30 07:11:16
贺仪(金币+30): 多谢你的热心帮助! 2011-10-30 09:48:21
jjdg(金币+1): 感谢参与 2011-10-29 23:02:17
ben_ladeng: 专家考核存档 2011-10-30 07:11:16
贺仪(金币+30): 多谢你的热心帮助! 2011-10-30 09:48:21
|
这个不清楚你想表达什么意思?比如我自己写了一个外部函数,叫 sqrt,因为 Fortran 内置了 sqrt,但我希望我的程序用我自己写的这个,这个时候就需要用 external sqrt 来声明。在每个调用该函数的程序/子程序中都应该这样声明。 INTENT 主要是说明函数或者子程度的变量(哑元)是输入变量(in),还是输出变量(out),还是既有输入也有输出(inout)的。所谓的哑元,就是程序后面的那些个变量,比如 subroutine sub (a,b,c) 中的 a, b, c,呵呵……如果是属性是 in,那么表示这个哑元的值不能被改变。如果是 out,表示该程序会输出这个变量,如果是 inout,表明它的值在调用前后会发生变化。 只是表明这个程序是内置的函数,与 external 是对应的…… 如果函数 subroutine sub(a,b,c) 中的 c 是一个 optional 哑元,那么调用这个函数是可以用 call sub(a, b)…… |
2楼2011-10-29 11:59:43
snoopyzhao
至尊木虫 (职业作家)
- 程序强帖: 16
- 应助: 157 (高中生)
- 贵宾: 0.02
- 金币: 18844.7
- 红花: 29
- 帖子: 3803
- 在线: 1422.4小时
- 虫号: 183750
- 注册: 2006-02-13
- 专业: 污染生态化学
【答案】应助回帖
★
jjdg(金币+1): 感谢参与 2011-10-29 23:02:26
ben_ladeng: 专家考核存档 2011-10-30 07:11:22
贺仪(金币+30): 多谢你的热心帮助 2011-10-30 09:48:56
jjdg(金币+1): 感谢参与 2011-10-29 23:02:26
ben_ladeng: 专家考核存档 2011-10-30 07:11:22
贺仪(金币+30): 多谢你的热心帮助 2011-10-30 09:48:56
|
隐式声明是 fortran 的特色,默认情况下,所有以 I、J、K、L、M、N 开头的变量都是整型,所有以这些字母以外字母开头的变量都是实型。如果你希望以 A 开头的也是实型,你可以用 implicit integer (A) 来声明所有以 A 开头的也是整型。除非你显示地声明了变量的类型。 如果使用 implicit none, 那么以上的规则就不再算数了,所有的变量都必须声明。 这应该是较新的 Fortran 才引入的特性,允许自定义数据的类型,因此,上面的两句话声明 WDES 是 wavedes 一类的变量,而 LATT_CUR, LATT_INI 是 latt 一类的变量。 字符串后的 // 表示将 // 前后的两个字符串联接起来。因为在上面这句话中,前后两个都是变量,所以不能直接写成一个字符串(写成字符串后就没有办法获得变的真实取值了,所以用 // 来连接…… 这里的 LATT_INI 应该是一组变量的一个综合体,如: 这里的 D 就相当于你的 LATT_INI,它应该包括了三个变量,即 Day, Month, Year,如果你想对 D 中的 Day 赋值,那就要用 D%Day = 25... exit 表示退出循环 stop 表示停止整个程序的运行,不管是不是在主程序中…… break 不是 Fortran 中的,至少我没有看到过用 break 的…… |
3楼2011-10-29 12:16:13

5楼2011-10-30 16:19:23














IR_LEN)//'WAVECAR.'//EXT,EXIST=junk)
回复此楼