了解知识
寒假给堂弟讲C语言。我自然是轻车熟路,但他对C却是一无所知。不用说函数啊,格式啊,变量了,就连void都会写成viod,不知int为何物。各种格式也是一团乱麻。读者切不可笑,今天初次接触fortran,抄了个例子,却一样是编译不过,错误百出。究其原因,对fortran一无所知而已。正好,借此机会好好回忆总结下,如何学习语言。
 
 
 
step 1. 搜索fortran入门,找到 http://micro.ustc.edu.cn/Fortran/ZJDing/,一个中文的fortran教程。很详细。可惜的是,将上面的例子复制到linux中,无论是用f77还是用gfortran,或者是f95编译,却都不通过,错误百出:
 
 
  1. In file cir.f:2   
  2. real :: r(3)                                                               
  3. 1   
  4. Error: Non-numeric character in statement label at (1)   
  5.  In file cir.f:2   
  6. real :: r(3)                                                               
  7. 1   
  8. Error: Unclassifiable statement at (1)   
  9.  In file cir.f:3   
  10. data r /1, 3, 12.5/                                                        
  11. 1   
  12. Error: Non-numeric character in statement label at (1)   
  13.  In file cir.f:3   
  14.   
 
 
程序源码:
 
 
  1. real :: r(3)   
  2. data r /1312.5/   
  3. do i=1,3   
  4.         print *, '半径=', r(i), '圆周长=', C(r(i))   
  5. end do   
  6. end   
  7. function c(radius)   
  8.         pi=acos(-1.0)   
  9.         c=2*pi*radius   
  10.         return   
  11. end   
 
 
 
 
 
 
 
也不知道怎么回事。且待我慢慢学习。
 
 
 
step 2.  准备寻找一个可以编译执行的例子看看。搜一搜去~~
 
打开了pudn.com,不过网速比较慢。就继续看了下step1中的教程,看到 1.3.2源码格式这一节,原来,在卡片输入年代的fortran和Mainframe中的COBOL类似,对源码格式是有非常严格的规定的,例如:
 
 
 
 
 
在f90之后,取消了这些限制。但是,为了区分两种格式,fortran采取了用后缀名区分的方式:
 
对应的默认文件扩展名为:
 
*         固定格式:  .for  或  .f   [fixed.for ]
 
*         自由格式:  .f90 [free.f90 ]
 
 
 
我原以为,用f95编译就会自动采用90标准,用f77编译则会自动采用77标准。唉,想错啦~~
 
 
 
 
 
step 3. 学习fortran基本语法
 
 
 
计划学习变量定义,输入输出,文件操作,控制结构和函数组织。
 
 
 
一个小时后,看了个大概。
 
 
 
 
 
step 4. 阅读SPECOMP2001的源码
 
基本能够明白大意。某些关键字和语法的缘故,还不能对代码意图了如指掌。
 
 
 
 
 
 
 
总结,有基础,学习还是比较容易的。只要读过了最开始的茫然,第一个周期便能顺利展开~~~
 
标签: Fortran
扩展知识