Fortran Coder

楼主: ttt
打印 上一主题 下一主题

[流程控制] fortran循环,求助!!

[复制链接]

716

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
624 元
贡献
319 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

7#
发表于 2014-4-25 19:53:56 | 只看该作者
1.我建议你写成一个函数,把daltf当做参数传递进去,然后循环调用这个函数既可。
2.这样写不行。要这样循环

[Fortran] 纯文本查看 复制代码
integer :: i
real :: daltf
daltf = 0.0
 Do i = 1 , int(0.35/0.001)
   daltf = daltf + 0.001
   处理代码
 End Do

17

帖子

5

主题

0

精华

入门

F 币
86 元
贡献
52 点
6#
 楼主| 发表于 2014-4-25 19:48:05 | 只看该作者
chuxf 发表于 2014-4-25 19:41
你的算法我不懂。

循环是个很简单的事情。

谢谢你的回答,我还想问一下就是
(1)
As=0.015*(1+daltf/35.0)
A2=0.25*(1+daltf/35.0)
A3=0.0689*(1+daltf/35.0)
A4=0.419*(1+daltf/35.0)
Al=0.4808*(1+daltf/35.0)
!!A1
A1=(1.0/2.0*pi)*atan(1.0/(1.0/tan(2.0*pi*As)+1.0/tan(2.0*pi*Al)))

A=(cos(2.0*pi*A2)+sin(2.0*pi*A2)/tan(2.0*pi*A3))*cos(2.0*pi*A4)-sin(2.0*pi*A2)*sin(2.0*pi*A4)

B=((cos(2.0*pi*A2)+sin(2.0*pi*A2)/tan(2.0*pi*A3))*sin(2.0*pi*A4)+sin(2.0*pi*A2)*cos(2.0*pi*A4))*Z0

C=((-1.0/tan(2.0*pi*A1)*cos(2.0*pi*A2)+sin(2.0*pi*A2)-(1.0/tan(2.0*pi*A1)*sin(2.0*pi*A2)+cos(2.0*pi*A2))/tan(2.0*pi*A3))*cos(2.0*pi*A4)+(1.0/tan(2.0*pi*A1)*sin(2.0*pi*A2)+cos(2.0*pi*A2))*sin(2.0*pi*A4))/Z0

D=(1.0/tan(2.0*pi*A1)*cos(2.0*pi*A2)-sin(2.0*pi*A2)+(1.0/tan(2.0*pi*A1)*sin(2.0*pi*A2)+cos(2.0*pi*A2))/tan(2.0*pi*A3))*sin(2.0*pi*A4)+(1.0/tan(2.0*pi*A1)*sin(2.0*pi*A2)+cos(2.0*pi*A2))*cos(2.0*pi*A4)
这些式子里面只有daltf是变化的,那我要把上面这些式子daltf的循环里吗?
(2)
这儿daltf是从0开始增加的,步长为0.001,我上面那么写行吗
特别感谢!!!

716

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
624 元
贡献
319 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

5#
发表于 2014-4-25 19:41:24 | 只看该作者
你的算法我不懂。

循环是个很简单的事情。

daltf = 起始值
Do i = 1 , 总循环次数
  daltf = daltf + 0.001
  处理代码
End Do

如果 A B C D 是函数,那就写成函数的形式。

17

帖子

5

主题

0

精华

入门

F 币
86 元
贡献
52 点
地板
 楼主| 发表于 2014-4-25 19:28:50 | 只看该作者
chuxf 发表于 2014-4-25 19:21
一段程序,所有代码必须都能找到“归属”,要么属于某个子程序,要么属于主程序。

像这种

就是把daltf调入A,B,C,D,可是daltf是变化的,按步长0.001变化,我就不知道A,B,C,D是不是也要写成子函数的形式,然后编写子程序E,F(含有Zr),再调用子程序E,F,得到反射系数ref,然后输出ref,daltf/35.0,大概就是这个流程

716

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
624 元
贡献
319 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

板凳
发表于 2014-4-25 19:21:20 | 只看该作者
一段程序,所有代码必须都能找到“归属”,要么属于某个子程序,要么属于主程序。

像这种
[Fortran] 纯文本查看 复制代码
 stop 
 end !// 此处是主程序结束
 !!!!!!!!!
 Z0=50.0
 Zi=-3.0
 !!!!!!!!
 daltf=0  !!频率的变化


主程序结束后,又有代码,这样是不行的。你打算让他们如何执行?

17

帖子

5

主题

0

精华

入门

F 币
86 元
贡献
52 点
沙发
 楼主| 发表于 2014-4-25 18:01:01 | 只看该作者
我不知道该怎么做,我要用daltf,那我底下的ABCDEF的表达式要放在循环里吗
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-31 00:46

Powered by Tencent X3.4

© 2013-2024 Tencent

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