• Fortran输入输出与声明--xdd


    1.建议程序总体格式: 

    1  program ex1.1
    2  ...
    3  end progr

     2.想要打出 My name is "xdd".

     write(*,*)" My name is "xdd"."

    3.声明类型 标识符 字符串处理

    • 默认为长整形 单精度浮点数(kind=4)
    • Fortran中不区分大小写,所以变量名A、a表示同一变量
    • 返回字符串长度:len(str)
    • 返回字符串去处空格后的长度:trim(str)
    • 连接两个字符串:c=str1//str2  !使用两个/即可连接字符串
    • index(str1,str2) !返回str2在str1中首次出现的位置
    1 integer a 或 integer::a
    2 real b 或 real::b
    3 real(kind=8) creal(kind=8)::c
    4 complex a 或 complex::a 或 complex(kind=8)::a
    5 a=(1.0,2.0) !a=1+2
    6 character ::a (a是一个字符) 或 character(len=10)::a 或 character(10)::a !所有::均可省略
    7 a="xieshg" !fortran90 对于字符串,单双引号均可
    8 logical::a
    9 a=.true.  !注意有两个点

     4.输入输出(write,read)

    • 如用format,一定要放好位置
    program ex
    integer::a
    real::b
    a=100 
    write(*,100) a 
    write(*,200) b
    100 format (I4)       !用4列显示整数a
    200 format(F10.6)     !输出数据占10列,小数部分占6列
    end program 
    
    !write(*,"(1X,I5)") a
    !write(*,"3(1X,I5)") a,
    b,c
    !write(*,"(I5)") b
    !write(*,"(A5)") str   !以5个字符宽度输出字符串
    !write(*,"(E10.6)") a  !以指数格式输出,一共占10位,小数部分占6位
    /              !换行
    program ex0622
    character(len=80) str
    read(*,"(A80)"),str   !有长度这样可以避免逗号使机器读取数据结束
    write(*,"(A80)"),str
    end program

    5.变量先声明后使用,虽然麻烦一些,但可避免许多错误,尤其是输入错误,而且还不会报错!所以取消默认很重要。

    implicit none     !关闭默认类型功能,所有变量的使用都要事先定义
    •  声明常量,能减少编写错误的机会,增加计算机执行速度
    • 变量赋初值时冒号也不能省略
    • Fortran77赋初值时,只能用DATA
    • 所有的变量声明都要在执行语句的前面,一旦开始执行就不能再有声明
    real,parameter::pi=3.1415926    !此处冒号不能省略
    real::c=2.1    !此处冒号不能省略

    !Fortran77
    integer a
    real b
    complex c
    character(len=10) d
    data a,b c d /1,2.0,(1.0,2.0),'xiedd'/ !Fortran77字符串要用单引号

    6.变量类型自定义(a%name) 见《Fortran 95 程序设计》P65 彭国伦老师著

    7.kind的使用

    kind的使用
    integer(kind=2) -32768~32767
    integer(kind=4) -2147483648~2147483647
    real(kind=4) ±1.18*10-38-±3.40*1038
    real(kind=8) ±2.23*10-308-±1.79*10308

     

    1 !判断可以记录9个位数的整数的kind值
    2 integer,parameter::long_int=selected_int_kind(9)
    3 !判断可以有10个有效位数,指数可以记录到50的浮点数kind值
    4 integer,parameter::long_real=selected_real_kind(10,50)
    5 
    6 integer(kind=long_int)::a=12345678
    7 real(kind=long_real)::b=1.23456789D45

    write by xdd  2019-09-19  15:48:15


     


    转载仅为学习,不会商用。
    欢迎转载原创,附文链接。
  • 相关阅读:
    hdu 5444 Elven Postman 二叉树
    tensorflow2.x模型保存问题
    【NVIDIA】Win10 + CUDA10 + cuDNN 安装教程(转载)和遇到的坑
    windows下 为不同虚拟环境配置不同的cuda
    多线程
    socket编程
    引用类型和值类型
    记录报错
    github下载慢问题
    LabelImg的安装出现No module named 'libs.resources'错误
  • 原文地址:https://www.cnblogs.com/xdd1997/p/11547807.html
Copyright © 2020-2023  润新知