| 
 
	积分35贡献 精华在线时间 小时注册时间2017-5-4最后登录1970-1-1 
 | 
 
| 
总说超过数组界限。
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
 
 
 | 
 |