Fortran教程1:安装和编译

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

文章目录

虽然号称上古语言而且貌似用户数量一年不如一年但偶尔也有诈尸的时候而且比较夭寿的是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个若一行代码以&结尾则下一行继续这行代码的内容。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6