爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5067|回复: 0

[求助] 大神怎么用Nino3.4指数判断厄尔尼诺现象?请问我的程序哪里出错了吗?

[复制链接]

新浪微博达人勋

发表于 2017-12-23 20:40:20 | 显示全部楼层 |阅读模式

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

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

x
总说超过数组界限。
厄尔尼诺事件的定义:
Nin3.4指数超过0.5℃持续5个月或以上定义为一次厄尔尼诺事件。其中,若大于0.5的指数间断两个月或以上,则认为两次事件不连续;若间断一个月,并且该月的Nino3.4指数的3个月滑动平均值超过0.5则认为前后事件连续,否则不连续。
根据以上定义,使用CPC提供的1950年以来的Nino3.4指数,共筛选出20次厄尔尼诺事件。
program main
integer::m=0,k=0,i,j
!m用于判断指数大于0.5是否连续有5个月以及以上,k用于表示一共有多少次厄尔尼诺事件
parameter(n=815)
!1950-2017年每个月有1个数据,然后2017年12月的数据任然未出,n=815个数据
dimension::x(n)
open(1,file='D:\nino34.txt')
read(1,*)(x(i),i=1,n)
close(1)
print*,x(i)
open(4,file='D:\jg34.txt')
do i=1,n
write(4,120) x(i)
120 format (1X,f8.2,4x,f8.2,5x,2f8.2)
end do
close(4)
do i=1,814
if(x(i)>0.5) then
m=m+1
else
m=0
end if
if(m==5) then
k=k+1 !因为如果设置“if(m>=5)”时候k可能多算了,因为例如m=6时候,本应该是同一厄尔尼诺事件,但是会算两次,
else if(m>=5) then
Open(8,file='D:\Nino34.txt')
write(*,*)'m=',m,'i=',i !输出一下k大于等于5时候的厄尔尼诺事件的位置,即可以看看是从哪一个数据开始连续累计超过5的?
Close(8)
end if
end do
print*,'一共有',k,'次厄尔尼诺事件'
pause
end

密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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