爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
楼主: 心语

[求助] 请问fortran程序 编译没有错误 但链接时有error 是怎么回事

[复制链接]
 楼主| 发表于 2013-5-22 20:43:49 | 显示全部楼层

                               
登录/注册后可看大图
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-5-22 20:44:29 | 显示全部楼层

                               
登录/注册后可看大图
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-5-22 20:44:56 | 显示全部楼层
怎么截图显示不出来
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-5-22 20:46:05 | 显示全部楼层
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-5-22 20:47:53 | 显示全部楼层
哎  截图实在发不出  在我这个论坛的空间相册里
密码修改失败请联系微信:mofangbao
发表于 2013-5-22 22:33:34 | 显示全部楼层
本帖最后由 夏朗的芒果 于 2013-5-22 22:34 编辑
心语 发表于 2013-5-22 20:47
哎  截图实在发不出  在我这个论坛的空间相册里

! read 20090416/high/height;temper;t-td;uv
! lon 32~160                                                                                  interval: 4 degree
! lat 12~80                                                                                          interval: 4 degree
! time 1~12:  2009.04.16.20:00~04.22.08:00            interval: 12 hours
! U,v,height,t: 1000,925,850,700,500,400,300,250,200,150,100  hpa


program main
REAL,PARAMETER    :: Omega=7.292e-5,R=6371e+3,PI=3.1415926,Delta=4,DeltaT=12
INTEGER,PARAMETER :: nx=33,ny=18,nz=11,nt=12
REAL F, EE,AA,BB,sign,dy
INTEGER WtTopLevel(NX,NY,NT)
REAl P(NZ),deltP(10),lat(ny),lon(nx),sigmadeltD,dx(ny)
CHARACTER timefile(12)*12 ,levelfile(11)*4
real,allocatable :: temper(:,:,:,:),q(:,:,:,:),u(:,:,:,:),     &
                                        v(:,:,:,:),height(:,:,:,:),w(:,:,:,:),     &
                                        qu(:,:,:,:),qv(:,:,:,:),adq(:,:,:,:),      &
                                        adqv(:,:,:,:),theta(:,:,:,:),Wt(:,:,:,:),  &
                                        vorg(:,:,:,:),voro(:,:,:,:),div(:,:,:,:),  &
                                        deltD(:,:,:),ttd(:,:,:,:),thetaP(:,:,:,:)
allocate (temper(NX,NY,NZ,NT),q(NX,NY,nz,NT),u(NX,NY,NZ,NT),   &
                 v(NX,NY,NZ,NT),height(NX,NY,NZ,NT),w(NX,NY,NZ,NT),    &
                 qu(NX,NY,NZ,NT),qv(NX,NY,NZ,NT),adq(NX,NY,NZ,NT),     &
                 adqv(NX,NY,NZ,NT),theta(NX,NY,NZ,NT),Wt(NX,NY,NZ,NT), &
                 vorg(NX,NY,NZ,NT),voro(NX,NY,NZ,NT),div(NX,NY,NZ,NT), &
                 deltD(NX,NY,NT),ttd(NX,NY,NZ,NT),thetaP(NX,NY,NZ,NT))

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
DATA P    /1000,925,850,700,500,400,300,250,200,150,100/
DATA deltP/75,  75, 50, 200,100,100,50, 50, 50, 50/
DATA timefile/'09041620.000','09041708.000','09041720.000','09041808.000','09041820.000','09041908.000', &
              '09041920.000','09042008.000','09042020.000','09042108.000','09042120.000','09042208.000'/
DATA levelfile/'1000','925','850','700','500','400','300','250','200','150','100'/


do i=1,nx
lon(i)=32+(i-1)*Delta
lon(i)=lon(i)*pi/180.
enddo
do i=1,ny
lat(i)=12+(i-1)*Delta
lat(i)=lat(i)*pi/180.
enddo
!--------------read temperature----------------
DO IZ=1,NZ        ! level
DO IT=1,NT        ! time
OPEN(11,file='d:/sx/temper/'//trim(levelfile(iz))//'/'//timefile(it))
    do i=1,4
    read(11,*)
        enddo
    do ij=NY,1,-1
        read(11,*)(temper(ii,ij,iz,it),ii=1,NX)           ! C
        enddo
CLOSE(11)
ENDDO
ENDDO
!======== t,td => specific humidity:

do it=1,nt
  do iz=1,nz
   do ij=1,ny
            do ii=1,nx
           EE=6.10875*exp(24.775*(1-273.16/(tempre(ii,ij,iz,it)-ttd(ii,ij,iz,it))))*(273.16/(tempre(ii,ij,iz,it)-ttd(ii,ij,iz,it)))**4.9283
                        q(ii,ij,iz,it)=622*EE/(p(iz)-0.378*EE)
                enddo
        enddo
enddo

OPEN(8,FILE='d:/sx/out2.grd',form='binary')
        do it=1,nt
       WRITE(8) (((q(i,j,iz,it),i=1,nx),j=1,ny),iz=1,nz)
        enddo
    CLOSE(8)
deallocate (temper,q,u,v,height,w,qu,qv,adq,adqv,theta,Wt, &
                    vorg,voro,div,deltD,ttd,thetaP)
END


程序错误见红色标记。程序定义的是temper,不是tempre。
其实程序的错误提示写的很清楚,unresolved external symbol_TEMPRE。在程序中找TEMPRE出现的地方修改即可。
QQ图片20130522223424.jpg

评分

参与人数 1金钱 +2 收起 理由
心语 + 2 很给力!

查看全部评分

密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-5-22 22:39:15 | 显示全部楼层
夏朗的芒果 发表于 2013-5-22 22:33
! read 20090416/high/height;temper;t-td;uv
! lon 32~160                                           ...

对对    是这里错啦  太感谢啦
密码修改失败请联系微信:mofangbao
发表于 2013-5-22 22:40:34 | 显示全部楼层
EE=6.10875*exp(24.775*(1-273.16/(tempre(ii,ij,iz,it)-ttd(ii,ij,iz,it))))*(273.16/(tempre(ii,ij,iz,it)-ttd(ii,ij,iz,it)))**4.9283
                        q(ii,ij,iz,it)=622*EE/(p(iz)-0.378*EE)

你是不是这句里的数组名写错了,按照你的定义,应该是temper,不是tempre


另外直接把程序帖出来就行了,害我还要花积分下载
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-5-22 22:44:05 | 显示全部楼层
虫儿飞 发表于 2013-5-22 22:40
EE=6.10875*exp(24.775*(1-273.16/(tempre(ii,ij,iz,it)-ttd(ii,ij,iz,it))))*(273.16/(tempre(ii,ij,iz,it ...

对啊  亲 不好意思哈 太感谢啦
密码修改失败请联系微信:mofangbao
发表于 2013-5-22 22:47:43 | 显示全部楼层
心语 发表于 2013-5-22 22:39
对对    是这里错啦  太感谢啦

楼主以后有疑问直接把程序代码贴出来,把报错图顺便带上。这样效率很高很多,很少有人愿意下载东西花费金钱来调试程序的。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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