| 查看: 722 | 回复: 1 | ||
[求助]
fortran中如何设计一个程序对内插法函数进行调用·不会编外部的代码,求高数帮忙已有1人参与
|
|
x轴是EK数值(放在文件中,有100项),y轴是fh数值(放在文件中,有100项),因为x,y间隔不均匀所以采用内插法函数将间隔变均匀,其中内插法函数已有,问题是编一个程序,将这个内插法函数成功调用最终得到均匀的xy数值。已知EK值及fh值单行放于txt文件中。下面这是内插法函数。 IMPLICIT NONE real(kind=8), PARAMETER :: pi = 3.1415926535897932 !pi real(kind=8), PARAMETER :: c = 2.99792458e08 !Speed of light (m/s) real(kind=8), PARAMETER :: e0=1.0e07/(4*pi*c**2) !vacuum permittivity real(kind=8), PARAMETER :: er=1 !relative permittivity real(kind=8), PARAMETER :: u0=pi*4e-07 !vacuum permeability real(kind=8), PARAMETER :: mp=1.6726231e-27 !Proton rest mass(kg) real(kind=8), PARAMETER :: me=9.1093897e-31 !Electron rest mass(kg) real(kind=8), PARAMETER :: e=1.60217733e-19 !Elementary charge (C) END MODULE my_Constants !==================================================================================== ! REAL(kind=8) FUNCTION interpolation_c(x,xa,ya,NI) RESULT(retval) implicit none real(kind=8),intent(IN):: x integer,intent(IN)::NI real(kind=8),intent(IN),DIMENSION (NI):: xa,ya !real,intent(OUT):: retval integer:: cur,top,bot real(kind=8):: numer,denom logical::dec=0 ! cur=floor(real(NI)/2) top=NI bot=1 ! top_if: if (top>1) then dec=(xa(1)>xa(top)) not_if:if(((.NOT. dec) .AND. (x<xa(1))) .OR.(dec .and. (x>xa(1)))) then top=1 else do while(top>bot) log1_if: if(((.NOT. dec) .AND. (x>xa(cur))) .OR.(dec .and. (x<xa(cur)))) then bot=cur cur=floor(real(cur+top)/2) else top=cur cur=floor(real(bot+cur)/2) end if log1_if log2_if: if(top>(bot+1)) then cur=floor(real(bot+top)/2) else bot=top-1 exit end if log2_if end do end if not_if end if top_if !---------------------------------- n_if: if (NI <= 1) then retval= ya(bot) end if n_if eq_if: if (xa(top) == xa(bot)) then eq1_if: if (bot == 0) then retval= ya(bot) end if eq1_if retval=ya(top) end if eq_if numer = ( (ya(top) - ya(bot)) * (x - xa(bot)) ) denom = (xa(top) - xa(bot)) retval = ya(bot) + ( numer / denom ) END FUNCTION interpolation_c |
» 猜你喜欢
三无产品还有机会吗
已经有4人回复
投稿返修后收到这样的回复,还有希望吗
已经有7人回复
压汞仪和BET测气凝胶孔隙率
已经有4人回复
博士申请都是内定的吗?
已经有14人回复
谈谈两天一夜的“延安行”
已经有13人回复
氨基封端PDMS和HDI反应快速固化
已经有11人回复
之前让一硕士生水了7个发明专利,现在这7个获批发明专利的维护费可从哪儿支出哈?
已经有11人回复
论文投稿求助
已经有4人回复
Applied Surface Science 这个期刊。有哪位虫友投过的能把word模板发给我参考一下嘛
已经有3人回复
投稿精细化工
已经有6人回复
» 本主题相关价值贴推荐,对您同样有帮助:
用fortran编写的EOF经验正交函数源代码
已经有43人回复
FORTRAN中erf函数怎么编译?
已经有9人回复
用fortran编的用共轭梯度法解决线性方程组的问题。
已经有5人回复
关于fortran子程序调用内部函数
已经有7人回复
关于应用fortran编写高斯消去法程序来求解方程组的问题
已经有5人回复
求助:用Fortran写一个关于晶粒个数统计和编号的程序。卡了我好久了。
已经有4人回复
请问,如何在fortran中调用误差函数?
已经有5人回复
Matlab中如何自己定义一个新函数,然后计算时可以调用?
已经有12人回复
一个主程序,一个subroutine程序,要如何将两个程序组合在fortran里运行
已经有4人回复
怎能让fortran调用c的fopen和fileio函数
已经有3人回复
想调用fortran的BLAS函数库。。。忙活半天还是不行
已经有5人回复
我编的Simpson积分法fortran程序给不出结果,大侠们看看哪里出了问题?
已经有4人回复
请教一个fortran小程序编译出错的问题,谢谢
已经有9人回复
写了一个fortran90的小程序,编译通不过,请大侠帮忙
已经有59人回复
【求助】FEDORA12下用FORTRAN编写程序需要下一个FORTRAN编译器么
已经有18人回复
【转帖】intel Fortran编译器的一个“危险”优化
已经有9人回复
【求助】如何实现编写的fortran程序让别人使用,但不让别人知道源代码
已经有6人回复
2楼2013-12-17 11:28:14













回复此楼