初学Fortran 相信大家都希望有一个简易的算例上手看看整个代码编写、运行的模式
以下就是用Fortran编写的计算圆柱体表面积的一个代码
实现功能:输入半径和高,自动计算圆柱体表面积
program cylinder !给主函数起个名字! Calculate the area of a cylinder.
! Declare variables and constants.
! constants=pi
! variables=radius squared and height
implicit none ! 要求所有变量都被明确定义
!这个一般都是要写上的。下面会进一步说明。integer :: ierr !定义整型变量
character :: yn !定义字符串
real :: radius, height, area !定义实型变量
real, parameter :: pi = 3.1415926536 !这是常量的声明方法interactive_loop: do !do循环,Fortran中的循环可以加标签,如d前面的interactive_loop就是标签(个人理解是给循环取了个名字)! 提醒用户输入半径和高,并且读取用户的输入值write (*,*) 'Enter radius and height.' !屏幕输出,(*,*)完整写为(unit=*,fmt=*),unit为输入/输出位置,fmt为格式,如这两项都写成*,则按默认的方式进行read (*,*,iostat=ierr) radius,height !键盘输入。isotat的值用判断输入成功否,ierr>0表示操作错误;ierr=0表示操作正常;ierr<0表示文件终了。! 如果不能正确读入半径和高,就跳过循环if (ierr /= 0) then !ierr /= 0 表明操作错误(用户输入了非实型变量)write(*,*) 'Error, invalid input.'cycle interactive_loop !cycle 用于结束本次循环 相当于C里的continueend if! 计算表面积. ** 代表乘方运算area = 2 * pi * (radius**2 + radius*height) ! 指数运算比C方便! 把输入变量 (radius, height) 以及结果 (area) 显示在屏幕上.write (*,'(1x,a7,f6.2,5x,a7,f6.2,5x,a5,f6.2)') & !"&"表示续行。这里还显示了格式化输出'radius=',radius,'height=',height,'area=',areayn = ' 'yn_loop: do !内嵌的另一个do循环write(*,*) 'Perform another calculation? y[n]'read(*,'(a1)') ynif (yn=='y' .or. yn=='Y') exit yn_loopif (yn=='n' .or. yn=='N' .or. yn==' ') exit interactive_loopend do yn_loop !结束内嵌do循环end do interactive_loop end program cylinder
算例来源:
Fortran基本用法小结
Fortran基本用法小结_CSDN
我在原博客的代码基础上加了一些注释作为笔记,翻译成中文方便理解
我的编译环境是Visual Studio 2017