回 帖 发 新 帖 刷新版面

主题:气象编程循环出数据

integer*4::k,geshu(2513),zuida(77,6)
real*4::station(2513,4),sum1(2513),x30(2513),x50(2513),x(2513),ka(41),cv(2513),w30(2513),w50(2513)
open(1,file="zuida.txt")
open(2,file="station2513.txt")
open(3,file="fengya.txt")
do i=1,77
  read(1,*)(zuida(i,j),j=1,6)
enddo
do i=1,2513
  read(2,*)(station(i,j),j=1,4)
enddo
   a=0.0
   ib=0 
do j=1,2513     
    do i=1,77
      if(zuida(i,1)==station(j,1))then      
         a=a+zuida(i,6)  
         ib=ib+1
         if(i==77)then
           sum1(j)=a
           geshu(j)=ib     
         else if(zuida(i,1)/=zuida(i+1,1))then 
             sum1(j)=a
           geshu(j)=ib           
          a=0.0
          ib=0         
        endif
        if(geshu(j)>=15)then
           x(j)=sum1(j)/geshu(j)       
        do m=1,geshu(j)
           ka(m)=zuida(i,6)/x(j)
        enddo   
        do k=1,geshu(j)
           cv(j)=sqrt((ka(k)-1)*(ka(k)-1)/(geshu(j)-1))
        enddo
           x30(j)=x(j)*0.1*(1+cv(j)*2.14)
           w30(j)=x30(j)**2/16.0
           x50(j)=x(j)*0.1*(1+cv(j)*2.59)
           w50(j)=x50(j)**2/16.0     
        write(3,*)cv(j),zuida(i,1),x30(j),w30(j),x50(j),w50(j) 
        endif     
      endif
    enddo              
enddo
end
编程出来的结果和答案不一样,附件里面有资料和公式,以及答案,这是一部分数据,后面还要算大量的数据,需要这个程序。谢谢帮忙。

回复列表 (共8个回复)

沙发

楼主想说什么?

板凳

我想说的是编程出来的结果和答案不一样,附件里面有资料和公式,谢谢帮忙啦

3 楼

else if(zuida(i,1)/=zuida(i+1,1))then 
这是干啥用的?

4 楼


这个就是求和和总的个数后,到下一个站的时候就终止求和。

5 楼

[quote]
这个就是求和和总的个数后,到下一个站的时候就终止求和。[/quote]
那这个很明显是不对的啊。。。

6 楼


请你帮忙改一下,能出来和结果一样的就行。

7 楼

楼主还是先自己想想逻辑上有什么问题吧。。。

8 楼


谢谢你,我已经作出来了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册