5.
在F90中,每个变量名都应该在说明部分中说明其类型,不应该使用隐式说明、为了抑制隐式说明发生作用,应该在程序说明部分开始就写出语句:
IMIPLlCIT
NONE
既声明不使用隐式说明
什么是隐式说明?
隐式声明是 fortran 的特色,默认情况下,所有以 I、J、K、L、M、N
开头的变量都是整型,所有以这些字母以外字母开头的变量都是实型。如果你希望以 A 开头的也是实型,你可以用 implicit integer (A) 来声明所有以
A 开头的也是整型。除非你显示地声明了变量的类型。
如果使用 implicit none, 那么以上的规则就不再算数了,所有的变量都必须声明。
6.程序变量定义的时候这两句话什么意思?
TYPE (wavedes) WDES
TYPE (latt)
LATT_CUR,LATT_INI
这应该是较新的 Fortran
才引入的特性,允许自定义数据的类型,因此,上面的两句话声明 WDES 是 wavedes 一类的变量,而 LATT_CUR, LATT_INI 是 latt
一类的变量。
7.
另外
INQUIRE(FILE=DIR_APP(1IR_LEN)//‘WAVECAR.‘//EXT,EXIST=junk)
这个DIR_APP(1IR_LEN)//‘WAVECAR.‘//EXT中,‘WAVECAR.‘两端的东东什么意思?,知道这是个函数,不能明确什么意思。那么在一般情况下,文件名前后加上一些东西是为了什么?
字符串后的 // 表示将 //
前后的两个字符串联接起来。因为在上面这句话中,前后两个都是变量,所以不能直接写成一个字符串(写成字符串后就没有办法获得变的真实取值了,所以用 // 来连接……
8.
程序中常看到。
LATT_INI%A=LATT_CUR%A
这个%是什么运算?还是只是当做变量名中和字母作用一个字符?
这里的 LATT_INI 应该是一组变量的一个综合体,如:
TYPE Date
INTEGER ::
Day=1
INTEGER :: Month=1
INTEGER ::
Year=2000
END TYPE Date
TYPE (Date) :: D
这里的 D 就相当于你的
LATT_INI,它应该包括了三个变量,即 Day, Month, Year,如果你想对 D 中的 Day 赋值,那就要用 D%Day = 25...
9.
程序里面有很多退出的关键字
exit 是退出当前的循环或者判断语句种吗?
stop 退出主程序?
break 呢?
exit
表示退出循环
stop 表示停止整个程序的运行,不管是不是在主程序中……
break 不是 Fortran 中的,至少我没有看到过用 break
的……