文章目录

    • 安装
    • 入门的第一段fortran代码

Fortran系列

  • 1 安装和编译💎 2 数据类型💎 3 过程和子过程💎 4 判断和循环💎 5 数组
  • 6 字符串💎7输入输出💎8模块和包管理💎9 动态链接库/C语言混合编程

虽然号称上古语言,而且貌似用户数量一年不如一年,但偶尔也有诈尸的时候,而且比较夭寿的是20年的时候竟然有人开发了fortran的包管理工具fpm,更离谱的是按照计划,fortran会在2023年发布最新版本,可以说离谱到家了。当然,仔细研究之后,发现fortran还挺有可取之处的。毕竟当年开发Fortran的大佬巴克斯都已经得了图灵奖。

据说当时巴克斯向IBM建议开发全新的编程语言时,还遭到了大神冯诺依曼的强烈反对,但后来IBM还是开发了这个语言。1957年,诺伊曼去世后的两个月,历史上第一段Fortran程序出现在IBM704电脑中,结果还报了错……

安装

首先配置编译环境,下载cygwin,安装后搜索gfortran,取消skip,然后安装就可以了。将cygwin路径中的bin加入环境变量,就可以在命令行中调用了

1>gfortran -v
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-cygwin/11/lto-wrapper.exe
Target: x86_64-pc-cygwin
Configured with: /mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-11.3.0/configure --srcdir=/mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-11.3.0 --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --docdir=/usr/share/doc/gcc --htmldir=/usr/share/doc/gcc/html -C --build=x86_64-pc-cygwin --host=x86_64-pc-cygwin --target=x86_64-pc-cygwin --without-libiconv-prefix --without-libintl-prefix --libexecdir=/usr/lib --with-gcc-major-version-only --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --enable-bootstrap --enable-__cxa_atexit --with-dwarf2 --with-tune=generic --enable-languages=c,c++,fortran,lto,objc,obj-c++,jit --enable-graphite --enable-threads=posix --enable-libatomic --enable-libgomp --enable-libquadmath --enable-libquadmath-support --disable-libssp --enable-libada --disable-symvers --with-gnu-ld --with-gnu-as --with-cloog-include=/usr/include/cloog-isl --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id --with-default-libstdcxx-abi=gcc4-compatible --enable-libstdcxx-filesystem-ts
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.3.0 (GCC)

入门的第一段fortran代码

安装完程序之后,就可以写代码了,主程序是fortran程序的必要组成部分,用program xxxend program xxx作为首尾标志,起到C语言中main函数的作用,下面举一个最简单的例子

!fortran 语言用!做注释
!文件名 test.f95
program addNum
   implicit none
   real :: a, b, res
   
   a = 12.0
   b = 15.0
   res = a + b
   print *, a, '+', b, '=', res                   
   
end program addNum        

其中implicit none表示未作类型默认,所以创建变量后需要声明类型,real表示实浮点数,a,b,res是三个变量;print *可将后面的变量打印到屏幕上。

调用gfortran编译并运行

>gfortran test.f95
>a.exe
   12.0000000     +   15.0000000     =   27.0000000

此外,fortran程序要求每行字符不得多于132个,若一行代码以&结尾,则下一行继续这行代码的内容。

更多推荐

Fortran教程1:安装和编译