猪冰龙

导航

学习fortran77基础语法

 

 1       Program ParamaterDefine
 2       Implicit None
 3 C     FORTRAN变量名和关键字不区分大小写。但调用外部函数的话,需要在编译选项里指定
 4 c     大小写等选项 因为链接器是区分大小写的 
 5 !     关于注释:在自由格式中,只有!一种方法; 在固定格式中,除了!还可以用c或C或*,但必须写在前五个
 6 !     字母,即绿线的左边。
 7 *     *和C是必须放在第一列的,!不必,另外73列以后的内容也属于注释      
 8       Integer I,J,K,L,M,N!整型,前面只能声明变量,不能给变量赋值,语句后面不用分号
 9       Double Precision Area,Length,pi,R,YMJ,ZMJ,degree,SinAddCos,A(1:10)!双精度实型
10       DOUBLE PRECISION MyExp,y,x
11       Complex D,C!复数类型,如果含表达式则用CMPLX
12       Logical T,F!逻辑型,逻辑常量有“T”和“F”,“T”表示“.TRUE.”,“F”表示“.FALSE.”
13       Character*50 name,str*20!字符型,N为字符串长度,可以在变量名称后重新指定长度   
14 C      DIMENSION IA(0:9) !使用I-N规则时用DIMENSION说明数组,也可在定义变量类型同时说明数组,说明格式为:
15 C      数组名(下标下界,下标上界),也可省略下标下界,此时默认为1,例:一维数组DIMENSION IA(0:9)  二维:A(0:2,0:1,0:3)
16       
17       parameter(pi=3.1415926)!参数语句,用来定义常量,在程序中应放在类型说明语句之后
18       
19       YMJ(R)=3.14159265*R*R!应该放在所有可执行语句之前和有关类型说明语句之后,是非执行语句;
20       SinAddCos(degree)=SIN(degree)+COS(degree)!语句函数必须放在函数的赋值语句前,声明语句后    
21       N=3
22       Length=3.0
23       D=(8.76,-67.8E-3)!D=(8.76E+0.5,-67.8E-3)为啥错误啊
24       C=Cmplx(3.0*N,6.0+Length)!有表达式,得用Cmplx
25       T=.TRUE.
26       F=.FALSE.
27       name='My name is zhubinglong!'! //是字符串连接符,/是换行
28 c     语句函数的调用,并输出结果
29       ZMJ=YMJ(5)
30       print * ,ZMJ
31 c     默认格式输出字符串
32       Write(*,*)'I LOVE YOU!'!默认格式输出(默认输出完成后换行)
33       Write(*,*) name
34 c     格式化输出
35       Write(*,1)!
36 1     format(/) ! 1x表示一个空格;/表示换行;
37 c     循环给数组赋值,并格式化输出一维数组A
38       DO 100 I=1,10,1
39             A(I)=I**2
40 100   CONTINUE
41       WRITE(*,10) ('I=',I,'A=',A(I),I=1,10,1)
42 10    FORMAT(1X,5(A2,I2,1X,A2,F4.0,3X))
43 C     尝试调用语句函数并输出结果           
44       R=SinAddCos(pi)
45       WRITE(*,*) R
46 c     调用函数子程序
47       
48       WRITE(*,*) '请输入x:'
49       READ(*,*) x
50       y=(MyExp(x)-MyExp(-x))/2.0
51       End Program ParamaterDefine
52       WRITE(*,2)'Sinh(',x,')=',y
53 2     format(1x,a,f5.2,a,e13.6)
54       
55       !SUBROUTINE SinAddCos(degree)
56       !double precision rest
57       !rest=SIN(degree)+COS(degree)
58       !return rest
59       !END SUBROUTINE SinAddCos(degree)
60       FUNCTION MyExp(x)!或者:DOUBLE PRECISION FUNCTION MyExp(x)
61       DOUBLE PRECISION MyExp,t,s,x
62       INTEGER n
63       n=0
64       t=1
65       s=1
66       do 10 while (abs(t).gt.1e-5)
67             n=n+1
68             t=t*x/n
69             s=s+t
70 10    continue
71       MyExp=s
72       End
73       
74       
FORTRAN77基础代码

 

 

 

用fortran77

1.介绍几个基本语法学习:

http://micro.ustc.edu.cn/Fortran/ZJDing/

http://blog.sina.com.cn/s/blog_8e7709e101018mqd.html

http://blog.sina.com.cn/s/blog_6e0aa6420100pu9p.html

 2.具体

https://wenku.baidu.com/view/7f656ad06529647d272852cd.html

 

 

 

 

 

 

可以看出,默认是按列输入的

 

 

 

 

 


 

3.子程序

 

 

 

 

 

 

 

 

 

 

 

 

 

Fortran77中默认传址,而不是传值

 

 4.子例行程序

怎么没有在子程序中声明变量???

子例行程序默认也是传址

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

conmmon就像int一样,可以在多行声明,也可以在单行声明

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

额外发现:

c#写注释搜代码:http://www.360doc.com/content/14/0218/15/8772388_353542751.shtml     

 http://codesnippet.research.microsoft.com/#    插件地址:https://marketplace.visualstudio.com/items?itemName=VisualStudioPlatformTeam.DeveloperAssistant

posted on 2018-02-06 22:20  猪冰龙  阅读(999)  评论(0编辑  收藏  举报