爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5617|回复: 7

[求助] 计算Z指数的程序运行出错,请高人帮忙

[复制链接]

新浪微博达人勋

发表于 2012-5-29 10:01:01 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
      program main
parameter (ii=48,jj=63)
real m(ii,jj)
real s(jj)
real p(jj)
real q(jj)
real z(ii,jj)
real w=0.0
real y=0.0
real t=0.0
real u=0.0
      open(1,file='1.txt')
open(2,file='1-z.txt')
read(1,*) ((m(i,j),j=1,jj),i=1,ii)
      
do  j=1,jj
do i=1,ii
  w=w+m(i,j)
end do
s(j)=w/48.0
w=0.0
end do
    do j=1,jj
  do i=1,ii
  y=y+((m(i,j)-s(j))**2)
  t=t+((m(i,j)-s(j))**3)
       end do
p(j)=sqrt(y/48.0)
q(j)=t/(48.0*(p(j)**3))

y=0.0
t=0.0
end do
do  i=1,ii
  do j=1,jj
u=((q(j)*((m(i,j)-s(j))/p(j)))/2.0)+1
  if (u>0.0)then
z(i,j)=((6*(u**0.33333333))/q(j))-(6.0/q(j))+(q(j)/6.0)
       else if (u==0.0)then
z(i,j)=-(6.0/q(j))+(q(j)/6.0)
  else
z(i,j)=(-1)*((6*(((-1)*u)**0.33333333))/q(j))-(6.0/q(j))+(q(j)/6.0)
  end if
u=0.0
end do
      write (2,100) (z(i,j),j=1,jj)
end do
100   format(63f8.2)

end
附件是计算的数据

1.txt

12.94 KB, 下载次数: 31, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2012-5-29 10:19:59 | 显示全部楼层
您好,您的程序我下载运行了一下,仅针对你的语法看了一下,算法(因为没有做过这个,所以)没有看!
我用的fortran版本是康版的6.5,运行的时候提示12个错误:
--------------------Configuration: z - Win32 Debug--------------------
Compiling Fortran...
D:\ypc2012\j\z index\z.f90
D:\ypc2012\j\z index\z.f90(8) : Error: Syntax error, found IDENTIFIER 'W' when expecting one of: ( : % . = =>
real w=0.0
-----^
D:\ypc2012\j\z index\z.f90(9) : Error: Syntax error, found IDENTIFIER 'Y' when expecting one of: ( : % . = =>
real y=0.0
-----^
D:\ypc2012\j\z index\z.f90(10) : Error: Syntax error, found IDENTIFIER 'T' when expecting one of: ( : % . = =>
real t=0.0
-----^
D:\ypc2012\j\z index\z.f90(11) : Error: Syntax error, found IDENTIFIER 'U' when expecting one of: ( : % . = =>
real u=0.0
-----^
D:\ypc2012\j\z index\z.f90(8) : Error: This variable or component must be of a derived or structure type   [REAL]
real w=0.0
^
D:\ypc2012\j\z index\z.f90(8) : Error: This is not a field name that is defined in the encompassing structure.   [W]
real w=0.0
-----^
D:\ypc2012\j\z index\z.f90(9) : Error: This variable or component must be of a derived or structure type   [REAL]
real y=0.0
^
D:\ypc2012\j\z index\z.f90(9) : Error: This is not a field name that is defined in the encompassing structure.   [Y]
real y=0.0
-----^
D:\ypc2012\j\z index\z.f90(10) : Error: This variable or component must be of a derived or structure type   [REAL]
real t=0.0
^
D:\ypc2012\j\z index\z.f90(10) : Error: This is not a field name that is defined in the encompassing structure.   [T]
real t=0.0
-----^
D:\ypc2012\j\z index\z.f90(11) : Error: This variable or component must be of a derived or structure type   [REAL]
real u=0.0
^
D:\ypc2012\j\z index\z.f90(11) : Error: This is not a field name that is defined in the encompassing structure.   [U]
real u=0.0
-----^
Error executing df.exe.

z.obj - 12 error(s), 0 warning(s)
检查发现因为8-11行的四处赋值语句出现边定义边赋值的问题,去掉定义real改为:
w=0.0
y=0.0
t=0.0
u=0.0

【此处修改时基于fortran程序的I-N规则进行,可以自行查看I-N规则】
再次运行之后得到结果 1-z.txt (23.72 KB, 下载次数: 16)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2012-5-29 11:59:11 | 显示全部楼层
变量在定义的时候如果想同时初始化值的话,可以使用下面的格式:
real::var=0.0
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-5-21 08:52:07 | 显示全部楼层
楼主,你的Z指数问题是否已解决,有木有Z指数的fortran程序,能不能给我用下,谢谢了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-12-31 15:49:40 | 显示全部楼层
谢谢,分享程序,具体怎么使用还有待进一步学习
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-24 09:42:03 | 显示全部楼层
你好,请问你的求Z指数的Fortran程序还保留着吗
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-5-14 17:01:46 | 显示全部楼层
shuiyunjian 发表于 2014-12-31 15:49
谢谢,分享程序,具体怎么使用还有待进一步学习

您好,请问Z指数的程序还保留着吗
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-5-14 17:02:49 | 显示全部楼层
彭哈儿 发表于 2016-4-24 09:42
你好,请问你的求Z指数的Fortran程序还保留着吗

您好,请问Z指数的程序还保留呢吗
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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