爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3849|回复: 5

[分享资料] 关于变量提取与赋值问题

[复制链接]

新浪微博达人勋

发表于 2014-12-4 15:02:41 | 显示全部楼层 |阅读模式

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

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

x
求助: 想提距离台风中心4°范围内的uenv.2要素值赋值给uenv.1,超过这个范围uenv.1的值不变, GS如下,但是得不到想要的结果,该怎么修改? 谢谢


'reinit'
'open uenv850.ctl'
'open uenv850yb.ctl'
'set fwrite uenv850new.dat'
'set gxout fwrite'

yy=0
while(yy<=50.5)
'set lat 'yy
xx=90
while(xx<=150.5)
'set lon 'xx
read_file=read('bama.txt')
read_line=sublin(read_file,2)
y0=subwrd(read_line,1)
x0=subwrd(read_line,2)

if(xx<='x0+4' & xx>='x0-4' & yy<='y0+4' & yy>='y0-4')
uenv(xx,yy)=uenv.2(xx,yy);

endif
'd uenv'
xx=xx+0.5
endwhile
yy=yy+0.5
endwhile
'disable fwrite'
'reinit'
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-12-4 15:09:35 | 显示全部楼层
'd uenv'应该放在end if上方吧
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-12-4 15:33:52 | 显示全部楼层
谢谢楼上的, 但是俺都试过,  uenv(xx,yy)=uenv.2(xx,yy);  这样的写法实际是不对的, 但是不知道怎么改好
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-12-4 15:49:47 | 显示全部楼层
wuyu 发表于 2014-12-4 15:33
谢谢楼上的, 但是俺都试过,  uenv(xx,yy)=uenv.2(xx,yy);  这样的写法实际是不对的, 但是不知道怎么改好

'define u(xx,yy)=uenv.2(xx,yy)'
'd u'

直接定义个新变量
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-12-4 19:28:34 | 显示全部楼层
提示 invalid function name  uenv.2
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-12-5 12:30:52 | 显示全部楼层
   还是换成F来编
   parameter (nx=122,ny=102,nxx=2,nyy=1)
        real u(nx,ny),uu(nx,ny),uuu(nx,ny),x,y,b(nxx,nyy),b1,b2,b3,b4
               
        open (1,file='uenv850.grd',form='unformatted',
     &    access='direct', recl=nx*ny)
            irec=0
       
           irec=irec+1
        read (1,rec=irec) ((u(i,j),i=1,nx),j=1,ny)
      
      open (2,file='bama.txt')
      read (2,*) ((b(i,j),i=1,nxx),j=1,nyy)
      print *, b
     
        open (4,file='uenv850yb.grd',form='unformatted',
     &    access='direct', recl=nx*ny)
            irec=0
       
           irec=irec+1
        read (4,rec=irec) ((uu(i,j),i=1,nx),j=1,ny)


      b1=b(1,1)+4
        print *,b1
        b2=b(1,1)-4
        print *,b2
        b3=b(2,1)+4
        print *,b3
        b4=b(2,1)-4
        print *,b4
       

      do 40 j=1,ny,1
        y=0+(j-1)*0.5
      print *,y
      do 30 i=1,nx,1
        x=90+(i-1)*0.5
*        print *,x
      if(((x.LE.b3).AND.(x.GE.b4)).AND.((y.LE.b1).AND.(y.GE.b2)))then
        u(i,j)=0
        endif
   30        continue
   40 continue
      
      do 60 j=1,ny,1
        y=0+(j-1)*0.5
      do 50 i=1,nx,1
        x=90+(i-1)*0.5
     
      if((x.LT.b4).OR.((x.GT.b4).AND.(y.GT.b1)).OR.((x.GT.b4).AND.
     &(y.LT.b2)).OR.((x.GT.b3).AND.(y.LT.b1).AND.(y.GT.b2)))then
        uu(i,j)=0.0
       
        endif
   50        continue
   60 continue


        do 80 j=1,ny
        do 70 i=1,nx
       
      uuu(i,j)=u(i,j)+uu(i,j)
   70 continue
   80 continue       


        open(200,file='uenv850hj.dat',form='unformatted',
     &         access='direct',recl=nx*ny)
       irec=1
        write(200,rec=irec) ((uuu(i,j),i=1,nx),j=1,ny)
       
        end
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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