showshow 发表于 2014-3-22 11:02:44

请各位高手帮帮忙,循环中的数组问题

大家好!本人初学fortran,版本是compad visual fortran.现编了一个订正风场风速风量的程序,但总显示我定义的数组有问题,不知是何原因,请各位高手指点迷津,谢谢大家。

program exercise1_2
implicit none
!读入风向风度数据
real a(5,6),u1(5,6),v1(5,6),u(5,6),v(5,6),w(5,12),L0
real i,j
real,parameter::pi=3.1416,r=6378.140,k=0.7156,b=(pi/3)
L0=r/k*sin(b)
open(unit=10,file='F:\111\dddff.txt',recl=4)
do i=1,5
read(10,*) (w(i,j),j=1,12)
enddo
!计算风场分量
do i=1,5
do j=1,6
    u1(i,j)=w(i,j+1)*sin(w(i,j)*pi/180-pi)
    v1(i,j)=w(i,j+1)*cos(w(i,j)*pi/180-pi)
enddo
enddo
!计算订正风场
do i=1,5
do j=1,6
    a(i,j)=atan2(((j-1)*100),(L0-(i-1)*100))
    u(i,j)=u1*cos(a(i,j)*pi/180)+v1*sin(a(i,j)*pi/180)
    v(i,j)=v1*cos(a(i,j)*pi/180)-u1*sin(a(i,j)*pi/180)
enddo
enddo
end

珊瑚虫 发表于 2014-3-22 11:14:49

do i=1,5
        do j=1,6
                a(i,j)=atan2(((j-1)*100),(L0-(i-1)*100))
                u(i,j)=u1*cos(a(i,j)*pi/180)+v1*sin(a(i,j)*pi/180) !注意这一行和下一行中,u1,v1也是二维数组,你需要制定他们的位置,比如u1(i,j)
                v(i,j)=v1*cos(a(i,j)*pi/180)-u1*sin(a(i,j)*pi/180)
        enddo

enddo

楚香饭 发表于 2014-3-22 15:54:11

建议不要提供源代码的截图,这样别人无法复制粘贴,无法为你测试。

论坛可直接张贴 Fortran 代码,会自动进行高亮显示。

showshow 发表于 2014-3-22 17:12:38

珊瑚虫 发表于 2014-3-22 11:14
do i=1,5
        do j=1,6
                a(i,j)=atan2(((j-1)*100),(L0-(i-1)*100))


明白了,谢谢你

showshow 发表于 2014-3-22 17:13:59

chuxf 发表于 2014-3-22 15:54
建议不要提供源代码的截图,这样别人无法复制粘贴,无法为你测试。

论坛可直接张贴 Fortran 代码,会自动 ...

知道了,今天刚注册的,对于这些还不懂,以后会注意的
页: [1]
查看完整版本: 请各位高手帮帮忙,循环中的数组问题