dvbbs
收藏本页
联系我们
论坛帮助
dvbbs

>> Fortran语言使用经验交流
搜一搜相关精彩主题 
Fortran中文网Fortran中文网—Fortran语言经验交流Fortran语言使用经验交流 → [求助]求助:初学者求助,程序格式错误!着急等待中!

您是本帖的第 2794 个阅读者
树形 打印
标题:
[求助]求助:初学者求助,程序格式错误!着急等待中!
xyf_hit
美女呀,离线,留言给我吧!
等级:论坛游民
文章:15
积分:376
门派:无门无派
注册:2007年10月11日
楼主
 用支付宝给xyf_hit付款或购买其商品,支付宝交易免手续费、安全、快捷! 点击这里发送电子邮件给xyf_hit

发贴心情
[求助]求助:初学者求助,程序格式错误!着急等待中!
一个初学者,调试现有的程序,出现很多格式错误,在此向各位学长和老师求助!万分感激!
程序1:
      subroutine comqut(level)
      common/c1/dm1(2),dx,dt,f,dm2(2),uc,vc,dm3(5),st12
      common/c3/u(21,21,5),v(21,21,5),un(21,21,5),vn(21,21,5)
    1  ,px(21,21,5),py(21,21,5),vtn(21,21,5),ang(21,21,5)
     2  ,lw(21,21,5)
      common
     $/c4/cdr(100,2,2),uxv(100,2),turn(100,2)
     $/c5/flat,pth,dth(2),hh,z0land,ls,vv(100),ux(3),uv(3),
     $  duv(3),k35,k2,g,ga,den,vv2,hl,k123,z0,zlog,am,bm,cm,ff
      dimension hkl(21,21),drag(2)
      data e1,e2/0.5,0.5/
      data vonk/0.4/
c     sqq is approximation to sqrt of sum of squares
      sqq(a,b)=(abs(a)+abs(b))/2.51+(abs(a+b)+abs(a-b))*0.7071/2.51
      do 800 nc=1,level
      nest=level-nc+1
      do 720 i=1,21
      do 720 j=1,21
      u(i,j,nest)=un(i,j,nest)
      v(i,j,nest)=vn(i,j,nest)
720   continue
      if (nest.NE.level) go to 721
    if (nest.NE.5) call outby2(nest)
    go to 722
721   call outby1(nest)
722   continue
      dxl=2.0**(nest-1)*dx*1000.0
    dxl2=dxl**2
    dtl=2.0**(nest-1)*dt
    ftl=f*dtl
    ftl1=ftl**2+1.0
    fcl=2.0*vonk**2*(dxl/2.0)**2
c     inner boundary
      if (nest.EQ.1) go to 730
    do 724 j=1,10
      u(7,j+6,nest)=un(3,2*j+1,nest-1)
    v(7,j+6,nest)=vn(3,2*j+1,nest-1)
    v(15,j+6,nest)=vn(19,2*j+1,nest-1)
    u(15,j+6,nest)=un(19,2*j+1,nest-1)
724   continue
      do 726 i=1,10
      u(i+6,7,nest)=un(2*i+1,3,nest-1)
      v(i+6,7,nest)=vn(2*i+1,3,nest-1)
    u(i+6,15,nest)=un(2*i+1,19,nest-1)
    v(i+6,15,nest)=vn(2*i+1,19,nest-1)
726   continue
c     computation of interior point
730   do 734 i=1,20
      do 734 j=1,20
    if(nest.EQ.1) go to 733
    if(i.LE.6.OR.i.GE.15) go to 733
    if(j.LE.6.OR.j.GE.15) go to 733
    hkl(i,j)=0.0
    go to 734
733   d1=0.5*(u(i+1,j,nest)-u(i,j,nest)+u(i+1,j+1,nest)-u(i,j+1,nest)
     1  -v(i,j+1,nest)+v(i,j,nest)-v(i+1,j+1,nest)+v(i+1,j,nest))/dxl
      d2=0.5*(v(i+1,j,nest)-v(i,j,nest)+v(i+1,j+1,nest)-v(i,j+1,nest)
     1  +u(i,j+1,nest)-u(i,j,nest)+u(i+1,j+1,nest)-u(i+1,j,nest))/dxl
      hkl(i,j)=fcl*sqq(d1,d2)
734   continue
      do 775 i=2,20
    do 775 j=2,20
    if(nest.EQ.1) go to 736
    if(i.LE.6.OR.i.GE.16) go to 736
    if(j.LE.6.OR.j.GE.16) go to 736
      un(i,j,nest)=u(i,j,nest)
    vn(i,j,nest)=v(i,j,nest)
    go to 775
736   u1=u(i,j,nest)+uc
      v1=v(i,j,nest)+vc
c     drag(1) is tangential grad correction term
c     drag(2) is normal drag correction term
      ls=lw(i,j,nest)
    spp=sqq(u1,v1)
    spp1=amax1(1.,amin1(99.99,1.25*spp))
    kpp=spp1
    spp1=spp1-kpp
    sph=spp/hh
    do 737 ia=1,2
        drag(ia)=sph*(cdr(kpp,ls,ia)+
     $    spp1*(cdr(kpp+1,ls,ia)-cdr(kpp,ls,ia)))
737   continue
      if(nest.NE.5)go to 741
    if (i.NE.2.AND.i.NE.20) go to 741
    if(i-2) 738,738,740
738   if (u(i,j,nest))739,739,741
739   ukx=0.0
      vkx=0.0
    go to 742
740   if (u(i,j,nest))741,739,739
741   ukx=0.5*((hkl(i,j-1)+hkl(i,j))*(u(i+1,j,nest)-u(i,j,nest))
     1   -(hkl(i-1,j-1)+hkl(i-1,j))*(u(i,j,nest)-u(i-1,j,nest)))/dxl2
    vkx=0.5*((hkl(i,j-1)+hkl(i,j))*(v(i+1,j,nest)-v(i,j,nest))
     1   -(hkl(i-1,j-1)+hkl(i-1,j))*(v(i,j,nest)-v(i-1,j,nest)))/dxl2
    if(nest.NE.5)go to 746
742   if(j.NE.2.AND.j.NE.20)go to 746
      if(j-2)743,743,745
743   if(v(i,j,nest))744,744,746
744   uky=0.0
      vky=0.0
    go to 747
745   if(v(i,j,nest))746,744,744
746   uky=0.5*((hkl(i-1,j)+hkl(i,j))*(u(i,j+1,nest)-u(i,j,nest))
     1   -(hkl(i-1,j-1)+hkl(i,j-1))*(u(i,j,nest)-u(i,j-1,nest)))/dxl2
    vky=0.5*((hkl(i-1,j)+hkl(i,j))*(v(i,j+1,nest)-v(i,j,nest))
     1   -(hkl(i-1,j-1)+hkl(i,j-1))*(v(i,j,nest)-v(i,j-1,nest)))/dxl2
747   if(u(i,j,nest))748,750,750
748   ux=-u(i,j,nest)*(u(i,j,nest)-u(i+1,j,nest))/dxl
      vx=-u(i,j,nest)*(v(i,j,nest)-v(i+1,j,nest))/dxl
    go to 752
750   ux=u(i,j,nest)*(u(i,j,nest)-u(i-1,j,nest))/dxl
      vx=u(i,j,nest)*(v(i,j,nest)-v(i-1,j,nest))/dxl
752   if(v(i,j,nest))754,756,756
754   uy=-v(i,j,nest)*(u(i,j,nest)-u(i,j+1,nest))/dxl
      vy=-v(i,j,nest)*(v(i,j,nest)-v(i,j+1,nest))/dxl
    go to 758
756   uy=v(i,j,nest)*(u(i,j,nest)-u(i,j-1,nest))/dxl
      vy=v(i,j,nest)*(v(i,j,nest)-v(i,j-1,nest))/dxl
758   ur=0.5*(u(i,j,nest)+v(i,j,nest))
      vr=0.5*(-u(i,j,nest)+v(i,j,nest))
    if(ur)760,762,762
760   ux1=-ur*(u(i,j,nest)-u(i+1,j+1,nest))/dxl
      vx1=-ur*(v(i,j,nest)-v(i+1,j+1,nest))/dxl
    go to 764
762   ux1=ur*(u(i,j,nest)-u(i-1,j-1,nest))/dxl
      vx1=ur*(v(i,j,nest)-v(i-1,j-1,nest))/dxl
764   if(vr)766,768,768
766   uy1=-vr*(u(i,j,nest)-u(i-1,j+1,nest))/dxl
      vy1=-vr*(v(i,j,nest)-v(i-1,j+1,nest))/dxl
    go to 770
768   uy1=vr*(u(i,j,nest)-u(i+1,j-1,nest))/dxl
      vy1=vr*(v(i,j,nest)-v(i+1,j-1,nest))/dxl
770   uxy=e1*(ux+uy)+e2*(ux1+uy1)
      vxy=e1*(vx+vy)+e2*(vx1+vy1)
    b1=u(i,j,nest)+dtl*
     $ (ukx+uky-px(i,j,nest)-uxy+u1*drag(1)+v1*drag(2))
    b2=v(i,j,nest)+dtl*
     $ (vkx+vky-py(i,j,nest)-vxy+v1*drag(1)-u1*drag(2))
    un(i,j,nest)=(b1+ftl*b2)/ftl1
    vn(i,j,nest)=(b2-ftl*b1)/ftl1
775   continue
800   continue
      return
    end
出错:comqut.f(133) : Error: The shapes of the array expressions do not conform.   [UXY]
ip地址已设置保密
2008/7/13 10:26:25
digua
帅哥哟,离线,有人找我吗?
等级:新手上路
文章:5
积分:235
门派:无门无派
注册:2008年1月5日
2
 用支付宝给digua付款或购买其商品,支付宝交易免手续费、安全、快捷! 点击这里发送电子邮件给digua

发贴心情
怎么到处发贴,建议初学,练习简单的例子
ip地址已设置保密
2008/7/17 22:10:28
woyaorpg
帅哥哟,离线,有人找我吗?
等级:论坛游民
文章:20
积分:453
门派:无门无派
注册:2007年9月20日
3
 用支付宝给woyaorpg付款或购买其商品,支付宝交易免手续费、安全、快捷! 点击这里发送电子邮件给woyaorpg

发贴心情
common是什么语句?
ip地址已设置保密
2008/10/15 11:20:32

 3   3   1/1页      1    
网上贸易 创造奇迹! 阿里巴巴 Alibaba
Powered By Dvbbs Version 7.1.0 Sp1
Copyright ©2005 - 2008 www.fortran.cn
页面执行时间 0.13000 秒, 5 次数据查询
京ICP备05056801号