Fortran实习-子程序调用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实习二 区域水汽压计算

实习目的:熟悉水汽压物理量的计算方法,掌握子程序的循环调用。 实习内容:

已知有区域(25ºN-50ºN ,100°E-140ºE ),水平分辨为5纬度×10经度的露点温度(ºC )如下,请利用下面公式(1),计算各个格点的水汽压值(hPa )。

区域露点温度资料 7.5()237.36.1110

d d t t

e ⨯+=⨯ (1)

资料输入提示:可用以下Fortran 语句对资料进行输入。 data td/17.8,17.9,18.1,18.2,18.3,18.2, & 17.9,18.0,18.1,18.3,18.4,18.3, & 18.1,18.2,18.2,18.4,18.5,18.4, & 18.2,18.3,18.3,18.2,18.4,18.2, & 18.1,18.2,18.3,18.2,18.2,17.9/

实习要求:

根据实习内容和资料,以调用子程序形式计算水汽压,撰写Fortran 程序,并运行检查。

program main

implicit none

external e

real td(30)

real es(30)

data td/17.8,17.9,18.1,18.2,18.3,18.2, &

17.9,18.0,18.1,18.3,18.4,18.3, &

18.1,18.2,18.2,18.4,18.5,18.4, &

18.2,18.3,18.3,18.2,18.4,18.2, &

18.1,18.2,18.3,18.2,18.2,17.9/

call e(td,es)

print '(1x,5f10.5)',es

end program

subroutine e(b,p)

real b(30)

real p(30)

integer ::i=0

do i=1,30

p(i)=6.11*10**((7.5*b(i))/(237.3+b(i)))

enddo

end subroutine

心得体会:此次实习我们主要训练了子程序的运用,子程序使编程的规范性可读性更强,使其更简洁的服务于人类需要。个人感觉插入子程序不是难点,语法上并不复杂,而逻辑上很符合人类思维方式,难点在于怎样把实际问题转化成所需的子程序。

这个实习内容并不是很难,但有很多细节需要注意。比如数组的逻辑结构和存储结构不一样,存储是按列进行的,所以最好使用循环才能按照指定格式输出结果。

今后我应该多多复习细节上的问题,多阅读良好的程序培养自己的编程能力。

相关文档
最新文档