爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7111|回复: 12

fortran程序运行出错求助

[复制链接]
发表于 2014-11-25 23:16:07 | 显示全部楼层 |阅读模式
Fortran
系统平台: CVF6.6
问题概况: 一个将MICAPS数据第一类格式改为litter_r格式的程序,Compile和build时没错,运行时出错了
问题截图: -
我看过提问的智慧: 看过
自己思考时长(天): 15

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

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

x
PROGRAM MAIN
IMPLICIT NONE
  CHARACTER*40:: bj_date,UTC_date
  CHARACTER*40:: date_char,UTC_date_char
  CHARACTER*40:: cTemp
  CHARACTER*80:: plot_path
  CHARACTER*40:: stat_name='aaa'
  CHARACTER*80:: plat_form='FM-12 SYNOP'
  CHARACTER*80:: source='MICAPS'
  INTEGER i,k,qc
  INTEGER:: m=1
  INTEGER yr,mon,date,hr,stat_num  
  INTEGER,ALLOCATABLE:: stat_id(:),stat_class(:)            
  REAL,ALLOCATABLE:: stat_elev(:),pre(:),temp(:),longi(:),lati(:),dew(:),win_dir(:),V(:)
  REAL,ALLOCATABLE:: a1(:),a2(:),a3(:),a4(:),a5(:),a6(:),a7(:),a8(:),a9(:),a10(:),a11(:),&
                     a12(:),a13(:),a14(:),a15(:),a16(:)
  REAL a(13)  !用于缺省值赋值(-888888.)
  INTEGER b(13)  !用于缺省值赋值(0)
  LOGICAL is_sound,bogus,discard  
  
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  bj_date='13080102'   !beijing time
  UTC_date='13073118' !UTC
  plot_path='G:/data/8yue/surface/plot/' !PATH
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  qc=0
  is_sound=.true.
  bogus=.false.
  discard=.false.
  date_char='20'//trim(adjustl(bj_date))//'0000'
  UTC_date_char='20'//trim(adjustl(UTC_date))//'0000'
  a=-888888.   !对整个数组赋值
  b=0   !对整个数组赋值
  OPEN (101,FILE=trim(plot_path)//trim(adjustl(bj_date))//'.000')
  READ(101,*)  !空读一行
  READ(101,*) yr,mon,date,hr,stat_num
  CLOSE(101)
  ALLOCATE (stat_id(stat_num))
  ALLOCATE (longi(stat_num))
  ALLOCATE (lati(stat_num))
  ALLOCATE (stat_elev(stat_num))
  ALLOCATE (stat_class(stat_num))
  ALLOCATE (pre(stat_num))
  ALLOCATE (temp(stat_num))
  ALLOCATE (dew(stat_num))
  ALLOCATE (win_dir(stat_num))
  ALLOCATE (V(stat_num))
  ALLOCATE (a1(stat_num))
  ALLOCATE (a1(stat_num))
  ALLOCATE (a2(stat_num))
  ALLOCATE (a3(stat_num))
  ALLOCATE (a4(stat_num))
  ALLOCATE (a5(stat_num))
  ALLOCATE (a6(stat_num))
  ALLOCATE (a7(stat_num))
  ALLOCATE (a8(stat_num))
  ALLOCATE (a9(stat_num))
  ALLOCATE (a10(stat_num))
  ALLOCATE (a11(stat_num))
  ALLOCATE (a12(stat_num))
  ALLOCATE (a13(stat_num))
  ALLOCATE (a14(stat_num))
  ALLOCATE (a15(stat_num))
  ALLOCATE (a16(stat_num))
  OPEN(101,FILE=trim(plot_path)//trim(adjustl(bj_date))//'.000')  !打开需要改写的micaps文件
  READ(101,*)
      READ(101,*)
  DO i=1,stat_num
   READ(101,*) stat_id(i),longi(i),lati(i),stat_elev(i),stat_class(i),a1(i),win_dir(i),V(i),pre(i),&
               a2(i),a3(i),a4(i),a5(i),a6(i),a7(i),a8(i),dew(i),a9(i),a10(i),temp(i),a11(i),a12(i),a13(i),&
      a14(i),a15(i),a16(i) !从文件中读值给变量
     ENDDO
  CLOSE(101)
  
  OPEN(102,FILE='obs.20'//trim(adjustl(UTC_date)),ACCESS='append')
DO i=1,stat_num   
     write(cTemp,"(I5)") stat_id(i)  !整型变量变为字符型
  WRITE(102,"(2f20.5,4A40,f20.5,5I10,3L10,2I10,A20,13(f13.5,I7))") lati(i),longi(i),stat_id(i),&
         stat_name,plat_form,source,stat_elev(i),m,-888888,-888888,-888888,&
         -888888,is_sound,bogus,discard,-888888,-888888,trim(UTC_date_char),&  
         -888888.,0,((a(k),b(k)),k=1,12)        !将头文件变量写入.obs文件
        
  IF(pre(i)==9999) pre(i)=-888888.
  IF(temp(i)==9999) temp(i)=-888888.
        IF(dew(i)==9999) dew(i)=-888888.
  IF(win_dir(i)==9999) win_dir(i)=-888888.
  IF(V(i)==9999) V(i)=-888888.
     
  WRITE(102,'(10(F13.5,I7))') pre(i)*100,qc,stat_elev(i),qc,(temp(i)+273.16),qc,(dew(i)+273.16),qc,&
         win_dir(i),qc,V(i),qc,((a(k),b(k)),k=1,4) !将data record部分写入.obs文件
  
  WRITE(102,'(10(F13.5,I7))') -777777.,0,-777777.,0,((a(k),b(k)),k=1,8)   !end data record
  WRITE(102,*) 50,0,0  !end report record.第一个值为有效场个数,怎么得到的?
ENDDO
  CLOSE(102)
  DEALLOCATE(stat_id)
  DEALLOCATE(longi)
  DEALLOCATE(lati)
  DEALLOCATE(stat_elev)
  DEALLOCATE(stat_class)
  DEALLOCATE(pre)
  DEALLOCATE(temp)
  DEALLOCATE(dew)
  DEALLOCATE(win_dir)
  DEALLOCATE(V)
  DEALLOCATE(a1)
  DEALLOCATE(a2)
  DEALLOCATE(a3)
  DEALLOCATE(a4)
  DEALLOCATE(a5)
  DEALLOCATE(a6)
  DEALLOCATE(a7)
  DEALLOCATE(a8)
  DEALLOCATE(a9)
  DEALLOCATE(a10)
  DEALLOCATE(a11)
  DEALLOCATE(a12)
  DEALLOCATE(a13)
  DEALLOCATE(a14)
  DEALLOCATE(a15)
  DEALLOCATE(a16)

END



!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
请问各位大神问题出在哪啊,多谢~~
密码修改失败请联系微信:mofangbao
发表于 2014-11-26 08:08:22 | 显示全部楼层
光贴了一段程序 就说报错了  把错误信息以及错误的位置也说一下啊
你说有多少人会有时间把程序拿去跑一下呢
密码修改失败请联系微信:mofangbao
 成长值: 0
发表于 2014-11-26 08:47:37 | 显示全部楼层
topmad 发表于 2014-11-26 08:08
光贴了一段程序 就说报错了  把错误信息以及错误的位置也说一下啊
你说有多少人会有时间把程序拿去跑一下 ...

目测····











额,测不出来···
密码修改失败请联系微信:mofangbao
发表于 2014-11-26 09:08:19 | 显示全部楼层

没有深深那功力
密码修改失败请联系微信:mofangbao
发表于 2014-11-26 09:18:19 | 显示全部楼层
topmad 发表于 2014-11-26 09:08
没有深深那功力

老五是不是没看到深深回复的后半句?
目测下面隔了几行写着测不出来.......
密码修改失败请联系微信:mofangbao
发表于 2014-11-26 10:14:47 | 显示全部楼层
lqouc 发表于 2014-11-26 09:18
老五是不是没看到深深回复的后半句?
目测下面隔了几行写着测不出来.......

眼拙了.。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-11-26 17:46:18 | 显示全部楼层
不好意思啊~~这个是运行完的截图,请大家给看看~
运行后.PNG
密码修改失败请联系微信:mofangbao
发表于 2014-11-26 17:51:58 | 显示全部楼层
schLltt 发表于 2014-11-26 17:46
不好意思啊~~这个是运行完的截图,请大家给看看~

动态数组启动的时候a1重复了,去掉一个,这个报错说的也很明白了,以后请尽量自己先搜索尝试解决哈。
另外你回复的时候要点回复某个人,单纯的回复自己的帖子我们都收不到提示。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-11-26 17:52:29 | 显示全部楼层
topmad 发表于 2014-11-26 08:08
光贴了一段程序 就说报错了  把错误信息以及错误的位置也说一下啊
你说有多少人会有时间把程序拿去跑一下 ...

不好意思啊,这个是运行后的错误提示,多谢了~
运行后.PNG
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-11-26 17:56:10 | 显示全部楼层

  ,再给测测~~
运行后.PNG
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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