Viktor的Fortran手记之二 从FORTRAN到Fortran

(接上回……)

话说搞到了编译器之后,才发现全是F90的编译器。而且在科学界使Fortran的人也不少。据说Fortran在数值算法里也比C快一点。从77改成90吧。大字的FORTRAN也改成了小字的Fortran.

编译器嘛,是IFC和CFC。CFC太老了,95年的,很怀旧,但是在Vista下好歹还能正常工作,除了没办法运行和调试之外。IFC要嵌入到VS里用。Compaq也出过一版VFC,那个要嵌到VS 6里的,偶没装VS 6,当然要报错啦……

续行一律用&。什么第6列用+的办法,恐怕已经土偶了吧……

所谓Vector Subscription和Segment很有意思。然则CFC对Segment的处理不是很好。

do 9, **** 之类的文法已经obsolute了……同样还有character*9之类。

比C省事的地方是数组可以整个处理。还有Implied DO,也是个很好的特性。

其实VB的一些特性和Fortran是相通的。比如块结构的IF。

做C太久了,写if的时候总是忘then.

还有C里{}搞定的东西在Fortran中却要有专门的符号……

 

搞来了编译器,做了课本上的几个题目。要尝试一下Windows开发。

 

 

Viktor的FORTRAN手记之一 引子

Viktor其实也刚刚入门……要不是做科学,纯开发的话Viktor一辈子也不会碰这东西……先说说FORTRAN和C不一样的几个地方吧……目前Viktor还停留在纸上谈兵的阶段,因为暂时找不到Vista下好用的FORTRAN编译器……最近几天也在一直找。经典的Visual Fortran就是不和Vista兼容……总不能因为这点破事开个虚拟机吧……卡到在其次,怕的主要是发热。

  1. 不用打;以结束语句。
  2. 实用的语句要空六格。也就是说,得打上六个空格才能开门见山……好像也不要写到70列还是什么的……续行怎么续来着?
  3. 行首打*表示注释。
  4. 程序的第一行一定是
    program ooxx
  5. 做完的时候还得
    stop

    end
  6. 调用子程序要
    call xxoo
  7. 子程序还得写成
    subroutine xxoo
        ...
        return
    end
  8. 打印居然要加个"*,",还得用print,而且更神奇的是自动换行。
  9. 名字不许超过6个字母。
  10. 传统中的I~N规则……I,J,K,L,M,N打头的是整数……
  11. 有乘方运算符……然则要写成**……
  12. 除法取整时一律向下取整。
  13. DO循环要写出CONTINUE的行号……DO 100 I=1,5
  14. 整数叫integer
  15. 字符串和字符居然一样……声明要写
    character*5 ooxxx
  16.  更强大的是居然用单引号围住字符串(而不是C中的双引号)……

Viktor的FORTRAN手记之一 引子

Viktor其实也刚刚入门……要不是做科学,纯开发的话Viktor一辈子也不会碰这东西……先说说FORTRAN和C不一样的几个地方吧……目前Viktor还停留在纸上谈兵的阶段,因为暂时找不到Vista下好用的FORTRAN编译器……最近几天也在一直找。经典的Visual Fortran就是不和Vista兼容……总不能因为这点破事开个虚拟机吧……卡到在其次,怕的主要是发热。

  1. 不用打;以结束语句。
  2. 实用的语句要空六格。也就是说,得打上六个空格才能开门见山……好像也不要写到70列还是什么的……续行怎么续来着?
  3. 行首打*表示注释。
  4. 程序的第一行一定是
    program ooxx
  5. 做完的时候还得
    stop

    end
  6. 调用子程序要
    call xxoo
  7. 子程序还得写成
    subroutine xxoo
        ...
        return
    end
  8. 打印居然要加个"*,",还得用print,而且更神奇的是自动换行。
  9. 名字不许超过6个字母。
  10. 传统中的I~N规则……I,J,K,L,M,N打头的是整数……
  11. 有乘方运算符……然则要写成**……
  12. 除法取整时一律向下取整。
  13. DO循环要写出CONTINUE的行号……DO 100 I=1,5
  14. 整数叫integer
  15. 字符串和字符居然一样……声明要写
    character*5 ooxxx
  16.  更强大的是居然用单引号围住字符串(而不是C中的双引号)……