Skip to main content

Posts

Showing posts from April, 2014

Fortran的字符串处理

声明:     (1)长度为20个字符的字符串   character(20) :: a     (2)长度为20个字符,数组大小为3的字符串数组    character(20) :: a(3)                                                character(20),dimension(3) :: a 赋值调用:     (1)整体赋值   a = "*********"        字符串中的单个字符    a(2:2) = "*"    !不能使用a(2)调用单个元素                              IF(a(i:i) == ' ') a(i:i)='*'     (2)单个数组元素   a(1) = "*********"        单个元素中的单个字符     a(2)(2:2) = "*"     (3)字符变量使用前要明确其大小,需要显示声明。或者子程序接受参数传递得到其大小。     SUBROUTINE HELLO(C)         CHARACTER (LEN = *) :: C(*) !没有声明大小,接受传递         C(2)="JEFFHUGH"         C(3)="INGRESS"         DO I=1,3             PRINT *,C(I)         ENDDO     END SUBROUTINE HELLO     PROGRAM MAIN         CHARACTER(LEN = 11) :: HI(3) !必须声明大小         HI(1) = "HELLO WORLD"         CALL HELLO(HI)         PAUSE     END PROGRAM MAIN

Fortran77到Fortran90的注意之处

1. Fortran 77是固定格式,每行前六个字符不写代码。Fortran 90是自由格式,每行前没有限制。 2. Fortran 77每行以C,c或*开始则为注释行。Fortran 90以!引导注释。 3. Fortran 77每行第6列若不是空格和0,则该行为上一行的续行。Fortran 90以&符号作为续行符,标识在上一行的末尾或者待续行的开始。 4. Fortran 77每行第7-72列为代码区。Fortran 90的前132列为代码区。 5. Fortran 77对应的文件扩展名为.for或.f。Fortran 90对应的文件扩展名为.f90。 6. Fortran 77的变量名或程序名最多为6个字符。Fortran 90的变量名或程序名最多为31个字符。 7. 字符串表示中Fortran 77用''表示,Fortran 90既可以用'',也可以用""。 8. 逻辑运算符表示不一样:        ==      /=       >     <     >=     <=         !Fortran 90用法       .EQ.    .NE.     .GT.  .LT.  .GE.   .LE.       !Fortran 77用法 已经有一些开源的程序可以将Fortran 77程序自动转换为Fortran 90,转换程度已相当好。 (1) https://bitbucket.org/lemonlab/f2f/      f2f is a Perl script which does much of the tedious work of converting Fortran 77 source code into Fortran 90/95 form. There seems to be a lot of Fortran hate in the world, and I think this comes from people who have been forced to use Fortran 77 at some time or another. Hopefully, this program will mak