Fortran Coder

查看: 6061|回复: 1
打印 上一主题 下一主题

[子程序] 怎么调用不了子函数

[复制链接]

2

帖子

1

主题

0

精华

新人

F 币
15 元
贡献
7 点
跳转到指定楼层
楼主
发表于 2015-5-7 17:01:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
我这个程序无法调用子函数get_ne1,ne一直不变,这是什么情况?求哪位大大解释一下

program main
implicit none
integer counter
real N
real ne,z,a,n0
real dz
N=400
n0=1e17
dz=2*a/N
a=0.04

    do  counter=0,N
        z=-a+real(counter)*dz
        call get_ne1(ne,z,n0)
        write(*,*)ne
    end do
   
   
stop
end
   
   
subroutine get_ne1(ne,z,n0)
implicit none
real n0,ne
real z
real z0              
real a
a=0.04
z0=4E-3
if((z>=-a).and.(z<=0)) then
        ne=n0*exp(z/z0)
else if((z>0).and.(z<=a)) then
        ne=n0*exp(-z/z0)
end if
return
    end subroutine
   

QQ图片20150507170014.png (15.82 KB, 下载次数: 185)

QQ图片20150507170014.png
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

2

帖子

1

主题

0

精华

新人

F 币
15 元
贡献
7 点
沙发
 楼主| 发表于 2015-5-7 17:12:28 | 只看该作者
自己搞懂了,a和dz顺序反了应该最后写dz,不然dz太大,循环出错。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-5 21:23

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表