欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    FORTRAN95-语法基础.docx

    • 资源ID:7216809       资源大小:285.20KB        全文页数:67页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    FORTRAN95-语法基础.docx

    FORTRAN95语法基础书目:一、应用程序的创建与运行/EQm3AN95所用的不符/变仇类电及JW>明,箔;山声明/衣达式与运蜕符、输入/输出:表控、有格式三、选择语句与结构:IF造句、CASE结构四、DOl环结构五、纳:数祖的声明,一玉的引用,数组的算术运通,数组的输入、输出,空数如赋初上,动态数蝴,WHERExFORA1.1.语句六、子程序:语句画数,内部子程序,调用f1序时的废句结合:形参为数组、非定界数组、子程序名、星号,递归子程序,外部子程序,钝子程序,逐无子程序七、派生数据类型与结构体Ax指针与动态与衣九、空匕存取方式,基本操作语句,各类文件的读写操作十、接口、模块十一、公刖区、-储关联、数抿块子程序十二、Mt坐标系、设十图形颜色、创建图形程序I常用过程:设置线型、绘像起点、设置当前位置、绘有线、绘孤纹、绘矩形、绘多边形、绘制皿(01、椭网/文号信息的显示附代,标准函数与标准子例行程序一、基础部份1-1FORTRAN95应用程序的创建与运行创建或运行FORTRAN95程序必需在MiCgSOftDeveloperStudio平台上诳行,尽管程序文本及相关文件的莱卷可以在任-文本编辑器上进行,然后再指到Sludio的文档帝口中,但最好还是一起先就进入SlUdio环境。创瓢FORTRAN95程序的步骤大致如卜:1 )启动MicrosoftDeveloperSludio可以通过不同方式运行dfdcv.cxc程序以启动MicrosoftDeveloperStudio起先CompaqVisualFortran6DeveloperStudiodfdev.exe:说',CVF66VBMSDEV98<lfdev.exeMicrosoftDeveloperStudio的界面如下图所示:工文档前口l-.1<m.><*ut2 )建立工作空间(Workspace)工作空间(Workspace)对应希Window$资源管理器的一个文件乐从菜单栏4TiIe-Ncww在弹出的"New"两口选"WorkSpace"R,在"1.ocation栏指定保存工作空间的位置(即工作空间的上一层文件夹):在“WorkSPaCCNamC”栏指定工作空间名称.建立先工作空间即生成工作空间文件1.dsw3 )建立项目(Project)项目是工作空间的下一层文件夹,一个项目只能保存一个主程序及其可执行文件Jcxe文件)以及相应的若干协助文件,如外部子程序、数据文件、说明文件等.从菜单栏“File”“New”在弹出的“New”窗口选“Pix)KCt”卡,在列表中选uFonranConsoleAPPIiCaliOn(Fortran应用程序";填写ProjeClName(项目名称,即文件夹名)“1.ocalion”(默认为工作空间):选取单选钮-AddtocurrentWOrkSPaCC”(将该项目添加到当附工作空间)建立完项目即生成项目文件*.dsp4)编辑程序文本无论是程序的源文件还是如数据文件或说明文件等相关的文木虽然可以在任一文本编辑器中进行编辑,但最好是在这个Slud沁平台上编辑。从菜单栏"File""New”在舛出的“New”窗口选"Files”卡.在列表中选“fortnmFreeFormatSourceFilc(Fo11ran自由格式源文件),构选“Addiopr咏ci”;在“File”栏填入文件名:在“1.ocaUoiT栏默认是项目地址,Fortran95的源文件扩展名为.刖。若是编辑数据文件或说明文件则可在-Ncwn窗口的“Files”卡的列表中选-TextFile”,或者在“New”窗口选"OihcrDocuments"卡建立其他类型的文档.5)编译、连接生成可执行文件(exe文件)源程序文件编辑完成后要进行编谛,此时系统将对源程序进行语法检交,若有错误将在输出栏显示相关信息,此时可按功能键F4还可供应更具体的信息.编译通过后即生成后填为.。M的目标文件,K-J目全部的程序椰通过编译后即可进行连接生成可执行文件(cxc).进行编洋、连接、执行的指令可通过下衣所列方法发出:编译连接执行通过菜单BuildCompileBuildExecute击工具栏按钮参(Compile)H(BuiId)I<ExecuteProgram)运用功能迸Ctrl÷F7F7Ctrl÷F51-2FORTRAN9S所用的字符eFoRTRAN95中运用的英文字母除字符中外,均不区分大小写.所出名称均须用英文字母起头,后面可跟着总数不超过31个字符的英文字母、数字、下划线关犍字也可以作为变量、数组、函数'程序等实体的名林.一个吩咐行允许编写132个字符,可以书写多条语句,各语句间以分号分隔.民语句可以分行,以&'为续行符"前导行的末尾必需有&'号,后续行行首可以有,&'号也可以没有.,!,为注择符,可以出现在一行的的造位祝,注林符后的全部字符都是注祥文本,注样文木可以包括汉字在内的任何字符。本文中语法说明所用的符号:符号说明必需埴入尖括号中指定的相应内容II可以填入也可以不地入在方括号中指定的内容选项II选项2I选项3卜“可以有选择地填入某一选项可重史地按花括号中指定格式填入相应内容1-3交量类型及其声明变一未经声明即认为遵从1.N规则,即:以变玳名以字母I、J、Kx1.,M.N开头的均默认为4字节整3?变里,其他的为4字节实型变成。卜面的隐式声明语句将取消I-N规则:IMP1.ICITNONE1) Ia式声明语旬:IMP1.ICIT1®式声明表除式声明表=类型名称(字母EH字母川类型名称(v字母U-k字母)V类型名称=ntCgCrIRCaIl1.ogicalICOmPICXICharaCler 圆括号本身为语法成分,方括号对*为可选项.花括号对“为可重复的可选例:implicitreal(a.s.i-k)jnteger(p.qj-).characlcr(c)定义了以&s,ijjc为首字母的变量为单箱实型:以p.qr为首字母的变敢为4字节整型:以C为首字母的变量为字符型. I®式声明语句应放在全部声明语句及可执行诏句之前.2)显式声明语句变量类型V变量名变/名)例:realnamcl.name2:rcal*8rcsl声明namcknamc2为单相(4字节)实型变限,rcsl为双精(8字节)实型变Ii1. 显式声明语句的优先奴裔于胞式声明。3)整型变量Integer(n)(kind=n*n11:sV变成名表nkind值变Iit名表=变量=变负值,变ht=v变Jft(ftKind取值:I,2,4,8,缺省值为4。有双目,;、:的声明语句可同时进行赋值,否则不能进行赋值。例:intcgcr*4tscl.c2.bl=89.b2=75表:整型变玳的存储开销及取值莅阳kind(ft字节数取值范胭I1有符号-128-127;无符号0-25822有符号-32768-32767;无符号06553544有符号-21474836482147483647无符号0429496729S88行符号-9223372O368547758O8-9223372O368547758O74)实型变显REA1.Kn)Kkind=IOl*n:|变IR名表n-kind值V-;St名表=变量=变址值.v变价:=v变量值)Kind取值:4,8,缺省值为4.Kind=4为单精度:kind=8为双精度.表:实型变址的存储开销及取侑莅IHkindOT字节数取伯范围精度44-3.4()282347E+38-1.17549435E-38.0.+1.17549435E-38-+3.4O2X247E+387位有效数字88-!.7976931348623158D÷3(W-2.225O738585O720131.>-3O8.0.÷2.225O738585O72Ol3D-308-÷|.7976931348623158D÷3O815位有效数字5)亚型变Ji复数虚、实部要用一对酸括号括起来.表示为:(实部,虚部.声明亚型变冰的语法为:COMP1.EX(n楸ind=n):V变量名表nkind(fiV变量名表=变Qx=V变量值11.v变址=v变K值JKind取值:4,8.缺省值为4.Kind=4为单精度,总精复数占用8字节:kind=8为双精度.双精或数占用16字节。例:complex*4:cox=(38.8745,-8563.98),Ca6)字符型变量CHARACER(kH(lcn=k)k(::IV变地名表k一字符串长度.欲认为1变量:名表=变歧名"=字符串1例:CharaCle/4abc*6定义了a.b两个字符变吊的长度为4,C的长度为6CharaCte产4:a.b="hd7g'.c*6对变阜b进行了赋值“7)逻辑型变锻1.OGICA1.(n)(kind=n):变属名次nkind值,可取I,2,4.8.默认为4.设轨型变量的取值范围只存TRUE与.FA1.SE.两个伯。.TRUE.等价于1:.FA1.SE.等价于0.己定义的龙卷变电其默认值为.FA1.SE.14常量的声明:常:;/整电、实型、复型、字符型、逻转型.常量的类型像变量一样,可以Ra式声明或显式泮明。1-4-1显式声明类型,PARAMETER”V名称=v表达式.V名称=表达式例:intcgcr,paramccr:a=2.b=3Iogica1.parameier:1.l=.Tte.,1.2=.false.1-4-2隐式声明parameerV名称=表达式h.V/称=表达式)例:paramclcrpi=3.1415926,num=861-5表达式与运算符返回书目1-5-1算术表达式与运算符算术运算符及其优先级运算符功能优先徼结合现则¥1(高)右结合*./乘、除2左结合取目+.-3无结合规则双目+.加、减4(低)左结合当运算式,I含仃不同类型或KIND值的操作数时,低KIND值或低级类型的操作数要传换为高级的,其结果也是高级类型及相应的高KIND值的,在赋俏时,若左侧变好与右恻表达式的类型不同,则先将表达式值转换为左侧变量的类型,再赋值给左侧的变城。实型数截去小数转换为整盘数。1.5-2字符表达式与运尊符求子中操作符:(I:j)极取从第I个字符到第j个字符的子串.i.j为整型表达式.连接操作符:U1-5-3关系表达式运算符运算符.1.T.或V1.E.或<=.EQ或=NE.或I=.GE或>=GT.或>功能小于小于或等于等于不等大于或等于大于操作数类型实、整、字符实、整、字符实、整、复、字符实、整、或、字符实、整、字符实、整、字符1-5-4设辑表达式与运算符.(h)单目).and.(与).or.(或).xor.(异或).cqv.(相等).neqv.不等表;逻辑运算符的功能ab.not.aa,ncqv.b.true.true.false.lrue.true.false.true.false.(rue.false.false.false.(rue.(rue.false.tre.false.true.true.false.true.(rue.false.true.false.false.tn>e.false.false.false.true.false.表:逻辑运算符的优先级与结合规则优先级逻辑运算符结合规则1(Si).IKK.单目,无结合规则2,and.左站合3.or.左结合4.XO.左结合4.cqv.左结合4(低).neqv.左钻合返回二、出与,人好句2-1表控输入输出语句赛控入,READ*V输入项列表输入项列表中各1«以逗号分隔,输入数据UJ以逗号或空格分隔,或以回车换行分隔.运用力号可重我输入,如:3*27.8笄同于:27.8.27.8.27.8.这种规则适用于任何类型的数据.表拄出:PRINT*.输出项列表|输出的数据之间有一个空格分隔。但字符串前不出现空格。整型数的燧H域宽与KIND值的关系:KIND值域宽(N个字符宽度I4264Il82;实型数的输出域宽KIND(ft城宽(N个字符宽度4(单精)14(其中指数部分占4个字符宽度81双精23(其中指数部分占5个字符宽衣处里数输出的格式是用一对圆括号将实部与虚部括起来,实、虚部以逗号相隔。其域宽也与KIND值有关.2-2有格式输入输出2-2-1FORMAT语句:语句标号Formalv格式说明表格式说明我:(格式编相符H.格式编辑符D2-2-2有格式输入:Nad格式语句标号,输入表read(",格式语句标号)输入衣IPMIVT'V格式说明表x.V输入表rcad(*,勺”格式说明表V输入表2-2-3有格式输出:Prim格式沿句标号,输出去Iwritc(*f格式语句标号)输出表IPrimT1格式说明去T.输出表IWTi取*,T格式说明去)输出去例:write(*.,(2x.14.202.4)*)N1.R1JU;read*.,(3i2),)IJ.K表:数据给入蛤出用的可重任编辑符(数据编税符)格式名称说明rlw.ml整型编辑符一正笑系数,W域宽(下同),m输出数据的最少显示位数,不包括负号所占位置。r)Fw,d小数型实型编粗符d小数位数(下同),城宽W中包括小数点与负号。者的入数据门带小数0,则在城宽内按实际次数添取,此时d失效rEw.<lEe指数型实型编辑符域宽W中包括小数点、正负号、字母E及指数。I旨数位数,默认20单精正实数应有WZd+5;负实数应有WZd+6rDw.d双精实型编辑符(rENw.dEc工程计数法编辑符(rESw.dEc科学计数法编辑符(rJA(w)字符型漏料符若缺有W则域宽自动等于输入输出项的长度(r1.w逻辑型漏料符VP大认为2。输入.true.时须w35:输入.false.须w£6rGw.dEel通用编辑符将随意类型数据按指定域宽输入,输出数有格式输入输出是通过两个实型编辑符实现,输出时首尾没有用括号,实、虚部间以一空格分隔逻辑值恤出为T或F输入多个逻辑值时用过号分隔,不行用空格分隔.用A编辑符读入字符时,不要加定界符.否嘱把定界符也认为是要输入的字符.表:不行4复编辑符(限制编辑符格式名称说明<9U99*字符串演辑符将字符串谕出nHH编辑符将H后的n个字符输出Tn.T1.n.TRn位置漏轼符分别是将设数指针移到施入效IK行的第n列.指针左移n列,右移n列nX编辑符输入时将指针移过n列,蚪出时输出n个空格/斜杠编辑符在输入或情出时终止本记录.定位到下一条记录的开头.$反科杠.S编辑符输出时运用的续行符,遇到此符不回车换行在原行接着黔出.kP比例因子编辑符与F、D或E格式连用,将数据以Xlok注入,或以XlOkWiHhk为M一整数.如Nad(2P3F8.2)a.b.c时将型数无效:日号瀛轼符当没有崎出项时结束格式输出三、逸邦语句与结构坂回书目3-1IF语句3-1-1简沽IF语句:IF(V爱排衣达式>)执行语句3-1-2块IF语句:IF(<逻辑友达式>THENK语句体1>1(E1.SEIV谱句体2>IENDIF3l3多分支IF语句;IF(V龙卷表达式1>>THENIV谙句体1>E1.SElF(<逻辑表达式2»THEN<语句体2>E1.SElF(V逻辑表达式n>)THEN<语句体n>)E1.SE(V语句体n+l>ENDIF3-2CASE选择结构SE1.ECTCASE(<测试表达式)CASE(V目标值1>>IV谙句体1>J.CASE(<目标f11n>)V语句体n>CASEDEIAU1.TV语句体n+l>ENDSE1.ECT测试表达式结果与11标侑i匹配时就执行该语句体,否则执行DEFAU1.T下的语句体,在CASE结构中:V测试表达式必需是整型或逻辑型或CHARACTER1的字符型表达式.目标值与测试交达式类型一样的有限个常量集.元素间以逗号分隔,如1.A'.'E','D'):也以是用苜号与上下界给定的范阻,如5:10).若宙略下界则默认为匹配全部小于或等于上界的俏:省略上界则见配全部大于或等于下界的值。若值是字行,则按ASCll依次给定上卜界,如X1.PD.V测试表达式是逻辑型时不能指定值的范围.在CASE结构中不能从一个CASE段跳转到男一个CASE段,在FoRTRAN中全部结构均可嵌套运用,但不能从块外分支iS入,而可以从块内分支出转到块外,四、Doflt环结构返回一日4-1无条件循环结构V名称:DO循环体ENDDO名称 这类循环结构的循环体中应有推断语句,通过EXIT或GOTO语句结束砧环”4-2计数型DO撕环名称XlDO循环限制变E=初值,终值|.步长砧环体ENDDo(V名称习 缺省步氏默认为I. 循环体中可包含EXlT,CYC1.E语句.EXlT强迫终止循环,转向ENDDo后的第条语句,CYC1.E语句结束当前的循环并起先下一次循环.4-3条件型Do循环名称:)DoWHI1.E(循环条件V帽环体ENDDO(V名称)循环条件只能是关系友达式或逻辑表达式,表达式为真时执行酒环.为假时转向ENDDO后的第一条语句.4-1给DO谙句添加标记在Do语句前可以添加标记或在关键诃DO后添加语句标号,即V标记:IX)ENDDOV标记或DO由句标号,语句标号ENDDO例IASD:IX)1=1.20tENDX)ASDtIX)KM)1=1.XKXIIiNDDO返回书H5-1数组的声明:数组须经声明其类型与维数方可焰用.5-1-1用类型声明语句:类型再明语句为:类型声明符:数组声明表V类型评明符=vintcge市ealcOmPICNICharaaCrlIgical*N(N);V数组声明表=V数组名(维说明表)I=V数组初值表|,数组名(维说明衣)=数组初Ift表维说明表=下界:上界,|下界:上界数组初值表=(/值1,值2,/)N为KlNDfft.若省略则运用该类型的默认值.若要对数组赋初值,则必辐运用:符"雄说明去中跳省下界默认为1,若有任一雄的下界大于上界则该数祖大小为0.例:real(4):A(2.3)=(/2.2.4.2.9.5.8.7.6.2.7.9/)5-1-2用DIMENSK)N语句声明数组DIMENSION数组泮明表数小声明表=数组名«维说明表.V数批名XV推说明表川V维说明表=下界:上界,下界:v上界)DIMENSION语句中不能有':'符号,不能给数组赋初(ft.用DlMENSION语句声明的数组,其类型可按摩含规则1.N规则确定,也可用显式声明义无里,但显式声明语句应在DlMENSloN语句之前。如:Rcal(三)NUM,SUMDIMENSIONNUM(2,3),SUM(2:8)5-1-3联合运用类型声明语句与DIMENSION属性声明数组V类型.DlMENSloNg维说明表:V数组声明表维说明表=下界:1上界,下界:上界)数殂声明表=数组名维说明去=数祖初值表|.v数组名维说明表=v数组初侦表)数组声明表中的数组若自带维声明,则按自带声明的维数与上下界.否则按DIMENSION属性给出的谁说明.例:Integer.demension(2,3):s:num=(/l.2,3,IO.2O,3a0!对数组NUM赋初值real,dimension(3):sAl.A2.A33.6)!Al.A2为一维数组,A3为二维救现integer,dimension(3.4):A.B!声明A,B为二维数组5-2数殂的引用1)访问整个数批,用数纲名。如A=3-5!将36赋(ft给数组A的全部元素.Prin1.JA=',A!显示数组A的全部元素.2)访问数组元素,须指定下标,或下标范附;Vlft组名KV下标,下标Num=A(2.3)+A(1.3)!将数组元素与Ac之和赋值给NUm下标一般是整型数若给了实里数则系统自动取整(截断取整3)访问一殂连续的数殂元素片段,可给出下标的范阳:V数如名(v下标,V下标)V下标=V表达式v下界表达式习:IV上界表达式习缺省下界龙达式则默认取本维的下界:洪省上界友达式则默认取本难的上界.也可以上、下界表达式都缺省,则默认为包含该维从下界到上界的全部元素,如:A1,1:3=6.5!将6.5赋值给A”,A2.AnA(2.:)=8!将8赋值给数组A的其次行全部元素.上;下界友达式可以是整型或实型,若为实型则衣达式臼动取整.4)访问一组或彳j规则间隔的元素可给出下标的范旭及步长:;V数一名Xv下标,V下标)V下标=v表达式H下界表达式习:卜上界表达式H:步长缺省步长,默认为1.缺宙上/下界表达式,取本维的上,下界。如:A(1.1:3:2)=8.2!将8.2赋值给AU与A”。下标越界会产生不行预知的错误.为避开发生此类情误,可运用检测函数:UBOUND(数组名,dim=潍的序号):给出数组相应维的下标上界1.BOUND(数殂名Jdim=维的序号)!给出数组相应维的下标下界若缺省推的序号,则给出的一维整型数组依次为各维卜标的上/下界。5-3数组的算术运算算术运算符+、一、X、/、*也适用于数组,其功能是对同形数组的时应元素iS行相应运算,如:对于数力IA(m.n)与B(m,n),语句A=A/B等同于:doi=l.m:doj=1.nA(ij)=A(ij)B(ij)eldo;enddo5-4数组的输入)输出D运用数组名输入/输出read*.A!输入A数组prim*.A!输出A数加或WRITE(*.YV格式说明表)')AWRITE(*,F0RMAT语句标号A数组的逻辑结构是数据表,一维数组是一行,多维数组是多层的数据表。而数如在计能机中的存储结构是连续分布的一部存储单元,是一维战性表,数据的存储依次是以列为主,按列从上到卜,从左到右从第一层到最终层.运用数组幺输入/输出就是按数泓的存储结构依次输入/输出,第一个元素是第一层表的第一列第一行,其次个元素是第一层表的第一列其次行,然后是其次列笫一行、其次行,再后是其次层表的第一列第一行、其次行,其次列第一行、其次行1234-例53矩阵A=5678910Il12对READ,A谙句的输入依次应是:1.5.9.2.6.10.3.7.11.4.8.12/1PRINT*,Aifi句愉出的结果也是:I.5.9,2.6,10.3.1,Il,4.8,122)运用Do循环语句输入/输出数处:运用循环语句黜入/输出,可以实现以行为主或以列为主的依次.下面为用Do谱句输入:DOJ=1.4DO1=1.3READ*.A(U)ENDIX)ENDDO执行时,以列为主输入,依次为:1,5,9,2.6,10,3.7,Il,4,8.12(逗号处回车换行)若要以行为主输入,则上列程序段应改为:DOI=1.3DOJ=1,4READ*,A(IJ)ENDDOENDDO执行时,以行为主的输入,依次为:I,2,3,4,5,6.7,8,9.10.II,12(逗号处同车换行)输出时,若要保持原矩阵持列的形式,其程序段为:DOI=1.3DOJ=1.4WRrrErx2xJ2f2x,")A(U)ENDDOWRITE(*.)ENDDO若要将A转趾.则此程序段为:DOJ=1.4DO1=1.3WRITE(t(2x.I2.2X.)')A(IJ)ENDDoWRITE(*.)ENDDO3)运用ISDO荷环输入/输出数组DO循环输入/输出的语法格式为:(V输入/谕出项.V循环限制变盘=初值.终(ft.v步长)情入项可以是数1元素或一般变股:但不能是常数、函数或表达式.但输出项则除了数M元素外还可以是一般变量、常数、函数或衣达式。缺省步长默认为1.JUh对前面的A数组,时其输入的语句为,Read*,(A(U),j=1,4),i=l.3)执行时,按行输入数据,与运用DO循环语句输入时不同的是,不是键入一个数据就回车换行,而是可以一行输入多个数据。应输入的全部数据可以一行输入,也可以随意分成多行输入.若要按列怆入数据,则上述语句应改为:Read*.(A(U),i=l,3),j=1,4)输出A矩阵的ISDO循环语句是:Write(»."(4(2x.I2.2x)")(A(i.j).j=1.4).i=1.3)以下输出其转置矩阵Write(,"(3(2x.I2.2x)')(A(ij).i=l,3).j=l,4)5-5给数组依初值却可书目数组在未经赋值前其各元素均为0.D运用数组名!将5.6赋给A的全部8个元索若对数组全部元素赋以相同的值,可用数组名。如;realA(1:8)A=5.62)通过数组构造器对于一维数加:数加名称=。初值表,)V初值表=数值/1.数值项2.例:integerARRI(6)ARRI=(/1,2,3,4,5,6/!对数Slarrl赋初值对于多维数组.须运用标准函数RESHAPE将一维的数据转换为多维的.fM:ijntcgcrA(3.4)A=RESHAPE(1.2,3,4.5.6,7.8,9.10.11.12/),(/3,4/)运行时,数组A按存储结构依次注入数据,安排给各元素,结果是:147102581135912数组构造器也适用于给数组片段赋初值,如时徜例的A数组的其次行赋做,可作:A(2.:)=(4.6.7.8)则A数组成为:I47102222359123)通过DATA语句对数组赋初(DATA语句可以对变址、数组、数组片段、数组元素也初值其语法格式为:DATAV对胞表/V初值表/H.对象表Rv初值表)初伯表=伯I生灾系数值H,(ft理复系数*(ft 初值中的值只能是常量。各个值按数阻的存储玷构依次IWE相成兀2 对象中的对象数目应与初值表中初值的数目相等,类型相容. DATA谱句可放在程序中END语句前的随意位置.例:integerB(2.2)DATB/3456!Bl=3.B2i=4,Bl2=5.B”=6DATAB4*I2!Bu=Bh=Bu=Bn=IZDatam.V25.62/!m=25.n=62例:integerD(3,4)Dma(D(i.j),i=1.2),j=2,3«,7,9.5/!D,:=8.D22=7,Dl=9,Da=55-6动强数蛆动态数组的大小在声明时并不指定,在程序运行期间在运用该数组的才指定其大小.1)动态数组的再明:V类型,DIMENSION(:(.:).A1.1.OCATAB1.E:sV数纲表V数组表=v数组名,数组名)或类型,A1.1.OCATAB1.E;数组表V数组=v数组名",:)(ftift(:(,:H)例:Real.Dimensionf::).A1.1.OCATAB1.E:num!声明num为实型3维数组.Real.Dimension(:),A1.1.OCAB1.E;:sc!声明SC为实型I维数组或Real.A1.1.OCATAB1.E:scnums:)2)动态数组的定界动态数纲在运用前须用A1.1.OCATE语句指定维的上卜界,以安排存储空间,A1.1.OCATE语句的语法格式为:AI.1.(X'ATE(数组名X维说明我),V数组名(维说明表),STAT=状态变址|) 当A1.1.oCATE语句被胜利执行,返回的状态变浆俏为0,否则为错误号。 A1.1.OCATE语句中数加的维数须与其声明语句中的维数一样. 对动态数组里初值不能运用DAIA语句例:AIjqeATE(num(5,2,3:6),sc(2:8)3)择放动态数纲动态数组当不再运用时的刚好用DEA1.1.(X:A1E谓句程放其存储空间,DEA1.1.OCATE语句的语法格式为:DE1.1.OCTE(数组表,STAT=状态变做|) 数纲表中的元素必需是前面已声明的动态数现名. 力态数组在离开其作用域后,所安排的存储空间自动择放,不须要DEA1.1.OCATE谙句.经拜放的动态数组若要重新运用,可以再次以A1.1.oCATE语句血新安排存储空间并重新赋值.5-7WIIERI'眄返回并目5-7-1简洁WHERE沿W语法格式;WHERE(条件)数组赋值语句功能::对满弑条件的数41元本执行赋假语句。 条件表达式中的变技必需是数组元素.例:inegerSCorescorc=/98.56,34.46.87.69/)where(scorc60)score=60prinf,score!怆出:986()60608769end5-7-2块WHERE语句语法格式:WHERE(V条件)数组献值语句1(E1.SEWHERE式数组赋值谱句2)ENDWHERE功能:对满意条件的数组元素执行赋值语句I:对不满意条件的数级元素执行赋值语句2。例:integerSCorC(6)SCoE/98,56,3446,87.69/)where(score)=60)score=score+0.8(100-score)!scrc(i)=scorc(i)÷0.8*(1OO-scorei)elsewherescore=60!SCoreO=60endwhereprinl*,score!输出996060609793end5-7-3多分支WHERE语句多分支WHERE语句可以对数祖元淞运用不同的条件进行筛选然后分别赋值谙句格式:WHERE(V条件1>)<数组赋值语句I>E1.SEWHERE(<条件2>数批赋值语句2>E1.SEWHERE(<条件n><数组赋值语句n>ENDWHERE在多分支WHERE谱句中参加运算的数组须是同形的(相同维数,相同上下界例:integerscre(8)CharaCtCr«6gradc(8)sre=(98,56,46,87.69,78,85.74/)where(score<60)Scon:=60;grade=,及格,clscwhcrc(scorc<70)SCOrC=SCOrC+5:gradc=',l,elsewhere(score<80)score=score+5;grade=,良好,elsewheregrade='优秀endwhereprint*.score!9860608774838579Print-.grade!优秀及格及格优秀中等良好优秀良好end5-8FORA1.1.语句返回节目FORA1.1.是并行处理语句,可用于实现并行运算.它可以对指定下标的全部数组元素进行运算.5-8-1简洁FORA1.1.语句语句格式:FORA1.1.(<下标说明>,<条件>)<赋他语句>例:forall(i=kn)X(l.i)=2Y(i)+Forall(i=l:nj=l:m,A(i)<I(X>.and.B(j)<50)C(ij)=A(i)÷B(j)例;己知矩阵A(mm)求其转置B(n.m)=AYm.n)ForalKi=I:n,j=I:m)B(i.j)=A(j.i)5-8-2块FORA1.1.语句语句格式:FoRA1.1.下标说明>I,<条件>)<FORA1.1.体>ENDEORA1.1.功能:对指定下标并符合条件的数组元素依次逐条执行FoRA1.1.体的语句,只有在全部符合条件的元素都执行完一条语句后才能执行下一条语句,FORA1.1.体的语句只能是:数组赋值语句、指针赋值语句、WHERE语句、FORA1.1.语句。所引用的函数必需是统函数(见后.例:piirame(er(m=3.n=4)integerA(m.n).B(in.n)fbralK=kmj=

    注意事项

    本文(FORTRAN95-语法基础.docx)为本站会员(李司机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开