您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > FORTRAN95-语法基础
FORTRAN95语法基础目录:一、应用程序的创建与运行/FORTRAN95所用的字符/变量类型及其声明,常量声明/表达式与运算符二、输入与输出:表控、有格式三、选择语句与结构:IF语句、CASE结构四、DO循环结构五、数组:数组的声明,数组的引用,数组的算术运算,数组的输入、输出,给数组赋初值,动态数组,WHERE、FORALL语句六、子程序:语句函数,内部子程序,调用子程序时的虚实结合:形参为数组、非定界数组、子程序名、星号,递归子程序,外部子程序,纯子程序,逐元子程序七、派生数据类型与结构体八、指针与动态链表九、文件:存取方式,基本操作语句,各类文件的读写操作十、接口、模块十一、公用区、存储关联、数据块子程序十二、绘图:坐标系、设置图形颜色、创建图形程序/常用过程:设置线型、绘一像素点、设置当前位置、绘直线、绘弧线、绘矩形、绘多边形、绘制扇形(圆、椭圆)/文字信息的显示附/录:标准函数与标准子例行程序一、基础部份1-1FORTRAN95应用程序的创建与运行创建或运行FORTRAN95程序必须在MicrosoftDeveloperStudio平台上进行。尽管程序文本及相关文件的编辑可以在任一文本编辑器上进行,然后再拷到Studio的文档窗口中。但最好还是一开始就进入Studio环境。创建FORTRAN95程序的步骤大致如下:1)启动MicrosoftDeveloperStudio可以通过不同方式运行dfdev.exe程序以启动MicrosoftDeveloperStudio[开始]\CompaqVisualFortran6\DeveloperStudio\dfdev.exe:或……\CVF66\VB.com\MSDEV98\dfdev.exeMicrosoftDeveloperStudio的界面如下图所示:2)建立工作空间(WorkSpace)工作空间窗口文档窗口输出窗口工作空间(WorkSpace)对应着windows资源管理器的一个文件夹。从菜单栏“File”\“New”\在弹出的“New”窗口选“WorkSpace”卡,在“Location”栏指定保存工作空间的位置(即工作空间的上一层文件夹);在“WorkSpaceName”栏指定工作空间名称。建立完工作空间即生成工作空间文件*.dsw3)建立项目(Project)项目是工作空间的下一层文件夹,一个项目只能保存一个主程序及其可执行文件(.exe文件)以及相应的若干辅助文件,如外部子程序、数据文件、说明文件等。从菜单栏“File”\“New”\在弹出的“New”窗口选“Project”卡,在列表中选“FortranConsoleApplication(Fortran应用程序)”;填写ProjectName(项目名称,即文件夹名)与“Location”(默认为工作空间);选取单选钮“AddtocurrentWorkSpace”(将该项目添加到当前工作空间)建立完项目即生成项目文件*.dsp4)编辑程序文本无论是程序的源文件还是如数据文件或说明文件等相关的文本虽然可以在任一文本编辑器中进行编辑,但最好是在这个Studio平台上编辑。从菜单栏“File”\“New”\在弹出的“New”窗口选“Files”卡。在列表中选“fortranFreeFormatSourceFile(Fortran自由格式源文件)”。钩选“Addtoproject”;在“File”栏填入文件名;在“Location”栏默认是项目地址。Fortran95的源文件扩展名为.f90。若是编辑数据文件或说明文件则可在“New”窗口的“Files”卡的列表中选“TextFile”,或者在“New”窗口选“OtherDocuments”卡建立其他类型的文档。5)编译、连接生成可执行文件(.exe文件)源程序文件编辑完成后要进行编译,此时系统将对源程序进行语法检查,若有错误将在输出栏显示相关信息,此时可按功能键F4还可提供更详细的信息。编译通过后即生成后缀为.obj的目标文件。当本项目所有的程序都通过编译后即可进行连接生成可执行文件(.exe)。进行编译、连接、执行的指令可通过下表所列方法发出:编译连接执行通过菜单Build---CompileBuildExecute击工具栏按钮(Compile)(Build)(ExecuteProgram)使用功能键Ctrl+F7F7Ctrl+F51-2FORTRAN95所用的字符:FORTRAN95中使用的英文字母除字符串外,均不区分大小写。所有名称均须用英文字母起头,后面可跟着总数不超过31个字符的英文字母、数字、下划线。关键字也可以作为变量、数组、函数、程序等实体的名称。一个命令行允许编写132个字符,可以书写多条语句,各语句间以分号‘;’分隔。长语句可以分行,以‘&’为续行符。前导行的末尾必须有‘&’号,后续行行首可以有‘&’号也可以没有。‘!’为注释符,可以出现在一行的任意位置。注释符后的所有字符都是注释文本,注释文本可以包括汉字在内的任何字符。本文中语法说明所用的符号:符号说明……必须填入尖括号中指定的相应内容[……]可以填入也可以不填入在方括号中指定的内容选项1|选项2|选项3|…可以有选择地填入某一选项{……}可重复地按花括号中指定格式填入相应内容1-3变量类型及其声明变量未经声明即认为遵从I-N规则,即:以变量名以字母I、J、K、L、M、N开头的均默认为4字节整型变量,其他的为4字节实型变量。下面的隐式声明语句将取消I-N规则:IMPLICITNONE1)隐式声明语句:IMPLICIT隐式声明表隐式声明表=类型名称(字母{[,|-]字母}){,类型名称(字母{[,|-]字母})类型名称=Integer|Real|Logical|Complex|Character圆括号‘(’、‘)’本身为语法成分,方括号对‘[……]’为可选项,花括号对’{……}’为可重复的可选项。例:implicitreal(a,s,i-k),integer(p,q,r),character(c)定义了以a,s,i,j,k为首字母的变量为单精实型;以p,q,r为首字母的变量为4字节整型;以c为首字母的变量为字符型。隐式声明语句应放在所有声明语句及可执行语句之前。2)显式声明语句变量类型变量名[{,变量名}]例:realname1,name2;real*8res1声明name1、name2为单精(4字节)实型变量,res1为双精(8字节)实型变量。显式声明语句的优先级高于隐式声明。3)整型变量Integer[(n)|(kind=n)|*n][::]变量名表n—kind值变量名表=变量[=变量值][{,变量[=变量值]}]Kind取值:1,2,4,8,缺省值为4。有双冒号‘::’的声明语句可同时进行赋值,否则不能进行赋值。例:integer*4::c1,c2,b1=89,b2=75表:整型变量的存储开销及取值范围kind值字节数取值范围11有符号-128~127;无符号0~25822有符号-32768~32767;无符号0~6553544有符号-2147483648~2147483647无符号0~429496729588有符号-9223372036854775808~92233720368547758074)实型变量REAL[(n)|(kind=n)|*n][::]变量名表n—kind值变量名表=变量[=变量值][{,变量[=变量值]}]Kind取值:4,8,缺省值为4。Kind=4为单精度;kind=8为双精度。表:实型变量的存储开销及取值范围kind值字节数取值范围精度44-3.40282347E+38~-1.17549435E-38,0,+1.17549435E-38~+3.40282347E+387位有效数字88-1.7976931348623158D+308~-2.2250738585072013D-308,0,+2.2250738585072013D-308~+1.7976931348623158D+30815位有效数字5)复型变量复数虚、实部要用一对圆括号括起来。表示为:(实部,虚部)。声明复型变量的语法为:COMPLEX[(n)|(kind=n)[::]变量名表n—kind值变量名表=变量[=变量值][{,变量[=变量值]}]Kind取值:4,8,缺省值为4。Kind=4为单精度,单精复数占用8字节;kind=8为双精度,双精复数占用16字节。例:complex*4::cox=(38.8745,-8563.98),ca6)字符型变量CHARACTER[(k)|(len=k)|*k][::]变量名表k—字符串长度,默认为1变量名表=变量名[*k][=字符串]例:character*4a,b,c*6定义了a,b两个字符变量的长度为4,C的长度为6character*4::a,b=’hd7g’,c*6对变量b进行了赋值。7)逻辑型变量LOGICAL[(n)|(kind=n)][::]变量名表n—kind值,可取1,2,4,8,默认为4。逻辑型变量的取值范围只有.TRUE.与.FALSE.两个值。.TRUE.等价于-1;.FALSE.等价于0。已定义的逻辑变量其默认值为.FALSE.。1-4常量的声明:常量有整型、实型、复型、字符型、逻辑型。常量的类型像变量一样,可以隐式声明或显式声明。1-4-1显式声明类型,PARAMETER::名称=表达式[,名称=表达式]例:integer,parameter::a=2,b=3logical,parameter::L1=.True.,L2=.false.1-4-2隐式声明PARAMETER名称=表达式[{,名称=表达式}]例:parameterpi=3.1415926,num=861-5表达式与运算符返回目录1-5-1算术表达式与运算符算术运算符及其优先级运算符功能优先级结合规则**幂1(高)右结合*,/乘、除2左结合单目+,-3无结合规则双目+,-加、减4(低)左结合当运算式中含有不同类型或KIND值的操作数时,低KIND值或低级类型的操作数要转换为高级的。其结果也是高级类型及相应的高KIND值的。在赋值时,若左侧变量与右侧表达式的类型不同,则先将表达式值转换为左侧变量的类型,再赋值给左侧的变量。实型数截去小数转换为整型数。1-5-2字符表达式与运算符求子串操作符:(I:j)——截取从第I个字符到第j个字符的子串。i,j为整型表达式。连接操作符://1-5-3关系表达式运算符运算符.LT.或.LE.或=.EQ.或==.NE.或/=.GE.或=.GT.或功能小于小于或等于等于不等大于或等于大于操作数类型实、整、字符实、整、字符实、整、复、字符实、整、复、字符实、整、字符实、整、字符1-5-4逻辑表达式与运算符.not.(非,单目).and.(与).or.(或).xor.(异或).eqv.(相等).neqv.(不等)表:逻辑运算符的功能ab.not.aa.and.ba.or.ba.xor.ba.eqv.ba.neqv.b.true..true..false..true..true..false..true..false..true..false..false..false..true..true..false..true..false..true..true..false..true..true..false..true..false.false.true..false..false..false..true..false.表:逻辑运算符的优先级与结合规则优先级逻辑运算符结合规则1(高).not.单目,无结合规则2.and.左结合3.or.左结合4.xor.左结合4.eqv.左结合4(低).neqv.左结合返回目录二、输出与输入语句返回
本文标题:FORTRAN95-语法基础
链接地址:https://www.777doc.com/doc-4876197 .html